it-swarm-eu.dev

Pochopení 2048bitového SSL a 256bitového šifrování

Na stránce DigiCert inzerují 2048bitový SSL s 256bitovým šifrováním: http://www.digicert.com/256-bit-ssl-certificates.htm

Jaký je zde přesně rozdíl a proč jsou odkazovány dva šifrovací bity?

Zde je snímek reklamy:

Na prémiové reklamě SSL společnosti Geotrust ji inzerují jako:

Security: domain control validation, strong 256-bit encryption, 2048-bit root

Jaký je tedy rozdíl mezi 256bitovým šifrováním a 2048 bitovým rootem?

Doufám, že to objasní otázku.

63
JohnJ

2048-bit je o páru klíčů RSA: RSA klíče jsou matematické objekty, které obsahují velké celé číslo, a "2048-bitový klíč" je klíč takový, že velké celé číslo je větší než 22047, ale menší než 22048.

256 bitů je o SSL. V SSL se serverový klíč používá pouze k přenosu náhodného 256bitového klíče (, který nemá matematickou strukturu, je to jen banda bity); zhruba řečeno, klient vygeneruje náhodný 256bitový klíč, zašifruje jej veřejným klíčem RSA serveru (ten, který je v certifikátu serveru a je „klíčem 2048 bitů“), a odešle výsledek serveru. Server používá svůj soukromý klíč RSA k obrácení operace, a tak získá 256bitový klíč vybraný klientem. Poté klient a server používají 256bitové symetrické kontroly šifrování a integrity a RSA se pro toto připojení dále nepoužívá.

Viz tato odpověď pro další podrobnosti. Toto nastavení se často nazývá „hybridní šifrování“. To se děje proto, že RSA není vhodné pro hromadné šifrování, ale symetrické šifrování nemůže provádět počáteční veřejné/soukromé podnikání, které je potřebné k tomu, aby se věci začaly.

(SSL může provádět výměnu klíčů s jinými algoritmy než RSA, takže jsem ve výše uvedeném textu trochu zjednodušil popis, ale to je hlavní myšlenka.)

69
Thomas Pornin

Chcete-li přidat trochu více podrobností, 2048bitový klíč RSA se nazývá asymetrická kryptografie. Používá se pro ověření identity (podepisování) a zajištění toho, aby k zaslaným informacím (šifrování) měl přístup pouze zamýšlený příjemce. Skládá se ze dvou částí, veřejného klíče a soukromého klíče. Klíče jsou ve skutečnosti vzájemně propojeny, ale protože jsou spojeny dvěma velmi velkými pseudo-prvočísly (prvočísla ve vztahu k sobě navzájem), je velmi obtížné zjistit soukromý klíč od veřejnosti.

Vzhledem k tomu, že algoritmus je založen na něčem, co je opravdu těžké zjistit (ale je řešitelné), je méně bezpečné než symetrický algoritmus založený na sdíleném tajemství, které není matematicky řešitelné a nespoléhá se na složitost matematického problému pro bezpečnost (více o tom později). Proto je klíč tolik větší než symetrický protějšek (což je pouze 256 bitů). Aby bylo řešení rovnice obtížné vyřešit, vyžaduje mnohem větší klíč a také čím více informací, které jsou přenášeny asymetrickým klíčem, tím je pravděpodobnější, že bude narušena (také šifrování/dešifrování je intenzivnější procesoru).

Z tohoto důvodu SSL používá RSA pouze pro fáze ověření a výměny klíčů. Místo toho je vygenerován symetrický klíč (v tomto případě 256 bitů, pokud je podporován prohlížečem na klientovi) a přenesen zpět na server pomocí šifrování RSA a zbytek dat je vyměněn prostřednictvím sdíleného klíče a symetrického algoritmu.

K tomu dochází, když klient nejprve dekóduje odpověď na výzvu, kterou server zašifruje svým soukromým klíčem, pak se klient může podívat na veřejný klíč serveru (který je podepsán známým kořenovým klíčem, který CA (v tomto případě DigiCert) ) obsahuje většinu prohlížečů). Když se dekódovaná odpověď shoduje s výzvou, klient ví, že server odpověděl na požadavek (i když může existovat prostředník, který ji předává). Klient poté vygeneruje 256bitový symetrický klíč, zašifruje jej veřejným klíčem serveru a odešle jej na server. Protože je klíč šifrován veřejným klíčem serveru, může jej dešifrovat pouze server (který zná soukromý klíč). To znamená, že žádný prostředník v předchozím kroku nemůže znát nový sdílený klíč. Klient nyní může důvěřovat, že jakékoli informace zaslané prostřednictvím sdíleného klíče pocházejí pouze z zamýšleného serveru.

15
AJ Henderson

Stačí přidat některé podrobnosti k existujícím odpovědím ...

moje otázka zní, jak by klient věděl, že vygeneruje náhodný 256bitový klíč? (Proč ne 128?).

Závisí to na dohodnuté sadě šifry. Seznam těch definovaných jako součást TLS 1.1 je v RFC 4346 Příloha A.5 . Například TLS_RSA_WITH_AES_128_CBC_SHA použije 128bitový klíč, zatímco TLS_DHE_RSA_WITH_AES_256_CBC_SHA použije 256bitový klíč.

Která sada šifrů je sjednána, bude záviset na konfiguraci klienta a serveru, nikoli na certifikátu nainstalovaném na serveru. Když klient zahájí připojení pomocí Client Hello zpráva, vyšle seznam šifrových sad, které podporuje. Server poté vybere ten, který chce, a říká to ve svém Server Hello zpráva.

Tato sada šifry pak určuje, jak jsou tyto symetrické klíče nakonec sdíleny. Okamžitým účelem handshake SSL/TLS je vytvoření sdíleného tajemství před masterem mezi klientem a serverem. Toto se obecně označuje jako výměna klíčů (viz RFC 4346 dodatek F.1.1) .

To spadá do dvou kategorií (s výjimkou anonymní výměny klíčů):

  • Výměna klíčů RSA (např. TLS_RSA_WITH_AES_128_CBC_SHA): klient šifruje pre-master tajemství pomocí veřejného klíče serveru (nachází se v certifikátu).
  • Výměna klíčů DH (E) (např. TLS_DHE_RSA_WITH_AES_256_CBC_SHA): probíhá výměna klíčů Diffie-Hellman. Server podepíše své DH parametry a klient ověří podpis proti veřejnému klíči v certifikátu serveru. (Mít certifikát založený na RSA neznamená výměnu klíčů RSA.)

Na konci handshake, bez ohledu na to, který z těchto dvou kroků byl použit, mají klient a server společné předstránkové tajemství od které odvozují hlavní tajemství (viz RFC 4346, část 8.1 ).

Z toho hlavní tajemství mohou obě strany odvodit šifrovací klíče (a tajemství MAC), jak je popsáno v RFC 4346, část 6. .

Kromě typu klíče (RSA nebo DSS) v tom není nic, co by velikost šifrovacího klíče záviselo na certifikátu. Navíc oba typy mají sady šifry, které používají 256bitové klíče: například TLS_DHE_DSS_WITH_AES_256_CBC_SHA a TLS_DHE_RSA_WITH_AES_256_CBC_SHA. (DSS je algoritmus pouze pro podpis, takže byste neměli získat výměnu klíčů podobnou RSA, která by šifrovala tajemství předchůdce.)

Velikost klíče v certifikátu je důležitá pouze proto, aby se zabránilo padělání výměny klíčů (nebo aby bylo možné dešifrovat zaznamenaný provoz zpět): pokud by někdo mohl najít soukromý klíč z veřejného klíče v certifikátu, mohl by jednat jako MITM k zosobnění skutečného serveru nebo by byli schopni dešifrovat zašifrované předstránkové tajemství (a tedy zaznamenaný provoz) při použití klíče RSA (DHE šifrovací sady jsou přesně navrženy tak, aby se zabránilo přístupu k předstránkovému tajemství) , i když útočník chytí soukromý klíč a zaznamenaný provoz, viz tato otázka ). To je důvod, proč jsou důležité velké asymetrické klíčové záležitosti.

Certifikační úřady obvykle vkládají na své webové stránky „256 bitů“, protože to vypadá dobře z marketingového hlediska.

Není to špatné, ale to může být zavádějící pro lidi, kteří nechápou, že je to způsob, jakým je váš server nastaven a co vaši klienti podporují, na čem záleží.

9
Bruno