Szerző: Gálffy Csaba

2015. július 01. 11:03:00

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.

Machine learning és Scrum alapozó képzések indulnak! (x) A HWSW októberben induló gyakorlatorientált, 10 alkalmas, 30 órás online képzéseire most early bird kedvezménnyel lehet regisztrálni!

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.

a címlapról