Software:s2n

From HandWiki
Revision as of 07:05, 9 February 2024 by JTerm (talk | contribs) (correction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Open-source implementation of TLS

s2n
AWS s2n logo.png
Original author(s)Colm MacCárthaigh
Developer(s)Amazon Web Services
Written inC99
Operating systemCross-platform
TypeSecurity library
LicenseApache License 2.0
Websitegithub.com/aws/s2n-tls

s2n is an open-source C99 implementation of the Transport Layer Security (TLS) protocol developed by Amazon Web Services (AWS) and released in 2015. It was developed to ensure the code—about 6,000 lines long—would be easier to review than that of OpenSSL—with 500,000 lines, 70,000 of which are involved in processing TLS.[1][2]

History

s2n was released on June 30, 2015 on GitHub. AWS said that the name "s2n" stand for signal to noise as a nod "to the almost magical act of encryption—disguising meaningful signals, like your critical data, as seemingly random noise".[1] It has been the subject of several external reviews as well as penetration testing.[3]

It was reportedly vulnerable to Lucky Thirteen attack. In response, Amazon's s2n team said it would remove CBC-mode cipher suites and take code from BoringSSL to replace its own CBC-mode decryption.[4] An AWS Security Blog Post said that it did not impact Amazon, AWS, or its customers because they had never been used in a production environment.[5]

In February 2017, Amazon announced that s2n was now handling 100% of SSL traffic for Amazon S3.[6]

Features

TLS extensions

Common TLS extensions supported by this software are Server Name Indication, Application-Layer Protocol Negotiation, and Online Certificate Status Protocol.

Cryptography

s2n supports the main ciphers in use today, such as AES in CBC and GCM modes, 3DES and RC4. It also provides support for perfect forward secrecy through Diffie–Hellman or Elliptic-curve Diffie–Hellman ephemeral keys.

Weaker ciphers and key exchange modes are disabled by default.[3]

Language bindings

The language bindings below were not developed by AWS:[7]

See also

References