# BSI Wykład Urząd Certyfikujący # dzisiaj i za tydzień Warto doczytać / przypomnieć sobie: 1. SSL inspection 2. Protokół PGP 1. wykład - w normalnych godzinach w formie zdalnej (jeśli ktoś nie może uczestniczyć - nagranie na platformie) 2. Laby - też zdalnie, wszyscy razem Czwartek 10:15 Grupy ze śr i czw 10:15 Przygotować wirtualne maszyny! (Systemy gotowe do pobrania z platformy) 3. 24.03 - 8:30 wykład - 10:15 laboratorium 4. Najbliższy czwartek - 19.03 10:15 - Pan Doktor wyśle wszystko i będzie odrabiał laby do 13:30 # wykład ## Bezpieczny sposób na przekazanie #? Nasza fantazja. *"Czemu tajne przekazanie hasła jest ważne?"* - żeby przeciwnik nie mógł podmienić obu: - hasła - hasha na swoje. ## Urząd certyfikujący 1. Musi weryfikować co podpisuje (*jak notariusz*) 2. Certyfikat - podpisany klucz publiczny *Darmowy przykład - Let's Encrypt, ale zaufanie darmowym rozwiązaniom jest ryzykowne* *Doczytać - czemu SemanTec wypadło z rynku?* ### Zaufanie *"ufaj, ale kontroluj"* #### Trzy warunki zaufania: 1. Na systemie jest zainstalowany certyfikat Urzędu 2. Nie minął termin ważności certyfikatu (od - do) 3. Certyfikat nie znajduje się na liście CRL (unieważnionych certyfikatów) O sposobach weryfikacji decyduje programista. W windows: Start -> run -> mmc -> CTRL + N -> Certyfikaty Zaufane główne urzędy certyfikacji Skąd na moim systemie certyfikaty? Producent oprogramowania / systemu operacyjnego zapewnia aktualizacje certyfikatów. Wyjątek: np Mozilla, która używa własnym certyfikatom. Dlaczego? Wiadomo dlaczego :) ### Procedura wystawiania certyfikatów 1. Generujemy klucz prywatny i CSR (_**C**ertificate **S**igning **R**equest_) 2. Urząd Certyfikujący: 1. generuje parę kluczy: publiczny i prywatny 2. generuje hash klucza publicznego 3. szyfruje hash kluczem prywatnym 4. udostępnia klucz publiczny do odszyfrowania hasha (tym samym tworząc podpis elektroniczny) Urząd podpisuje tym samym kluczem wszystkie wystawiane przez siebie poświadczenia. (logiczne) ### Budowa i zawartość certyfikatu X.509 *trzeba doczytać*\ *tbs* certificate https://crypto.stackexchange.com/questions/42345/what-are-the-information-signed-by-a-certification-authority - version - serial number - signature - issuer - validity - subject - subjectPublicKeyInfo - issuerUniqueID - extensions\ `subjectPublicKeyInfo` zawiera zaszyfrowany klucz publiczny Lista rozszerzeń: ``` 4.2. Certificate Extensions ....................................26 4.2.1. Standard Extensions ................................27 4.2.1.1. Authority Key Identifier ..................27 4.2.1.2. Subject Key Identifier ....................28 4.2.1.3. Key Usage .................................29 4.2.1.4. Certificate Policies ......................32 4.2.1.5. Policy Mappings ...........................35 4.2.1.6. Subject Alternative Name ..................35 4.2.1.7. Issuer Alternative Name ...................38 4.2.1.8. Subject Directory Attributes ..............39 4.2.1.9. Basic Constraints .........................39 4.2.1.10. Name Constraints .........................40 4.2.1.11. Policy Constraints .......................43 4.2.1.12. Extended Key Usage .......................44 4.2.1.13. CRL Distribution Points ..................45 4.2.1.14. Inhibit anyPolicy ........................48 4.2.1.15. Freshest CRL (a.k.a. Delta CRL Distribution Point) ......................48 4.2.2. Private Internet Extensions ........................49 4.2.2.1. Authority Information Access ..............49 4.2.2.2. Subject Information Access ``` Z tego najważniejsze dla nas: - Key usage - Enganced Key Usage **WAŻNE:** Certyfikat to *nie* jest tylko klucz publiczny. ### Jak certyfikaty są przechowywane? Zajęcia w czwartek. Dwa linuxy w trybie zmostkowanym (do ściągnięcia z platformy)