mirror of
https://github.com/NixOS/rfcs.git
synced 2025-11-08 19:46:12 +01:00
Merge 2bb637b2bc into c655bdaab4
This commit is contained in:
commit
10dead2a46
1 changed files with 80 additions and 0 deletions
80
rfcs/0149-cache-key-rotation.md
Normal file
80
rfcs/0149-cache-key-rotation.md
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
---
|
||||||
|
feature: (fill me in with a unique ident, my_awesome_feature)
|
||||||
|
start-date: (fill me in with today's date, YYYY-MM-DD)
|
||||||
|
author: (name of the main author)
|
||||||
|
co-authors: (find a buddy later to help out with the RFC)
|
||||||
|
shepherd-team: (names, to be nominated and accepted by RFC steering committee)
|
||||||
|
shepherd-leader: (name to be appointed by RFC steering committee)
|
||||||
|
related-issues: (will contain links to implementation PRs)
|
||||||
|
---
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
[summary]: #summary
|
||||||
|
|
||||||
|
Rotate cache.nixos.org signing key.
|
||||||
|
|
||||||
|
If we tolerate that people using stuff older than *X* could get a validation failure by default, fully rotating the key in 2*X* time seems relatively straightforward.
|
||||||
|
|
||||||
|
# Motivation
|
||||||
|
[motivation]: #motivation
|
||||||
|
|
||||||
|
Never rotating a key is bad security practice.
|
||||||
|
The current one has been in use at least since 2015.
|
||||||
|
|
||||||
|
# Detailed design
|
||||||
|
[design]: #detailed-design
|
||||||
|
|
||||||
|
Preliminary action plan:
|
||||||
|
- generate a new key
|
||||||
|
- make it trusted by default (nix+nixpkgs, perhaps with backports to some branches)
|
||||||
|
- wait until enough people trust the new key (at least one year, probably)
|
||||||
|
- switch to signing with the new key
|
||||||
|
- wait - until paths not signed by new key aren't commonly needed anymore
|
||||||
|
- make Nix not need signatures for fixed-output derivations
|
||||||
|
(this step could be completed anytime earlier, too)
|
||||||
|
FIXME: maybe this holds already:
|
||||||
|
https://nixos.org/manual/nix/unstable/command-ref/conf-file.html#conf-trusted-public-keys
|
||||||
|
- stop trusting the old key (nix+nixpkgs)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- - -
|
||||||
|
|
||||||
|
|
||||||
|
# Examples and Interactions
|
||||||
|
[examples-and-interactions]: #examples-and-interactions
|
||||||
|
|
||||||
|
This section illustrates the detailed design. This section should clarify all
|
||||||
|
confusion the reader has from the previous sections. It is especially important
|
||||||
|
to counterbalance the desired terseness of the detailed design; if you feel
|
||||||
|
your detailed design is rudely short, consider making this section longer
|
||||||
|
instead.
|
||||||
|
|
||||||
|
# Drawbacks
|
||||||
|
[drawbacks]: #drawbacks
|
||||||
|
|
||||||
|
Why should we *not* do this?
|
||||||
|
|
||||||
|
# Alternatives
|
||||||
|
[alternatives]: #alternatives
|
||||||
|
|
||||||
|
- change nothing, obviously
|
||||||
|
- also resign old `*.narinfo`. Maybe it's not too hard.
|
||||||
|
It would help people wanting ot use old builds.
|
||||||
|
- double-sign `*.narinfo` for some time. (also not an exclusive alternative)
|
||||||
|
I don't know if consumers support multiple signatures.
|
||||||
|
It doesn't seem to give us significant advantage though;
|
||||||
|
acceptance of multiple keys seems more advantageous.
|
||||||
|
|
||||||
|
# Unresolved questions
|
||||||
|
[unresolved]: #unresolved-questions
|
||||||
|
|
||||||
|
- confirm Nix's (non-)acceptance of FODs without signature
|
||||||
|
- determine timing (e.g. the *X* above).
|
||||||
|
Consider aligning the regular schedule with NixOS releases.
|
||||||
|
|
||||||
|
# Future work
|
||||||
|
[future]: #future-work
|
||||||
|
|
||||||
|
What future work, if any, would be implied or impacted by this feature
|
||||||
|
without being directly part of the work?
|
||||||
Loading…
Add table
Add a link
Reference in a new issue