Szkolenie dostępne na zamówienie

Szkolenie: Programowanie kart Java Card

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.

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:5 dni (40h)

Poziom zaawansowania:

Kod kursu:J/CARD

java-cardjava-embeddedbezpieczne-systemyprogramowanie-kart-chipowych

Szkolenie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Zapytanie o szkolenie

Programowanie kart Java Card

Cele szkolenia

  • 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

Program szkolenia

Pobierz program w PDF

Wprowadzenie do kart elektronicznych

  • Klasyfikacje kart

  • Budowa fizyczna, wymiary

  • Interfejsy komunikacyjne

  • Karty stykowe

  • Karty bezstykowe, NFC (near-field communication)

  • Techniki komunikacji z kartami, czytniki kart

  • Karty pamięciowe i inteligentne

  • Karty natywne i programowalne

  • Zastosowania kart elektronicznych

  • Ogólna charakterystyka kart Java Card

Algorytmy i protokoły kryptograficzne

  • Podstawowe usługi ochrony informacji

  • Integralność, uwierzytelnienie, niezaprzeczalność i poufność

  • Funkcje skrótu: rodzina SHA, SHA3

  • Algorytmy symetryczne: AES, 3DES

  • Kody uwierzytelniające wiadomość (message authentication code, MAC): CMAC, HMAC

  • Tryby uwierzytelnionego szyfrowania (authenticated encryption with associated data, AEAD)

  • Ceremonia wymiany klucza

  • Krzywe eliptyczne w kryptografii: krzywe NIST, SECG i Brainpool, Curve25519, Curve448

  • Algorytmy uzgadniania klucza: DH, ECDH, X25519, X448

  • Algorytmy asymetryczne: RSA, ECDSA, EdDSA, Ed25519, Ed448

  • Podpis cyfrowy (digital signature)

  • Generatory liczb losowych i ich zastosowania

  • Podstawy notacji ASN.1

  • 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

Karty inteligentne Java Card

  • 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

Aplikacje wykorzystujące karty

  • Czytniki kart inteligentnych

  • Interfejs PC/SC

  • Obsługa zdarzeń w czytniku

  • Typowe problemy związane z obsługą kart stykowych i bezstykowych

Karta jako bezpieczny nośnik informacji

  • 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

4.8
Ikona podpowiedziŚrednia ocen Sages w serwisie Google Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowana

11.03.2026

Uczestnik szkoleniaAI w pracy dydaktycznej i naukowej

Katarzyna Katarzyna

dużo narzędzi dydaktycznych, które przydadzą się do dydaktyki, a to ważne żeby sobie wybrać narzędzie, które przyda się w dydaktyce, a to bardzo ważne.

Więcej opinii