====== Test na certifikáty ====== //Varianta pro letní semestr 2021/22// ===== Příklad zadání on-line testu na certifikáty ===== Test se bude skládat ze tří otázek: - stáhnout PDF soubor a zjistit údaje o podpisu, - stáhnout certifikát (soubor .pem) a zjistit údaje z certifikátu, - zjistit informace z certifikátu serveru Na test je 18 minut. ==== 1. Certifikát v PDF souboru - příklad ==== Stáhněte si soubor [[https://bis.vse.cz/t6/01.pdf|https://bis.vse.cz/t6/01.pdf]] , což je podepsaný PDF soubor. Ve vhodném PDF prohlížeči zjistěte z certifikátu podpisu: * Komu je vydán certifikát (atribut cn z předmětu/subject) * E-mailová adresa v certifikátu (pokud v certifikátu není, vložte řetězec **//není//**) * Typ podpisu z pohledu eIDAS Pro typ podpisu dle eIDAS jsou následující možnosti k výběru: * **kvalifikovaný podpis** - kvalifikovaný certifikát vytvořený pomocí kvalifikovaného prostředku přiřazený fyzické osobě, * **uznávaný podpis** - kvalifikovaný certifikát vytvořený mimo kvalifikovaný prostředek přiřazený fyzické osobě, * **zaručený podpis** - osobní certifikát, který je podepsán jinou než kvalifikovanou certifikační autoritou, * **kvalifikovaná pečeť** - kvalifikovaný certifikát vytvořený pomocí kvalifikovaného prostředku nepřiřazený fyzické osobě, ale právnické osobě (službě/firmě), * **uznávaná pečeť** - kvalifikovaný certifikát vytvořený mimo kvalifikovaný prostředek nepřiřazený fyzické osobě, ale právnické osobě (službě/firmě), * **jiná pečeť** - certifikát nepřiřazený fyzické osobě, ale právnické osobě (službě/firmě), který je podepsán jinou než kvalifikovanou certifikační autoritou, E-mailová adresa by měla být uložena v X509v3 Subject Alternative Name a začínat řetězcem email:. Acrobat Reader ji zobrazuje pod označením E-mail RFC822. ==== 2. Údaje z certifikátu (soubor .pem) ==== Stáhněte si certifikát [[https://bis.vse.cz/t6/01.pem]] a zjistěte následující údaje: * Je certifikát podepsaný sám sebou (selfsigned)?\\ //ano/ne// * Jaký je algoritmus a délka veřejného klíče?\\ //RSA1024/RSA2048/RSA3072/RSA4096/RSA8192/ECC256/ECC384/ECC521// * Může být použit pro podepisování jiných certifikátů?\\ //ano/ne// * Která hašovací funkce byla použita v digitálním podpisu certifikátu?\\ //SHA1/SHA256/SHA384/SHA521// Jak zobrazit certifikát? Více variant: * Windows - stáhněte soubor, změňte koncovku z .pem na .crt a po double-click se Vám otevře v //Crypto Shell Extension//, * Linux, macOS - stáhněte soubor, v terminálu spusťte\\ ''openssl x509 -in soubor.pem -text'' * soubor zkopírujte na bis.vse.cz a zde zobrazte pomocí ''openssl x509 -in soubor.pem -text'' * on-line dekodér - doporučuji [[https://redkestrel.co.uk/products/decoder/]] ==== 3. Certifikát z https serveru ==== Pro certifikát serveru [[https://bis.vse.cz]] zjistěte následující: * Počet alternativních DNS jmen * Algoritmus a délka veřejného klíče\\ //RSA1024/RSA2048/RSA3072/RSA4096/RSA8192/ECC256/ECC384/ECC521// * Typ validace (certifikační zásady)\\ //domain_validation/organization_validation/extended_validation// Typ validace je uveden ve výpisech v části politik, jsou [[https://cabforum.org/object-registry/|definovány následující konstanty]]: * **2.23.140.1.1** - extended validation * **2.23.140.1.2.1** - domain validated * **2.23.140.1.2.2** - organization validated * **2.23.140.1.2.3** - individual-validated * **2.23.140.1.3** - extended validation for code signing Certifikáty webů lze obvykle zobrazit v prohlížeči. Bohužel Microsoft Edge a asi ani Chrome nezobrazují délku klíče pro ECC. Navíc některé antivirové programy jsou agresivnější a podvrhávají svůj certifikát (cíl - analyzovat šifrovaný provoz). Možná řešení: * používat Firefox (nemusí pomoci v případě některých antivirových programů, otestujte si doma), * přihlásit se na **bisxxx.vse.cz** (nelze bis.vse.cz, nemá přístup na internet) a zde si zobrazit certifikát pomocí //openssl//\\ ''openssl s_client -connect bis.vse.cz:443 < /dev/null | openssl x509 -text''\\ Jsou to dva příkazy, které si předávají údaje přes rouru. U serveru se musí uvést číslo portu. V prvním příkazu je i přesměrování vstupu (klávesnice) - načítá se z ''/dev/null'', tj. ihned se vloží konec vstupu. * příkaz openssl lze použít i na macOS, * vyhledat a zobrazit si certifikát v [[https://certificate.transparency.dev/howctworks/|CT]] na [[https://crt.sh]], někdy může být uvedeno více certifikátů, * přes testy TLS, zde je vhodný [[https://www.ssllabs.com/ssltest/]], testování trvá delší dobu (minuty), ===== Příklad testu na učebně ===== Pro certifikáty na stránce http://bis.vse.cz/certifikaty/var1 odpovězte na následující otázky: ^Otázka ^ Cert1.pem ^ Cert2.pem ^ Cert3.pem ^ Cert4.pem ^ |Je to self-signed certifikát? | ano/ne | ano/ne | ano/ne | ano/ne | |Umožňuje tento certifikát podepisování jiných certifikátů? | ano/ne | ano/ne | ano/ne | ano/ne | |Lze certifikát použít pro podepisování elektronické pošty? | ano/ne | ano/ne | ano/ne | ano/ne | |Obsahuje certifikát pouze kryptografické algoritmy\\ schválené dle doporučení NÚKIB? | ano/ne | ano/ne | ano/ne | ano/ne | |Je v certifikátu použit algoritmus SHA-1? | ano/ne | ano/ne | ano/ne | ano/ne | |Je to kvalifikovaný certifikát pro elektronický podpis? | ano/ne | ano/ne | ano/ne | ano/ne | Další skupiny certifikátů k ověření znalostí: * https://bis.vse.cz/certifikaty/var2 * https://bis.vse.cz/certifikaty/var3 * https://bis.vse.cz/certifikaty/var4 ===== Nápověda k otázkám ===== **Je to self-signed certifikát?** Pojem **self-signed certifikát** označuje certifikát, který je podepsán sám sebou. Pozná se dle toho, že otisk klíče vydavatele (**X509v3 Authority Key Identifier**) a otisk podepisovaného klíče (**X509v3 Subject Key Identifier**) jsou stejné. Stejnou hodnotu mají i vydavatel (**Issuer**) a předmět (**Subject**). Self-signed certifikát je výchozí nastavení při instalaci webových serverů i dalších aplikací používajících TLS. Certifikáty kořenových certifikačních autorit jsou též self-signed. **Umožňuje certifikát podepisování jiných certifikátů ?** Pokud v certifikátu není podepisování zakázáno, tak s ním můžete podepisovat jiné certifikáty. Podepisování lze zakázat v následujících položkách (položky z X3 rozšíření). Tyto položky (aspoň jedna z nich) musí být označeny jako kritické (Critical), jinak je to pouze doporučení a nemusí se tím vlastník certifikátu řídit. * Základní omezení (**Basic Constraints**) - zákaz je vyznačen pomocí **CA:FALSE**, ve Firefoxu se zobrazí „Není certifikační autoritou“ * Použití certifikátu (**Key Usage**) – pro podepisování musí být povoleno „Podepisování certifikátu“ (**Key Certificate Sign**) **Lze certifikát použít pro podepisování pošty?** Pro podepisování pošty musí být v certifikátu **e-mailová adresa** - buď v předmětu (Subject) nebo v rozšíření (alternativní jméno popř. položka email-address). Dále musí být správně nastaveno použití klíče: pro podepisování pošty je potřeba mít v certifikátu nastaveno užití Digital Signature (Podpisování). Pokud existuje v certifikátu položky **Extended Key Usage** (Rozšířené použití klíče), tak musí obsahovat položku **emailProtection** (OID tohoto rozšířeného použití je 1.3.6.1.5.5.7.3.4) nebo položku **anyExtendedKeyUsage** (OID 2.5.29.37.0) – viz [[https://tools.ietf.org/html/rfc5750 | RFC 5750]]. Pro šifrování pošty (není to součást otázky) musí být v Key Usage povoleno zakódování klíče (Key Encipherment). **ENISA = European Union Agency for Network and Information Security** Dokument [[https://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-size-and-parameters-report-2014 | Algorithms, key size and parameters report 2014 ]] S ním souvisí i dokument popisující kryptografické protokoly [[https://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/study-on-cryptographic-protocols | Study on cryptographic protocols]], pro test ho nemusíte studovat, ale doporučuji se do něho podívat (viz zkoušková otázka na kryptografické protokoly). POZOR - musí být splněn i požadavek na délku klíče, **Je v certifikátu použit algoritmus SHA1?** * [[http://www.root.cz/zpravicky/google-bude-prohlasovat-certifikaty-s-sha-1-za-nebezpecne/ | Google bude prohlašovat certifikáty s SHA-1 za nebezpečné]] * [[https://konklone.com/post/why-google-is-hurrying-the-web-to-kill-sha-1 | Why Google is Hurrying the Web to Kill SHA-1 ]] * [[http://googleonlinesecurity.blogspot.cz/2014/09/gradually-sunsetting-sha-1.html | Gradually sunsetting SHA-1]] * [[https://community.qualys.com/blogs/securitylabs/2014/09/09/sha1-deprecation-what-you-need-to-know | SHA1 Deprecation: What You Need to Know]] Odmítání SHA-1 se netýká certifikátů kořenových CA, neboť u nich se ověřuje platnost/důvěryhodnost bez kontroly digitálního podpisu. POZOR - některé aplikace (Firefox) dynamicky generují SHA-1 otisky z certifikátu. Tento otisk ale není uložen v certifikátu. **Je to kvalifikovaný certifikát pro elektronický podpis (ano/ne)?** Dříve se vydávali kvalifikované certifikáty dle zákona č. 227/2000 Sb., nyní se vydávají kvalifikované certifikáty dle evropského nařízení EU č. 910/2104 (existuje přechodné období, kdy platí i starší). Kvalifikovaný certifikát musí obsahovat položku (rozšíření) **Certificate Policies**, která bude odkazovat na soulad se zákonem č. 227/2000 Sb či na soulad s nařízením EU č. 910/2014 (tyto jsou/budou platné v rámci celé EU). Kvalifikované certifikáty může vydávat pouze akreditovaná certifikační autorita – schváleny jsou tři: PostSignum (Česká pošta), První certifikační autorita a.s. (I.CA) a firma eIdentity a.s. Rozlišují se ''kvalifikované certifikáty pro elektronické podpisy'' (určené pro osoby) a ''kvalifikované pečetě'' pro deklaraci původu dokumentu ve firmě. U obou mohou být privátní klíče uloženy v souboru či v bezpečném prostředku (privátní klíč nesmí opustit čipovou kartu či USB token). Informace o typu a způsobu uložení privátního klíče je vyznačena v certifikátu - atribut QCStatements a v popisu politiky. Zmatky vnášejí ''kvalifikované systémové certifikáty'' dle zákona 227/2000 Sb. pro "firemní" podpisy (např. podatelna s adresou posta@firma.cz), které se mohou používat do 18. září 2018. Měl by být označen jako "Kvalifikovaný systémový certifikát", ale ne vždy tomu tak je. Přesně ho lze odlišit pomocí politiky. **//V testu tyto certifikáty označte za kvalifikované//**. Informace o souladu se zákonem či nařízením EU je též ''v certifikátech kvalifikovaných certifikačních autorit''. Nejsou to kvalifikované certifikáty pro elektronický podpis. Prostudujte si úvod do eIDAS v článku [[https://blog.sslmarket.cz/ssl/co-prinasi-narizeni-eidas-a-jak-se-dotyka-ssl-certifikatu/ | Co přináší nařízení eIDAS a jak se dotýká SSL certifikátů?]] a článek popisující aktuální stav kvalifikovaných certifikátů: [[http://www.earchiv.cz/b17/b0105001.php3 | První půlrok nařízení eIDAS: přichází elektronické pečeti]]