oxidecomputer / oxidecomputer/crucible
Prototype determinstic sector shuffle
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 260
- Forks
- 34
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 8
Description
To mitigate against attacks based on changing the ciphertext of a certain sector, I was thinking of implementing a random sector index shuffle based on a deterministic seed. This seed would be part of the "key" material that an Upstairs would be initialized with.
For example, a disk with 8 sectors could be shuffled like so:
shuffle([1, 2, 3, 4, 5, 6, 7, 8], seed) = [6, 4, 1, 3, 2, 8, 5, 7]
This shuffle seed would be unique per volume. Operations Upstairs to sector 1 would instead affect Downstairs at sector 6. An attacker with access to only the Downstairs would need the shuffle seed to be able to target specific sectors.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or concrete entry point. Start by reviewing how Upstairs and Downstairs are initialized and how key material is represented; the work is complete when a deterministic, per-volume sector shuffle is prototyped and its behavior is validated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100