Instytut Informatyki
Politechniki Łódzkiej w Łodzi
mgr inż. Bartosz Lis
Wykład nt.
Podstawy systemów operacyjnych
dla potrzeb Studium Podyplomowego "Inżynierskie Zastosowania Informatyki"
Poprzedni | Spis treści
| Następny
Rozdział 5: Zagadnienia bezpieczeństwa
W języku angielskim wyróżnia się dwa terminy, którym odpowiada jedno polskie
określenie - bezpieczeństwo:
safety - bezpieczeństwo użytkownika (i jego danych) przed niezgodnym ze
specyfikacją (awaryjnym) działaniem systemu i
security - bezpieczeństwo systemu przez destrukcyjnymi działaniami użytkownika.
Są to dwie strony tego samego medalu. System nie będący bezpiecznym w jednym
z powyższych znaczeń, przestaje być bezpieczny w drugim.
Autentykacja na przykładzie haseł wielokrotnych
Autentykacja jest to proces, w którym komunikujący się partnerzy potwierdzają
swoją tożsamość. Najczęściej autentykacja ogranicza się jedynie do potwierdzenia
tożsamości użytkownika. Zakłada się tutaj, że użytkownik pracuje w otoczeniu
zaufanych komputerów. Jednak zdarzają się przypadki podszywania się "wrogich"
komputerów pod "przyjazne" serwery, aby np. przechwycić hasła nieświadomych
użytkowników. Wskazanie sposobów rozwiązania tego problemu znajduje się
w punkcie poświęconym kryptografii. Tutaj omówiony będzie najprostszy przypadek,
gdy komputery sieci lokalnej są dostatecznie dobrze chronione przed podszywaniem
by każdy użytkownik mógł ufać, że każdy komputer jest tym za którego się
podaje.
Użytkownik przystępując do pracy (lub łącząc się z kolejnym komputerem),
proszony jest to podanie identyfikatora (konta lub profilu).
Identyfikator jest jawny. Pozwala on innym użytkownikom i oprogramowaniu
powoływać się na danego użytkownika. Identyfikator ten jest ciągiem znaków,
najczęściej małych liter. Zaleca się, aby miał jakiś związek z imieniem,
nazwiskiem lub wydziałem, w którym pracuje użytkownik.
Teraz użytkownik musi potwierdzić swoje prawo do posługiwania się identyfikatorem.
Najczęściej proszony jest o podanie znanego tylko jemu hasła. Hasło nie
pojawia się na ekranie.
Oczywiście, istnieją inne bardziej wyrafinowane sposoby potwierdzania
tożsamości użytkownika oparte o biometrię, karty magnetyczne lub procesorowe,
czy hasła jednorazowe, ale ich omówienie wykracza poza ramy tego wykładu.
Zaletą haseł wielokrotnych jest "prostota obsługi" i brak konieczności
instalowania specjalizowanego sprzętu. Wady są rozliczne:
Użytkownicy wybierają hasła, które łatwo jest odgadnąć.
Bywa, że hasło jest zapisane w dostępnym dla postronnych miejscu, lub jest
gubione.
Hasła są przechowywane w niektórych komputerach, lub przesyłane siecią
w postaci jawnej (niezaszyfrowanej), co pozwala na ich przechwytywanie.
Użytkownicy posługują się tymi samymi hasłami w odniesieniu do kont na
różnych komputerach. Nieuczciwy administrator, lub włamywacz, przeglądając
pliki z hasłami na jednym komputerze wchodzi w posiadanie haseł na innych
komputerach.
Wad tych nie można w całości wyeliminować, ale można zrobić wiele aby je
zmniejszyć:
Aby utrudnić odgadnięcie hasła:
W żadnym wypadku nie należy ustawiać sobie jako hasła, słowa, które łatwo
jest skojarzyć z własną osobą, tj: nazwy konta, imienia, nazwiska (własnego,
członka rodziny, znajomego lub zwierzęcia domowego), numeru telefonu, rejestracji
samochodu, adresu, daty urodzin itp.
Hasło powinno mieć przynajmniej 6 znaków, czym dłuższe tym lepsze.
Niektórzy włamywacze próbują różnych haseł pochodzących ze specjalnie sporządzonych
słowników zawierających popularne słowa z danego języka, nazwy geograficzne,
słownictwo fachowe, imiona bohaterów powieści, filmów itp. Jeśli zatem
stosuje się hasło, które jest popularnym słowem, należy wpleść w nie cyfrę
lub znak nieliterowy, lub jeśli pozwala na to oprogramowanie, część znaków
wpisać dużymi, a część małymi literami.
Dobre hasła uzyskuje się biorąc pierwsze litery z wybranego zdania.
Przez pewien czas zalecano by haseł nie zapisywać, lecz pamiętać je. Obecnie
zaleca się zapisywanie haseł, ale przechowywać należy je w miejscach dla
innych niedostępnych, np. w portfelu. Dobrze jest też zamaskować hasło
wplatając je w inne napisy.
Należy unikać łączenia się przez niepewne sieci z usługami wymagającymi
haseł. Np. z domu przez publiczny modem telekomunikacji i dalej przez Internet
do pracy (należy dzwonić bezpośrednio na firmowy modem, jeśli takowy jest).
Jeśli tylko można, należy skorzystać z oprogramowania kryptograficznego.
Dobrze jest posiadać inne hasło do każdego z kont. Czasem jest to uciążliwe,
dlatego można ograniczyć się do posiadania jednego hasła do komputerów
w pracy i drugiego do usług w Internecie. W żadnym razie nie należy zakładać
sobie takiego samego hasła w jakiejkolwiek usłudze internetowej, jakie
ma się w pracy.
Autoryzaja czyli o uprawnieniach
Autoryzacja, oznacza udzielanie dostępu danemu użytkownikowi (reprezentowanemu
przez zautentykowany identyfikator) do tych zasobów, które są dla niego
przeznaczone. W tym celu system operacyjny danego komputera utrzymuje bazę
danych zawierającą informacje o tym które zasoby (pliki, katalogi, urządzenia
itp.) mogą być udostępniane poszczególnym użytkownikom i na jakich prawach.
Baza ta zawiera następujące informacje:
Obiekty podlegające ochronie. Najczęściej są to pliki i katalogi, w ogólności
są to zasoby danego komputera.
Podmioty uzyskujące prawa dostępu. Podmiotami tymi są użytkownicy. Aby
ułatwić zarządzanie prawami dużych zbiorowości użytkownków wprowadza się
grupy użytkowników, które są również podmiotami uzyskującymi uprawnienia.
Użytkownicy są przypisywani do grup. Dany użytkownik może należeć do wielu
grup. Przez fakt przynależności do danej grupy użytkownik zyskuje lub traci
takie uprawnienia jakie zostały przypisane grupie.
Uprawnienia. We wszystkich systemach operacyjnych powtarzają się prawa
do zapisu i odczytu plików. Wiele systemów rozszerzaja te podstawowe uprawnienia
o prawo do uruchamiania programów, prawo do kasowania lub tworzenia plików
w katalogu, prawo do powoływania się na katalogi itp.
Na poziomie systemu operacyjnego wyróżnić można kilka klas systemów autoryzacji,
dokładną klasyfikację daje "Pomarańczowa księga" Ministerstwa Obrony USA,
na potrzeby tego opracowania ograniczę się do krótkiej listy:
Brak autoryzacji. Takie systemy nadają się dla pojedyńczego użytkownika,
lub tam gdzie autoryzacja nie jest wymagana. Np. MS DOS.
Profile użytkownika. Komputer rozpoznaje użytkowników, każdemu daje spersonalizowane
środowisko pracy, jednak nie zabezpiecza danych jednego użytkownika przed
innym użytkownikiem. W praktyce takie systemy są więc równoważne poprzedniej
klasie. Nadają się dla niewielkiej grupy zaufanych użytkowników. Np. MS
Windows 9x.
Wspólne hasła. System nie wyróżnia użytkowników, wyróżnia natomiast zasoby
mające przypisane hasła. Każdy użytkownik, który poda hasło do zasobu,
otrzymuje do niego dostęp. Utrzymanie bezpieczeństwa takich systemów jest
możliwe tylko w niewielkich grupach zaufanych użytkowników. Np. Microsoft
Networks w wersji peer-to-peer tj. bez serwerów Netware i NT.
Klasyczne systemy wieloużytkownikowe. Wyróżniają użytkowników i grupy.
Autentykacja użytkownika następuje w momencie rozpoczynania sesji pracy
z systemem. Z każdym obiektem związana jest ograniczona liczba podmiotów
jakie uzyskują do niego uprawnienia. Np. w standardowym uniksie każdy plik
ma dokładnie jednego właściciela-użytkownika, któremu przypisane są pewne
uprawnienia, dokładnie jednego właściciela-grupę mającą uprawnienia, oraz
uprawnienia stosowane do pozostałych. Podobnie jest w VMSie. Wiele takich
systemów jest zgodnych z klasą bezpieczeństwa C2 w sensie "Pomarańczowej
księgi". W oparciu o takie systemy uprawnień działa spora część serwerów
w internecie. Pewną wadą tego systemu jest to, że jedynie administrator
ma swobodę nadawania uprawnień. Zwykły użytkownik ma ograniczone możliwości
określania uprawnień dla innych podmiotów do swoich zasobów.
Systemy z ACL (Access Control List - lista kontroli dostępu). Systemy te
różnią się tym od klasycznych, że z każdym obiektem można związać dowolnie
lub wystarczająco długą (np 32 elementową w Netware) listę podmiotów mających
uprawnienia do danego zasobu. Użytkownik może bez pomocy administratora
nadawać uprawnienia innym podmiotom do swoich zasobów (z oczywistym ograniczeniem,
że nie może nadać większych niż sam ma). Do tej klasy należą takie systemy
jak Novel Netware, Windows NT i niektóre uniksy np. Solaris. Są one wystarczające
do większości zastosowań cywilnych.
Systemy z określeniem klas poufności. Oprócz istnienia grup i ACL użytkownicy
i zasoby komputera są przydzieleni do klas poufności. Żaden użytkownik
nie może udzielić uprawnień do zasobów danej klasy poufności innemu użytkownkowi
należącemu do klasy gorszej. Utrudnia to przypadkowe przecieki informacji
tajnych i z tego powodu jest stosowane w instytucjach o podobnym do wojskowego
sposobie zarządzania dostępem do informacji poufnych.
Wiele aplikacji, w szczególności bazy danych ma własne mechanizmy autentykacji
i autoryzacji, gdzie wyróżnia się przywileje przypisywane użytkownikom
do wykonywania pewnych charakterystycznych dla tych aplikacji operacji
(np. nie każdy może dokonać sprzedaży).
Wiele serwerów sieciowych rozszerza podstawowe systemy uprawnień dostarczane
przez system operacyjny, aby ograniczyć dostęp z zenątrz do charakterystycznych
dla tych serwerów usług, np. serwer WWW Apache określa w których katalogach
można umieszczać skrypty CGI, programy umieszczone poza tymi katalogami
nie będą uruchamiane przez serwer.
Oprócz uprawnień do pojedyńczych zasobów mogą istnieć w systemie tzw,
kwoty (ang. quota) tj. ograniczenia ilości jednocześnie wykorzystywanych
zasobów danej klasy. Kwoty zabezpieczają system przed wyczerpaniem zasobów
przez zachłannych użytkowników. Np. kwota dyskowa określa jak duży obszar
dysku może być jednocześnie zajęty przez pliki danego użytkownika. Kwoty
mogą też dotyczyć procentu czasu pracy procesora na rzecz danego użytkownika
w jednostce czasu, ilości uruchomionych procesów itp.
W wielu systemach istnieją mechanizmy do ograniczania użytkownikowi
dostępu do wydzielonych stanowisk lub określonych godzin pracy.
Wśród użytkowników wyróżnia się administratorów i operatorów, czyli
takich, do których zadań należy troska o poprawne działanie systemu. Mają
w związku z tym znacznie szersze prawa. W rozbudowanych systemach można
wyróżnić kilka klas administratorów:
główny administrator (w uniksie zwany tradycyjnie root, w innych systemach
admin, sysadmin itp.), ma maksymalne prawa do systemu operacyjnego, może
w szczególności nadawać prawa innym, w związku z czym jego hasło nie powinno
być jego prywatną tajemnicą, lecz tajmnicą firmy,
operatorzy poszczególnych usług i aplikacji, przykładowo:
operatorzy backupu - mają prawo nadzorować wykonanie kopii bezpieczeństwa
systemu,
administratorzy baz danych - odpowiadają za integralność bazy danych i
poprawne działanie jej oprogramowania,
webmasterzy odpowiedzialni za poprawną pracę serwisu WWW,
operatorzy drukarek - odpowidają za poprawną pracę drukarek, mogą m.in.
wstrymywać i usuwać z kolejek wyduku zadania innych użytkowników.
Osobnym zagadnieniem są prawa głównego administratora. Można tu wyróżnić
dwa podejścia:
Administrator jest osobą, która doskonale zna system, która go zainstalowała
na komputerze oraz ma pełne prawa zapisu i odczytu dysków i pamięci operacyjnej,
więc nie ma sensu bronić użytkowników przed nieuczciwym administratorem,
ponieważ może on wszystkie mechanizmy obejść lub wyłączyć. Takie podejście
prezentuje większość uniksów. Włamywacz, który przejmie prawa administratora
może nie zostawić śladów swej działalności.
Twórcy systemu operacyjnego utajniają pewne informacje (m. in. projekt
i kod źródłowy) dotyczące systemu operacyjnego, a w szczególności systemu
plików, dzięki czemu administrator nie może wykonać z systemem wszystkiego
w szczególności usunąć śladów swoich działań. Takie podejście zastosowano
w Windows NT. (Np. jeśli administrator przejmie uprawnienia do jakiegoś
pliku, to nie może się potem tego wyprzeć. Niestety tajemnice bywają wykradane
jak to się stało z kodem źródłowym tego systemu i kwestią czasu jest pojawienie
się oprogramowania usuwającego ślady działania administratora w wystarczająco
popularnym systemie.)
Audyt
Audyt oznacza śledzenie działania systemu i poczynań użytkowników. Pozwala
ustalić przyczyny awarii oraz momenty i sprawców naruszeń bezpieczeństwa.
Użytkownicy komputerów powinni sobie zdawać sprawę, że ich prywatność jest
w każdej chwili naruszana przez audyt. Jest to zło konieczne, z którego
administratorzy nie zgodzą się zrezygnować. Dostęp do dzienników systemowych
powinien być ściśle limitowany.
Kopie bezpieczeństwa
Awarii systemu kończących się utratą danych nigdy nie da się wykluczyć.
Posiadanie starych wersji dokumentów, które przestały być użyteczne i zostały
normalną drogą usunięte z systemu też może być niekiedy cenne. Niekiedy
archiwizacja wymuszana jest osobnymi przepisami, np. bazy danych księgowości.
Stąd jednym z zadań administratora jest rutynowe wykonywanie kopii bezpieczeństwa
plików. Systemy operacyjne i oprogramowanie narzędziowe niezależnych producentów
dostarcza mu niezbędnego wsparcia. Istnieją wyspecjalizowane firmy zajmujące
się kompleksowo archiwizacją danych komputerowych i tworzeniem elektronicznych
baz dokumentów papierowych.
Narzędzia
Do tworzenia kopii bezpieczeństwa służy specjalizowany sprzęt i oprogramowanie.
Ze sprzętu należy wymienić przede wszystkim napędy i nośniki o dużej
pojemności (rozmiary nośników podane są orintacyjnie):
Do przeszłości odchodzą dyskietki, stosowane do archiwizacji drobnych plików.
Przeciętne pojemności są rzędu 1MB.
Obecnie popularność zdobywają nośniki magnetooptyczne. Dostępne technologie
pozwalają zmieścić powyżej 100MB na jednym nośniku. W niedługiej przyszłości
pojemności tych nośników mają wzrosnąć do rzędu 10GB i więcej. Nośniki
te charakteryzują się dostępem swobodnym i możliwością wielokrotnego zapisu.
Najpopularniejszymi nośnikami kopii zapasowych są streamery, będące kasetami
z tśmą magnetyczną. Pojemności streamerów wahają się od 100MB do 30GB,
zapewne będą jeszcze rosły. Kasety są wielokrotnie zapisywalne. Dostęp
do nich jest sekwencyjny, co przy robieniu całościowych zrzutów nie ma
znaczenia. Nośniki te są najmniej wrażliwe na awarie napędu w trakcie odczytu/zapisu.
Dyski optyczne jednokrotnego zapisu. Niemożność wymazania raz zapisanych
danych w tym zastosowaniu może być ich zaletą. Najbardziej rozpowszechnione
są dyski CD-ROM o pojemności 650MB, powoli standaryzuje się technologia
DVD o pojemności rzędu 10GB. Wadą tych nośników jest to, że w czasie procesu
zapisu komputer musi dostarczać w odpowiednim tempie strumień danych, co
powoduje, że w czasie zapisu komputer nie może wykonywać innych czynności.
Niektórzy zalecają wybierać takie nośniki, by zmieścił się na nich w całości
zrzut dysku bez robienia kompresji.
Napędy backupujące można:
wmontować na stałe po jednym do każdego komputera,
przyłączać na czas robienia zrzutu przez magistralę SCSI lub w inny sposób,
lub
umieścić na wydzielonym komputerze, który będzie ściągał zrzuty z innych
komputerów siecią.
Wśród oprogramowania należy wyróżnić:
programy dokonujące zrzutów i odtworzeń całości dysku bez kompresji: tar,
cpio, dump/restore, backup/restore,
programy kompresujące/dekompresujące: zip, gzip, pkzip, arj, lharc i in.,
narzędzia kryptograficzne,
narzędzia do weryfikacji kopii bezpieczeństwa,
złożone programy rozwiązujące problem kompleksowo, w tym pozwalające planować
zakres zrzutów oraz ich automatyczne wykonanie np. sysadmsh w SCO Uniksie,
Microsoft Backup i in.
Do robienia kopii zapasowych należy wybierać narzędzia, które będą dostępne
wiele lat po zrobieniu kopii.
Torzenie kopii bezpieczeństwa
Istnieją różne poziomy kopii bezpieczeństwa:
zerowy - pełna kopia - obejmuje cały dysk lub drzewo katalogów,
kopie różnicowe lub przyrostowe - obejmują tyko pliki, które zmieniły się
od ostatniej kopii, może tu istnieć wiele poziomów (pierwszy, drugi, ...),
dany poziom obejmuje te pliki, które zmieniły się od czasu ostatniej kopii
poziomu niższego.
System operacyjny wspiera tworzenie przyrostowych kopii bezpieczeństwa
utrzymując informacje o datach modyfikacji plików lub flagi niezbędności
archiwizacji.
Przyjmuje się, że kopie poziomu zerowego powinno się robić nie rzadziej
niż raz na kwartał a zaleca się raz na miesiąc. Kopie takie powinno się
przechowywać przez czas nieokreślony, dobrze sprawdzają się tutaj streamery
i CD-ROMy.
Kopie wyższych poziomów powinno sporządzać się w połowie okresów wykonywania
kopii poziomów niższych, należy je przechowywać przynajmniej przez dwukrotność
okresu jej sporządzania. Po upływie czasu przechowywania kopii, nośnik
można wykorzystać powtórnie. Dobrze sprawdzają się tutaj takie nośniki
jak streamery i dyski magnetooptyczne.
Nie wszystkie dane w komputerze są równie narażone na możliwośc utraty,
można je podzielić pod tym wględem na kilka grup:
Pliki tymczasowe. W zasadzie nie wymagają archiwizacji.
Oprogramowanie systemowe i inne oprogramowanie niededykowane. W razie utraty
można je powtórnie zainstalować z nośników instalacyjnych. Pod warunkiem
zapewnienia ochrony nośnikom instalacyjnym nie wymagają archiwizacji.
Dzienniki systemu (logi). Zawierają cenne informacje dla administratora,
jednak ich utrata zazwyczaj nie uniemożliwia bieżącego działania systemu.
Warto archiwizować.
Konfiguracja oprogramowania. Często łatwa do odtworzenia, zwłaszcza, gdy
została udokumentowana na papierze, jednak w złożonych programach odtworzenie
może wymagać wielu godzin żmudnej pracy. Zaleca się archiwizować.
Oprogramowanie dedykowane i jego konfiguracja. Powtórna instalacja oprogramowania
dedykowanego, takiego jak programy bankowe, oprogramowanie linii technologicznej
itp. może wymagać obecności przedstawicieli producenta a sam proces zazwyczaj
jest długotrwały. Należy liczyć się z tym, że producent może nie dysponować
plikami instalacyjnymi pewnych modułów oprogramowania, jeśli były robione
dla potrzeb specyficznego klienta. Należy archiwizować.
Dane przedsiębiorstwa, własna twórczość użytkownika itp. Są bezcenne. Bezwzględnie
archiwizować.
Do różnego stopnia wrażliwości i zmienności danych można dostosować częstość
robienia kopii zapasowych. I tak, przyrostowe kopie firmowych danych można
robić codziennie, a kopie oprogramowania raz na kwartał oraz po większych
instalacjach lub uaktualnieniach.
Proste narzędzia wymagają uwagi operatora przy tworzeniu kopii, złożone
(np. sysadmsh dla SCO Uniksa) potrafią włączać kopiowanie automatycznie
w środku nocy w/g przygotowanego wcześniej przez administratora planu.
Po wykonaniu kopii bezpieczeństwa należy ją zweryfikować. Należy sprawdzać
także kopie przechowywanez dłuższy czas w archiwum przez losowe odtwarzanie
zawartych w nich plików.
Kopie bezpieczeństwa, przynajmniej te poziomu zerowego należy robić
w kilku egzemplażach, z których jeden powinien być przechowywany w miejscu
możliwie odległym od tego, w którym pracują objęte kopią komputery.
Kryptografia
Techniki kryptograficzne pozwalają chronić poufność i autentyczność informacji.
Poufność oznacza, że informacja może być poprawnie odczytana jedynie przez
upoważnione osoby (lub programy). Autentyczność oznacza, że informacja
może (mogła) być wygenerowana jedynie przez upoważnione osoby w sposób
dający się później poprawnie odczytać. Nieco słabszą cechą jest integralność
oznaczająca że informacja nie uległą zmianie w czasie przekazu, nie gwarantuje
się natomiast autentyczności jej nadawcy.
Kryptografia nie chroni przed nieupoważnioną modyfikacją danych (jest
to zadanie autoryzacji) a jedynie pozwala odbiorcy wykryć i odrzucić nieautentyczne
wiadomości (przez co może być wykorzystywana jako jeden z elementów algorytmów
autoryzacji).
Aby móc chronić informację wykonuje się na niej przekształcenie zwane
szyfrowaniem. Operacja odwrotna zwana jest deszyfrowaniem. Wiadomość początkową
nazywamy tekstem jawnym lub otwartym, po zaszyfrowaniu - tekstem zaszyfrowanym
lub kryptogramem.
Przekształcenie szyfrujące i deszyfrujące zależą od tzw. kluczy kryptograficznych.
Podając niewłaściwy klucz przy deszyfrowaniu nie możemy poprawnie odszyfrować
wiadomości. Nie znając klucza szyfrowania nie możemy zaszyfrować tekstu
tworząc dający się potem poprawnie odszyfrować właściwym kluczem kryptogram.
W zastosowaniach cywilnych należy stosować jedynie te przekształcenia
szyfrujące, które nie pozwalają na systematyczne odgadywanie tekstu jawnego
i klucza kryptograficznego osobom, które znają algorytm przekształcenia
i dowolną ilość tekstu zaszyfrowanego. Zaleca się stosowanie szyfrów spełniających
silniejszy warnek: nie powinno być możliwe systematyczne odgadywanie klucza
przez osoby, które mogą wygenerować z dowolnego tekstu jawnego kryptogramy
i znają algorytm przekształcenia. W żadnym razie bezpieczeństwo szyfru
nie powinno się opierać na utajnieniu algorytmu.
Wszystkie szyfry z wyjątkiem niemożliwego do zastosowania w praktyce
szyfru z jednorazowym kluczem są teoretycznie przełamywalne, to znaczy,
że w skończonym czasie można odgadnąć klucz (i w konsekwencji tekst jawny).
W praktyce stosuje się zazwyczaj szyfry dla których czas potrzebny na przełamanie
zależy w sposób wykładniczy od długości klucza. W przypadku wzrostu mocy
obliczeniowych komputerów będących w ekonomicznym zasięgu potencjalnego
przeciwnika należy wymienić klucze na dłuższe.
Amerykańskie regulacje dotyczące eksportu broni zabraniają wywozu oprogramowania
kryptograficznego posługującego się kluczami dłuższymi niż 40 bitowe. Beneficjentem
tego ograniczenia miał być wywiad USA dysponujący superkomputerami, jednak
obecnie szyfry takie można łamać na PCtach. Powszechnie uważa się, że ograniczenie
to poważnie utrudnia powstawanie oprogramowania kryptograficznego dla potrzeb
cywilnych i naraża na straty również gospodarkę USA.
Wyróżnia się dwa systemy szyfrowania:
Szyfrowanie z kluczem prywatnym (symetryczne, klasyczne).
Szyfrowanie z kluczem publicznym (asymetryczne).
Szyfrowanie symetryczne
Zarówno do szyfrowania, jak i deszyfrowania wiadomości stosuje się ten
sam klucz, lub też klucze można łatwo przekształcić jeden w drugi. W tym
systemie nie da się rozdzielić ochrony poufności i autentyczności. Dla
prowadzenia korespondencji między n podmiotami potrzeba razem n*(n-1)/2
kluczy (każdy podmiot potrzebuje innego klucza dla każdego ze swych n-1
partnerów - innymi słowy każda para potrzebuje osobnego klucza).
Przykłady historyczne: szyfr Cezara, Tablica Vigenere'a i Enigma oraz
obecnie powszechnie stosowane: DES i IDEA.
Szyfrowanie asymetryczne
Podstawy teoretyczne opracowano dopiero w latach '70 tego stulecia.
Metody te opierają się na parze kluczy. Jeden z nich zwany jest kluczem
publicznym, drugi - prywatnym. Wyznaczenie klucza publicznego na podstawie
klucza prywatnego jest na ogół obliczeniowo łatwe. Wykonanie operacji w
drugą stronę (wyznaczenie klucza prywatnego na podstawie publicznego) w
rozsądnym czasie, przy odpowiedniej długości klucza może być poza zasięgiem
technicznym.
Jeśli jednego z kluczy użyto do szyfrowania to kryptogram daje się
odszyfrować tylko drugim. I na odwrót, jeśli kryptogram daje się odszyfrować
pierwszym, to do szyfrowania mógł być użyty tylko drugi.
W tym systemie można chronić osobno poufność, osobno autentyczność
lub obie te cechy na raz.
Tekst zaszyfrowany kluczem publicznym może być poprawnie odszyfrowany
tylko kluczem prywatnym znanym jednej konkretnej osobie. Tak chroni się
poufność.
Kryptogram dający się poprawnie odszyfrować kluczem publicznym mógł
być sporządzony tylko przy użyciu klucza prywatnego będącego w dyspozycji
tylko jednej konkretnej osoby. Tak zapewnia się autentyczność.
Klucze publiczne można swobodnie rozpowszechniać bez obawy ujawnienia
kluczy prywatnych. Do prowadzenia komunikacji między n podmiotami potrzeba
razem n par kluczy (po parze kluczy prywatny/publiczny na podmiot). Każdy
podmiot pamięta swój klucz prywatny i klucze publiczne swoich partnerów.
Dzięki szyfrowaniu asymetrycznemu możliwe stało się sporządzanie podpisów
(sygnatur) cyfrowych. Autor wiadomości sporządza jej skrót znanym algorytmem
haszującym i szyfruje ten skrót swoim kluczem prywatnym. Każdy (kto zna
klucz publiczny) może sporządzić skrót wiadomości oraz odszyfrować podpis
i sprawdzić czy wynikowe ciągi znaków są identyczne. Jednocześnie, jeśli
ktoś zmodyfikuje wiadomość, to nie będzie mógł doprowadzić do sytuacji,
że będzie ona zgodna z dotychczasową sygnaturą, ani sporządzić sygnatury,
która po odszyfrowaniu kluczem publicznym oryginalnego autora byłaby zgodna
ze zmodyfikowaną wiadomością. Dokument opatrzony podpisem cyfrowym nazywamy
certyfikatem cyfrowym.
Opracowano pewnym mechanizmy pozwalające rozpowszechniać klucze publiczne
przez podatne na atak media przy zapewnieniu autentyczności samych kluczy.
Oznacza to, każdy podmiot ma możliwość sprawdzenia, czy klucze publiczne
które posiada odpowiadają kluczom prywatnym jego partnerów i nie zostały
mu podstawione przez przeciwnika.
Odciski palaca kluczy (fingerprints). Są to krótkie ciągi znaków, będące
skrótem całego (długiego) klucza, które można np. przedyktować przez telefon
i w ten sposób potwierdzić autentyczność klucza przekazanego inną drogą.
Certyfikaty kluczy. Jeżeli jeden z użytkowników, nazwijmy ją Alą, chce
przekazać innemu użytkownikowi, nazwijmy go Bolkiem, swój klucz publiczny
przez kanał, który nie gwarantuje autentyczności przekazu, może poprosić
wspólnego znajomego, nazwijmy go Cześkiem o udzielenie certyfikatu jej
kluczowi publicznemu.
Sytuacja jest taka: Czesiek zna klucz publiczny Ali, Bolek zna klucz
publiczny Cześka ale nie zna klucza Ali i chciałby go otrzymać w sposób
nie budzący wątpliwości co do autentyczności tego klucza. Czesiek podpisuje
klucz publiczny Ali swoim kluczem prywatnym i taki certyfikat wysyła do
Ali. Ala może teraz wysłać go do Bolka. Bolek mając klucz publiczny Cześka,
sprawdzi, że certyfikat został podpisany jego kluczem prywatnym. Z certyfikatu
odczyta klucz publiczny i informację, że jest to klucz Ali.
Nieprzyjazny im wszystkim Darek może na pewnym etapie przechwycić certyfikat
i zmodyfikować go, jednakże Bolek odrzuci taki zmodyfikowany certyfikat,
gdyż Darek nie będzie mógł sporządzić podpisu Cześka.
Gdy Ala będzie chciała przekazać swój klucz publiczny Ewie nie będzie
musiała po raz drugi prosić o pomoc Cześka, gdyż już ma jego certyfikat
na swój klucz.
Najsłabszym ogniwem jest tu wymiana kluczy publicznych z Cześkiem.
Czesiek musi być zatem wystarczająco szeroko znanym i potężnym indywiduum
by podszycie się pod niego było niemożliwe.
Można sobie wyobrazić, że w roli Ali występuje bank emitent kart kredytowych,
w roli Bolka i Ewy - sprzedawcy przyjmujący plastikowe pieniądze, a w roli
Cześka - ogólnokrajowa instytucja certyfikacyjna, jaką może być konsorcjum
dużych instytucji finansowych lub bank narodowy. W chwili pisania niniejszego
opracowania, taki system w odniesieniu do powszechnego obrotu finansowego
pozostawał w sferze wyobraźni.
Przykłady: RSA (oparte na trudności rozkładu dużych liczb na czynniki pierwsze),
szyfry oparte na problemie plecakowym, El-Gamal.
Szyfry asymetryczne są najczęściej powolne, dlatego stosuje się techniki
hybrydowe - przy pomocy szyfru asymetrycznego partnerzy uzgadniają klucz
sesji służacy następnie do szyfrowania szybkim algorytmem symetrycznym.
Klucze sesyjne są jednorazowego użytku.
Funkcje jednokierunkowe
W niektórych przypadkach do ochrony autentyczności lub poufności nie jest
potrzebne lub wskazane szyfrowanie wiadomości (dające możliwość deszyfrowania).
Stosuje się wówczas funkcje jednokierunkowe.
Funkcja jednokierunkowa jest to takie przekształcenie, które daje się
obliczać szybko w jedną stronę, ale dla którego wyznaczenie przekształcenia
odwrotnego jest bardzo złożone obliczeniowo. Zmiana pojedyńczego bitu argumentu
powoduje zmiany wielu bitów wyniku według złożonego schematu. Odgadywanie
argumentu dla którego fukcjia przyjmuje zadaną wartość najczęściej polega
na przeszukaniu całej dziedziny argumentów funcji.
Funkcje jednokierunkowe służą m.in. do przechowywania haseł, oraz do
tworzenia streszczeń wiadomości dla potwierdzania ich integralności i autentyczności
(patrz wcześniej - podpisy cyfrowe).
Inne zagadnienia
Inne zagadnienia mające wpływ na bezpieczeństwo komputerów to między innymi
pielęgnacja, konserwacja i właściwe przechowywanie sprzętu i oprogramowania,
dobór wykwalifikowanego i odpowiedzialnego personelu, szkolenia oraz tworzenie
polityki bezpieczeństwa systemu informatycznego.
Poprzedni | Spis treści
| Następny
Wszelkie uwagi i komentarze: bartoszl@stud.ics.p.lodz.pl