Rozdział ten poświęcimy kartom procesorowym. Zaprezentujemy różne rodzaje kart: od najprostszych -- kart pamięciowych, aż po najnowocześniejsze -- programowalne karty procesorowe.
Najważniejszym zadaniem stawianym kartom procesorowym jest ochrona danych. Rozważmy następującą sytuację: przypuśćmy, że chcemy wykonywać połączenia telefoniczne nie uiszczając za nie opłaty. Możemy kupić sprzęt pozwalający na kopiowanie kart telefonicznych. Niezbędne wydatki będą jednak niewspółmiernie wysokie w stosunku do zysków, jakie osiągniemy. Sytuacja będzie jednak zgoła inna, gdy karty te będą zawierały nie impulsy telefoniczne, lecz banknoty o nominałach na przykład złotych. W takiej sytuacji skopiowanie zawartości karty będzie bardzo opłacalne i chętnych do prób będzie wielu. Z tego też powodu przyglądając się możliwościom kart procesorowych zwrócimy szczególną uwagę na poziom bezpieczeństwa, jaki gwarantują poszczególne ich rodzaje.
W dalszej części rozdziału przedstawimy mechanizm komunikacji kart ze światem zewnętrznym. Zaprezentujemy także bliżej kartę Cyberflex Access, którą można programować w języku Java. Poświęcimy jej więcej uwagi, ponieważ została wykorzystana w części praktycznej niniejszej pracy. Pozostałą część rozdziału poświęcimy bibliotekom dostępu do kart oraz programom wspomagającym pracę z kartami w środowisku Linux.
O kartach procesorowych, ich budowie i zastosowaniach można przeczytać w [12,16,4]. Zwłaszcza [12] zasługuje na uwagę -- stanowi kompendium wiedzy na ten temat. Informacje o programowalnych kartach procesorowych znajdują się w [32,31,30]. Pod adresem [28] znaleźć można odpowiedzi na wiele pytań dotyczących wykorzystania kart procesorowych w środowisku Linux.