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
| Vlastnost | Symetrická | Asymetrická |
|---|---|---|
| Počet klíčů | 1 (sdílený) | 2 (veřejný + soukromý) |
| Distribuce klíčů | Problematická | Snadná (veřejný klíč) |
| Rychlost | Rychlá | Pomalá |
| Použití | Velké objemy dat | Malá 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:
- Vytvoření hashe dokumentu
- Zašifrování hashe soukromým klíčem = podpis
- Příjemce dešifruje podpis veřejným klíčem
- 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):
- Klient se připojí k serveru
- Server pošle svůj certifikát
- Klient ověří certifikát (podpis CA, platnost, doména)
- Výměna klíčů pro symetrické šifrování
- Š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-keygenpro 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