Praktyczne aspekty stosowania kryptografii w systemach komputerowych
LICZBA DNI: 5 (40h)
KOD KURSU: KRYPT/F
Weź udział w szkoleniu
Termin
Lokalizacja
Cena / os
12
kwietnia
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Termin
12
kwietnia
Lokalizacja
Warszawa,
Kraków,
Łódź,
Wrocław,
Gdańsk,
Poznań,
Zdalne,
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Programiści i architekci chcący poznać zagadnienia związane z prawidłowym wykorzystaniem mechanizmów kryptograficznych do budowy bezpiecznych systemów
WYMAGANIA
Od uczestników wymagana jest znajomość obsługi komputera, pracy z wierszem poleceń oraz znajomość podstawowych zasad programowania i podstaw składni języków C i Java
ZALETY
Podczas szkolenia uczestnicy użyją wybranych algorytmów kryptograficznych w celu zapewnienia usług integralności, uwierzytelnienia, niezaprzeczalności oraz poufności
Uczestnicy zaatakują nieprawidłowo zabezpieczone systemy oraz sprawdzą odporność swoich rozwiązań na ataki
Zajęcia warsztatowe obejmują między innymi implementację protokołu wzajemnego uwierzytelnienia pomiędzy kartą elektroniczną i aplikacją
Uczestnicy samodzielnie skonfigurują własny ośrodek certyfikacji, uruchomią zabezpieczoną pocztę elektroniczną w oparciu o S/MIME oraz bezpieczną komunikację wykorzystując protokół SSL/TLS
Podczas szkolenia wykorzystujemy biblioteki zaimplementowane w C oraz Java, między innymi Bouncy Castle, OpenSSL oraz Mbed TLS
W wersji dedykowanej szkolenie może być zrealizowane w oparciu o biblioteki, języki programowania lub platformy wybrane przez uczestników
Cele szkolenia
Poznanie i praktyczne wykorzystanie różnorodnych technik kryptograficznych, które używane są przy implementacji zabezpieczeń w systemach komputerowych
Poznanie prawidłowych zasad użycia między innymi algorytmów szyfrujących (symetrycznych i asymetrycznych), funkcji skrótu, kodów uwierzytelniających wiadomość, algorytmów podpisu cyfrowego oraz wybranych protokołów kryptograficznych
Umiejętne unikanie typowych ataków na systemy wykorzystujące techniki kryptograficzne
Zrozumienie problemów związanych z zarządzaniem kluczami kryptograficznymi oraz przechowywaniem i przekazywaniem danych wrażliwych dzięki wielu praktycznym przykładom i warsztatom
Samodzielne zastosowanie poznanych mechanizmów do konfiguracji i uruchomienia centrum certyfikacji, zabezpieczonej poczty elektronicznej oraz komunikacji klient-serwer
Program
Wprowadzenie do ochrony informacji
- Czym jest bezpieczeństwo informacji
- Pojęcia i relacje w bezpieczeństwie
- Podstawowe usługi ochrony informacji
- Integralność, uwierzytelnienie, niezaprzeczalność i poufność
- Kryptologia, kryptografia i kryptoanaliza
- Podstawowe zasady stosowane w kryptografii
- Kryptografia klasyczna
- Bezpieczeństwo obliczeniowe i siła klucza
- Standaryzacja i zalecenia: RFC, ISO/IEC, CEN/CENELEC, ETSI, PKCS, FIPS, ANSI, ITSEC/Common Criteria
- Biblioteki kryptograficzne w Java i C/C++
Algorytmy symetryczne
- Usługa poufności
- Szyfr z kluczem jednorazowym (one-time pad, OTP)
- Szyfrowanie a kodowanie
- Szyfry blokowe i ich parametry
- AES, 3DES i inne szyfry blokowe
- Podstawowe tryby pracy szyfrów blokowych: ECB, CBC, CTR
- Techniki oceny bezpieczeństwa algorytmów kryptograficznych
- Podstawy kryptoanalizy
- Szyfrowanie i kompresja
- Szyfry strumieniowe
Funkcje skrótu i kody uwierzytelniające wiadomość
- Usługa integralności
- Cechy funkcji skrótu
- Rodzina MD, rodzina SHA, SHA3 i algorytm Keccak
- Ataki na funkcje skrótu
- Procedury i algorytmy niszczenia informacji
Uwierzytelnienie i identyfikacja
- Usługa uwierzytelnienia i identyfikacji
- Kody uwierzytelniające wiadomość: HMAC, CBC-MAC, CMAC
- Uwierzytelnienie a autoryzacja
Generatory liczb losowych
- Pojęcie losowości
- Entropia i jej rola
- Bezpieczne kryptograficznie generatory ciągów pseudolosowych
Szyfrowanie z uwierzytelnieniem
- Zasady łączenia różnych usług ochrony informacji
- Tryby uwierzytelnionego szyfrowania (authenticated encryption, AE)
- Tryby uwierzytelnionego szyfrowania z danymi dodatkowymi (authenticated encryption with associated data, AEAD)
- Tryby: CCM, GCM i EAX
Algorytmy asymetryczne
- Problem wymiany i ustanawiania klucza
- Ceremonia wymiany klucza
- Algorytm Diffiego-Hellmana-Merkla (DH)
- Algorytm RSA
- Podpis cyfrowy i problem autentyczności klucza
- Algorytm podpisu cyfrowego DSA
- Krzywe eliptyczne w kryptografii: krzywe NIST, SECG i Brainpool, Curve25519, Curve448
- Algorytmy oparte o krzywe eliptyczne: ECDH, X25519, X448, ECDSA, EdDSA, Ed25519, Ed448
- Formaty podpisu cyfrowego
- Szyfrowanie za pomocą algorytmów asymetrycznych
- Porównanie algorytmów symetrycznych i asymetrycznych
Hasła
- Hasła, frazy hasłowe a klucze kryptograficzne
- Wymagania wobec haseł
- Numery PIN
- Tworzenie kluczy z haseł
- Szyfrowanie z hasłem (password based encryption, PBE)
- Szyfrowanie nośników danych
Protokoły kryptograficzne
- Protokół zobowiązania bitowego
- Protokół wyzwanie-odpowiedź
- Współdzielenie sekretów i schematy progowe
- Dowody wiedzy zerowej
Zarządzanie kluczami
- Metody zarządzania kluczami w systemach kryptograficznych
- Repozytoria kluczy: PKCS #12, JKS, JCEKS, BC i BCFKS
- Dywersyfikacja kluczy
- Unikalność klucza, klucze sesyjne (efemeryczne)
- Zarządzanie kluczami w systemach kart elektronicznych
- Zarządzanie kluczami w systemach płatniczych
- Sprzętowe moduły bezpieczeństwa (hardware security module, HSM)
- Interfejs PKCS #11
- Dostawcy usług kryptograficznych w Java
- Biblioteki CSP
Zastosowania kryptografii
- Zalecenia dotyczące mechanizmów kryptograficznych (wykorzystywane algorytmy, długości kluczy i inne parametry)
- Podstawy notacji ASN.1
- Kodowanie DER (Distinguished Encoding Rules) i PEM (Privacy-Enhanced Mail)
- Zalecenia dotyczące parametrów algorytmów kryptograficznych
- Znaczenie zaufania, zaufana trzecia strona (trusted third party, TTP)
- Infrastruktura klucza publicznego (public key infrastructure, PKI)
- Usługi PKI w kontekście usług ochrony informacji
- Generowanie kluczy oraz zgłoszenia certyfikacyjnego
- 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
- Lista certyfikatów unieważnionych (certificate revocation list, CRL)
- Protokół weryfikacji statusu certyfikatu (online certificate status protocol, OCSP)
- Bezpieczna poczta elektroniczna S/MIME
- Działanie i parametry protokołu SSL/TLS
- Jednostronne i obustronne uwierzytelnienie w protokole SSL/TLS
- Doskonałe utajnienie z wyprzedzeniem (perfect forward secrecy, PFS)
- Wykorzystanie kryptografii do budowy blockchain
Ataki na systemy wykorzystujące kryptografię
- Klasy ataków i ich cele
- Atak brutalny
- Atak słownikowy
- Atak typu man in the middle (MITM)
- Atak powtórzeniowy
- Inicjalizacja generatora liczb pseudolosowych
- Nieprawidłowe użycie kluczy i trybów szyfrowania
- Błędy w implementacji algorytmów
- Ataki socjotechniczne
