====== 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]]