|
Wedge Rumor Crusher před pár dny zveřejnil "Ohrožuje přístup k internetu s veřejnou WiFi bezpečnost bankovních účtů? Článek představuje některé situace při používání HTTPS pro síťový šifrovaný přenos a podle odpovědi stále existují spory. Jak internet získává na popularitě, aplikace se stále více rozšiřuje a některé problémy se síťovou bezpečností budou také přitahovat stále více pozornosti uživatelů internetu, zde si povíme o TLS/SSL, což je to, čemu často říkáme HTTPS, od principu až po samotnou aplikaci, abychom zjistili, co to je a na jaké problémy se zaměřit při používání HTTPS a souvisejících bezpečnostních technik. Kybernetická bezpečnost je komplexní záležitost, která zahrnuje bezpečnost osobních počítačů, protokolů, přenosu dat a softwarových firem a webových stránkách. Doufám, že tím, že budeme postupně vysvětlovat bezpečnostní otázky v budoucnu, více lidí pochopí bezpečnost sítě, aby mohli síť používat bezpečněji. Článek bude dlouhý a plánuje se, že bude prozatím rozdělen do tří částí: První část se hlavně věnuje principu HTTPS; Druhá část se zaměřuje především na proces ověřování SSL certifikátů a některá opatření pro použití. Třetí část představuje některé případy HTTPS útoků. 1. Co je HTTPS?Než budeme mluvit o HTTPS, pojďme si povědět, co je HTTP, což je protokol, který obvykle používáme při prohlížení webu. Data přenášená HTTP protokolem jsou nešifrovaná, tedy v otevřeném textu, takže je velmi nebezpečné přenášet soukromé informace pomocí HTTP protokolu. Aby bylo zajištěno, že tato soukromá data mohou být šifrována a přenášena, navrhl Netscape protokol SSL (Secure Sockets Layer) pro šifrování dat přenášených protokolem HTTP, čímž vznikl HTTPS. Současná verze SSL je 3.0, která je definována v RFC 6101 IETF (Internet Engineering Task Force), a poté IETF aktualizovala SSL 3.0, což vedlo k TLS (Transport Layer Security) 1.0, definované v RFC 2246. Ve skutečnosti je náš současný HTTPS protokol TLS, ale protože SSL se objevilo relativně brzy a stále je podporováno současnými prohlížeči, SSL je stále synonymem pro HTTPS, ale ať už je to TLS nebo SSL je z minulého století, poslední verze SSL je 3.0 a TLS nám bude i nadále poskytovat šifrovací služby i v budoucnu. Současná verze TLS je 1.2, definovaná v RFC 5246, a zatím není široce používána. Pro ty, kteří se zajímají o historii, můžete se podívat na http://en.wikipedia.org/wiki/Transport_Layer_Security, kde je podrobný popis TLS/SSL.
2. Je HTTPS bezpečný?Odpověď je ano, je to bezpečné. V následujících týdnech Google povolí HTTPS pro všechny lokální domény po celém světě, uživatelé se musí před vyhledáváním přihlásit pouze svým Google účtem a všechny vyhledávací operace budou šifrovány pomocí protokolu TLS, viz: http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/。
3. Jak HTTPS fungujeHTTPS vyžaduje handshake mezi klientem (prohlížečem) a serverem (webovou stránkou) před přenosem dat a informace o heslech obou stran budou stanoveny během handshake. Protokol TLS/SSL není jen soubor šifrovaných přenosových protokolů, ale také umělecké dílo pečlivě navržené umělci, využívající asymetrické šifrování, symetrické šifrování a algoritmy HASH. Jednoduchý popis procesu podání ruky je následující:
- Prohlížeč posílá na web sadu šifrovacích pravidel, která podporuje.
- Webová stránka z nich vybere sadu šifrovacích algoritmů a HASH algoritmů a odesílá své identifikační informace zpět prohlížeči ve formě certifikátu. Certifikát obsahuje informace jako adresu webové stránky, veřejný šifrovací klíč a vydavatele certifikátu.
- Po získání certifikátu webu prohlížeč provádí následující:
- Ověřte legitimitu certifikátu (zda je oprávnění vydávající certifikát legitimní, zda je webová adresa obsažená v certifikátu stejná jako adresa navštěvovaná atd.), pokud je certifikát důvěryhodný, zobrazí se malý zámek v liště prohlížeče, jinak se zobrazí upozornění, že certifikát není důvěryhodný.
- Pokud je certifikát důvěryhodný, nebo pokud uživatel přijme nedůvěryhodný certifikát, prohlížeč vygeneruje náhodný počet hesel a zašifruje je veřejným klíčem uvedeným v certifikátu.
- Zpráva při podání ruky se vypočítá pomocí dohodnutého HASHu, zpráva je zašifrována vygenerovaným náhodným číslem a nakonec jsou všechny dříve generované informace odeslány na web.
4. Po obdržení dat z prohlížeče web provede následující: - Použijte vlastní soukromý klíč k dešifrování hesla, použijte heslo k dešifrování zprávy handshake odeslané prohlížečem a ověřte, že HASH je stejný jako ten, který odeslal prohlížeč.
- Zpráva při podání ruky je zašifrována heslem a odeslána do prohlížeče.
5. Prohlížeč dešifruje a vypočítá HASH zprávy handshake, pokud je v souladu s HASH odeslaným serverem, proces handshake končí a všechna komunikační data budou zašifrována náhodným heslem generovaným předchozím prohlížečem pomocí symetrického šifrovacího algoritmu.
Zde si prohlížeč a webová stránka posílají zašifrovanou zprávu handshake a ověřují si, aby se ujistili, že obě strany získaly stejné heslo, mohou data normálně šifrovat a dešifrovat a provádějí test pro následný přenos skutečných dat. Kromě toho jsou šifrovací a HASH algoritmy běžně používané v HTTPS následující: - Algoritmy asymetrického šifrování: RSA, DSA/DSS
- Symetrické šifrovací algoritmy: AES, RC4, 3DES
- HASH algoritmus: MD5, SHA1, SHA256
Mezi nimi je asymetrický šifrovací algoritmus použit k zašifrování generovaného hesla během handshake, symetrický šifrovací algoritmus k zašifrování skutečných přenesených dat a HASH algoritmus k ověření integrity dat. Protože heslo generované prohlížečem je klíčem k šifrování všech dat, je během přenosu šifrováno pomocí asymetrického šifrovacího algoritmu. Algoritmus asymetrického šifrování generuje veřejné i soukromé klíče, veřejné klíče lze použít pouze k šifrování dat, takže je lze přenášet dle libosti, a soukromé klíče webu slouží k dešifrování dat, takže web si velmi pečlivě uchovává soukromý klíč, aby zabránil úniku. Jakákoli chyba během TLS handshake může narušit šifrované spojení a zabránit přenosu soukromých informací. Právě proto, že HTTPS je velmi bezpečný, útočníci nemohou najít místo, kde začít, a proto používají falešné certifikáty k oklamání klientů a získání informací v otevřeném textu, ale tyto metody lze identifikovat, o kterých budu mluvit v dalším článku. V roce 2010 však bezpečnostní experti objevili zranitelnost v ovládání protokolu TLS 1.0: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/ skutečně, tato metoda útoku nazvaná BEAST byla bezpečnostními experty objevena již v roce 2002, ale nebyla zveřejněna. Microsoft a Google tuto zranitelnost opravili. Viz: http://support.microsoft.com/kb/2643584/en-us https://src.chromium.org/viewvc/chrome?view=rev&revision=90643 Zjednodušená verze HTTPS funguje také v symetrickém šifrování vs. asymetrickém šifrování. |