Kryptografia na platformie .NET w praktyce
Czas trwania szkolenia:3 dni (24h)
Kod kursu:CRYPT/NET
Poziom zaawansowania:
O szkoleniu Kryptografia na platformie .NET w praktyce
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 tworzący aplikacje w środowisku .NET Core i .NET Framework
Wymagania
- Od uczestników wymagane są podstawowe umiejętności z zakresu programowania w języku C#
Zalety
- Szkolenie obejmuje zarówno platformy .NET Core jak i .NET Framework w aktualnych wersjach
- Podczas warsztatów uczestnicy skonfigurują i użyją wbudowanych mechanizmów platformy .NET związanych z bezpieczeństwem
- W trakcie szkolenia uczestnicy użyją wybranych algorytmów kryptograficznych w celu zapewnienia poufności, integralności i uwierzytelnienia
- Zajęcia warsztatowe obejmują między innymi implementację protokołu wzajemnego uwierzytelnienia pomiędzy kartą elektroniczną i aplikacją oraz użycie urządzenia kryptograficznego zainstalowanego w Windows
- Uczestnicy wykorzystają protokół SSL/TLS do zapewnienia bezpiecznej komunikacji pomiędzy aplikacjami w C#
- 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 zabezpieczeń i algorytmów kryptograficznych na platformie .NET z uwzględnieniem mechanizmów systemu Windows
- Praktyczne użycie algorytmów służących do zapewnienia poufności, integralności i uwierzytelnienia
- Poznanie celu stosowania algorytmów takich jak kody uwierzytelniające wiadomość, szyfrowanie z hasłem czy algorytmy podpisu cyfrowego
- Zdobycie umiejętności prawidłowego wykorzystania omawianych mechanizmów na platformie .NET, poprzez przykłady realizowane w formie krótkich zadań programistycznych
Program
Mechanizmy zabezpieczeń na platformie .NET i Windows
- Zabezpieczenia na poziomie języka C# i platformy .NET
- Przegląd hierarchii klas .NET Core i .NET Framework
- Różnice pomiędzy platformami i wersjami .NET Core i .NET Framework
- Konfiguracja dostawców usług kryptograficznych
- Microsoft CryptoAPI i dostawcy Cryptographic Service Provider (CSP)
- Cryptography API: Next Generation (CNG)
- Smart Card Minidriver
- Implementacje bazujące na kodzie zarządzalnym i niezarządzalnym
- Biblioteka Bouncy Castle dla C#
Wprowadzenie do kryptografii
- Podstawowe usługi ochrony informacji
- Integralność, uwierzytelnienie, niezaprzeczalność i poufność
- Podstawowe zasady stosowane w kryptografii
- Bezpieczeństwo obliczeniowe i siła klucza
- Podstawy notacji ASN.1
- Kodowanie DER (Distinguished Encoding Rules) i PEM (Privacy-Enhanced Mail)
- Dane kryptograficzne w formacie XML
Przegląd algorytmów kryptograficznych
- Algorytmy symetryczne i asymetryczne
- Szyfry blokowe i ich parametry
- AES, 3DES i inne szyfry blokowe
- Podstawowe tryby pracy szyfrów blokowych: ECB, CBC, CTR
- Szyfrowanie z hasłem (password based encryption, PBE)
- Funkcje skrótu i ich zastosowania
- Rodzina MD, rodzina SHA, SHA3 i algorytm Keccak
- Usługa uwierzytelnienia i identyfikacji
- Kody uwierzytelniające wiadomość: CMAC, HMAC, KMAC
- Bezpieczne kryptograficznie generatory ciągów pseudolosowych
- Tryby uwierzytelnionego szyfrowania (authenticated encryption, AE)
- Tryby uwierzytelnionego szyfrowania z danymi dodatkowymi (authenticated encryption with associated data, AEAD)
- Tryb CCM i GCM
- Algorytm Diffiego-Hellmana-Merkla (DH)
- Algorytm RSA
- Podpis cyfrowy i problem autentyczności klucza
- Krzywe eliptyczne w kryptografii: krzywe NIST, SECG i Brainpool, Curve25519, Curve448
- Algorytmy oparte o krzywe eliptyczne: ECDH, X25519, X448, ECDSA, EdDSA, Ed25519, Ed448
- Szyfrowanie za pomocą algorytmów asymetrycznych
- Zalecenia dotyczące mechanizmów kryptograficznych (wykorzystywane algorytmy, długości kluczy i inne parametry)
Bezpieczne przechowywanie kluczy
- Repozytoria kluczy: PKCS #12 i PFX
- Repozytoria certyfikatów
- Karty inteligentne (smart cards)
- Elementy zabezpieczające (security elements, SE)
- Sprzętowe moduły zabezpieczeń (hardware security module, HSM)
- Kontenery użytkownika (User-Level)
- Kontenery urządzenia (Machine-Level)
- Interfejsy do urządzeń sprzętowych
Zastosowania kryptografii
- Protokół zobowiązania bitowego
- Protokół wyzwanie-odpowiedź
- 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)