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.