it-swarm-eu.dev

Jaký je rozdíl mezi „klientským certifikátem“ X.509 a běžným certifikátem SSL?

Zřídím webovou službu, jejímž prostřednictvím bude moje společnost hovořit s řadou služeb pro firemní zákazníky. Budeme si vyměňovat informace pomocí SOAP. Chtěl bych zpracovat ověřování pomocí certifikátů SSL poskytovaných oběma stranami, ale trochu jsem ztracen v tom, zda existuje zásadní rozdíl mezi typy certifikátů.

Když lidé mluví o HTTPS, mluví o získání certifikátu SSL od společnosti Verisign nebo jiné autority. Když mluví o autentizaci na straně klienta, mluví o získání certifikátu X.509. Jsou tato dvě slova stejná, může se jedno proměnit v druhé, nebo je nějaký jiný rozdíl, který nechápu?

97

Certifikát X509 je typ veřejného klíče v páru veřejného a soukromého klíče. Tyto páry klíčů lze použít pro různé věci, jako je šifrování pomocí SSL nebo pro identifikaci. SSL certifikáty jsou typem certifikátu X509. SSL funguje tak, že šifruje přenos i ověřuje stranu (Verisign věří, že tento web je tím, kdo říká, že je, proto byste pravděpodobně také mohli). Verisign funguje jako certifikační autorita (CA). CA je důvěryhodná v to, že všechno, co říká, by mělo být považováno za pravdu (Spuštění CA vyžaduje hlavní bezpečnostní aspekty). Pokud vám tedy CA dá certifikát, který říká, že věří, že jste skutečně vy, máte uživatelský certifikát/klientský certifikát.

Některé z těchto typů certifikátů lze použít plošně, jiné lze použít pouze pro určité činnosti.

Pokud otevřete certifikát v systému Windows (přejděte na něco přes SSL v IE a podívejte se na vlastnosti certifikátu) nebo spusťte certmgr.msc a zobrazte certifikát, podívejte se na kartu Podrobnosti> Použití klíče. To bude určovat, k čemu je certifikát povolen/použit.

Pro SOAP lze certifikát použít pro dvě věci: identifikaci a šifrování. No, tři, pokud zahrnete podpisy zpráv (hashování zpráv).

Klientské certifikáty identifikují volajícího klienta nebo uživatele. Když aplikace provede požadavek SOAP), předá certifikát webové službě a sdělí mu, kdo žádost podává.

65
Steve

V TLS je server povinen mít soukromý klíč a certifikát (někdy známý jako server cert). Certifikát serveru identifikuje a ověřuje server. Klient může mít volitelně také svůj vlastní soukromý klíč a certifikát (obvykle nazývaný klientský certifikát). Pokud je použit klientský certifikát, identifikuje a autentizuje klienta.

Na webu s HTTPS má server obvykle certifikát serveru, ale klientské certifikáty se nepoužívají. To znamená, že klient může ověřit, ke kterému serveru mluví, ale server nemůže ověřit, ke kterému klientovi se připojuje.

V mnoha programových kontextech však budete obvykle chtít, aby se oba koncové body navzájem autentizovaly. Proto budete chtít používat serverové i klientské certifikáty.

V TLS jsou všechny certifikáty X.509 certifikáty. X.509 je pouze formát dat.

Certifikáty zahrnují veřejný klíč a podpis od certifikační autority (CA). Na webu mají obvykle webové servery certifikát serveru, který je vydán (podepsán) ​​společností Verisign nebo jinou známou certifikační autoritou. Webové prohlížeče přicházejí se seznamem téměř 100 různých CA, předinstalované a nejpoužívanější weby mají serverový certifikát, který vydává jeden z těchto CA. Verisign je například jedním z CA v každém standardním seznamu CA v každém prohlížeči. Společnost Verisign vám naúčtuje peníze, pokud chcete, aby vám vydali certifikát.

Alternativou k získání certifikátu podepsaného standardním CA je to, že můžete použít self-signed cert: cert, který nevydává žádný ze standardních CA, ale sám (nebo kdokoli, koho chcete). To se na webu příliš nepoužívá, protože serverové certifikáty s vlastním podpisem způsobují prohlížečům vyskakovací varovná dialogová okna pro uživatele, kterým se většina webových stránek snaží vyhnout. Pro programové použití však mohou samopodepsané certs fungovat dobře. A pokud používáte self-signed certs, nemusíte platit Verisign peníze. Zde najdete návody, jak pomocí nástrojů příkazového řádku OpenSSL vytvořit vlastní podepsané certs.

SSL je synonymem pro TLS. (Technicky je SSL jméno, které bylo použito u několika starších verzí standardu, a TLS je nové jméno pro několik novějších verzí standardů. Mnoho lidí však tyto dva pojmy používá zaměnitelně.)

Doporučuji, abyste si přečetli článek Wikipedie o certifikátu veřejného klíče pro další užitečné informace.

36
D.W.

"Normální" SSL certs typicky are X. 509 certs.
Lze je však použít pouze pro autentizaci a šifrování serveru: Jedním z atributů certs je určený účel a obvykle je nemůžete použít pro jiný účel.
Kromě toho je však klientský certifikát do značné míry totožný se serverovým certifikátem, jen označeným jako „Ověření klienta“.

Funkčně často zjistíte, že některé systémy se rozhodnou akceptovat pouze podmnožinu klientských certifikátů, např. ty vydané jejich vlastní CA.

15
AviD

Funkčně jsou stejné - veřejný klíč RSA a identifikační informace podepsané úřadem. V praxi jsou klíče serveru obvykle nastaveny se společným názvem, které identifikuje danou doménu (například * .wikimedia.org). Věřím, že vám nic nebrání v používání certifikátu, včetně vlastního vygenerování, pokud odpovídá požadavkům na ověření druhé strany.

4
Jeff Ferland