Karty inteligentne - programowanie i zastosowania
Transkrypt
Karty inteligentne - programowanie i zastosowania
Karty inteligentne programowanie i zastosowania Piotr Nazimek Instytut Informatyki Politechniki Warszawskiej Warszawa 2005 Plan seminarium ● karty elektroniczne - wprowadzenie ● komunikacja ● – protokoły – czytniki – interfejsy systemy operacyjne kart – ● na przykładzie MPCOS przykład: elektroniczna legitymacja studenta Karty elektroniczne ● ● ● ● kawałek plastiku z wbudowanym układem elektronicznym często, choć niepoprawnie nazywane kartami czipowymi komunikacja oraz zasilanie układu realizowane jest poprzez fizyczne połączenie lub drogą radiową różne klasyfikacje kart — budowę — możliwości — zastosowania — interfejsy komunikacyjne Karty pamięciowe ● ● ● ● ● karty elektroniczne posiadające pewien obszar pamięci służący do przechowywania danych z lub bez ochrony pamięci zapis/odczyt – odnosi się do struktury fizycznej karty sposób komunikacji, zapisu/odczytu do/z pamięci nie jest ustandaryzowany przykłady: — karta telefoniczna — karta zdrowia Karty procesorowe ● wyposażone w system operacyjny ● inne określenia: ● ● — karta mikroprocesorowa — karta inteligentna — ang. smart card producenci: Gemplus, Setec, Axalto (Schlumberger), G&D, ... przykłady — karta SIM — karta VITAY Karty stykowe i bezstykowe ● ● karty stykowe Vcc GND RST Vpp CLK I/O RFU RFU karty bezstykowe – zasilanie i komunikacja drogą radiową – trzy rodzaje kart (w zależności od zasięgu) Karty hybrydowe i dualne ● podział umowny ● interfejs stykowy i bezstykowy – karta dualna ● układ elektroniczny + pasek magnetyczny – karta hybrydowa Karty „natywne” i „programowalne” ● karty „natywne” — ● posiadają system operacyjny o określonym zestawie rozkazów — przechowywanie i zarządzanie dostępem do danych — specjalizacja karty „programowalne” — możliwość stworzenia aplikacji jako „kawałka systemu operacyjnego” — dodatkowo możliwość implementacji logiki aplikacji — Java Card, .NET Card, MULTOS Formaty kart ● najbardziej popularne – ID 1 – karta płatnicza – ID 000 – karta SIM ● ID 00 – rozmiar pomiędzy kartą SIM a płatniczą ● określone w ISO/IEC 7810 Zastosowania ● jako „bezpieczny nośnik informacji” ● systemy płatnicze (EMV, elektroniczne portmonetki) ● systemy lojalnościowe ● podpis elektroniczny ● systemy dostępu ● systemy transportu publicznego (elektroniczny bilet) ● telefonia komórkowa (karta SIM) Komunikacja ● protokół wyzwanie-odpowiedź ● protokoły ● – T=0 – prosty, najczęściej używany (znakowy) – T=1 – komunikat „zanurzony” w pakiecie (blokowy) – T=USB – dla kart USB komunikat PTS (ang. Protocol Type Selection) ATR ● ang. Answer To Reset ● po dostarczeniu napięcia do karty ● określa możliwości karty (protokół komunikacyjny, szybkość transmisji) ● pozwala zidentyfikować rodzaj karty ● zawiera dodatkowe informacje producenta APDU ● ang. Application Protocol Data Unit ● rozkaz przesyłany do karty CLA ● INS P1 P2 Lc Data Le ISO 7816-4 – określono standardowe komendy RAPDU ● ang. Response Application Protocol Data Unit ● odpowiedź karty Data ● SW1 SW2 ISO 7816-4 - określono standardowe bajty statusu Czytniki kart ● interfejs pomiędzy kartą a systemem zewnętrznym ● RS232, USB, PCIMCIA, ISA, wbudowane ● różne API ● – CT-API (głównie C) – PC/SC (C, C++, Java, Perl, Python, ...) – OCF (Java) – inne podstawowe komendy – inicjalizuj – wyślij/odbierz – zakończ sesję CT-API ● ● ang. CardTerminal - Application Programming Interface jedynie trzy komendy – ● zalety – ● najczęściej interfejs w języku C prostota wady – konsolidacja bibliotek zależnych od urządzeń – aplikacja zależna od określonego urządzenia PC/SC ● ang. Personal Computer/Smart Card ● zarządzanie czytnikami i kartami w systemie ● ● – uniwersalne API niezależne od czytnika – zarządzanie dostępem (transakcje) czytniki zgodne z PC/SC standardowy sposób korzystania z „zasobów” w systemie MS Windows ● implementacje dla innych systemów operacyjnych ● http://www.pcscworkgroup.com/ OCF (Open Card Framework) ● biblioteka stworzona w języku Java ● podejście obiektowe ● ● ● ● pozwala na stworzenie aplikacji (apletu) klienta korzystającego z czytników i kart działających w systemie operacyjnym dzięki implementacji w Java – jest przenośna (jeśli stworzono „natywne” biblioteki do komunikacji...) pozwala na wszechstronną konfiguracje i użycie tego samego kodu dla np. rzeczywistej karty i symulatora http://www.opencard.org/ Inne interfejsy ● implementacje interfejsu PC/SC w innych językach – ● OpenCT – ● Perl, Python, Java integracja czytników PC/SC, CT-API i OpenCT telefony komórkowe – SATSA – ang. Security and Trust Services ● inne urządzenia ● API dla systemów operacyjnych kart Systemy operacyjne kart ● ● COS, ang. Card Operating System specjalizacja dla określonego zastosowania (karty „natywne”) – kryptograficzne – lojalnościowe – płatnicze itp. ● istotne różnice pomiędzy systemami ● systemy z maszynami wirtualnymi – Java Card, .NET Card ISO 7816-4 ● seria norm dotyczących kart inteligentnych ● opisuje komendy „wspólne” dla kart ● – operujące na plikach: SELECT FILE, CREATE FILE, READ BINARY, WRITE BINARY, UPDATE BINARY ... – GET CHALLENGE – GET RESPONSE większość kart posiada zaimplementowane komendy z ISO 7816-4 + dodatkowe (zależne od producenta) Obsługa plików ● hierarchiczny system plików ● MF (ang. Master File, FID '3F00') – DF (ang. Dedicated File) ● – – ● DF ● EF ● EF EF różne typy plików EF – ● EF (ang. Elementary File) transparentne, rekordowe, cykliczne, przechowujące kody PIN... prawa dostępu do plików Zabezpieczenia ● ● uwierzytelnienie przed wykonaniem określonych operacji – wyzwanie-odpowiedź – kod PIN zabezpieczona komunikacja (ang. secure messaging) ● moduły SAM (ang. Secure Access Module) ● zabezpieczenia sprzętowo-implementacyjne – anty DPA, liczniki prób, atomowość transakcji MPCOS EMV R5 2000 ● Multi-application Payment Chip Operating System ● Europay-MasterCard-Visa ● Revision 5 ● 2000 = 2kB ● karta firmy Gemplus ● podstawowe zastosowania – wieloaplikacyjna elektroniczna portmonetka – karta płatnicza EMV Charakterystyka MPCOS ● zgodna z ISO 7816-4 ● komendy dla elektronicznej portmonetki ● ● – READ BALANCE – CREDIT – DEBIT itp. – „podpisywanie” transakcji obsługa PIN operacje kryptograficzne oparte o algorytm 3DES z klucz 16-sto bajtowy Charakterystyka MPCOS ● ● prawa dostępu do plików – użycie pliku zależne od uwierzytelnienia określonym kluczem – „zamrażanie” praw założonych plików... nie można usunąć – utrudnienie w testowaniu np. personalizacji z kartą – alternatywa: karta GPK (MPCOS + kryptografia asymetryczna) ● posiada komendę „developerską” ERASE CARD Charakterystyka MPCOS ● możliwość identyfikacji aplikacji bez użycia FID – AID (ang. Application ID) – unikalny identyfikator DF, w którym znajdują się dane aplikacji ● ● istnieje moduł SAM odzwierciedlający operacje kryptograficzne dla MPCOS – dywersyfikacja kluczy kryptograficznych ● ● do 16 bajtów algorytm wyprowadzenia klucza per karta na podstawie unikalnego numeru karty i klucza matki inne wielkości pamięci: 8kB, 32kB Przykład komunikacji 3B 24 00 80 72 94 43 00 84 00 00 08 32 89 FA D8 10 67 A1 C7 90 00 itd... Podsumowanie ● rozwój aplikacji kartowej – odzwierciedla cykl życia karty – personalizacja ● – – wprowadzenie kluczy i danych karta u użytkownika ● użytek codzienny ● operacje administratora zakończenie życia karty Co dalej? ● SIM – ● EMV – ● http://www.opensc.org Java Card (dokumentacja + API + symulator) – ● http://www.emvco.com/ OpenSC i OpenCT – ● http://www.etsi.org/ http://java.sun.com/products/javacard/ grupa dyskusyjna (FAQ) – news:alt.technology.smartcards Co dalej? ● PKCS #11 i #15 – ● GlobalPlatform – ● http://www.globalplatform.org/ Linux – ● http://www.rsasecurity.com/ http://www.linuxnet.com inne dokumenty – http://www.google.com – http://clusty.com/ Elektroniczna legitymacja studenta ● ● ● projekt wprowadzenia dokumentu – zastąpienie książeczkowej legitymacji – podwyższenie bezpieczeństwa – prestiż integracja z istniejącymi systemami na uczelniach oraz lokalnymi usługami aspekt biznesowy (?) – karty są popularne i „pożądane” Zawartość ● ● dane jednoznacznie identyfikujące studenta – dostępne dla zainteresowanych podmiotów – modyfikowalne wyłącznie przez uprawnione instytucje dane zabezpieczone podpisem elektronicznym (kwalifikowanym) – ● „ustawowe” upowszechnianie podpisu dane o ustalonej strukturze, składni i lokalizacji w pamięci (fizycznej, logicznej) karty MIFARE ® ● bezstykowa karta pamięciowa z ochroną pamięci ● do wykorzystania 768 bajtów (w karcie 1kB) ● – podzielone na 16 sektorów – sektor składa się z czterech 16-sto bajtowych bloków – można określić zasady dostępu do każdego z bloków jest to standard przemysłowy firmy Philips – ● wiele firm ma w ofercie tą kartę zastosowania: – systemy dostępu – bilet elektroniczny MIFARE ® ● niska uniwersalność zapisu – upychanie danych w 768 bajtach – „uproszczony” certyfikat (?) – nielogiczny zapis i odczyt ● ● ● ● to jest karta o innym przeznaczeniu stałe przywiązanie do „firmowej” technologii uniemożliwienie integracji z lokalnymi systemami dostępu, „kartami miejskimi” niska cena Aplikacja w karcie stykowej ● zarejestrowany identyfikator aplikacji (AID) ● zarejestrowany identyfikator obiektu (OID) ● ● ● ● uniwersalny opis danych (logiczny) z użyciem ASN.1 możliwość realizacji na praktycznie wszystkich kartach możliwość rozwoju aplikacji bez wymiany technologii wieloaplikacyjność legitymacji Aplikacja w karcie stykowej SELSInfo ::= SEQUENCE { } numerSeryjnyUkladu PrintableString (SIZE (8..16)), nazwaUczelni UTF8String (SIZE (1..128)), nazwiskoStudenta SEQUENCE OF UTF8String (SIZE (1..28)), imionaStudenta SEQUENCE OF UTF8String (SIZE (1..24)), numerAlbumu PrintableString (SIZE (1..16)), numerEdycji PrintableString (SIZE (1)), numerPesel PrintableString (SIZE (11)), dataWaznosci GeneralizedTime Aplikacja „legitymacja” MF 3F 00 DF.SELS D6 16 XX XX XX 45 4C 53 EF.ELS 00 01 EF.CERT 00 02 ... Cykl życia ● personalizacja ● wydanie kart użytkownikom ● przedłużenie ważności („pieczątka”) ● używanie... ● przedłużenie ważności („pieczątka”) ● używanie... ● ... ● zakończenie wykorzystania legitymacji Integracja z kartą bezstykową ● jest możliwa i dobra dla lokalnych zastosowań – systemy dostępu – „karty miejskie” (potencjalny sponsor interfejsu bezstykowego) Bezpieczeństwo ● ● czy można podrobić legitymację? – czy można „wyprodukować” legitymację dla dowolnej osoby – czy można przedłużyć legitymację na kolejny semestr? czy można legitymację skopiować? – ● i co to daje? dodatkowe zabezpieczenia w karcie – nadruk – hologramy Podsumowanie ● jeśli legitymacja będzie wdrażana to... – jest to unikalny projekt kartowy ● wiele typów kart ● wielu wydawców ● wiele innych, lokalnych zastosowań (multiaplikacyjność) Pytania? poczta elektroniczna: [email protected] [email protected] www: http://home.elka.pw.edu.pl/~pnazimek/