Kryptografia na platformie Java w praktyce
Kryptografia na platformie Java w praktyce
Informacje podstawowe
Informacje podstawowe
- KategoriaInformatyka i telekomunikacja / Programowanie
- Grupa docelowa usługi
Szkolenie adresowane jest do programistów Java
- Minimalna liczba uczestników4
- Maksymalna liczba uczestników8
- Data zakończenia rekrutacji22-09-2025
- Forma prowadzenia usługizdalna w czasie rzeczywistym
- Liczba godzin usługi24
- Podstawa uzyskania wpisu do BURCertyfikat systemu zarządzania jakością wg. ISO 9001:2015 (PN-EN ISO 9001:2015) - w zakresie usług szkoleniowych
Cel
Cel
Cel edukacyjny
Poznanie i praktyczne wykorzystanie różnorodnych technik zabezpieczeń i algorytmów kryptograficznych w języku JavaPraktyczne użycie mechanizmów służących do zapewnienia poufności, integralności i uwierzytelnienia
Poznanie celu stosowania algorytmów - kody uwierzytelniające wiadomość, szyfrowanie z hasłem czy algorytmy podpisu cyfrowego
Zdobycie umiejętności prawidłowego wykorzystania mechanizmów na platformie Java, poprzez przykłady realizowane w formie krótkich zadań programistycznych
Efekty uczenia się oraz kryteria weryfikacji ich osiągnięcia i Metody walidacji
Efekty uczenia się | Kryteria weryfikacji | Metoda walidacji |
---|---|---|
Efekty uczenia się Uczestnik stosuje techniki zabezpieczeń i algorytmów kryptograficznych w języku Java, używa mechanizmów służących do zapewnienia poufności, integralności i uwierzytelnienia, stosuje algorytmy takie jak kody uwierzytelniające wiadomość, szyfrowanie z hasłem czy algorytmy podpisu cyfrowego, wykorzystuje mechanizmy na platformie Java. | Kryteria weryfikacji Uczestnik stworzył realny projekt, który można wygodnie udostępnić, skomentować i zaprezentować. | Metoda walidacji Obserwacja w warunkach rzeczywistych |
Kwalifikacje i kompetencje
Kwalifikacje
Kompetencje
Usługa prowadzi do nabycia kompetencji.Warunki uznania kompetencji
Program
Program
Mechanizmy zabezpieczeń na platformie Java
- Zabezpieczenia na poziomie języka Java
- Polityki bezpieczeństwa
- Usługi uwierzytelniania i autoryzacji (Java Authentication and Authorization Service, JAAS)
- Java Generic Security Services API (GSS-API)
- Java Cryptography Architecture (JCA) i Java Cryptographic Extension (JCE)
- Konfiguracja dostawców usług kryptograficznych
- Biblioteka Bouncy Castle
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)
Przegląd algorytmów kryptograficznych
- Algorytmy symetryczne i asymetryczne
- Szyfry blokowe i strumieniowe
- AES, ChaCha20, 3DES i inne szyfry symetryczne
- Podstawowe tryby pracy szyfrów blokowych: ECB, CBC, CTR
- Szyfrowanie z hasłem (password based encryption, PBE)
- Funkcje skrótu i ich zastosowania
- Rodzina SHA, SHA3 i algorytm Keccak
- Usługa uwierzytelnienia i identyfikacji
- Kody uwierzytelniające wiadomość: HMAC, KMAC i CMAC
- Funkcje wyprowadzania klucza (key derivation function, KDF)
- 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
- Podpis i szyfrowanie obiektów w Java
- Zalecenia dotyczące mechanizmów kryptograficznych (wykorzystywane algorytmy, długości kluczy i inne parametry)
Bezpieczne przechowywanie kluczy i haseł
- Repozytoria kluczy: PKCS #12, JKS, JCEKS, BC i BCFKS
- Karty inteligentne (smart cards)
- Elementy zabezpieczające (security elements, SE)
- Sprzętowe moduły zabezpieczeń (hardware security module, HSM)
- Interfejs PKCS #11
- Przechowywanie haseł: Argon2, bcrypt, PBKDF2
Zastosowania kryptografii
- Protokół zobowiązania bitowego
- Protokół wyzwanie-odpowiedź
- Java Simple Authentication and Security Layer (SASL)
- 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
- Podpis cyfrowy, XML Digital Signature
- Działanie i parametry protokołu SSL/TLS
- Java Secure Socket Extension (JSSE)
- Jednostronne i obustronne uwierzytelnienie w protokole SSL/TLS
- Doskonałe utajnienie z wyprzedzeniem (perfect forward secrecy, PFS)
- Aplikacje dla kart kryptograficznych Java Card
Harmonogram
Harmonogram
Przedmiot / temat zajęć | Prowadzący | Data realizacji zajęć | Godzina rozpoczęcia | Godzina zakończenia | Liczba godzin |
---|---|---|---|---|---|
Przedmiot / temat zajęć 1 z 3 Mechanizmy zabezpieczeń na platformie Java, Wprowadzenie do kryptografii | Prowadzący Piotr Nazimek | Data realizacji zajęć 29-09-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 2 z 3 Przegląd algorytmów kryptograficznych , Bezpieczne przechowywanie kluczy i haseł | Prowadzący Piotr Nazimek | Data realizacji zajęć 30-09-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 3 z 3 Zastosowania kryptografii | Prowadzący Piotr Nazimek | Data realizacji zajęć 01-10-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Cena
Cena
Cennik
Rodzaj ceny | Cena |
---|---|
Rodzaj ceny Koszt przypadający na 1 uczestnika brutto | Cena 2 550,00 PLN |
Rodzaj ceny Koszt przypadający na 1 uczestnika netto | Cena 2 550,00 PLN |
Rodzaj ceny Koszt osobogodziny brutto | Cena 106,25 PLN |
Rodzaj ceny Koszt osobogodziny netto | Cena 106,25 PLN |
Prowadzący
Prowadzący
Piotr Nazimek
Informacje dodatkowe
Informacje dodatkowe
Informacje o materiałach dla uczestników usługi
materiały szkoleniowe - część teoretyczna szkolenia, slajdy - zostaną udostępnione uczestnikom na szkoleniu w formie pdf.
uczestnik otrzyma certyfikat uczestnictwa z opisem nabytych umiejętności
Warunki uczestnictwa
Od uczestników wymagane są podstawowe umiejętności z zakresu programowania w języku Java
Informacje dodatkowe
Szkolenie będzie prowadzone zdalnie, w czasie rzeczywistym, na żywo, z trenerem, możliwością zadawania pytań.
Szkolenie składa się w 30% z wykładu teoretycznego, w 70% z warsztatów i samodzielnej pracy programistycznej.
Podczas szkolenia uczestnicy mają dostęp do czatu z trenerem, współdzielą ekran podczas części warsztatowej, żeby zaprezentować postęp swojej pracy.
Walidacja będzie bazowała na ocenie efektów samodzielnej pracy uczestników, będzie sprawdzała nabytą wiedzę teoretyczną i umiejętność jej zastosowania w praktyce.
Warunki techniczne
Warunki techniczne
szkolenie na platformie zoom, wymagane:
stabilne połączenie internetowe (zalecane min. 10Mbit/s download i 1Mbit/s upload)
przeglądarka internetowa Chrome
zainstalowana aplikacja Zoom App
dobrej jakości słuchawki oraz mikrofon (opcjonalnie) kamera internetowa
link do szkolenia zostanie przesłany uczestnikom przed szkoleniem i będzie aktywny do końca szkolenia.