Pehelysúlyú SSL-implementációt készített az Amazon
Könnyen portolható, rendkívül kis kódbázissal dolgozó SSL/TLS implementációt mutatott be az Amazon. Az S2N a tervek szerint az AWS felhős infrastruktúráján váltja ki az OpenSSL-t (legalábbis belső kommunikációra).
Vadonatúj, pehelysúlyú SSL/TLS implementációt mutatott be az Amazon. Az S2N fantasztikusan kis kódbázissal valósítja meg a titkosítási protokollt, emiatt a készítők szerint könnyebben fenntartható, mind az alternatívák (például OpenSSL). Az S2N szabad szoftver, amely kimondottan az OpenSSL egyik fő könyvtárának, a libssl-nek kiváltására készítettek az Amazon fejlesztői.
Limitált képességek, kis kódbázissal
Az S2N az OpenSSL-problémára született válasz. A de facto szabványnak számító OpenSSL mintegy 500 ezer kódsort tartalmaz, ebből 70 ezer felel a TLS szabvány feldolgozásáért. Ez a méret azonban szinte kezelhetetlen, ami már az implementáció biztonságára is negatív hatással van. Ugyan hagyományosan a szabad szoftver előnyei közé szokás sorolni, hogy több szem többet lát alapon a nyílt forráskódot böngészve a sok fejlesztő könnyebben kiszúrja a hibákat, sok százezer soros kódnál ez az előny a gyakorlatban egyáltalán nem realizálódik - ahogy azt a Heartbleed oly látványosan meg is mutatta.
A problémát alaposan átgondolva az Amazon most az alapoktól új SSL/TLS implementációt készített, amely mindössze 6000 soros kódbázissal valósítja meg a szabványt. Az S2N a protokoll alapjait támogatja, a ritkán használt opcionális képességeket és kiterjesztéseket nem, többek között így lehet lényegesen karcsúbb a teljességre törekvő OpenSSL-nél. Az Amazon szerint a vékony implementáció eddig beváltotta a hozzá fűzött reményeket, a belső code review is gyorsan halad, illetve már három külső biztonsági cég is át tudta nézni az S2N kódját és penetrációtesztelésnek is alávetették.
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
A TLS protokollt az Amazon felhős platformja, az AWS már széles körben használja, és a cég ígérete szerint fokozatosan egyre több helyen az S2N lesz felelős ennek működtetéséért. Mivel a platformon használt TLS képességeket az S2N teljes mértékben támogatja, az üzemeltetők és fejlesztők részéről semmilyen változásra nem kell számítani. A szoftver SSLv3, TLS 1.0, TLS 1.1 és TLS 1.2 protokollokat támogat, titkosításra pedig 128 és 256 bites AES (CBC és GCM módban), valamint 3DES és RC4 használható. Biztonsági megfontolásból alapértelmezésben a gyengének számító szabványok, az SSLv3, RC4 és DHE nem érhetőek el, ezeket manuálisan kell bekapcsolni.
Az S2N (amelynek neve a jel-zaj arányra utal) fejlesztésénél szempont volt a hordozhatóság is, így a C99-ben íródott pehelysúlyú szoftver rengeteg platformon képes működni. Eléréséhez egy saját API-t kínál, amely a széles körben használt POSIX I/O API-t használó fejlesztőknek már ismerős lesz. A megoldás támogatja a blokkoló és nem blokkoló mód mellett a full-duplex és aszinkron I/O-t.
Ahogy említettük, az implementáció egészében szabad szoftver, a forráskód és a dokumentáció is elérhető a projekt GitHub-oldalán. Az Amazon által használt licenc Apache 2.0, a fejlesztők a külső hozzájárulásokat is nagyon szívesen veszik.