Skip to main content
15 events
when toggle format what by license comment
Nov 25, 2019 at 13:44 comment added Squeamish Ossifrage @Woodstock Bandwidth and computational effort may well be a concern in ‘enterprise’ applications where things are done at scale. What's important is whether there is a meaningful security boundary between the old and new state. For example, if you've just transitioned to a new device, then sure, it may be worthwhile to do a fresh DH key agreement in case the old device is lost and the key erasure didn't work as well as you'd hoped. But on every message? A priori there's no compelling reason there.
Nov 25, 2019 at 9:33 comment added Woodstock @SqueamishOssifrage, so the context is an enterprise, private app, where band width and computational effort are not concern but P2P privacy is. So in this context doesn't Ephem/Ephem ECDH per message provide the highest level of security?
Nov 24, 2019 at 23:04 comment added Squeamish Ossifrage @Woodstock Which systems did you have in mind concerning DH per message? There's, say, DNSCurve, but that uses static/static DH and caches the shared secrets to save the cost of recomputing them. There's Signal, but that only does DH infrequently; instead it does a KDF ratchet per message.
Nov 24, 2019 at 23:03 comment added Squeamish Ossifrage @Woodstock Suppose you generate the DH secrets from the same PRNG in memory. It's a little hard to imagine that an adversary could find the old DH secret—you must have failed to erase it and the adversary must have a memory disclosure attack—but not the old PRNG state or the new DH secret or the new PRNG state. If there is a compelling security boundary making this scenario plausible, then perhaps injecting fresh key material with a new DH key agreement would thwart such an adversary, but it's not a threat model that's usually worth worrying about.
Nov 24, 2019 at 20:47 comment added Woodstock @SqueamishOssifrage I agree but when ratcheting the symmetric key, if a prior key is broken, one can break future keys. With Ephem/Ephem ECDH, the keys are unrelated. I take your point regarding forward secrecy. I am correct in my understanding that in some systems ECDH is performed on a per message sent basis?
Nov 24, 2019 at 16:27 comment added Squeamish Ossifrage @Woodstock I recommend avoiding the term ‘(perfect) forward secrecy’ because it's confusing and the loaded word ‘perfect’ doesn't add anything. Instead, I recommend saying when keys can be erased. In this case, ratcheting the key with a KDF after every message lets you erase the old key after every message. So does doing a fresh DH key agreement, but the ratchet is a lot cheaper.
Nov 24, 2019 at 9:59 comment added Woodstock @SqueamishOssifrage pls do let me know if Im missing something here, I thought multiple ephem/ephem ECDH exchanges were the fundamental approach used to achieve PFS?
Nov 24, 2019 at 9:30 comment added Woodstock @Squeamish Ossifrage, you execute another DH so that each message can be encrypted with a new symmetric key. So that if any private key is compromised you only reveal the a single message not the entire history.
Nov 24, 2019 at 9:20 comment added The Quantum Physicist Just to be clear, I'm already using ECDHE to get the first key, A. So I personally find it an overkill to do another ECDHE just for the authentication, especially that I'm in an application where storage size matters. However, I appreciate the idea that I can do that. It really didn't occur to me :-)
Nov 24, 2019 at 8:10 comment added fgrieu As a theoretic point: there is a loss of entropy in the key hashing, of about 0.827 bit, see this.
Nov 23, 2019 at 22:05 comment added Squeamish Ossifrage Why would you want to pay the cost of another DH public-key operation for every message after you've already established an ephemeral shared secret?
Nov 23, 2019 at 20:49 comment added Woodstock @Quantum yup. You got it. It’s a fresh pub/priv pair every message/whatever. The cost is distribution of the public keys. But it provides Perfect Forward Secrecy. (Each message is discretely protected).
Nov 23, 2019 at 20:01 vote accept The Quantum Physicist
Nov 23, 2019 at 20:01 comment added The Quantum Physicist Let me try to guess what "ephemeral-ephemeral" means. Besides my original key pair A, which I ECDH'ed with the other party's key pair B to create our symmetric key, I do another ECDHE to create a new symmetric key between a new public/private key pair C and B? If my guess is right, the cost of this is that I'll have to share the new public key as well. That's the only drawback I'm seeing.
Nov 23, 2019 at 19:22 history answered Woodstock CC BY-SA 4.0