5 ms·
S2n Is Now Handling 100 Percent of SSL Traffic for Amazon S3
- geerlingguy 10y agoI'm surprised there are no comments yet... I haven't heard of S2n until reading this post, but it sounds like it could potentially replace OpenSSL usage?
- ronnier 10y agoHere's the 2 year old thread about S2n https://news.ycombinator.com/item?id=9804349 https://news.ycombinator.com/item?id=9804349
- ppoint 10y agoI think it's relying on libcrypto from openssl, at least that was the case when it came out. E.g. it implements TLS/SSL protocols only, no crypto. Not sure if that's changed and they implemented crypto as well.
- frutiger 10y agoFrom a brief perusal of the source code[0], it still does. It makes this claim on the `README.md` seem rather disingenuous: > One of the key benefits to s2n is far less code surface, with approximately 6,000 lines of code (compared to OpenSSL’s approximately 500,000 lines). 0: https://github.com/awslabs/s2n/blob/master/crypto/s2n_dhe.h#L18 https://github.com/awslabs/s2n/blob/master/crypto/s2n_dhe.h#...
- tyingq 10y agognutls is also available.
- deleted 10y ago[deleted]
- luhn 10y agoOne thing they don't mention is that it's built against libcrypto. They make it seem like this replaces OpenSSL, but it really only replaces half of it (libssl). Still an exciting project, especially since the API looks dirt simple to use, but it doesn't live up to the awe I felt when I, at first glance, thought they had given a big middle finger and left OpenSSL behind entirely.
- cperciva 10y agoIt only replaced half of OpenSSL, but it replaces the half which has been responsible for almost all of the worst vulnerabilities.
- jlouis 10y agoErlang has the `ssl` application which is built on top of `crypto`. The latter uses OpenSSLs libcrypto, but ssl is written in Erlang. Historically, whenever there is an OpenSSL vulnerability, it doesn't affect the ssl application, and so Erlang isn't vulnerable. In short, corroboration.
- zvrba 10y agoNot the whole half either it seems. They use openssl for ASN.1 / certificate parsing too (opensl/x509.h) here: https://github.com/awslabs/s2n/blob/b9e3636db98e4ba765fb21932c94d1bd3358620f/crypto/s2n_rsa.c https://github.com/awslabs/s2n/blob/b9e3636db98e4ba765fb2193...
- StreamBright 10y agoI don't think that you have to replace everything, but only: - what you actually use - what is broken I think s2n does exactly that.
- kev009 10y agoIt's two orders of magnitude less code, but I would be hesitant to say it's more than a linear decrease in vulnerability. Rust (or OCaml in the past) seem like a match made in heaven for solving Heartbleed and Cloudbleed type of problems.
- nickpsecurity 10y agoIt's been done: https://github.com/mirleft/ocaml-tls https://github.com/mirleft/ocaml-tls https://usenix15.nqsb.io/ https://usenix15.nqsb.io/
- rst 10y agoIt certainly is possible to write Rust code that references uninitialized memory, and thus serves up whatever was left there on last use. This is one way to get "...bleed" type problems, in which malformed requests trigger responses that sample some stuff lying around on the heap. http://www.tedunangst.com/flak/post/heartbleed-in-rust http://www.tedunangst.com/flak/post/heartbleed-in-rust
- rkeene2 10y agoIs there a FIPS 140-2 validated version of "s2n" somewhere ? I couldn't find anything close to it on the FIPS 140-2 validated products list. If not, how does Amazon get away with using S3 as part of GovCloud, which purports itself to be NIST SP 800-53 compliant, one requirement of which is NIST SP 800-53 Control SC-13 ( https://web.nvd.nist.gov/view/800-53/Rev4/control?controlName=SC-13 https://web.nvd.nist.gov/view/800-53/Rev4/control?controlNam... ), which says, while it does not mandate cryptography, if you do use cryptography to satisfy any of the other controls the cryptography must be certified to the appropriate level (classified data must use NSA-approved cryptography, digital signatures must use FIPS-validated cryptography). This is a base control for NIST SP 800-53, which is a requirement for FedRAMP.
- StreamBright 10y agoIt appears to me that only the specification of the encryption algo has to be FIPS 140-2 approved. There is a list with approved functions and techniques. FIPS PUB 140-2 Annexes: Annex A: Approved Security Functions (Draft 04-08-2016) Annex B: Approved Protection Profiles (Draft 11-18-2015) Annex C: Approved Random Number Generators (Draft 01-04-2016) Annex D: Approved Key Establishment Techniques (Draft 10-08-2014)
- rkeene2 10y agoNIST SP 800-53 SC-13 is pretty clear that it must not just be an approved function, but also FIPS validated cryptography, which is done under FIPS 140-2 and the validated products are listed here: http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-all.htm http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-...
- Twirrim 10y agoI've heard compliance people joke often enough that it's perfectly possible to get a piece of rock FIPS certified. (not that the standards are bad, necessarily, just the thrust of the policies are such that rocks would pass by sheer virtue of not enabling bad actions)
- apendleton 10y ago
- Robin_Message 10y ago> identifying memory leaks through fuzz testing. Do you think that was in the original draft of the release?