OpenSSL

(přesměrováno z Ssleay)

OpenSSL je v informatice open source implementace protokolů SSL a TLS. Poskytuje knihovny napsané v jazyce 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ých programovacích jazycích.

OpenSSL
Logo
VývojářThe OpenSSL Project
Aktuální verze3.4.0 (22. října 2024)
Operační systémmultiplatformní
Vyvíjeno vC, jazyk symbolických adres a Perl
Typ softwarubezpečnostní knihovna
LicenceApache-like unique
Webhttps://www.openssl.org
Některá data mohou pocházet z datové položky.

OpenSSL je k dispozici pro unixové operační systémy (Solaris, Linux, Mac OS X a operační systémy BSD), OpenVMS a Microsoft Windows. IBM poskytuje port pro System i (iSeries/AS400). OpenSSL je založeno na SSLeay, 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 projektu RSA Security.

Algoritmy

editovat

OpenSSL podporuje mnoho různých kryptografických algoritmů.

Šifry
Blowfish, Camellia, DES, RC2, RC4, RC5, IDEA, AES
Kryptografická hashovací funkce
MD5, MD2, SHA, MDC-2
Asymetrická kryptografie
RSA, DSA, Diffie-Hellman, Elliptic curve

Soulad s FIPS 140-2

editovat

OpenSSL se stal prvním open source softwarem, u kterého bylo ověřeno, že splňuje standard FIPS 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]

Licence knihoven

editovat

OpenSSL je vydáván pod „duální licenci“ (OpenSSL License a SSLeay license). Dvojí licence znamená, že už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í.

Známé bezpečnostní chyby

editovat

Implementační chyba u Debianu

editovat

Při úpravě OpenSSL knihoven pro Debian 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é distribuce Ubuntu, Kubuntu a další. Zmíněná chyba se týkala generování šifrovacích klíčů, kde byla radikálně omezená entropie generá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ástroje Valgrind 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íčů pro OpenID.[9] Seznam zasažených programů je možné najít na wiki Debianu[10] (nástroje používající GnuPG a GnuTLS nejsou zasaženy).[3]

Heartbleed

editovat

Dne 7. dubna 2014 byla zveřejněna závažná chyba v implementaci rozšíření „Heartbeat“[11] protokolu TLS, která postihovala všechny verze OpenSSL 1.0.1 a betaverzi 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 jako soukromý klíč serveru, jehož získání by útočníkům umožnilo se za server vydávat, případně dešifrovat dříve zachycenou komunikaci (pokud server nepoužíval šifry s dopř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ích cookie, 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]

Vydané verze

editovat
  • OpenSSL 3.0.0 vydáno 7. září 2021
  • OpenSSL 1.1.1 vydáno 11. září 2018
  • OpenSSL 1.1.0 vydáno 25. srpna 2016
  • OpenSSL 1.0.2 vydáno 22. ledna 2015
  • OpenSSL 1.0.1 vydáno 14. března 2012
  • OpenSSL 1.0.0 vydáno 29. března 2010
  • OpenSSL 0.9.8 vydáno 5. července 2005
  • OpenSSL 0.9.7 vydáno 31. prosince 2002
  • OpenSSL 0.9.6 vydáno 25. září 2000
  • OpenSSL 0.9.5 vydáno 28. února 2000
  • OpenSSL 0.9.4 vydáno 9. srpna 1999
  • OpenSSL 0.9.3 vydáno 25. května 1999
  • OpenSSL 0.9.2 vydáno 22. března 1999
  • OpenSSL 0.9.1 vydáno 23. prosince 1998

Reference

editovat
  1. NIST recertifies open source encryption module. www.gcn.com [online]. [cit. 2009-02-03]. Dostupné v archivu pořízeném dne 2007-10-10. 
  2. Linux.com: Security Alert: Debian OpenSSL flaw affects many systems, May 15, 2008; retrieved 6/8/2008. www.linux.com [online]. [cit. 2009-02-03]. Dostupné v archivu pořízeném dne 2008-12-05. 
  3. a b SSLKeys – Debian Wiki
  4. Debian SVN diff[nedostupný zdroj]
  5. Security Now Episode #146, Steve Gibson, Gibson Research Corporation. MP3 audio retrieved 6/1/2008
  6. 'Re: Random number generator, uninitialised data and valgrind.' – MARC
  7. Debian, OpenSSL, and a lack of cooperation
  8. MetaSploit. www.metasploit.com [online]. [cit. 2009-02-03]. Dostupné v archivu pořízeném dne 2009-01-24. 
  9. IdentityBlog Crypto Flaw + Bad Practices = need for governance
  10. SSLkeys – Debian wiki
  11. RFC 6520 (Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension)
  12. OpenSSL Security Advisory (07 Apr 2014). www.openssl.org [online]. [cit. 2014-04-10]. Dostupné v archivu pořízeném z originálu dne 2014-04-08. 
  13. Dan Goodin: Critical crypto bug in OpenSSL opens two-thirds of the Web to eavesdropping, Ars Technica
  14. The Heartbleed Bug. heartbleed.com [online]. [cit. 2014-04-10]. Dostupné v archivu pořízeném z originálu dne 2014-04-07. 
  15. Mutton, Paul: Half a million widely trusted websites vulnerable to Heartbleed bug. Netcraft Ltd

Související články

editovat

Externí odkazy

editovat

V tomto článku byl použit překlad textu z článku OpenSSL na anglické Wikipedii.