| Vývojář | The OpenSSL Project |
|---|---|
| Aktuální verze | 3.6.1 (27. ledna 2026) |
| Operační systém | multiplatformní |
| Vyvíjeno v | C,jazyk symbolických adres aPerl |
| Typ softwaru | bezpečnostní knihovna |
| Licence | Apache-like unique |
| Web | https://www.openssl.org |
| Některá data mohou pocházet zdatové položky. | |
OpenSSL je vinformaticeopen source implementace protokolůSSL aTLS. Poskytuje knihovny napsané vjazyce C, které zahrnují základníkryptografické funkce. OpenSSL knihovny lze pomocí speciálních „wrapperů“ (mezivrstva pro přizpůsobení) využívat v různýchprogramovacích jazycích.
OpenSSL je k dispozici prounixové operační systémy (Solaris,Linux,Mac OS X a operační systémyBSD),OpenVMS aMicrosoft Windows.IBM poskytuje port pro System i (iSeries/AS400). OpenSSL je založeno naSSLeay, které bylo vyvinuto Erikem A. Youngem a Timem Hudsonem, jehož vývoj byl oficiálně ukončen v prosinci 1998, když oba vývojáři přestoupili do projektuRSA Security.
OpenSSL podporuje mnoho různýchkryptografickýchalgoritmů.
OpenSSL se stal prvnímopen source softwarem, u kterého bylo ověřeno, že splňuje standardFIPS 140-2, který vydala organizace NIST (National Institute of Standards and Technology's Cryptographic Module Validation Program). Certifikát byl udělen v lednu roku 2006 a následně byl odebrán v červenci téhož roku. Později došlo ještě ke změnám certifikátu v důsledku nejasností kolem použití modulů a jejich interakce s okolním softwarem, avšak certifikát byl ponechán.[1]
OpenSSL je vydáván pod „duální licenci“ (OpenSSL License aSSLeay license). Dvojílicence znamená, žeuživatel má možnost si vybrat, podle které licence se bude řídit, avšak dokumentace OpenSSL knihoven tento pojem užívá ve smyslu platnosti obou licencí.
Při úpravě OpenSSL knihoven proDebian vznikl vážný bezpečnostní problém, který byl odhalen v květnu 2008.[2] Problém postihl všechny distribuce založené na Debianu, tj. takédistribuceUbuntu,Kubuntu a další. Zmíněná chyba se týkala generováníšifrovacích klíčů, kde byla radikálně omezenáentropiegenerátoru náhodných čísel, takže byly generovány lehce předvídatelné klíče.
Problém vznikl snahou o zlepšení možnostíladění programů, které OpenSSL knihovny využívají.[3] Byla odstraněna část kódu, která generovala chybová hlášení při použití nástrojeValgrind kvůli použití neinicializovanépaměti. Neinicializovaná paměť neslouží v OpenSSL ke generování entropie, avšak odstraněním dvou řádků kódu[4] bylo vyřazeno získání entropie ze zdroje/dev/urandom, takže generátor náhodných čísel vycházel pouze z čísla procesu (což je velmi málo).[5] Změna byla schválena vývojáři OpenSSL,[6] avšak pouze pro ladění.[7]
Knihovny OpenSSL tak generovaly pouze 215 různých šifrovacích klíčů pro každou architekturu (např. i386) místo 2128 klíčů, což znamenalo velice silné omezení. K dispozici jsou nástroje,[8] které toto omezení dokáží využít. Bezpečnostní problém již vývojáři Debianu opravili, to ale zcela neřeší celý problém. Všechny klíče, které byly vygenerovány knihovnami nebo nástroji 'openssl', 'ssh-keygen' a 'openvpn --keygen' je nutné vygenerovat znovu, což se týká i poskytovatelů klíčů proOpenID.[9] Seznam zasažených programů je možné najít nawiki Debianu[10] (nástroje používajícíGnuPG aGnuTLS nejsou zasaženy).[3]
Dne 7. dubna 2014 byla zveřejněna závažná chyba v implementaci rozšíření „Heartbeat“[11] protokoluTLS, která postihovala všechny verze OpenSSL 1.0.1 abetaverzi OpenSSL 1.0.2-beta; současně s oznámením byly vydány opravené verze 1.0.1g a 1.0.2-beta2.[12] Chyba v OpenSSL existovala od 31. prosince 2011 a zranitelné verze se od vydání OpenSSL 1.0.1 v březnu 2012 používaly na velkém množství serverů.[13] Chyba využívá rozšíření protokolu TLS/DTLS, zvanéheartbeat (RFC6520) – doslova „tlukot srdce“, které zjišťuje, zda protistrana „žije“; kvůli tomu byla chyba označena ironickou přezdívkou „Heartbleed“ (doslova „krvácení srdce“).[14]
Díky chybě mohl útočník každým dotazem získat až 64 KB aplikační paměti serveru. V takto přečtené paměti se potenciálně mohou nacházet bezpečnostně citlivá data jakosoukromý klíč serveru, jehož získání by útočníkům umožnilo seza server vydávat, případně dešifrovat dříve zachycenou komunikaci (pokud server nepoužíval šifry sdopřednou bezpečností), případně fragmenty uživatelských dat, dřívějších požadavků a odpovědí včetně hesel a bezpečnostníchcookie, díky čemu by útočník mohl převzít přístup nad uživatelskými účty. Odhaduje se, že v okamžiku zveřejnění bylo útokem potenciálně ohroženo asi půl milionu serverů.[15]
V tomto článku byl použitpřeklad textu z článkuOpenSSL na anglické Wikipedii.