Praktyczne aspekty stosowania kryptografii w systemach komputerowych

4300 PLN+23% VAT (5289 PLN brutto / 1 os.)

Czas trwania szkolenia:5 dni (40h)

Kod kursu:KRYPT/F

Poziom zaawansowania:
javasecuritypkicryptographyssltlsc

Dostępne terminy

  • Termin
  • Lokalizacja
  • Trener
  • Cena

Termin:

24 października 2022
Trwają zapisy na szkolenie

Lokalizacja:

Zdalne, Warszawa

Trener:

Trainer imagePiotr Nazimek

Cena:

4300 PLN netto+23% VAT

Termin:

30 stycznia 2023
Trwają zapisy na szkolenie

Lokalizacja:

Zdalne, Warszawa, Łódź, Poznań, Kraków, Wrocław, Gdańsk, Katowice, Bydgoszcz, Gdynia

Trener:

-

Cena:

4300 PLN netto+23% VAT

Termin:

29 maja 2023
Trwają zapisy na szkolenie

Lokalizacja:

Zdalne, Warszawa, Łódź, Poznań, Kraków, Wrocław, Gdańsk, Katowice, Bydgoszcz, Gdynia

Trener:

-

Cena:

4300 PLN netto+23% VAT

O szkoleniu Praktyczne aspekty stosowania kryptografii w systemach komputerowych

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 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, Mbed TLS i TinyCrypt
  • 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

  • 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 poufnych 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: ChaCha20

Funkcje skrótu

  • Usługa integralności
  • Cechy funkcji skrótu
  • Rodzina SHA, SHA3 i algorytm Keccak
  • Ataki na funkcje skrótu
  • Procedury i algorytmy niszczenia informacji

Uwierzytelnienie i identyfikacja, kody uwierzytelniające wiadomość

  • Usługa uwierzytelnienia i identyfikacji
  • Kody uwierzytelniające wiadomość: HMAC, KMAC, CBC-MAC, CMAC
  • Uwierzytelnienie a autoryzacja

Generatory liczb losowych

  • Pojęcie losowości, typy generatorów liczb losowych
  • 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)
  • Przechowywanie haseł: Argon2, bcrypt, PBKDF2
  • 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)
  • Funkcje wyprowadzania klucza (key derivation function, KDF)
  • Zarządzanie kluczami w systemach kart elektronicznych
  • Zarządzanie kluczami w systemach płatniczych
  • Karty inteligentne (smart cards)
  • Elementy zabezpieczające (security elements, SE)
  • Sprzętowe moduły zabezpieczeń (hardware security module, HSM)
  • Interfejs PKCS #11
  • Dostawcy usług kryptograficznych w Java
  • Biblioteki CSP

Zastosowania kryptografii

  • Zalecenia dotyczące algorytmów kryptograficznych, długości kluczy i innych parametrów
  • Podstawy notacji ASN.1
  • Kodowanie DER (Distinguished Encoding Rules) i PEM (Privacy-Enhanced Mail)
  • 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

Podobne szkolenia