Praktyczne aspekty stosowania kryptografii w systemach komputerowych

LICZBA DNI: 5 (40h)

KOD KURSU: KRYPT/F

# cryptography

# security

# c

# java

# pki

# ssl

# tls

Autor szkolenia:
Piotr Nazimek

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

  • 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++
  • 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
  • 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
  • Usługa uwierzytelnienia i identyfikacji
  • Kody uwierzytelniające wiadomość: HMAC, CBC-MAC, CMAC
  • Uwierzytelnienie a autoryzacja
  • Pojęcie losowości
  • Entropia i jej rola
  • Bezpieczne kryptograficznie generatory ciągów pseudolosowych
  • 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
  • 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, 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
  • Protokół zobowiązania bitowego
  • Protokół wyzwanie-odpowiedź
  • Współdzielenie sekretów i schematy progowe
  • Dowody wiedzy zerowej
  • 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
  • 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
  • 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

Nasi eksperci

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.