Programowanie kart Java Card

LICZBA DNI: 5 (40h)

KOD KURSU: J/CARD

# java-card

# java

# cryptography

# security

Autor szkolenia:
Piotr Nazimek

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne wyłącznie na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

O szkoleniu

DLA KOGO?

Szkolenie adresowane jest do osób pragnących poznać zagadnienia związane wykorzystaniem elektronicznych kart inteligentnych Java Card do budowy bezpiecznych systemów

WYMAGANIA

Od uczestników szkolenia wymagana jest umiejętność programowania na poziomie podstawowym w Java oraz w C lub C++ lub C#

ZALETY

Podczas warsztatów uczestnicy przygotują własne aplety dla Java Card oraz umieszcza je w symulatorze i rzeczywistej karcie

Uczestnicy dokonają ataku na nieprawidłowo zabezpieczony system kartowy

W trakcie szkolenia zaimplementujemy protokół wzajemnego uwierzytelnienia pomiędzy kartą i aplikacją oraz pomiędzy dwiema kartami

Elementem warsztatów jest realizacja mechanizmu zabezpieczonej komunikacji pomiędzy terminalem a kartą

Uczestnicy przygotują aplikację wykorzystującą czytnik zgodny z PC/SC

Cele szkolenia

Poznanie architektury i możliwości Java Card oraz zasad tworzenia apletów w oparciu o symulator i rzeczywistą kartę

Poznanie i wykorzystanie algorytmów i protokołów kryptograficznych używanych w systemach kartowych

Praktyczna umiejętność obsługi czytników kart w aplikacjach poprzez interfejs PC/SC w językach C, C++, Java oraz C# na platformach Windows, Linux i macOS

Poznanie zasad i dobrych praktyk w zakresie tworzenia bezpiecznych systemów kartowych na przykładach takich jak karta jako nośnik biletów elektronicznych, podpis elektroniczny, karty dostępu, systemy płatnicze oraz lojalnościowe

Program

  • Klasyfikacje kart
  • Budowa fizyczna, wymiary
  • Interfejsy komunikacyjne
  • Techniki komunikacji z kartami, czytniki kart
  • Karty pamięciowe i inteligentne
  • Karty natywne i programowalne
  • Zastosowania kart elektronicznych
  • Ogólna charakterystyka kart Java Card
  • Podstawowe usługi ochrony informacji
  • Integralność, uwierzytelnienie, niezaprzeczalność i poufność
  • Funkcje skrótu: rodzina MD, rodzina SHA, SHA3
  • Algorytmy symetryczne: 3DES, AES
  • 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
  • Kody uwierzytelniające wiadomość (message authentication code, MAC)
  • Podpis cyfrowy (digital signature)
  • 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
  • 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
  • Obsługa struktur danych TLV
  • Generatory liczb losowych
  • 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
  • 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 lojalnościowe
  • Dobre praktyki tworzenia systemów kartowych i wykorzystania kart elektronicznych

Nasi eksperci

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.