Mirosław Szymański, styczeń 2003r. Ostatnia aktualizacja 9.01.2003r.

Smart Cards (ICC)

Spis treści

  1. Wstęp.
  2. Rodzaje ICC.
  3. Budowa.
    1. Procesor.
    2. Pamięć.
  4. Komunikacja z czytnikiem.
    1. Karty stykowe.
    2. Karty bezstykowe.
  5. Usługi zapewniane przez ICC.
  6. Kryptografia.
  7. System plików Smart Card.
  8. Sposoby wykorzystania ICC w systemach operacyjnych.
    1. Logowanie przy pomocy klucza publicznego,
    2. Bezpieczny E-mail,
    3. Autentykacja klienta.
  9. Zamiast numeru PIN.
  10. Tworzenie aplikacji obsługujących ICC.
    1. Windows.
    2. Linux.
  11. Dodatkowe informacje.
  12. Adresy.

1. Wstęp.

Określenie Karta Inteligentna (Smart Card) jest, z reguły, tożsame z nazwą używaną przez ISO - Integrated Circuit Card (ICC) oznaczającą karty z wbudowanymi układami elektronicznymi, o rozmiarach kart kredytowych. Karty inteligentne należą do kart elektronicznych.

Pomimo skomplikowanego działania niektórych kart elektronicznych, powinny być one traktowane przede wszystkim jako wygodny nośnik danych.


Karty: Cyberflex Access i M-Card


SmartCard wersja Beta ;-)

Początek

2. Rodzaje kart ICC.

Karty elektroniczne można podzielić ze względu na:

Spośród wymienionych rodzajów kart największe bezpieczeństwo zapewniają karty inteligentne, które zostaną opisane w dalszej części tego dokumentu.

Początek

3. Budowa.

3.1 Procesor.

3.2 Pamięć.

Karta może zawierać kilka typów pamięci:

Karta musi zawierać pamięć ROM, w której zapisany jest system operacyjny (tzw. maska). Maska mikroprocesora określa sposób zarządzania i dostęp do różnych obszarów pamięci.

Pamięć zazwyczaj podzielona jest na trzy obszary:

Początek

4. Komunikacja z czytnikiem.

4.1 Karty stykowe.

Są to najbardziej popularne karty. Ich czytnik ma prostą konstrukcję mechaniczną, sprowadzającą się do zespołu metalizowanych, pokrytych złotem styków. Karty te muszą być precyzyjnie umieszczane w czytniku. Poprzez styki odbywa się komunikacja oraz zasilanie układów elektronicznych karty.


Przykładowy czytnik.

4.2 Karty bezstykowe.

Opracowane zostały w roku 1978. Stosowane są w sytuacjach, gdy operacje muszą być przeprowadzane bardzo szybko, na przykład w bramkach wejściowych, przez które przechodzi dużo osób (przykładem karty bezstykowej jest warszawska karta miejska).

Komunikacja odbywa się drogą radiową.

Karty bezstykowe mogą być aktywne (posiadające własne zasilanie w postaci baterii) i pasywne (mają wbudowaną cewkę pobudzaną przez zewnętrzne pole elektromagnetyczne, stosowane w kartach o małym zasięgu).

Zalety systemów kart bezstykowych:

Zasięg działania kart: w zależności od typu może wahać się od kilku milimetrów do kilku metrów.

Częstotliwość pracy: od częstotliwości niskich LF, wysokich HF do mikrofal. Wybór częstotliwości wykorzystywanej do transmisji uzależniony jest od wymaganego zasięgu i szybkości transmisji danych.


Porównanie kart stykowych i bezstykowych.

Początek

5. Usługi zapewniane przez karty inteligentne.

Początek

6. Kryptografia.

W różnych modelach kart wykorzystuje się m.in. następujące systemy zabezpieczeń:

Aby zwiększyć szybkość działania algorytmów kryptograficznych, często procesor główny karty wspomagany jest przez specjalistyczny koprocesor zaprojektowany do realizacji odpowiednich operacji matematycznych, np. FAMEX (Fast Accelerator for Modular Exponentiation eXtended).

Brak zegara czasu astronomicznego nie pozwala na implementację niektórych protokołów kryptograficznych.

Początek

7. System plików Smart Card.

Karty zgodne ze standardem ISO 7816-4 posiadają UNIX'o-podobny system plików o strukturze drzewa (SmartCard Filesystem - SCFS).


Przykład struktury katalogów karty M-Card.
Początek

8. Sposoby wykorzystania ICC w systemach operacyjnych.

Większość systemów operacyjnych (np. Windows, Linux, Solaris) pozwala stosować ICC do następujących celów:

8.1 Logowanie przy pomocy klucza publicznego.

Działanie (technika challenge-response):

Dzięki takiemu rozwiązaniu klucz prywatny jest bezpieczny, ponieważ nigdy nie zostaje wysłany poza kartę. Jednocześnie system ma pewność, że osoba próbująca się zalogować jest rzeczywiście do tego uprawniona.

8.2 Bezpieczny E-mail.

8.3 Autentykacja klienta

Początek

9. Zamiast numeru PIN.

Wpisanie numeru PIN jest powszechną metodą ograniczenia dostępu do pewnych zasobów przez osoby do tego nieuprawnione (np. wejście do budynku / pomieszczenia)

Wady zabezpieczenia numerem PIN:

Alternatywy:

Szczególnie metoda wykorzystująca odcisk palca ma dużą szansę na upowszechnienie. Odpowiednie czytniki dostępne są w cenie poniżej $300.

Wspomniane alternatywne sposoby zabezpieczeń mogą współpracować z technologią Smart Card. Np. wzorzec odcisku palca może zostać zapisany na karcie, dzięki czemu czytnik musi dokonać porównania tylko dwóch wzorców odcisków (wczytanego z karty i pobranego od użytkownika), zamiast porównywania ze wszystkimi wzorcami z bazy danych uprawnionych użytkowników.

Początek

10. Tworzenie aplikacji obsługujących ICC.

Powszechnie używanymi API (Application Programmers Interface) do obsługi czytników kart, są (jednocześnie są to nazwy głównych standardów kart):

10.1 Windows.

Oprogramowanie potrzebne programiście do używania ICC Smart Card Software Development Kit zintegrowane jest z Microsoft Platform SDK. Pakiet Platform SDK dostępny jest z
http://msdn.microsoft.com/developer/sdk.

Programista ma do wyboru kilka API:

10.2 Linux.

W systemie Linux zaimplementowano podzbiór PC/SC nazwany PC/SC lite. Dostępny jest on na stronie MUSCLE:
http://www.linuxnet.com/middle.html , natomiast sterowniki do czytników znajdują się na http://www.linuxnet.com/sourcedrivers.html.

W systemie Linux aplikacja użytkownika używa PC/SC API do komunikacji z pośredniczącym menedżerem zasobów (middleware resource manager), który natomiast komunikuje się z czytnikami używając sterowników urządzeń.

Początek

11. Dodatkowe informacje.

Początek

12. Adresy.

Początek
Najbardziej aktualną wersję tego dokumentu można znaleźć na www.mirqos.prv.pl.