# 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)