Przewodnik po komendach kart inteligentnych ISO 7816-4
August 18, 2024 1073 komentarzyPobierz przewodnik referencyjny protokołu MODBUS (PDF)

Przewodnik po poleceniach kart inteligentnych ISO 7816-4
Przegląd ISO 7816-4
ISO 7816-4 to podstawowy standard kart inteligentnych, który definiuje polecenia międzygałęziowe stosowane po nawiązaniu komunikacji między kartą a terminalem. Podczas gdy inne części rodziny ISO 7816 opisują cechy fizyczne, styki, sygnały elektryczne i zasady transmisji, ISO 7816-4 koncentruje się na warstwie aplikacji: w jaki sposób terminal wybiera aplikacje, adresuje pliki, wymienia dane, weryfikuje prawa dostępu i interpretuje odpowiedzi karty. W praktyce daje systemom kart inteligentnych wspólny język poleceń, dzięki czemu karty, terminale, narzędzia personalizacji, moduły bezpieczeństwa i oprogramowanie aplikacyjne mogą współpracować w przewidywalny sposób.
Standard ma szczególne znaczenie dla kart bankowych, kart identyfikacyjnych, bezpiecznych nośników dostępu, kart transportowych, kart zdrowia, środowisk związanych z SIM oraz wielu innych produktów, w których karta z układem scalonym musi bezpiecznie przechowywać dane i reagować na kontrolowane polecenia. Dla producentów i realizatorów projektów ISO 7816-4 nie jest specyfikacją wyglądu produktu. To dokumentacja protokołu, która pomaga określić, jak system operacyjny karty, aplet, oprogramowanie układowe czytnika i oprogramowanie nadrzędne powinny organizować wymianę danych aplikacji.
Jak ISO 7816-4 strukturyzuje komunikację kart inteligentnych
Komunikacja według ISO 7816-4 opiera się na APDU, czyli jednostkach danych protokołu aplikacji. Terminal wysyła do karty APDU polecenia, a karta zwraca terminalowi APDU odpowiedzi. APDU polecenia zawiera zwykle bajt klasy, bajt instrukcji, bajty parametrów, opcjonalne dane polecenia oraz oczekiwaną długość odpowiedzi. APDU odpowiedzi może zawierać zwrócone dane i kończy się dwoma bajtami stanu, powszechnie znanymi jako SW1 i SW2, które informują terminal, czy polecenie zakończyło się powodzeniem, niepowodzeniem, wymaga dalszych działań czy też wywołało określone ostrzeżenie.
Taka struktura oddziela szczegóły transportu od logiki aplikacji. Czytnik może obsługiwać połączenie fizyczne, natomiast warstwa aplikacji korzysta z poleceń takich jak SELECT, READ BINARY, UPDATE BINARY, READ RECORD, VERIFY, INTERNAL AUTHENTICATE, GET DATA i PUT DATA. Dokładny zbiór poleceń zależy od systemu operacyjnego karty i profilu aplikacji, ale standard zapewnia wspólną gramatykę implementacji.
Pliki, aplikacje i obiekty danych
Jedną z kluczowych koncepcji ISO 7816-4 jest to, że karta może organizować informacje w logicznym systemie plików. Do przechowywania informacji aplikacji mogą służyć plik główny, pliki dedykowane, pliki elementarne, rekordy i obiekty danych. Niektóre systemy stosują model zorientowany na pliki, a inne model zorientowany na aplikacje, w którym przed wykonaniem poleceń wybiera się identyfikator aplikacji. Dlatego polecenie SELECT ma w tym standardzie kluczowe znaczenie, ponieważ informuje kartę, z którego pliku lub kontekstu aplikacji terminal chce korzystać.
Standard opisuje również, w jaki sposób obiekty danych mogą być kodowane i przywoływane. Ma to znaczenie, gdy aplikacje muszą wymieniać informacje ustrukturyzowane, a nie proste bloki bajtów. W projektach bezpiecznych kart możliwość spójnego organizowania danych wpływa na personalizację, zarządzanie cyklem życia, testy interoperacyjności i długoterminowe utrzymanie. Kartę obsługującą koncepcje ISO 7816-4 można łatwiej zintegrować z systemami wielu dostawców, pod warunkiem że wybrany profil aplikacji jest również jasno określony.
Koncepcje bezpieczeństwa i kontroli dostępu
ISO 7816-4 obejmuje polecenia i koncepcje związane ze statusem bezpieczeństwa, uwierzytelnianiem, weryfikacją i warunkami dostępu. Polecenie VERIFY kojarzy się zwykle ze sprawdzaniem PIN-u lub danych referencyjnych, natomiast polecenia uwierzytelniania mogą być stosowane w systemach wymagających kryptograficznego dowodu, zanim poufne pliki lub funkcje staną się dostępne. Standard nie narzuca jednej uniwersalnej polityki bezpieczeństwa dla każdej karty. Zamiast tego dostarcza struktury poleceń i zachowanie odpowiedzi, których systemy operacyjne kart mogą użyć do wdrożenia kontroli dostępu właściwej dla danego projektu.
Takie podejście jest przydatne, ponieważ różne branże mają odmienne modele ryzyka. Karta hotelowa, rządowa karta tożsamości, aplikacja płatnicza i przemysłowy token bezpieczeństwa mogą wymagać różnych poziomów ochrony. ISO 7816-4 daje im znormalizowane ramy komunikacji, natomiast algorytmy, zasady zarządzania kluczami, polityki wystawcy i wymagania bezpieczeństwa właściwe dla aplikacji są zwykle definiowane odrębnie.
Dlaczego ISO 7816-4 ma znaczenie dla produktów i urządzeń kartowych
Przy wyborze produktu ISO 7816-4 jest ściśle powiązany z kartami stykowymi IC, ponieważ karty te często muszą obsługiwać ustrukturyzowaną wymianę poleceń i odpowiedzi, a nie tylko proste odczyty pamięci. Standard ma również znaczenie, gdy klient wybiera bezpieczne nośniki tożsamości, nośniki członkowskie, bilety transportowe lub dostosowane do potrzeb karty plastikowe z wbudowanymi układami scalonymi. Korpus karty może wyglądać prosto, ale protokół układu, struktura plików i obsługa poleceń decydują o tym, czy karta będzie współpracować z docelowym systemem.
ISO 7816-4 jest równie istotny dla urządzeń po stronie terminala. Twórcy, którzy budują lub pozyskują czytniki kart muszą rozumieć, w jaki sposób polecenia APDU są przekazywane między oprogramowaniem nadrzędnym a kartą. Nawet jeśli czytnik prawidłowo realizuje standardy interfejsu niższego poziomu, powodzenie aplikacji zależy od tego, czy oprogramowanie potrafi wybrać właściwą aplikację, wysłać właściwą sekwencję poleceń, obsłużyć słowa stanu i zarządzać wyjątkami. Dlatego wiedza o ISO 7816-4 jest przydatna nie tylko producentom kart, ale także integratorom, inżynierom oprogramowania, dostawcom urządzeń i zespołom kontroli jakości.
Wskazówki wdrożeniowe dla rzeczywistych projektów
W rzeczywistym projekcie ISO 7816-4 należy traktować jako podstawę, a nie kompletny podręcznik projektowy. Kupujący i inżynierowie powinni nadal potwierdzić dokładny model układu, rozmiar pamięci, system operacyjny, obsługiwany zbiór poleceń, identyfikatory aplikacji, warunki dostępu, odwzorowanie danych, metodę personalizacji i wymagania dotyczące zgodności. Dwie karty mogą obie być związane z ISO 7816-4, ale mogą zachowywać się odmiennie, jeśli wykorzystują różne układy, różne profile aplikacji lub różne konfiguracje bezpieczeństwa.
Testy powinny obejmować standardowe przebiegi poleceń, obsługę nieprawidłowych parametrów, interpretację słów stanu, zmiany stanu bezpieczeństwa, zachowanie przy wyborze plików oraz zgodność z czytnikami. W przypadku zamówień produkcyjnych należy uzgodnić wymagania dotyczące karty, czytnika i oprogramowania przed uruchomieniem produkcji masowej. Przejrzysta dokumentacja APDU, karty próbne i określony proces personalizacji mogą ograniczyć ryzyko integracji.
FAQ o ISO 7816-4
Co definiuje ISO 7816-4?
ISO 7816-4 definiuje międzygałęziowe polecenia kart inteligentnych, struktury odpowiedzi, koncepcje organizacji plików, zachowanie poleceń związanych z bezpieczeństwem oraz wymianę danych opartą na APDU. Nie opisuje przede wszystkim plastikowego korpusu ani wymiarów styków karty. Jego główna wartość tkwi w warstwie aplikacji, gdzie terminale i karty potrzebują wspólnej metody wybierania plików, wymiany danych i interpretowania wyników.
Czy ISO 7816-4 stosuje się wyłącznie do stykowych kart inteligentnych?
ISO 7816-4 powstał w ramach rodziny stykowych kart z układami scalonymi ISO 7816, dlatego jest silnie związany ze stykowymi kartami inteligentnymi. Koncepcje APDU są jednak stosowane również w wielu szerszych środowiskach kart inteligentnych. W praktyce inżynierowie często omawiają ISO 7816-4, gdy potrzebują zgodności na poziomie poleceń między bezpiecznymi układami, urządzeniami czytników i aplikacjami nadrzędnymi.
Czym jest APDU w ISO 7816-4?
APDU to jednostka danych protokołu aplikacji. Terminal wysyła APDU polecenia, aby zlecić operację, a karta zwraca APDU odpowiedzi z danymi i słowami stanu. Taka struktura pozwala oprogramowaniu wykonywać w przewidywalnym formacie czynności takie jak wybór aplikacji, odczyt danych, aktualizacja rekordów, weryfikacja PIN-u czy żądanie uwierzytelnienia.
Czy ISO 7816-4 definiuje rozmiar pamięci układu?
Nie. ISO 7816-4 nie definiuje jednego stałego rozmiaru pamięci dla wszystkich kart inteligentnych. Pojemność pamięci zależy od modelu układu i systemu operacyjnego karty. Standard wyjaśnia, w jaki sposób można uzyskiwać dostęp do plików, rekordów i obiektów danych, ale rzeczywistą pamięć EEPROM, Flash i RAM, funkcje bezpieczeństwa oraz dostępną przestrzeń na aplikacje należy potwierdzić na podstawie arkusza danych układu lub specyfikacji dostawcy.
Dlaczego słowa stanu są ważne?
Słowa stanu są niezbędne, ponieważ informują terminal, jak karta przetworzyła polecenie. Odpowiedź o powodzeniu, ostrzeżenie, nieprawidłowa długość, nieobsługiwana instrukcja, błąd bezpieczeństwa lub brakujący plik mogą być sygnalizowane przez SW1 i SW2. Prawidłowa obsługa słów stanu pomaga oprogramowaniu diagnozować problemy, kontynuować wieloetapowe operacje i unikać traktowania nieudanych poleceń jako udanych transakcji.
Czy ISO 7816-4 sam w sobie gwarantuje interoperacyjność?
Nie do końca. ISO 7816-4 zapewnia znormalizowane ramy poleceń, ale rzeczywista interoperacyjność zależy również od typu układu, systemu operacyjnego, identyfikatorów aplikacji, reguł bezpieczeństwa, danych personalizacji i oprogramowania czytnika. Projekt powinien zatem określać dokładny profil karty, sekwencję poleceń i przypadki testowe, zamiast zakładać, że każda karta odwołująca się do ISO 7816-4 będzie zachowywać się tak samo.
Jak kupujący powinni wykorzystywać ISO 7816-4 przy pozyskiwaniu kart?
Kupujący powinni traktować ISO 7816-4 jako odniesienie techniczne przy omawianiu obsługi poleceń kart inteligentnych, wyboru aplikacji, weryfikacji bezpieczeństwa i wymagań dotyczących dostępu do danych. Przed złożeniem zamówienia powinni potwierdzić model układu, interfejs protokołu, mapę pamięci, format personalizacji, zgodność z czytnikami oraz wyniki testów próbek. Pozwala to uniknąć pomieszania fizycznej personalizacji karty ze zgodnością systemową na poziomie poleceń.



