Protokół SSL i TLS
LICZBA DNI: 4 (32h)
KOD KURSU: TLS
Weź udział w szkoleniu
Termin
Lokalizacja
Cena / os
15
czerwca
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
31
sierpnia
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Termin
15
czerwca
Lokalizacja
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Cena / os
Termin
31
sierpnia
Lokalizacja
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Programiści chcący poznać zagadnienia związane z praktycznym wykorzystania protokołu SSL/TLS do zabezpieczenia komunikacji w systemach informatycznych
WYMAGANIA
Od uczestników wymagana jest znajomość obsługi komputera, pracy z wierszem poleceń oraz znajomość podstawowych zasad programowania i podstaw składni języka Java lub C
ZALETY
Uczestnicy zintegrują protokół SSL/TLS w przykładowych aplikacjach, wykorzystując między innymi karty inteligentne (smart cards) do uwierzytelnienia stron protokołu
W trakcie warsztatów wykorzystane zostaną narzędzia umożliwiających śledzenie, namierzanie i rozwiązywanie problemów w sesjach SSL/TLS
Podczas warsztatów uczestnicy samodzielnie skonfigurują i uruchomią własny ośrodek certyfikacji w oparciu o otwarte oprogramowanie
Uczestnicy przygotują i obsłużą zgłoszenia certyfikacyjne wystawiając certyfikaty o różnym przeznaczeniu
Szkolenie obejmuje różne wersje protokołu, również te, które obecnie nie są bezpieczne, ale muszą być utrzymywane w różnych systemach i zabezpieczane na inne sposoby
W wersji dedykowanej szkolenie może być zrealizowane w oparciu o biblioteki, języki programowania lub platformy wybrane przez uczestników
Cele szkolenia
Uruchomienie bezpiecznej komunikacji wykorzystującej protokół SSL/TLS w różnych konfiguracjach
Integracja protokołu SSL/TLS w aplikacji
Zrozumienie mechanizmów uwierzytelniania stron protokołu SSL/TLS, zarówno bazujących na certyfikatach w infrastrukturze klucza publicznego (public key infrastructure, PKI), jak i bez użycia certyfikatów
Poznanie i użycie w praktyce technik kryptograficznych, które wykorzystywane są w implementacji i konfiguracji protokołu SSL/TLS
Poznanie prawidłowych zasad użycia i łączenia algorytmów szyfrujących, funkcji skrótu, kodów uwierzytelniających wiadomość oraz algorytmów podpisu cyfrowego
Program
Wprowadzenie do ochrony informacji
- Czym jest bezpieczeństwo informacji
- Podstawowe usługi ochrony informacji
- Integralność, uwierzytelnienie, niezaprzeczalność i poufność
- Protokół SSL (Secure Sockets Layer)
- Rodzina protokołów TLS (Transport Layer Security)
- Cele stosowania protokołu SSL/TLS
- Zaufanie i sposoby jego budowania
- Rola zaufanej trzeciej strony (trusted third party, TTP)
- Uwierzytelnienie witryn internetowych i protokół HTTPS
- Rozporządzenie w sprawie identyfikacji elektronicznej i usług zaufania (eIDAS)
- Listy statusu usług zaufania (trust service status list, TSL)
- Normy międzynarodowe i standardy przemysłowe
Algorytmy i protokoły kryptograficzne
- Funkcje skrótu: rodzina MD, rodzina SHA, SHA3
- Algorytmy symetryczne: 3DES, AES
- Krzywe eliptyczne w kryptografii: krzywe NIST, SECG i Brainpool, Curve25519, Curve448
- Algorytmy uzgadniania klucza: DH, ECDH, X25519, X448
- Algorytmy asymetryczne: RSA, ECDSA, EdDSA, Ed25519, Ed448
- Problem autentyczności klucza
- Identyfikacja, uwierzytelnienie i autoryzacja
- Kody uwierzytelniające wiadomość (message authentication code, MAC)
- Tryby uwierzytelnionego szyfrowania (authenticated encryption, AE)
- Tryby uwierzytelnionego szyfrowania z danymi dodatkowymi (authenticated encryption with associated data, AEAD)
- Podstawy notacji ASN.1
- Kodowanie DER (Distinguished Encoding Rules) i PEM (Privacy-Enhanced Mail)
- Zalecenia dotyczące parametrów algorytmów kryptograficznych
Przechowywanie i przekazywanie kluczy kryptograficznych
- Problem bezpiecznego przechowywania kluczy
- Zarządzanie kluczami
- Cykl życia kluczy
- Karty inteligentne (smart cards)
- Sprzętowe moduły bezpieczeństwa (hardware security module, HSM)
- Dostęp do urządzeń kryptograficznych w systemach operacyjnych i przeglądarkach
- Interfejs PKCS #11
- Dostawcy usług kryptograficznych w Java
- Biblioteki CSP
- Repozytoria kluczy: PKCS #12, JKS, JCEKS, BC i BCFKS
Elementy i rola Infrastruktury Klucza Publicznego
- Generowanie kluczy oraz zgłoszenia certyfikacyjnego
- Ośrodek certyfikacji (certificate authority, CA)
- Rola punktu rejestracji (registration authority, RA)
- Certyfikaty X.509
- Łańcuch i ścieżka certyfikacji (certificate chain, certificate path)
- Repozytoria certyfikatów
- Pola certyfikatów i ich ustawienia
- Ograniczanie użycia klucza
- Rozszerzenia certyfikatów
- Profile certyfikatów
- Certyfikaty rozszerzonej walidacji
- Odcisk klucza certyfikatu
- Cykl życia certyfikatu
- Ustanawianie zaufania pomiędzy ośrodkami certyfikacji
- Główne i pośrednie urzędy certyfikacji
- Certyfikaty skrośne (cross certificate) i zakładkowe (link certificate)
- Kompromitacja klucza i unieważnianie certyfikatów
- Lista certyfikatów unieważnionych (certificate revocation list, CRL)
- Protokół weryfikacji statusu certyfikatu (online certificate status protocol, OCSP)
- Mechanizm CRLSets
- Przejrzystość certyfikatów (certificate transparency, CT)
- Znacznik SCT (signed certificate timestamp)
- Architektury wdrożeń PKI
- Zalecenia grupy roboczej PKIX
Działanie i konfiguracja protokołu SSL/TLS
- Wersje protokołu SSL (v2 i v3) i TLS (od 1.0 do 1.3)
- Przebieg działania i elementy protokołu
- Różnice w wersjach protokołu
- Pakiety algorytmów (cipher suites)
- Rozszerzenia protokołu SSL/TLS
- Jednostronne i obustronne uwierzytelnienie w protokole SSL/TLS
- Wybór metody uwierzytelnienia serwera i klienta
- Handshake typu 1-RTT i 0-RTT
- Wybór metody wymiany/uzgodnienia klucza
- Doskonałe utajnienie z wyprzedzeniem (perfect forward secrecy, PFS)
- Wpływ certyfikatu oraz parametrów protokołu na zachowanie przeglądarki internetowej
- Metoda współdzielonego klucza (pre-shared key, PSK)
- Uwierzytelnienie oparte o hasło (secure remote password, SRP)
- Datagramowy protokół TLS (Datagram Transport Layer Security, DTLS)
- Wykorzystanie programowych i sprzętowych końcówek SSL/TLS
- Testowanie działania protokołu
- Zalecenia dotyczące konfiguracji
Integracja SSL/TLS w aplikacjach
- Wbudowanie protokołu w aplikację
- Tunelowanie komunikacji
- Rozwiązania w systemach wbudowanych i internetu rzeczy (internet of things, IoT)
- Utrzymanie i zabezpieczanie niebezpiecznych konfiguracji SSL/TLS
Protokół SSL/TLS w usłudze HTTPS
- Mechanizm HSTS (HTTP Strict Transport Security)
- Mechanizm HPKP (HTTP Public Key Pinning)
- Wykorzystanie CSP (Content Security Policy)
Bezpieczeństwo protokołu SSL/TLS
- Przegląd wybranych ataków
- Bezpieczeństwo wybranej konfiguracji protokołu
- Narzędzia do testowania bezpieczeństwa ustawień
- Weryfikacja poprawności konfiguracji
