Protokół SSL i TLS
Czas trwania szkolenia:4 dni (32h)
Kod kursu:TLS
Poziom zaawansowania:
O szkoleniu Protokół SSL i TLS
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
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
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
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 SHA, SHA3
- Algorytmy symetryczne: AES, ChaCha20, 3DES
- 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)
- Funkcje wyprowadzania klucza (key derivation function, KDF)
- 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)
- Elementy zabezpieczające (security elements, SE)
- Sprzętowe moduły zabezpieczeń (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)
- Zalecenia grupy roboczej CA/Browser Forum
- Certyfikaty uwierzytelniania witryn internetowych w eIDAS
- Architektury wdrożeń PKI
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
- Zasady uwierzytelnienia
- 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
- Profile certyfikatów TLS
- 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