Technologie zapewniające bezpieczeństwo
w systemach operacyjnych
PKI
Wstęp
Metody szyfrowania dzielą się generalnie na dwie grupy :
- szyfrowanie symetryczne
- szyfrowanie asymetryczne
W pierwszej metodzie ten sam tajny klucz jest wykorzystywany zarówno
do szyfrowania jak i deszyfrowania wiadomości.
Natomiast szyfrowanie asymetryczne, nazywane też
szyfrowaniem z kluczem jawnym (publicznym),
posługuje się dwoma oddzielnymi kluczami, z których jeden jest tajny
(prywatny) a drugi jawny (publiczny). Klucz publiczny jest ogólnie dostępny w
sieci, klucz prywatny jest natomiast znany tylko właścicielowi klucza i
chroniony przed innymi osobami. Któregokolwiek ze związanych ze sobą kluczy
można użyć do szyfrowania, drugiego do deszyfrowania. Dzięki temu każdy
użytkownik może odszyfrować to, co zostało zaszyfrowane kluczem prywatnym.
Jednocześnie tylko posiadacz klucza prywatnego może odszyfrować to, co
ktokolwiek zaszyfrował jego kluczem publicznym. Ponieważ nie jest możliwe na
drodze obliczeń określenie klucza deszyfrującego przy znajomości jedynie
algorytmu kryptograficznego i klucza szyfrującego,
to wynalezione ćwierć wieku temu metody szyfrowania asymetrycznego zyskały
sobie w tym czasie opinię wyjątkowo bezpiecznych.
Jedynym zagrożeniem dla procesu bezpiecznej wymiany dokumentów z zastosowaniem
szyfrowania asymetrycznego jest możliwość zastąpienia klucza publicznego
jednej z korespondujących stron kluczem publicznym intruza.
Druga strona, będąc przekonana o tym, że korzysta z klucza publicznego
odbiorcy korespondencji, zaszyfruje ją niewłaściwym kluczem, przez co umożliwi
odczytanie wiadomości intruzowi. Aby zapobiec takiej sytuacji, należy stworzyć
mechanizm zwany procesem certyfikacji klucza, który potwierdzałby autentyczność
używanego klucza i prawo do korzystania z niego przez daną osobę,
firmę czy instytucję.
Certyfikat cyfrowy to elektroniczne
zaświadczenie za pomocą którego dane służące do weryfikacji podpisu
elektronicznego są przyporządkowywane do określonej osoby i potwierdzają
tożsamość tej osoby.
Fizycznie jest to ciąg danych zapisanych na odpowiednim nośniku - np. na karcie
mikroprocesorowej (ang. smartcard). Najpopularniejszym standardem certyfikatów
jest X.509 składający się z pól takich jak: wersja, numer seryjny,
wydawca certyfikatu, ważność, podmiot dla którego certyfikat został wystawiony,
klucz publiczny oraz podpis organu wydającego certyfikat. Autentyczność tego
podpisu można sprawdzić tylko wtedy, gdy znany jest klucz publiczny organu
certyfikującego. Klucz ten znajduje się na certyfikacie wystawionym dla
organu certyfikującego przez organ wyższej instancji. Zatem weryfikacja
certyfikatu to prześledzenie łańcucha zaufania, zakończonego przez organ
nadrzędny, cieszący się powszechnym zaufaniem, który sam dla siebie wystawia
certyfikat. Dlatego też kryptografia klucza publicznego wymaga sprawnie
funkcjonującej infrastruktury, zwanej Infrastrukturą Klucza Publicznego (PKI).
Infrastruktura ta służy do zarządzania cyfrowymi certyfikatami i kluczami
szyfrującymi dla osób, programów i systemów.
Infrastruktura Klucza Publicznego - PKI
Idea PKI oparta jest na cyfrowych certyfikatach potwierdzających związek
między konkretnymi uczestnikami transakcji a kluczami kryptograficznymi,
stosowanymi podczas realizowania bezpiecznych transakcji.
Certyfikat cyfrowy jest wydawany przez Urząd Certyfikacji
(Certification Authority - CA), który w momencie wydania dokumentu potwierdza
podpisem cyfrowym związek pomiędzy użytkownikiem a kluczem, którego używa.
Ponieważ tak wystawiony certyfikat ma zawsze pewien okres ważności
(np. jeden rok), należy przewidzieć następujące sytuacje związane z
zarządzaniem certyfikatami: rejestracja użytkowników, generowanie certyfikatów,
dystrybucja, aktualizacja i unieważnianie.
Struktura PKI składa się z czterech głównych elementów :
-
Urzędów Rejestracji (ang. Registration Authority - RA),
dokonujących weryfikacji danych użytkownika a następnie jego rejestracji.
-
Urzędów Certyfikacji (ang. Certification Authority - CA), wydających certyfikaty
cyfrowe. Jest to poprzedzone procesem identyfikacji zgłaszającego się o wydanie certyfikatu.
Pozytywne rozpatrzenie zgłoszenia kończy się wydaniem
certyfikatu wraz z datą jego rozpatrywania.
-
Repozytoriów kluczy, certyfikatów i list unieważnionych certyfikatów
(ang. Certificate Revocation Lists - CRLs). Typowa implementacja to
umożliwienie, w oparciu o protokół LDAP, dostępu do certyfikatów i CRLs.
Inne sposoby realizacji mogą być oparte na protokołach X.500, HTTP, FTP i
poczcie elektronicznej. Certyfikat może stać się nieważny przed datą jego
wygaśnięcia. Przyczyną tego może być np. zmiana nazwiska lub adresu poczty
elektronicznej użytkownika czy ujawnienie klucza prywatnego. W takich
przypadkach CA odwołuje certyfikat i umieszcza jego numer seryjny na
ogólnodostępnej liście CRL.
-
Użytkowników końcowych (ang. End Entity) - osób, aplikacji, sprzętu.
Struktura PKI jest tworzona w oparciu o Główne CA, przy czym dla każdego
z obszarów zastosowań (np. handel elektroniczny, sektor bankowo-finansowy,
administracja publiczna), które będą korzystać z PKI, można tworzyć odrębne
CA podległe Głównemu Urzędowi. Główne CA określa ogólną politykę certyfikacji,
natomiast CA obsługujące dany obszar zastosowań odpowiadając za politykę w tym
obszarze. W strukturze podległej danemu CA dla konkretnych zastosowań może
istnieć dowolna liczba podległych CA oraz użytkowników. Taka struktura tworzy
hierarchię uwierzytelniania, która z kolei określa łańcuch certyfikatów,
wiodący od użytkowników aż do cieszącego się ich zaufaniem Głównego CA.
Krajowa struktura PKI musi współdziałać ze strukturami PKI innych krajów,
aby zapewnić usługi o podobnym do opisanych charakterze w kontaktach
międzypaństwowych.
Schemat PKI wg standardu PKIX
Funkcje PKI
Podstawowe funkcje, które musi realizować każde PKI,
aby zapewnić właściwy poziom usług to :
- Rejestracja (ang. Registration)
Użytkownik końcowy składa wniosek do Organu Rejestracji o wydanie certyfikatu.
Jest to związane z dostarczeniem szeregu informacji, wymaganych przez
Kodeks Postępowania Certyfikacyjnego (Certification Practices Statement - CPS)
wybranego CA. Dane te to np. nazwa własna, nazwa domenowa czy adres IP.
Zanim CA wystawi certyfikat sprawdza (korzystając z wytycznych zapisanych
w CPS), czy podane przez użytkownika dane są zgodne z prawdą. Jeżeli o
certyfikat ubiega się osoba fizyczna, CA weryfikuje także autentyczność
własnoręcznego podpisu na wniosku o wydanie certyfikatu.
- Certyfikacja (ang Certification)
Jeżeli dane podane przez ubiegającego się o certyfikat we wniosku zostaną
potwierdzone, CA wystawia nowy certyfikat (zawierający m.in. klucz publiczny
posiadacza) i dostarcza go użytkownikowi. Jednocześnie certyfikat zostaje
udostępniony wszystkim zainteresowanym poprzez złożenie go we właściwym
repozytorium publicznym.
- Generacja kluczy (ang. Key generation)
Para kluczy (prywatny i publiczny) może zostać wygenerowana samodzielnie
przez użytkownika końcowego lub może on tę operację powierzyć CA.
W pierwszym przypadku użytkownik przesyła do CA jedynie swój klucz publiczny
w celu poddania go procesowi certyfikacji. Klucz prywatny pozostaje przez cały
czas w rękach właściciela, dlatego też metodę tę uważa się za najbardziej
bezpieczną. Jeżeli natomiast klucze generuje CA, to są one dostarczane do
użytkownika końcowego w sposób gwarantujący ich poufność. Najchętniej
wykorzystuje się do tego celu karty mikroprocesorowe (ang. smartcard)
czy karty PCMCIA, obie zabezpieczone dodatkowym kodem PIN.
- Odnawiania kluczy (ang. Key update)
Wszystkie pary kluczy oraz skojarzone z nimi certyfikaty wymagają okresowego
odnawiania. Jest to kolejne zabezpieczenie na wypadek ujawnienia klucza
prywatnego skojarzonego z kluczem publicznym umieszczonym na certyfikacie.
Istnieją dwa przypadki, kiedy wymiana kluczy jest konieczna :
- Upłynął okres ważności certyfikatu.
Jest to sytuacja normalna, występująca regularnie co pewien czas (np. raz do
roku). Wymiana kluczy odbywa się wtedy w możliwie krótkim czasie, bez
dodatkowych formalności.
- Klucz prywatny skojarzony z kluczem publicznym umieszczonym na certyfikacie
został skompromitowany.
Jest to sytuacja wyjątkowa, a więc wymiana kluczy nie będzie już tak płynna jak
poprzednio. W takich przypadkach CA odwołuje certyfikat poprzez umieszczenie
jego numeru seryjnego na ogólnodostępnej liście CRL. Od tego momentu stary
certyfikat traci ważność i rozpoczyna się procedura wystawiania nowego
certyfikatu. Najgorszy przypadek dla każdego CA to kompromitacja
klucza prywatnego jego Głównego CA (Root CA). W takim przypadku cała
infrastruktura PKI podległa temu pechowemu CA zostaje uznana za
skompromitowaną i musi być tworzona od nowa.
-
Certyfikacja wzajemna (ang. Cross-cerification)
Ponieważ społeczność międzynarodowa nie stworzyła dotąd Globalnego Organu
Certyfikacji (Global Root CA), powstało wiele Głównych Organów Certyfikacji
(Root CA), początkowo nie powiązanych wzajemnie relacjami zaufania.
Certyfikacja wzajemna rozwiązuje ten problem i pozwala użytkownikom z jednej
struktury PKI ufać certyfikatom wystawianym przez CA z innej struktury.
Główne CA z różnych struktur certyfikujš się wzajemnie - może być to
certyfikacja jednokierunkowa albo dwukierunkowa.
- Odwołanie certyfikatu (ang. Revocation)
Istnieją sytuacje, w których zachodzi potrzeba wcześniejszego odwołania
certyfikatu. Powodem może być kompromitacja klucza prywatnego, zmiana nazwy
przez użytkownika końcowego czy też odejście pracownika z firmy, która wystawiła
mu certyfikat. Zdefiniowana w standardzie X.509 metoda odwoływania certyfikatów
wykorzystuje wspomniane już Listy Unieważnionych Certyfikatów
(Certificate Revocation Lists - CRLs), okresowo publikowane przez CA w tym
samym repozytorium, w którym są przechowywane certyfikaty. Każdy certyfikat
posiada swój unikalny numer seryjny przypisany przez CA w momencie jego
wystawiania. Lista CRL zawiera spis identyfikatorów odwołanych certyfikatów
i jest opatrzona znacznikiem czasu wystawionym przez CA.
- Odzyskiwanie klucza (ang. Key recovery)
Jest to dodatkowe zabezpieczenie na wypadek sytuacji, gdy użytkownik utraci
swoje klucze. Jeżeli wszystkie klucze do szyfrowania albo negocjacji kluczy
były przechowywane w bezpiecznym archiwum, to będzie można je odzyskać i
umożliwić dostęp do zaszyfrowanych danych. Najważniejszym zagadnieniem przy
realizacji tej funkcji jest zagwarantowanie, że klucze będzie mógł odzyskać
tylko ich właściciel a nie osoba trzecia.
PKI zapewnienia usługi uwierzytelniania takie jak :
- uwierzytelnianie podmiotów partnerskich (ang. peer-entity authentication),
pozwalające na pewną identyfikację przez innych użytkowników,
- uwierzytelnianie danych (ang. data authentication), pozwalająca stwierdzić,
że informacja była świadomie podpisana przez danego użytkownika,
- integralność danych (ang. data integrity), pozwalająca łatwo określić,
czy informacja podpisana cyfrowo nie została zmieniona,
- niezaprzeczalność (ang. non-repudation), uniemożliwiająca użytkownikom
późniejsze wyparcie się faktu nadania wiadomości.
oraz usługi poufności do których należą:
- poufność (ang. confidentiality), umożliwiająca użytkownikom ochronę danych
przed nieuprawnionym ujawnieniem,
- prywatność (ang. privacy), pozwalająca użytkownikom na nakazanie specjalnej
obsługi informacji podczas transmisji w centrach łączności, pomiędzy centrami
łączności a odbiorcami końcowymi oraz w zakresie przechowywania informacji.
Aplikacje korzystające z infrastruktury PKI stosują :
- szyfrowanie danych dla zapewnienia ich poufności,
- podpisy cyfrowe dla zapewnienia niezaprzeczalności i weryfikacji integralności
danych,
- certyfikaty dla uwierzytelnienia osób, aplikacji i serwisów oraz dla
zapewnienia kontroli dostępu (uwierzytelnienia).
Infrastruktura PKI ma zastosowanie w :
- bezpiecznej poczcie,
- transakcjach typu e-commerce (handel elektroniczny),
- wirtualnych sieciach prywatnych (Virtual Private Network - VPN),
- systemach ERP (zarządzania zasobami przedsiębiorstw),
- zabezpieczeniach stacji roboczej użytkownika (jego danych),
- zapewnieniu bezpieczeństwa na witrynach internetowych, urządzeniach
i aplikacjach klienta.
Standardy PKI
Standardy PKI można podzielić na dwie grupy: standardy poziomu użytkownika i
standardy dla samego PKI. Zastosowanie określonych standardów w strukturze PKI
pozwala na współpracę między licznymi strukturami PKI i korzystanie z PKI
w wielu aplikacjach.
Standardy PKI są konieczne dla:
- procedury rejestracji,
- formatów certyfikatów,
- formatów CRL,
- formatów podpisów cyfrowych,
- protokołów typu challenge / response.
Próbę zestandaryzowania funkcji PKI podjęła grupa robocza IETF (Internet Engineering
Task Force), znana również jako grupa PKIX (PKI dla certyfikatów X.509).
Cztery podstawowe składniki modelu PKIX to: użytkownik, CA, RA oraz repozytorium certyfikatów.
Specyfikacja PKIX oparta jest na dwóch innych standardach:
X.509 Międzynarodowego Zwišzku Telekomunikacji (International Telecommunication
Union - ITU) i PKCS Standardów Kryptografii Klucza Publicznego
(Public Key Cryptography Standards) autorstwa RSA Data Security.
Najpopularniejsze standardy PKCS to :
- PKCS#7 - Cryptographic Message Syntax Standard (standard kryptograficznego kodowania wiadomości) ,
- PKCS#10 - Certificate Request Syntax Standard (standard kodowania wniosku o certyfikat),
- PKCS#12 - Personal Information Exchange Syntax Standard (standard kodowania informacji poufnych w postaci plików).
Większość najważniejszych
standardów w dziedzinie bezpieczeństwa teleinformatycznego jest zaprojektowana
tak, aby umożliwić współpracę z PKI.
Do standardów tych należą:
- SSL (Secure Socket Layer),
- TLS , SMIME (Secure Multipurpose Internet Mail
Extensions),
- SET (Secure Eletronic Transactions), IPSec (IP Security).
PKI w Windows 2000
Technologię klucza publicznego wykorzystują następujące systemy zabezpieczenia w Windows 2000:
-
System identyfikacji sieciowej oparty na protokole Kerberos v5, z możliwością
logowania za pomocą kart inteligentnych.
-
Usługa Routing i dostęp zdalny umożliwiająca bezpieczny dostęp zdalny do zasobów
sieci. Usługa ta wspiera:
-
Integrację z Active Directory (usługą katalogową systemu Windows 2000
umożliwiającą zarządzanie identyfikacją użytkowników zdalnych przy użyciu kont
użytkowników domeny i ustawień Zasad grup.
-
RADIUS (Remote Authentication Dial-In User Service), usługę umożliwiającą
zarządzanie identyfikacją użytkowników zdalnych poprzez różne protokoły
identyfikacyjne.
-
Identyfikację użytkowników opartą na zabezpieczeniach EAP-TLS. Użytkownicy mogą
być identyfikowani za pomocą certyfikatów klucza publicznego i kart inteligentnych.
-
Transmisję poufnych danych przez publiczne linie internetowe za pomocą protokołów
L2TP i PPTP.
-
Zdalny dostęp do sieci przez wirtualne sieci prywatne i publicznych dostawców
usług internetowych.
-
Internet Information Services, usługi oferujące zabezpieczenia witryn
internetowych oparte na mapowaniu certyfikatów i bezpiecznej komunikacji
kanałowej przy użyciu protokołów SSL, TLS i SGC.
-
Zabezpieczenia IPSec, które zapewniają identyfikację, integralność, ochronę
przed odtwarzaniem i szyfrowanie end-to-end dla komunikacji w otwartych
sieciach IP, takich jak Internet.
-
System plikowy EFS, który umożliwia użytkownikom zaszyfrowanie przechowywanych
plików, a administratorom odtworzenie plików w przypadku uszkodzenia lub
utraty klucza prywatnego przez użytkownika.
Zabezpieczenia systemu Windows 2000 oparte na kluczu publicznym wykorzystują
standardowe technologie, takie jak algorytm uzgadniania kluczy Diffiego-Hellmana,
algorytmy opracowane przez RSA Data Security oraz algorytm Digital Signature
. Wykorzystane są także standardowe certyfikaty cyfrowe X.509 wersji 3 wydawane
przez wybrane, zaufane urzędy certyfikacji. Wiele zabezpieczeń w systemie
Windows 2000 wykorzystuje klucze publiczne wraz z certyfikatami do zapewnienia
identyfikacji, integralności, poufności i nieodrzucenia.
Do głównych komponentów infrastruktury klucza publicznego w systemie Windows 2000 należą:
-
Usługi certyfikatów - pozwalają na implementację własnej PKI.
Wspierają dwa rodzaje urzędów certyfikacji (CA): CA przedsiębiorstwa i
CA autonomiczne. CA przedsiębiorstwa są zintegrowane z Active Directory i
określają rodzaje wydawanych certyfikatów za pomocą szablonów certyfikatów.
CA autonomiczne nie wymagają Active Directory i nie stosują szablonów
certyfikatów.
-
Microsoft CryptoAPI i kryptograficzni dostawcy usług (CSP).
Microsoft CryptoAPI zapewnia bezpieczny interfejs dla funkcji kryptograficznych
dostarczonych przez instalowalne moduły dostawców usług kryptograficznych (CSP).
Moduły CSP wykonują wszystkie operacje kryptograficzne i zarządzają kluczami
prywatnymi.
CSP może być oparty na oprogramowaniu, na sprzęcie lub na kombinacji obu elementów.
Programowe moduły CSP są nieco mniej bezpieczne, ale są bardziej elastyczne i
spełniają wiele różnych potrzeb. Sprzętowe CSP są używane tylko do wykonywania
specjalnych funkcji, takich jak logowanie lub zabezpieczanie komunikacji
internetowej za pomocą kart inteligentnych.
-
Przechowalnie certyfikatów.
W systemie Windows 2000 certyfikaty przechowywane są w przechowalniach
fizycznych i w przechowalniach logicznych.
Przechowalnie fizyczne zawierają obiekty związane z kluczami publicznymi,
takie jak listy odwołań certyfikatów (CRL) i listy zaufanych certyfikatów (CTL),
przechowywane lokalnie w rejestrze systemowym lub zdalnie w Active Directory.
Wiele obiektów z przechowalni fizycznych jest udostępnianych użytkownikom,
usługom i komputerom za pomocą przechowalni logicznych.
Przechowalnie logiczne służą do pogrupowania certyfikatów w logiczne,
praktyczne dla użytkowników, komputerów i usług kategorie.
Logiczne przechowalnie certyfikatów zawierają wskaźniki do przechowalni
fizycznych. Certyfikatami w przechowalniach można zarządzać za pomocą konsoli
certyfikatów (snap-in MMC). Zmiany dokonywane są w odpowiednich
przechowalniach fizycznych (w rejestrze lub w Active Directory).
-
Konsola certyfikatów.
Jest to aplikacja snap-in MMC służąca do zarządzania przechowalnią certyfikatów
dla użytkowników, komputerów i usług.
W konsoli certyfikatów można wykonać następujące zadania:
- Wyświetlenie informacji o certyfikatach, takich jak ich zawartość i ścieżki certyfikacji.
- Import certyfikatów do przechowalni.
- Przeniesienie certyfikatów pomiędzy przechowalniami.
- Eksport certyfikatów i (opcjonalnie) kluczy prywatnych (jeśli eksportowanie kluczy jest włączone).
- Usunięcie certyfikatów z przechowalni.
- Zamówienie osobistego certyfikatu od zaufanego urzędu certyfikacji.
-
Model zaufania urzędów certyfikacji.
Infrastruktura klucza publicznego w systemie Windows 2000 wspiera hierarchiczny
model zaufania urzędów CA i list CTL. Hierarchie zaufania CA można utworzyć
za pomocą Usług certyfikatów systemu.
Hierarchia certyfikacji wspierana przez infrastrukturę klucza publicznego
Windows 2000 zapewnia skalowalność, łatwość administracji kompatybilność
z rosnącą liczbą usług producentów zewnętrznych i produktów opartych na
kluczach publicznych.
-
Metody rejestracji i odnawiania certyfikatów.
Usługi certyfikatów systemu Windows 2000 wspierają następujące metody
rejestracji i odnawiania certyfikatów:
- Ręczne żądania certyfikatów wysłane z Kreatora żądania certyfikatów
(tylko dla użytkowników, komputerów i usług Windows 2000).
- Automatyczne żądania certyfikatów wysłane z Kreatora automatycznego
żądania certyfikatów (tylko dla certyfikatów komputerów z systemem Windows 2000).
- Ręczne żądania certyfikatów wysłane ze stron Wsparcia rejestracji internetowej (dla użytkowników przeglądarek internetowych).
- Rejestracja oparta na kartach inteligentnych, dokonywana ze Stacji
rejestracji karty inteligentnej dostępnej na stronach Wsparcia rejestracji
internetowej.
-
Zasady grup dotyczące kluczy publicznych
Ustawienia Zasad grup dotyczące kluczy publicznych służą do określenia
automatycznej rejestracji: certyfikatów komputerów, zaufanych certyfikatów
głównych, list CTL dla komputerów i użytkowników oraz agentów odtwarzania EFS.
Zasady grup mogą być zastosowane na poziomie lokacji, domeny lub jednostki
organizacyjnej.
Konsola Zasady grupowe (snap-in MMC) zawiera ustawienia umożliwiające:
- Określenie certyfikatów do umieszczenia w przechowalniach Zaufanych głównych
urzędów CA.
- Utworzenie list CTL określających zaufanie CA lub ograniczających
zastosowanie certyfikatów wydanych przez CA.
- Włączenie automatycznej rejestracji i odnawiania certyfikatów komputerów.
- Określenie alternatywnych agentów odtwarzania EFS.
-
Listy odwołań certyfikatów.
System Windows 2000 wspiera standardowe listy CRL typu X.509 wersji 2.
Każdy CA utrzymuje i udostępnia listę CRL dotyczącą wydanych przez siebie
certyfikatów. Punktami dystrybucji CRL mogą być strony internetowe, dzierżawy
sieciowe lub usługa Active Directory. Certyfikat X.509 wersji 3 zwykle zawiera
informacje o punkcie dystrybucji używanym przez wydający go CA.
-
Wstępnie zainstalowane zaufane certyfikaty główne
Przechowalnia Zaufanych głównych urzędów CA na komputerze z systemem Windows 2000
zawiera wiele wstępnie zainstalowanych certyfikatów dostarczonych przez Microsoft
i przez różne firmy zajmujące się wydawaniem certyfikatów. Certyfikaty wydane
przez te zaufane CA są zaufane na komputerze lokalnym dla wszystkich
dopuszczalnych celów.
-
System Windows 2000 wspiera standardowe karty inteligentne i czytniki
Plug and Play kompatybilne ze specyfikacjami grupy roboczej
PC/SC (Personal Computer/Smart Card).
Czytniki są standardowymi urządzeniami systemu Windows 2000 posiadającymi deskryptor zabezpieczenia
i identyfikator Plug and Play. Czytniki są sterowane przez standardowe
sterowniki Windows, instalowane i usuwane za pomocą Kreatora sprzętu.
Secure Socket Layer (SSL)
SSL - protokół bezpiecznej komunikacji między klientem
a serwerem, stworzony przez Netscape. SSL w założeniu jest podkładką pod
istniejące protokoły, np. HTTP, FTP, SMTP, NNTP, LDAP. Powszechnie
jest używane głównie HTTPS (HTTP na SSL).
SSL zapewnia trzy rzeczy:
- prywatność - połączenie jest szyfrowane,
- autoryzację - klient i serwer określa swoją tożsamość,
- integralność przesyłanych danych - przez sumy kontrolne.
Protokół SSL składa się z dwóch podprotokołów:
- protokołu danych (ang. SSL record protocol),
- protokołu powitania (ang. SSL handshake protocol).
Pierwszy definiuje format używany do transmisji danych, drugi
powoduję wymianę serii wiadomości między serwerem i klientem pozwalających na:
- Autoryzację serwera wobec klienta.
- Wybranie przez obu algorytmów kryptograficznych lub szyfrów, które równocześnie
obsługują
- Opcjonalną autoryzację klienta wobec serwera.
- Użycie techniki klucza publicznego do wygenerowania wspólnych tajemnic.
- Ustanowienie szyfrowanego połączenia.
Kolejne kroki w protokole powitania:
- Klient wysyła serwerowi numer wersji SSL, ustawienia szyfru, losowo wygenerowane
dane i inne informacje potrzebne do komunikacji.
- Serwer wysyła klientowi podobne informacje plus swój certyfikat. Jeśli jest
to wymagane także żądanie przysłania certyfikatu klienta.
- Klient sprawdza certyfikat serwera, jeśli nie może go potwierdzić użytkownik
jest ostrzegany o tym, że szyfrowane i autoryzowane połączenie nie może być
ustanowione.
- Klient używając wygenerowanych dotąd danych (w kooperacji serwerem, jeśli jest
to wymagane w używanym szyfrze) tworzy wstępną tajną informację (ang.premaster secret) dla sesji,
koduje ją z użyciem klucza publicznego serwera, który uzyskał z jego certyfikatu
i wysyła zakodowaną serwerowi.
-
Jeśli serwer prosił o certyfikat klienta to klient także podpisuje dane, które
są unikalne i znane obu. W tym przypadku klient wysyła dodatkowo te dane i swój certyfikat.
-
Jeśli serwer żądał autoryzacji klienta to sprawdza jego certyfikat. Jeśli klient
nie może być autoryzowany połączenie jest przerwane. W innym przypadku serwer
używa swojego klucza prywatnego aby odszyfrować wstępną informację, a następnie
z jej użyciem generuje główną tajną informację (ang. master secret).
To samo generowanie wykonuje klient.
-
Obaj używają głównej informacji do wytworzenia kluczy sesyjnych, które są symetrycznymi
kluczami używanymi do szyfrowania i deszyfrowania informacji wymienianej podczas
sesji SSL i weryfikacji jej integralności.
-
Klient wysyła informację do serwera, że następna wysłana wiadomość będzie
zakodowana z użyciem klucza sesyjnego. Potem wysyła oddzielną, zakodowaną wiadomość
, że jego część tego protokołu została zakończona.
-
Serwer postępuje podobnie.
-
Protokół powitania jest zakończony i rozpoczyna się sesja SSL.
W pierwszej fazie nawiązywania połączenia serwer i przeglądarka wymieniają
certyfikaty. Certyfikat zawiera następujące składniki:
- nazwę właściciela certyfikatu,
- nazwę wydawcy certyfikatu,
- publiczny klucz właściciela dla algorytm asymetrycznego,
- cyfrowy podpis wystawcy certyfikatu (np. Verisign),
- okres ważności,
- numer seryjny (tzw. fingerprint).
SSL przewiduje użycie następujących rodzajów certyfikatów:
- certyfikat CA - zbiór informacji reprezentujących tożsamość danej instytucji
certyfikującej. Obecność podpisu danego CA na certyfikacie serwera oznacza, że
CA zaakceptował dowody przedstawione przez firmę występującą o podpis i swoim
certyfikatem poświadcza autentyczność serwera.
- certyfikat serwera - zbiór informacji reprezentujących tożsamość danego
serwera. Certyfikat serwera musi być opatrzony podpisem CA.
- certyfikat osobisty - znacznie rzadziej rozpowszechnione są certyfikaty
klienta, firmy promujące używanie tego certyfikatu nazywają go "cyfrowym
paszportem". Wraz z podpisem odpowiedniego CA pozwala potwierdzić
tożsamość klienta.
- certyfikat atrybutu - zaproponowany przez Netscape jako rozszerzenie
istniejących certyfikatów. Sam w sobie nie stanowi dowodu tożsamości.
Wśród głównych zastosowań wymienia się np. przyznawanie tymczasowych praw
podpisywania certyfikatów.
Certyfikaty serwerów dzielą się na dwa rodzaje: pełny SSL oraz SSL/SGC (Server
Gated Cryptography). SGC jest pewnym uproszczeniem SSL na potrzeby ominięcia
ograniczeń eksportowych wprowadzonych w USA. Inicjacja połączenia
szyfrowanego przy użyciu SSL/SGC jest mniej bezpieczna, niż przy
standardowym SSL 128, transmisja danych jest identyczna w SSL/SGC i SSL.
SSL protokół wspiera użycie wielu różnych algorytmów kryptograficznych lub szyfrów,
dla takich operacji jak autoryzacja serwera i klienta, transmisja certyfikatów i
ustanowienie kluczy sesyjnych.
Algorytmy używane w SSL:
- DES (ang. Data Encryption Standard) - algorytm szyfrowania symetrycznego,
- DSA (ang. Digital Signature Algorithm) - część standardu cyfrowej autentykacji,
- KEA (ang. Key Exchange Algorithm) - algorytm wymiany kluczy,
- MD5 (ang. Message Digest) - funkcja skrótu używana do generowania podpisów cyfrowych opracowna przez Digest,
- RC2 i RC4 - szyfry symetryczne opracowane przez Rivesta dla RSA Data Security,
- RSA - algorytm klucza publicznego używany do szyfrowana i autentykacji opracowany przez Rivesta, Shamira i Adlemana,
- RSA key exchange - algorytm wymiany kluczy dla SSL oparty na algorytmu RSA,
- SHA-1 (ang. Secure Hash Algorithm) funkcja haszująca,
- Triple-DES - algorytm DES zastosowany 3 razy.
Możliwe długości obecnie używanych kluczy symetrycznych w sesji SSL wynoszą: 40, 56, 128, 168 bitów.
Do połączenia ze stroną WWW poprzez SSL wykorzystywany jest protokół https.
Połączenie ze stroną WWW poprzez SSL jest oznaczane w przeglądarkach
przez graficzny element, np. złączony kluczyk lub kłódka.
Można zobaczyć certyfikat autentyczności danej strony oraz
informację o długości używanego klucza symetrycznego.
W tej chwili istnieją dwie specyfikacje SSL:
SSL 2.0, SSL 3.0.
Wersja 3.0 ma poprawione wiele słabości SSL 2.0 oraz umożliwia kompresję danych.
SSL 3.0 jest wstecznie kompatybilne z 2.0.
Obecnie SSL dostępny jest we wszystkich ważniejszych przeglądarkach WWW
(m.in. w Internet Explorerze, Netscapie i Lynxie), a także
w serwerach WWW - Apache, IIS Microsoftu.
Smart Cards
Z kartami mikroprocesorowymi, czyli inteligentnymi (ang. smart cards), mamy do
czynienia wówczas, gdy mikroukład oprócz pamięci posiada wbudowany mikroprocesor.
Lista rozkazów takiej jednostki zawiera logiczne i arytmetyczne operacje na
bajtach (ewentualnie słowach 16-bitowych). Nie jest to arsenał wystarczający
do efektywnej implementacji np. współczesnych algorytmów kryptografii
asymetrycznej, opartych na arytmetyce modularnej ciała p-elementowego GF(p)
lub ciała skończonego GF(2m). Dlatego pojawiają się rozwiązania, w których
procesor jest wspomagany przez koprocesor
zaprojektowany do realizacji odpowiednich operacji matematycznych, bądź przez
inne układy scalone specyficzne dla aplikacji.
Coraz częściej pojawiają się też w architekturze struktury realizujące
zadania generatora liczb losowych, z
reguły oparte na algorytmach deterministycznych generowania pseudolosowego
ciągu bitów (ziarno startowe pobierane z pamięci nieulotnej lub przesyłane ze
świata zewnętrznego), chociaż sygnalizowane są już rozwiązania wykorzystujące
np. naturalne szumy cieplne struktur krzemowych.
Brak natomiast w architekturze współczesnych kart autonomicznego zegara czasu
astronomicznego, co ogranicza w pewnym sensie możliwości implementacji
niektórych protokołów kryptograficznych (np. parametry zależne od czasu w
protokołach uwierzytelniania z udziałem kart mogą być realizowane zasadniczo
tylko w formie tzw. liczników sesyjnych).
Pamięć w kartach procesorowych podzielona jest zazwyczaj na trzy obszary:
- obszar swobodnego odczytu,
- obszar poufny,
- obszar roboczy.
Obszar swobodnego odczytu zapisywany jest tylko raz podczas personalizacji
karty. Dostęp do umieszczonych w nim informacji jest swobodny. Dane
dostarczają podstawowych informacji na temat właściciela karty, a więc imię i
nazwisko posiadacza, data ważności, numer karty, itp.
W obszarze poufnym dane umieszczane są raz i nie są zmieniane podczas używania
karty. Dostęp do nich jest możliwy jedynie po podaniu odpowiedniego numeru
ustalonego podczas personalizacji karty. W obszarze tym przechowywane są, np.
dane producenta karty, dane użytkownika karty.
Obszar roboczy przechowuje
dane, które mogą być zmieniane w trakcie używania karty. Są to przykładowo
informacje o ostatnio dokonanych operacjach, o dostępnym limicie transakcji.
Reguły dostępu do tego obszaru ustala się w procesie personalizacji. Każda
karta posiada specjalny, ustalany podczas produkcji, zapisany w pamięci kod.
Jest on znany tylko producentowi i służy do zabezpieczenia karty przed
kradzieżą.
Niektóre modele kart inteligentnych, przykładowo karty aktywne (ang. active
cards) zostały wyposażone w baterię.
Najnowsze karty z modułami szyfrującymi wyposażone są też w szereg zabezpieczeń
uniemożliwiających osobom nieupoważnionym odczytanie zawartości pamięci kart.
Mogą to być
czujniki niskiego i wysokiego napięcia oraz niskiej i wysokiej
częstotliwości, a także elektroniczne bezpieczniki dostępu do zapisywania
danych oraz niezależne od zegara taktowanie zapisu/kasowania w pamięci.
Cechy charakterystyczne kart to:
- skuteczna ochrona - dostęp do danych jest kontrolowany przez procesor,
a zezwolenie na dostęp można uzyskać jedynie, gdy spełnione zostaną określone
wcześniej warunki, np. użytkownik w celu
odczytania lub zapisania danych musi podać odpowiedni numer PIN,
procesor może kontrolować kolejne nieudane próby wprowadzania numeru i po
przekroczeniu przez użytkownika pewnej ich ustalonej liczby zablokować
kartę.
-
duża elastyczność - w zależności od wymagań stawianych z zewnątrz
zarządzanie danymi może ulegać modyfikacjom, co umożliwia określone
kształtowanie aplikacji,
-
wielostronność usług - jedna karta może mieć kilka zastosowań (wykonywać kilka
usług), aplikacje te mogą być niezależne lub powiązane i mogą być przygotowane
przez tego samego lub różnych dostawców.
Ze względu na sposób komunikowania się karty z układami zewnętrznymi dokonuje
się podziału na karty stykowe i bezstykowe.
Karty stykowe są najbardziej popularnymi kartami. Ich czytnik ma prostą
konstrukcję mechaniczną sprowadzającą się do zespołu metalizowanych, pokrytych
złotem styków. Styki zapewniają transmisję danych do dalszych urządzeń systemu oraz
doprowadzają zasilanie do układu elektronicznego karty.
W kartach bezstykowych zasilanie i transmisja
odbywają się przez specjalne układy komunikacyjne wbudowane w kartę.
Istnieją obecnie dwa rodzaje kart bezstykowych - są to karty aktywne i pasywne.
Karty pasywne są zasilane z zewnątrz - mają wbudowaną cewkę, która jest
pobudzana przez zewnętrzne pole elektromagnetyczne, a karty aktywne są
wyposażone w baterię.
Karty elektroniczne
umożliwiają regulowanie płatności, korzystanie z telewizji kodowanej, są
przepustką do zamkniętych obiektów i obszarów, a także zastępują dotychczas
stosowane książeczki zdrowia, karty wstępu do bibliotek, wypożyczalni,
indeksy i wszelkie inne dowody tożsamości.
Karty inteligentne mogą służyć do
przechowywania certyfikatów i kluczy prywatnych oraz do wykonywania operacji
kryptograficznych opartych na kluczu publicznym, takich jak identyfikacja,
cyfrowe podpisywanie i wymiana kluczy.
Karty inteligentne niosą następujące korzyści:
-
Klucze prywatne i inne informacje przechowywane są w postaci, w której nie mogą
być modyfikowane.Obliczenia związane z zabezpieczeniami są odizolowane
od pozostałych części systemu, które nie potrzebują dostępu do danych zawartych
na karcie.
-
Użytkownik może wykorzystać dane zawarte na karcie przy pracy w biurze, w domu
oraz na komputerach zdalnych.
Przykłady algorytmów kryptograficznych realizowanych w kartach:
-
Eurochip i Eurochip II.
Uwierzytelnianie w trybie challenge-responce; jeden (opcjonalnie dwa) 48-bitowe
klucze uwierzytelniające. Wyzwaniem jest maksymalnie 16-bitowa liczba losowa,
algorytm szyfrujący generuje na podstawie wyzwania, danych identyfikacyjnych
karty, wskazanego klucza uwierzytelniającego oraz aktualnej wartości licznika
sesyjnego odpowiednią liczbę o długości do 16-bitów o dobrych losowych charakterystykach.
-
Algorytmy COMP128 (A3/A8 ) oraz A5 stosowane w kartach SIM systemu GSM
W systemie GSM mechanizmy kryptograficzne są stosowane we wszystkich trzech
fazach sesji komunikacyjnej:
- uwierzytelnianie tożsamości subskrybenta realizowane w trybie
challenge-responce - algorytm A3,
-
generowanie i poufne przesyłanie klucza sesyjnego - algorytm A8,
oba powyższe algorytmy są z reguły łączone w jeden symetryczny blokowy
algorytm/funkcję jednokierunkową, tzw. COMP128,
-
szyfrowanie kodowanych cyfrowo przesyłanych informacji oraz sygnałów sterujących
sesją łączności - algorytm szyfrowania strumieniowego A5 oparty na trzech
LFSR (odpowiednio o długościach 19, 22 i 23 bitów) pracujących w trybie
stop/go i inicjowanych na podstawie 64-bitowego jednorazowego tajnego
klucza sesyjnego oraz 22-bitowego klucza jawnego (numer sekwencyjny ramki).
Krzywe eliptyczne w kartach elektronicznych.
Wydaje się, że w chwili obecnej najbardziej odpowiednim schematem podpisu
cyfrowego w zastosowaniach w kartach elektronicznych jest
standard podpisu cyfrowego ECDSA wykorzystujący arytmetykę grupy punktów na
krzywych eliptycznych.
Szczególnie korzystnie dla systemu ECDSA wypada porównanie z klasycznym
systemem RSA. Dotyczy to zarówno bezpieczeństwa, mierzonego matematyczną
trudnością problemu leżącego u podstaw algorytmu, jego wydajności mierzonej
szybkością realizacji (z czym wiąże się także złożoność kodu, ilość obliczeń
i obszar niezbędnej pamięci), jak i elastyczności w zastosowaniach
specjalnych np. rozwiązaniach hybrydowych. Niezwykle istotna jest tu
możliwość wyboru wielu krzywych eliptycznych określonych nad jednym i
tym samym ciałem skończonym. Wszyscy użytkownicy mogą wykorzystywać
arytmetykę jednego ciała skończonego.
W obu systemach RSA i ECDSA, bezpieczeństwo jest
funkcją długości klucza. Przy porównywalnym bezpieczeństwie, w systemie ECDSA
można więc używać znacznie krótszych kluczy co ma wpływ na wydajność
tego kryptosystemu i stanowi główny powód stosowania krzywych
eliptycznych w kartach elektronicznych. Dzięki zastosowaniu krzywych
eliptycznych, uzyskuje się wyraźnie lepsze czasy zarówno generowania
i weryfikacji podpisu, jak również czasy generowania kluczy.
Zastosowanie krzywych eliptycznych umożliwia także generację
kluczy na karcie.
Dla przykładu, podpis cyfrowy wiadomości o długości 2000 bitów będzie miał
długość 1024 bity, jeśli używamy systemu RSA, zaś jedynie 320 bitów przy
użyciu ECDSA. Krótszy klucz pozwala na łatwiejszą realizację algorytmu, gdy
ograniczona jest ilość dostępnej pamięci. Zastosowanie krzywych eliptycznych pozwala na
zrezygnowanie z koprocesora arytmetycznego.
Ograniczenia implementacji algorytmów kryptograficznych wynikające z architektury
sprzętowej kart:
- zasoby pamięciowe,
- prędkość transmisji na linii komunikacyjnej,
- lista rozkazów procesora (i ewentualnie koprocesora),
- możliwości generowania pary kluczy asymetrycznych (prywatny - publiczny) wewnątrz karty
(implementacja testów pierwszości liczb).
Ściany ogniowe
Często efektywnym sposobem zabezpieczenia systemu przed atakami z zewnętrznego
otoczenia sieciowego jest odseparowanie go od otoczenia przez zastosowanie
tzw. architektury ściany ogniowej (ang. firewall).
Termin ten pierwotnie określał konstrukcją mającą zapobiec rozprzestrzenianiu się ognia.
W budynku takie ściany oddzielają kompletnie jego części, a
w samochodach fizycznie oddzielają silnik od pasażerów.
W architekturze takiej system informatyczny organizacji - mający połączenie z
globalną siecią komputerową - połączony jest do tej sieci za pośrednictwem
specjalnej struktury sprzętowo-programowej (może to być jeden komputer
lub pewna podsieć z odpowiednim oprogramowaniem).
Ściana ogniowa może także oddzielać poszczególne elementy systemu organizacji.
Ściana ogniowa wykonuje dwojakiego rodzaju działania:
-
Zajmuje się filtrowaniem (kontrolowaniem) komunikacji sieciowej między systemem,
a zewnętrzną siecią komputerową. Filtracja ta odbywa się na poziomie
sprawdzania przesyłanych pakietów sieciowych (adres źródłowy, protokół, numer
portu, zawartość). Często zdarza się, że komputer
za pośrednictwem którego sieć organizacji podłączona jest do sieci zewnętrznej
- tzw. gateway - pełni również rolę ściany ogniowej. Wówczas do jego zadań
należy nie tylko przesyłanie pakietów między siecią wewnętrzną a siecią
zewnętrzną, ale również sprawdzanie czy dany pakiet można przesłać. Sposób
działania ściany ogniowej wynika z przyjętej w organizacji polityki
bezpieczeństwa i jest określany przez odpowiednie skonfigurowanie
oprogramowania.
Oto prosty przykład sposobu filtracji pakietów:
-
blokowane są wszystkie połączenia z komputerami sieci zewnętrznej uznanymi za
niegodne zaufania,
-
blokowane są wszystkie przychodzące połączenia oprócz połączeń pocztowych
(aby możliwe było odbieranie poczty),
-
Służy jako tzw. serwer pośredniczący (ang. proxy server). Wówczas komputery
wewnętrznej sieci organizacji zwracają się z żądaniami wykonania określonych
usług nie bezpośrednio do interesujących ich komputerów sieci zewnętrznej
lecz do serwera pośredniczącego, który
przesyła je dalej. Również odpowiedzi od właściwych serwerów przekazywane
są za pośrednictwem serwerów pośredniczących. Takie działanie nazywane bywa
niekiedy ochroną na poziomie aplikacji.
Wadą jest konieczność konfiguracji odpowiedniego
serwera dla każdej usługi sieciowej, w tym FTP, Telnet, HTTP, e-mail itp.
Serwer proxy może rejestrować i śledzić cały ruch przechodzący przez niego,
może magazynować najczęściej żądane informacje - klient kieruje
swoje żądanie do serwera, który wyszukuje obiekt w swoich lokalnych zasobach i
zwraca zamawiającemu.
Należy zdawać sobie sprawę z tego, że nie istnieje uniwersalna konfiguracja
sprzętowo-programowa ściany ogniowej. Działanie każdej takiej architektury
wiąże się ze specyfiką systemu informatycznego organizacji i wynika z jej
polityki bezpieczeństwa.
Wady i zalety ścian ogniowych.
Zalety:
- ochrona systemu,
- umożliwiają całej sieci korzystanie z jednego wspólnego adresu IP,
- dają możliwość na podłączenie do Internetu systemom z protokołami innymi
niż TCP/IP,
- pozwalają monitorować połączenia i ruch w sieci,
- przy intensywnej pracy z WWW Proxy Cache Server pozwala zoptymalizować obciążenie
na łączu WAN, a co za tym idzie - przyspieszyć pracę wielu osób,
- pozwalają na użycie wirtualnych sieci prywatnych.
Wady:
- ograniczają dostęp do sieci z Internetu,
- wymagają częstych uaktualnień, gdyż powstają nowe typy klientów sieciowych i serwerów ,
- uniemożliwiają bądź utrudniają zdalne zarządzanie siecią,
- mało wydajne serwery pośredniczące zmniejszają wydajność sieci.
Filtrowanie pakietów w jądrze Linuxa ma długą historie, począwszy od wersji 1.1
istnieje tam kod, który potrafi śledzić i kontrolować pakiety jakie pojawiają
się w jego zasięgu. Jądra z serii 2.4 posiadają zupełnie przepisany kod dotyczący
TCP/IP w stosunku do 2.2. Został też przepisany od nowa kod odpowiedzialny
za filtrowanie pakietów.
System filtrowania pakietów w Linuksie (2.4) został zbudowany na bazie Netfilter.
Netfilter jest szkieletem zaimplementowanym w jądrze służącym
do manipulowania pakietami. Dla każdego protokołu definiuje
tzw. punkty zaczepienia (ang. hooks), czyli miejsca w ścieżce przeglądania
pakietów jądra. W każdym z tych punktów będzie wywoływany kod
Netfilter i przekazywany aktualnie przeglądany pakiet oraz numer
punktu zaczepienia.
Na bazie Netfilter budowane są inne moduły służące do manipulowania
pakietami. Dzięki takiej architekturze można w łatwy sposób dodawać
nowe możliwości do filtrowania pakietów.
IP tables jest systemem selekcji pakietów, który został zbudowany na bazie
Netfilter. Moduły jądra rejestrują nowe tabele, które są przeglądane wówczas,
gdy pakiet znajduje się w jądrze. Na podstawie tych tabel podejmowana jest
decyzja w sprawie danego pakietu. Tabele składają się z łańcuchów (ang. chains),
które są zbiorami reguł określających, co należy zrobić z pakietem, jeżeli
spełnia on określone warunki.
IP tables rejestruje następujące tabele:
-
filter - tabela na podstawie której odbywa się filtrowanie pakietów.
Składa się z trzech łańcuchów:
INPUT, FORWARD, OUTPUT przez które przechodzą wszystkie pakiety.
W pierwszej kolejności jądro podejmuje decyzję
rutingową - gdzie pakiet ma trafić. Jeżeli pakiet przychodzi z zewnątrz i ma
trafić do lokalnego procesu przetwarzane są reguły z łańcucha INPUT, jeżeli ma
przejść przez jądro i zostać wysłany dalej to zostaną wybrane reguły z łańcucha
FORWARD. W przypadku gdy pakiet pochodzi od lokalnego procesu i próbuje opuścić
system to zostaną przeanalizowane reguły z łańcucha OUTPUT.
-
nat - tabela jest używana głównie do tłumaczenia adresów sieciowych
(ang. Network Translation Address). Pakiety w strumieniu
przechodzą przez nią tylko raz. Pierwszy pakiet ze strumienia jest pobierany i badany, a
do pozostałych pakietów z tego samego strumienia stosowane są takie same akcje
jakie są wymagane do pierwszego, np. tłumaczenie lub maskowanie.
Łańcuch PREROUTING używany jest jak tylko pakiety dostaną się do jądra, przed decyzją rutingową,
łańcuch OUTPUT używany jest wobec lokalnie wygenerowanych pakietów, zanim przejdą
przez decyzję rutingową. Natomiast reguły z łańcucha POSTROUTING stosowane
są wobec pakietów, które mają opuścić jądro.
-
mangle - tabela używana do zmiany informacji zawartych w pakiecie.
Może ona polegać na przeprowadzaniu zmianie w pakiecie, np. w polach TTL, TOS,
lub specjalnym oznaczeniu pakietu (MARK), które może być wykorzystane
w dalszym przetwarzaniu. Tabela zawiera dwa wbudowane łańcuchy: PREROUTING,
używany do zmiany pakietów kiedy dostaną się do jądra, ale przed decyzją
rutingową, oraz łańcuch OUTPUT dla wygenerowanych pakietów przed decyzją rutingową.
Schemat przetwarzania pakietów
Przykładowe możliwości postąpienia z pakietem:
- ACCEPT - akceptacja pakietu,
- DROP - odrzucenie pakietu,
- LOG - zapisanie informacji o pakiecie,
- REJECT - odrzucenie pakietu i wysyłanie pakietu ICMP (ang. port unreachable) do
adresu źródłowego,
- RETURN - powrót z łańcucha zdefiniowanego przez użytkownika lub skok na koniec
łańcucha, jeżeli jesteśmy w łańcuchu głównym,
- QUEUE - kolejkowanie pakietu do dalszego przetworzenia w przestrzeni
użytkownika,
- REDIRECT - przekierowanie pakietu na inny port, co umożliwia
np. budowanie transparentnych proxy.
iptables jest narzędziem administratora, które umożliwia modyfikowanie reguł
zawartych w tabelach filtracji pakietów jądra.
Możliwości jądra do użycia jako ściany ogniowej:
- śledzenie stanu połączeń,
- przekazywanie (kolejkowanie) pakietów do przestrzeni użytkownika,
- śledzenie obciążenia połączenia, co umożliwia zapobieganiu atakom
Denial of Service,
- filtracja na podstawie źródłowych adresów sprzętowych (MAC),
- oznaczanie pakietów przez jądro, dzięki czemu inne programy mogą korzystać
z tej informacji,
- porównywanie na podstawie typu pakietu (pole TOS),
- analiza większości parametrów z nagłówków protokołów TCP, UDP i IP,
- zapisywanie informacji o pakietach.
Materiały:
http://www.pkiforum.org
http://www.signet.pl
http://www.microsoft.com/poland
http://www.tldp.org/HOWTO/Security-HOWTO
http://www.bezpieczenstwoit.pl
http://wwws.sun.com/software/security/technologies.html
http://developer.netscape.com/docs/manuals/security/sslin/contents.htm
http://www.netfilter.org/documentation
Dariusz Potakiewicz