On Thu, Jul 09, 2020 at 09:01:25AM -0400, Ryan Sleevi wrote: > On Thu, Jul 9, 2020 at 8:30 AM Ilari Liusvaara <ilariliusva...@welho.com> > wrote: > > > For designing a cleaner mechanism to propose to CABForum, I think > > reasonable starting point would be to model it like the ACME key- > > change endpoint. However, signing JOSE messages with Tor key is > > not cryptographically kosher (just like singing CSRs with it is > > not kosher). However, again there should be no problems in practice > > (Tor itself never signs with this key, only derives other keys from > > it). > > > I think the odds of a change in the Forum are low here. I’ll readily admit, > I am intentionally rather hostile to JOSE / COSE being introduced into the > CABF, because of the consistent and persistent security failures these > formats lead to. > > That said, given the rather significant improvements to the cryptographic > constructions of v3, I’m also quite keen for any establishment protocol in > the CSR that can suitably demonstrate a POP within the CSR. It needs to be > robust to cross-protocol reuse, but I suspect that is now substantially > easier given the v3 construction. I suspect that would also make it easier > for ACME, but perhaps I’m overlooking why even a simplified form is > challenging?
It turns out that signing messages with Tor key does not have harmful cryptographic interactions with the way Tor uses that key (due to EdDSA also hashing the key when signing). The main issue with the present CSR method is complexity. The applicant nonce does nothing useful (as due to ordering of the main EdDSA hash, R already strenghens it). The description of format is too hard to understand (an example would go long way to resolving the latter issue). There are simpler constrctions that would do the POP. For example (TLS syntax): struct { opaque public_key[32]; opaque nonce<22..255>; } PopInner; Sign PopInner structure using TLS 1.3 signature format with context string "ACME, tor-rendv3-pop". Base64url-encode the 64-byte signature and send it in ready for challenge request. CA can verify this by reconstructing the PoPInner from the known key nonce and verifying the given signature with the key. However, this does not do approval of ACME key (neither does the present CSR method). I think the reason of approving old key with new key in performing the key rollover is to prevent replaying new keys. Replay here is prevented by the CA nonce. And I think I found an issue in draft-shoemaker-acme-onion: It requires only 64 bits of entropy for CA nonce, while BRs require 112, and base ACME spec requires 128. Fix would be to change the first "64 bits of entropy" in section 4 to "128 bits of entropy". This is presumably due to confusing the two nonces, as applicant nonce can indeed be 64-bit. -Ilari _______________________________________________ Acme mailing list Acme@ietf.org https://www.ietf.org/mailman/listinfo/acme