13. Asymetrická kryptografie, podpisy a certifikáty

Co se po vás bude chtít?

Asymetrická kryptografie

  • Princip:

    • Dva matematicky svázané klíče: veřejný a soukromý
    • Co je zašifrováno veřejným klíčem, lze dešifrovat pouze soukromým
    • Co je zašifrováno soukromým klíčem, lze dešifrovat veřejným
  • Veřejný klíč (public key):

    • Může být volně sdílen
    • Používá se pro šifrování zpráv pro majitele klíče
    • Používá se pro ověření digitálního podpisu
  • Soukromý klíč (private key):

    • Musí zůstat tajný
    • Používá se pro dešifrování zpráv
    • Používá se pro vytvoření digitálního podpisu

Rozdíly oproti symetrické kryptografii

VlastnostSymetrickáAsymetrická
Počet klíčů1 (sdílený)2 (veřejný + soukromý)
Distribuce klíčůProblematickáSnadná (veřejný klíč)
RychlostRychláPomalá
PoužitíVelké objemy datMalá data, výměna klíčů
Pro N uživatelůN*(N-1)/2 klíčů2N klíčů

Využití asymetrické kryptografie

  • Šifrování zpráv:

    • Odesílatel šifruje veřejným klíčem příjemce
    • Pouze příjemce může dešifrovat svým soukromým klíčem
  • Výměna symetrických klíčů:

    • Asymetrické šifrování pro bezpečnou výměnu
    • Následně rychlejší symetrické šifrování pro data
    • Hybridní přístup (TLS)
  • Digitální podpisy:

    • Ověření autenticity a integrity
    • Nepopiratelnost autorství
  • Autentizace:

    • SSH klíče pro přihlášení
    • Challenge-response protokoly

Algoritmy asymetrické kryptografie

  • RSA (Rivest-Shamir-Adleman):

    • Nejrozšířenější algoritmus
    • Založen na obtížnosti faktorizace velkých čísel
    • Doporučená délka klíče: min. 2048 bitů (lépe 4096)
    • Použití: šifrování, podpisy, výměna klíčů
  • Diffie-Hellman (DH):

    • Výměna klíčů přes nezabezpečený kanál
    • Založen na problému diskrétního logaritmu
    • Neposkytuje autentizaci (náchylný na MITM bez PKI)
  • ECDH (Elliptic Curve Diffie-Hellman):

    • Diffie-Hellman na eliptických křivkách
    • Kratší klíče při stejné bezpečnosti
  • ECC (Elliptic Curve Cryptography):

    • Kryptografie na eliptických křivkách
    • 256-bit ECC ≈ 3072-bit RSA (bezpečnost)
    • Rychlejší a efektivnější
    • ECDSA - varianta pro digitální podpisy
    • Ed25519 - moderní, rychlý podpisový algoritmus

Digitální podpisy

  • Princip:

    1. Vytvoření hashe dokumentu
    2. Zašifrování hashe soukromým klíčem = podpis
    3. Příjemce dešifruje podpis veřejným klíčem
    4. Porovná hash s vlastním výpočtem hashe dokumentu
  • Vlastnosti digitálního podpisu:

    • Autenticita - potvrzení identity podepsaného
    • Integrita - detekce změn v dokumentu
    • Nepopiratelnost - autor nemůže popřít podpis
  • Formáty digitálních podpisů:

    • Detached signature - podpis jako samostatný soubor
    • Enveloped signature - podpis součástí dokumentu
    • Enveloping signature - dokument součástí podpisu
  • Kde se používají:

    • Podepisování software (code signing)
    • E-mailové podpisy (S/MIME, PGP)
    • Elektronické dokumenty (PDF)
    • Bankovní transakce
    • Blockchain a kryptoměny

PKI (Public Key Infrastructure)

  • Co je PKI:

    • Systém pro správu veřejných klíčů a certifikátů
    • Zajišťuje důvěryhodnost veřejných klíčů
    • Propojení identity s veřejným klíčem
  • Komponenty PKI:

    • CA (Certificate Authority) - vydává certifikáty
    • RA (Registration Authority) - ověřuje identity žadatelů
    • Certifikát - digitálně podepsané propojení identity a klíče
    • CRL (Certificate Revocation List) - seznam zneplatněných certifikátů
    • OCSP - online ověření platnosti certifikátu

Digitální certifikáty

  • Co je certifikát:

    • Elektronický dokument propojující veřejný klíč s identitou
    • Podepsán důvěryhodnou certifikační autoritou (CA)
    • Standard X.509
  • Obsah certifikátu:

    • Veřejný klíč subjektu
    • Informace o subjektu (jméno, organizace, doména)
    • Informace o vydavateli (CA)
    • Doba platnosti (od - do)
    • Sériové číslo
    • Digitální podpis CA
    • Použití klíče (key usage)
  • Typy certifikátů (podle ověření):

    • DV (Domain Validation) - ověření vlastnictví domény
    • OV (Organization Validation) - ověření organizace
    • EV (Extended Validation) - rozšířené ověření (zelený proužek)
  • Řetězec důvěry (Chain of Trust):

    • Root CA - kořenová autorita (self-signed)
    • Intermediate CA - mezilehlá autorita
    • End-entity certifikát - certifikát serveru/uživatele
    • Prohlížeče obsahují seznam důvěryhodných root CA

Certifikační autority

  • Veřejné CA:

    • Let’s Encrypt - bezplatné DV certifikáty
    • DigiCert, Comodo, GlobalSign - komerční
  • Interní/Firemní CA:

    • Pro interní systémy organizace
    • Vlastní root CA

SSL/TLS certifikáty

  • Použití:

    • HTTPS - zabezpečení webů
    • E-mail servery (SMTP, IMAP)
    • VPN
  • Proces ověření (TLS handshake):

    1. Klient se připojí k serveru
    2. Server pošle svůj certifikát
    3. Klient ověří certifikát (podpis CA, platnost, doména)
    4. Výměna klíčů pro symetrické šifrování
    5. Šifrovaná komunikace

Bezpečná správa klíčů

  • Generování klíčů:

    • Použití kryptograficky bezpečných generátorů
    • Dostatečná délka klíče (RSA min. 2048, ECC min. 256)
  • Úložiště klíčů:

    • HSM (Hardware Security Module) - hardwarové úložiště
    • TPM (Trusted Platform Module) - čip v počítači
    • Key management systémy - Vault, AWS KMS
    • Šifrované soubory (s heslem)
  • Ochrana soukromého klíče:

    • Silné heslo (passphrase)
    • Omezená přístupová práva
    • Zálohování na bezpečném místě
    • Nikdy nesdílet!
  • Rotace klíčů:

    • Pravidelná výměna klíčů
    • Postupný přechod (key rollover)
  • Zneplatnění (revocation):

    • CRL - seznamy zneplatněných certifikátů
    • OCSP - online ověření platnosti
    • Nutné při kompromitaci klíče

Praktické nástroje

  • OpenSSL:

    • Generování klíčů a certifikátů
    • Šifrování/dešifrování souborů
    • Vytváření CSR (Certificate Signing Request)
  • GPG/PGP:

    • Šifrování e-mailů a souborů
    • Web of Trust model
  • SSH klíče:

    • Ed25519 (doporučeno) nebo RSA
    • ssh-keygen pro generování
    • Autentizace bez hesla

Připrav se na HAXAGONu

Kryptografie:

  • Enkódování
  • Password cracking 1

HTTP:

  • HTTP - SSL/TLS
  • HTTP - Zabezpečení skladu

Linux - pokročilý:

  • Konfigurace OpenSSH
  • Konfigurace OpenSSH - test

Git:

  • Git - SSH klíče

Nebezpečný internet:

  • Dvoufaktorová autentizace