4 ms·
Can someone explain this section some more >Considering that we need a distinct key for each individual, that exchanging keys with each person would be a signi
by kss238 9y ago
Can someone explain this section some more
>Considering that we need a distinct key for each individual, that exchanging keys with each person would be a significant computational burden, and that there are more cryptographic functions needed than simply exchanging keys, new methods arose.
Isn't this exactly what RSA does, exchanging a private symmetric key with asymmetric crypto? The next paragraph makes it seem like RSA does something different.
- goodroot 9y agoMost excellent question, kss238. The next part in the series, which breaks apart the different parts of a TLS ciphersuite, was just published: http://fly.io/articles/how-ciphersuites-work/ http://fly.io/articles/how-ciphersuites-work/ It should answer your question, in similar spirits to that of this article. Thank you for reading and I wish you well.
- bogomipz 9y agoWhat is the rest of the context of the Golang code snippet in that that link?
- matahwoosh 9y agoIt's most likely to be Fly-specific, but you could replicate this behavior with passing appropriate to tls.Config#GetCertificate (https://golang.org/pkg/crypto/tls/#Config https://golang.org/pkg/crypto/tls/#Config). You could then have something like that : GetCertificate: func(helloInfo *tls.ClientHelloInfo) (*tls.Certificate, error) { return myGetCertificateImplementation(checkClientSupportForECDSA(helloInfo)) } You would see what curves/ciphersuites are supported by the client and check that against what you'd be supporting (if you use LE than that's more than likely going to be ECDSA with P-256). You would then return ECDSA cert (if one exist) for supporting clients and fallback to RSA certs. :boom: :D
- bogomipz 9y agoThanks, cheers.
- matahwoosh 9y agoyou can also use RSA for actual encryption (like PGP) or for signing/verifying. ECDHE is better for key exchange, and ECDSA is better for signing/verifying. Check out goodroot's link!
- blattimwind 9y agoRSA encryption has been shown time and time again to be a really bad idea, to the point that it was removed from TLS 1.3 early on.
- matahwoosh 9y agowhat encryption are you talking about? IIRC, RSA has only been used for key exchange or authentication (sign/verify) in SSL/TLS. Even in the old days up to SSL 3.0, RC4 or (3)DES was used for actual (symmetrical) encryption.
- tptacek 9y agoRSA is a bad idea in key exchanges as well.
- matahwoosh 9y agotptacek: I think this sub-thread has been mainly to explain what RSA could be used for, not that it would be a good idea. On the side note, I have been positively surprised to see how many devices support ECDHE key exchange. Also, do you have a good resource that explains the drawbacks of RSA key exchange in more details?
- wolf550e 9y agohttps://en.wikipedia.org/wiki/Forward_secrecy https://en.wikipedia.org/wiki/Forward_secrecy
- matahwoosh 9y ago