Repository navigation
Replies: 5 comments 15 replies
|
my current mental model of how a potential extension would work for this (needs refinement)
the implications here are not only that there's a way to mitigate key compromise, but also that this enables continuous in-band key rotation without loss of funds (during the switch), which could be argued as best practices while dealing with large scale deployments edit: I think the idea above is flawed... if attacker holds private key 0, they could lie about the new authority key that would be communicated in-band |
|
im curious about this argument "@TheBlueMatt strongly rejected the proposal, arguing it introduces severe vulnerabilities where an attacker could permanently redirect miners via a malicious authority key update." What are the vulnerabilities? The only vulnerability that is clear to me is an opt-in config to mine on an outdated key and firmwares could log that they are mining on an outdated key so the error is loud. The same vulnerabilities are present in the case a untrustworthy pool doesnt want to rotate due to the various costs associated with it (losing hashrate, work required for support, etc). At least in the proposal, rotation for pools is actually zero cost and failures are loud for the client |
|
Ok, so let me try to explain how noise works right now, how we can avoid the problem around an authority key leak, and what other attack vectors are possible. We use the NX variant of Noise for Sv2. The client sends its ephemeral key, and the server replies with its ephemeral and static keys, plus a certificate where the authority key signs the server's static key. The client checks that signature against the authority pubkey it got out of band from the server. If it matches, both sides derive the transport keys. The client's decryption key is the server's encryption key and vice versa. Once the handshake is done, the session is secured by those transport keys. Forward secrecy comes from the ephemeral keys in the handshake: leaking the authority key later doesn't expose past sessions. But if someone gets the transport keys, they can read everything on that connection. So there are two things that can leak: the authority private key, and the session state (transport keys).
With this in mind, we can implement in-band authority key rotation with an extension. It won't save us in every scenario, but it does solve the one that started this discussion, the authority private key leaking.
Option 2 covers the case we care about. For the rest, the server has to fall back to out of band communication. |
|
an important factor that has probably been overlooked up until now: in its early development stages, SRI's moreover, the application layer of SRI is currently structured in a way where authority keypairs are written into all of that is still true on SRI today this oversimplification was practical for early development, but now it might be nudging implementers (e.g.: @coleFD ) in a direction where their custody expectations around authority keys might be shaped by what SRI does today, not by what the protocol was designed for while ephemerally generating static keys for every handshake is not violating the spec as-is, I don't think it is good practice for production systems static keys do deserve "cheap" rotation, but making them ephemeral pushes authority key to a "hot" position where it doesn't belong looking at it from a pure protocol design perspective (@TheBlueMatt please correct me if I'm wrong here):
so I've updated #234 accordingly:
since authority key rotation is meant to be expensive by design, trying to work around that with an extension feels backwards the rare authority rotation that still needs to happen (e.g.: staff turnover, or key compromise) should be handled by a parallel endpoint (as clarified on §4.8.4 of #234), or ideally via clients configured with MULTIPLE authority keys (as clarified on §4.8.5 of #234), which is the multi-key support SRI already agreed to take on. communication of the new authority pubkey stays out of band by design, but with multiple keys configured upfront, the switch itself needs no coordination: servers just start presenting certificates signed by the new key, and clients remove the old keys from their configs at their own pace in summary: I suspect an early PoC-style implementation decision on I think we should just make |
|
Closing this. On a call today with @coleFD, Derrick, @GitGab19 and @bit-aloo it became clear this thread has been chasing the wrong proposal. I opened it around a server→client message delivering a successor authority key in band, and that is what @TheBlueMatt's (a)/(b) rebuttal and the rest of the thread addressed. What Cole actually wants is the alternative he posted on 2026-09-25 (#235 (reply in thread)): the client appends its configured authority key to the first handshake message, and the server answers with the certificate signed by that key. No key is learned in band, so the permanent-theft argument doesn't apply. That is a change to the handshake itself, not an extension, so it needs its own proposal. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
intro
Rotating the server static key is already free and in band, via the certificate. Rotating the authority key is not: it is the trust anchor, and today only reaches clients out of band (4.7). This RFC asks whether an extension should let a server deliver a successor authority key in band, over the already-authenticated session. Motivation is operational — out-of-band rotation means touching every client. The sketch is in the first comment below.
This is also correlated with PR #234, which adds
4.8 Key Management and Rotationand already covers offline custody of the authority key (4.8.2), the cost of rotating it (4.8.4), and clients trusting a set of authority keys (4.8.5).24/09/2026 Sv2 Working Group call
Notes auto-generated by Gemini from the Google Meet recording, then refined and reformatted with Claude Opus 5.
Server Security and Key Trust Assumptions
Participants: @coleFD, @TheBlueMatt, @plebhash, @GitGab19, @bit-aloo
Topic: server security and pool trust without traditional TLS certificate authorities.
Key rotation challenges and compromise mitigation
Participants: @coleFD, @TheBlueMatt
Evaluating In-Band Key Rotation Proposals
Participants: @plebhash, @coleFD, @TheBlueMatt, @average-gary, @GitGab19, @bit-aloo
Topic: potential protocol extensions and in-band methods for handling key rotation and failovers.
Codebase adjustments and SRI support for multiple keys
Participants: @TheBlueMatt, @bit-aloo, @GitGab19
noise-sv2for checking a single authority key would not require massive modifications.All reactions