it-swarm-eu.dev

Jak jsou Chrome a Firefox ověřují SSL certifikáty?

Jak Chrome a Firefox ověřují certifikáty SSL? Požadují data z webu certifikace SSL, například GeoTrust, k ověření certifikátu obdrženého z webového serveru?

26
user1397542

Prohlížeče a/nebo operační systémy mají tendenci přicházet s předdefinovaným seznamem certifikátů CA používaných jako důvěryhodní kotvy ke kontrole certifikátů serverů, ke kterým se připojují. Všechny jsou přizpůsobitelné (s výjimkou certifikátů EV, pro které jsou kořenové certifikáty pevně zakódovány do prohlížeče, i když je můžete zakázat ... vyjma chyb).

Firefox používá svůj vlastní seznam na všech platformách.

Internet Explorer a Chrome používají úložiště certifikátů operačního systému v systému Windows. Výchozí nastavení je k dispozici prostřednictvím programu Microsoft Root Certificate .

Apple má také svůj program .

Důvěryhodnost certifikátu a priori neznámého serveru se provádí vytvořením certifikační cesty mezi tímto certifikátem a jedním z důvěryhodných kotev prohlížeče. To se provádí podle definice v RFC 3280/RFC 5280.

Kromě toho lze zrušit certifikát také prostřednictvím CRL nebo OCSP.

Není tedy možné zachytit komunikaci mezi prohlížečem a certifikační autoritou za účelem padělání platného certifikátu, protože certifikát je pravděpodobně již v mezipaměti prohlížeče?

Abych znovu zopakoval bod, který jsem uvedl jako komentář k Wugovým odpovědím: repozitář ukotvení důvěry není cache cache . Mezipaměť je dynamický zástupný symbol, jehož cílem je uchovávat k dispozici to, co jste nedávno získali, na základě předpokladu, že je budete brzy potřebovat znovu. Naproti tomu váš seznam důvěryhodných certifikátů nesmí být nikdy automaticky aktualizován na základě toho, co právě procházíte. (Mohlo by to být aktualizováno automatickými aktualizacemi zabezpečení, ale to je jiný problém.)

Certifikát serveru bude získán pokaždé, když bude vytvořena nová relace SSL/TLS a prohlížeč ji musí vždy ověřit. Není to v mezipaměti. (Mohli byste mít nějaké ukládání do mezipaměti OCSP, ale to by mělo zlepšit výkon a ponecháno pouze na krátkou dobu. Toto je pouze pro ověření stavu odvolání v okamžiku přístupu.)

Kontaktování CA je pouze pro zrušení certifikátu. Jinak nebudete kontaktovat CA. Certifikáty CA (vaše důvěryhodné kotvy) jsou dané „skokem víry“, které pro vás spojuje váš operační systém/prohlížeč (které si můžete explicitně vybrat, ale je opraveno, pokud jde o dané připojení). V nejlepším případě můžete zabránit kontrole odvolání certifikátu (což může způsobit selhání ověření prohlížeče v závislosti na jeho nastavení).

16
Bruno

Webový server pošle klientovi celý řetěz certifikátů na vyžádání. Prohlížeč (nebo jiný ověřovatel) pak může zkontrolovat nejvyšší certifikát v řetězci pomocí místně uložených certifikátů CA.

Většina operačních systémů uchovává mezipaměť autoritativních certifikátů, ke kterým mají prohlížeče přístup pro tyto účely, jinak prohlížeč bude někde mít vlastní sadu.

Certifikát může být podepsán jiným certifikátem, který tvoří „řetěz důvěry“ obvykle končící autoritativním certifikátem s vlastním podpisem, který poskytuje entita, jako je GeoTrust, Verisign, Godaddy atd.

To by byla lepší otázka pro stránky zabezpečení SE.

Google chrome, konkrétně nejsem 100% jistý, že používá mezipaměť OS, ale můžete přidat autoritativní certifikát pomocí klíče -> Nastavení -> Zobrazit pokročilá nastavení -> HTTPS/SSL -> Spravovat certifikáty -> Důvěryhodné kořenové certifikační autority a přidejte tam autoritativní CA certifikát.

3
Wug

Jak vysvětlil Wug, k ověření dochází od certifikátu serveru k nejvyššímu certifikátu v řetězci. Prohlížeč se podívá na vlastnosti certifikátu a provede základní ověření, například zajistí, aby se adresa URL shodovala s Issued to, pole Issued By pole obsahuje důvěryhodnou certifikační autoritu, datum vypršení platnosti vypadá dobře v Valid From pole atd.

Každý certifikát navíc obsahuje adresy URL, které odkazují na seznamy zrušených certifikátů (CRL Distribution Points) se klient pokusí stáhnout seznam z takové adresy URL a ujistit se, že certifikát nebyl zrušen.

Odpověď na vaši otázk

Vyžadují data z webu SSL Certification, jako je GeoTrust, k ověření certifikátu obdrženého z webového serveru?

Ano, prohlížeč provede základní ověření a poté kontaktuje autorizační server CA (prostřednictvím bodů CRL), aby se ujistil, že certifikát je stále dobrý.

3
Ulises

Tady je moje převzetí certifikátu. Za předpokladu, že webový certifikát má správné jméno, prohlížeč se pokusí najít certifikační úřad, který podepsal certifikát webového serveru, aby získal veřejný klíč podpisu. Podpisující certifikační úřad může být součástí řetězce CA.

Veřejným klíčem je možné dešifrovat podpis na certifikátu webové stránky (zajišťuje se tak, že by jej mohl podepsat pouze CA, pokud by nebyl ohrožen jejich soukromý klíč), čímž se odhalí hash certifikátu webového serveru. Prohlížeč také vypočítá hash certifikátu webového serveru a pokud se oba hashové shody shodují, prokazuje to, že certifikační autorita certifikát podepsala.

Pokud veřejný klíč podpisu nelze najít nebo se hash neodpovídá, je certifikát neplatný.

Problém s tímto systémem je v tom, že certifikační autority nejsou zcela spolehlivé.

1
Bill Laing

Všimněte si, že Google Chrome přestal používat seznamy CRL kolem 7. února 2012, aby zkontroloval, zda byl certifikát platný. Zdá se, že všechny platné certifikáty sestavují do prohlížeče a instalují novou sadu pokaždé, když prohlížeč je aktualizován. Viz URL: https://threatpost.com/en_us/blogs/google-stop-using-online-crl-checks-chrome-020712 .

0
Andrew Stern