Szkolenie wprowadza do architektury Java Card oraz zasad tworzenia apletów z wykorzystaniem symulatora i rzeczywistej karty. W ramach zajęć zostaną wykorzystane algorytmy i protokoły kryptograficzne stosowane w systemach kartowych, a także przygotowane aplikacje obsługujące czytniki kart poprzez interfejs PC/SC w językach C/C++ i Java. Uczestnicy zaimplementują mechanizmy wzajemnego uwierzytelnienia, zabezpieczoną komunikację między terminalem a kartą oraz przeprowadzą analizę podatności poprzez atak na nieprawidłowo zabezpieczony system kartowy.
Szkolenie przygotowuje do samodzielnego projektowania i programowania apletów na platformę Java Card z wykorzystaniem symulatora oraz rzeczywistej karty
Szkolenie uczy implementacji i stosowania algorytmów oraz protokołów kryptograficznych w systemach kartowych
Szkolenie rozwija umiejętność obsługi czytników kart i integracji z aplikacjami poprzez interfejs PC/SC w językach C/C++ i Java
Szkolenie pokazuje zasady tworzenia bezpiecznych systemów kartowych, w tym mechanizmy uwierzytelniania, zabezpieczonej komunikacji i analizy podatności
Dla kogo?
Osoby chcące rozwijać kompetencje w zakresie aplikacji kartowych
Programiści i inżynierowie oprogramowania zainteresowani technologią kart inteligentnych oraz bezpieczeństwem IT
Efekty kształcenia
Uczestnik projektuje i wdraża aplety Java Card na symulatorze i rzeczywistej karcie
Uczestnik implementuje protokoły kryptograficzne i mechanizmy uwierzytelniania
Uczestnik obsługuje czytniki kart i integruje je z aplikacjami PC/SC
Uczestnik analizuje podatności i przeprowadza testy bezpieczeństwa systemów wykorzystujących karty
Uczestnik stosuje dobre praktyki w zakresie bezpieczeństwa i optymalizacji aplikacji Java Card
Uczestnik przygotowuje aplikacje wykorzystujące zabezpieczoną komunikację z kartą
Wymagania
Od uczestników szkolenia wymagana jest podstawowa umiejętność programowania w Java oraz (opcjonalnie) C/C++
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
Kodowanie DER (Distinguished Encoding Rules) i PEM (Privacy-Enhanced Mail)
Problem bezpiecznego przechowywania informacji
Przechowywanie i przekazywanie danych kryptograficznych
Sprzętowe moduły bezpieczeństwa (hardware security module, HSM)
Dostęp do urządzeń kryptograficznych (biblioteki PKCS #11, CSP)
Zalecenia dotyczące parametrów algorytmów kryptograficznych
Protokół wyzwanie-odpowiedź
Zabezpieczanie komunikacji
Architektura kart Java Card
Wersje platformy Java Card, Java Card Kit
Java Card Virtual Machine
Java Card Runtime Environment
Java Card API
Identyfikatory (AID) pakietów i instancji, RID i PIX
Środowisko rozwoju apletów
Symulator Java Card Platform Simulator (cref)
Działanie Card Managera
Aplikacje GPShell i GlobalPlatformPro
Obsługa komend APDU
Obsługa pamięci nieulotnej i ulotnej
Obsługa kodu PIN
Obsługa transakcji atomowych
Bufory z danymi o szczególnym znaczeniu
Obsługa ciągów znaków
Obsługa upływu czasu
Liczniki
Obsługa struktur danych TLV
Generatory liczb losowych
Sumy kontrolne
Wykorzystanie algorytmów kryptograficznych w kartach
Funkcje skrótu
Kody uwierzytelniające wiadomość
Algorytmy symetryczne i asymetryczne, generowanie kluczy
Szyfrowanie i deszyfrowanie
Składanie podpisu elektronicznego
Techniki biometryczne
Zabezpieczanie komunikacji z kartami
Komunikacja pomiędzy apletami
Serwisy
Komunikacja z Card Manager
Dostęp do zasobów zewnętrznych
Zalecenia dotyczące tworzenia wydajnych apletów Java Card
Optymalizacja wykorzystania pamięci
Techniki i zalecenia dotyczące testowania apletów Java Card
Czytniki kart inteligentnych
Interfejs PC/SC
Obsługa zdarzeń w czytniku
Typowe problemy związane z obsługą kart stykowych i bezstykowych
Cykl życia karty
Personalizacja kart
Techniki dystrybucji kluczy
Moduły SAM (secure access module)
Przechowywanie i zarządzanie danymi użytkowników
Karty w systemach podpisu elektronicznego
System płatniczy EMV
Systemy dostępu
Dobre praktyki tworzenia systemów kartowych i wykorzystania kart elektronicznych
Autorem szkolenia jest Piotr Nazimek
Jestem absolwentem Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. W 2012 roku obroniłem doktorat z obszaru niezawodności systemów komputerowych. Interesuję się szeroko pojętym bezpieczeństwem systemów komputerowych oraz inżynierią oprogramowania. Zawodowo pracuję od 2003 roku. Wolny czas spędzam na wyprawach rowerowych i w górach.
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi