it-swarm-eu.dev

Co to znamená pro „digitální podpis“ digitálního certifikátu?

Když někdo řekne, že určitý digitální certifikát (například certifikát SSL) byl „podepsán klíčem“, co z toho vyplývá? Znamená to, že certifikát jednoduše obsahuje klíč, který by měl být použit pro další výměnu zpráv? Znamená to, že samotný cert je šifrován a lze jej dešifrovat pouze pomocí tohoto klíče? Znamená to něco jiného? Díky předem.

25
zharvey

V ideálním případě to znamená, že se někdo podíval na certifikát a rozhodl se, že je správný a legitimní. Jakmile to udělají, chtějí lidem říci: „Hej, ověřil jsem, že tento certifikát je dobrý. Já důvěřuji tomu“. K podpisu certifikátu používají svůj podpisový klíč.

Nyní, když někdo dostane certifikát, může vidět, kdo certifikát podepsal. Pokud důvěřují jednomu z signatářů, mohou důvěřovat samotnému certifikátu. Toto je základ Web Of Trust v PKI .

Skutečné podepisování pravděpodobně závisí na tom, jaký druh certifikátu to je. Myslím, že to je užitečné čtení .

Digitální certifikát se skládá ze tří věcí:

  • Veřejný klíč.
  • Informace o certifikátu. („Identita“ informace o uživateli, jako je jméno, ID uživatele atd.)
  • Jeden nebo více digitálních podpisů.

Část „jeden z více digitálních podpisů“ se obvykle provádí vypsáním sady šifrovaných hashů certifikátu. Pokud tedy chcete certifikát podepsat, vypočítali byste hash certifikátu, zašifrujte jej pomocí soukromého podpisového klíče a přidejte jej do seznamu digitálních podpisů.

23
Oleksi

Zde je struktura X.509 certifikát :

    Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

   TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        extensions      [3]  EXPLICIT Extensions OPTIONAL
                             -- If present, version MUST be v3
        }

Data obsažená v samotném certifikátu jsou částí TBSCertificate: váže veřejný klíč (subjectPublicKeyInfo) na identifikátor (předmět) a různé další atributy rozšíření).

Toto je pak kombinováno s podpisem pro vytvoření struktury Certificate. Algoritmus podpisu určuje, jak by se to mělo dělat.

V podstatě je vypočítán soubor TBSCertificate (obvykle SHA-1) a poté podepsán soukromým klíčem signatáře (emitenta v podmínkách X.509). Nejmenší modifikace obsahu TBSCertificate by měla provést změnu digestu, což by pak mělo zneplatnit podpis.

Při použití klíčů RSA je podepsání souhrnu pomocí soukromého klíče matematicky velmi podobné tomu, co by se dělo pro šifrování pomocí veřejného klíče. To však z koncepčního hlediska není stejné a DSA například nemá tuto reciprocitu.

Princip je stejný pro ostatní typy certifikátů, i když struktura se může lišit. Vzhledem k tomu, že veřejné klíče PGP jsou ve skutečnosti certifikáty, možná vás budou zajímat i tyto otázky:

9
Bruno

Když někdo řekne, že určitý digitální certifikát (například certifikát SSL) byl „podepsán klíčem“, co z toho vyplývá?

To znamená, že entita, která vlastní tento klíč, ručila za přesnost informací v certifikátu a připojila k certifikátu informace, které umožňují ověření vouchingu.

Znamená to, že certifikát jednoduše obsahuje klíč, který by měl být použit pro další výměnu zpráv?

Ne. Osvědčení prokazují pouze totožnost.

Znamená to, že samotný cert je šifrován a lze jej dešifrovat pouze pomocí tohoto klíče?

Ne. Není důvod zašifrovat certifikáty, obsahují pouze veřejné informace.

Znamená to něco jiného?

To znamená, že vlastník tohoto klíče zaručil informace v certifikátu. U typického certifikátu SSL jsou informace v certifikátu vazbou mezi veřejným klíčem a běžným názvem.

Například když namíříte prohlížeč na https://www.Amazon.com/ Server Amazonu vám pošle certifikát. Tento certifikát váže konkrétní veřejný klíč ke jménu www.Amazon.com. Váš prohlížeč potvrdí tři věci, aby věděl, že mluví se skutečným Amazonem:

  1. Server předložil certifikát, který byl platný a podepsaný klíčem, kterému důvěřuje.

  2. Certifikát váže identitu „www.Amazon.com“.

  3. Server prokáže, že vlastní soukromý klíč odpovídající certifikátu.

Účelem podpisu certifikátu je proto, aby důvěryhodnost podpisujícího agenta byla za informacemi v certifikátu, který je v zásadě „tento chlap vlastní tento klíč“.

6
David Schwartz