IV. Zabezpieczenie dostepu do komputera pracujacego w systemie DOS


DOS to niestety ciagle najpowszechniej uzywany system operacyjny dla komputerow klasy PC. Jedna z jego wielu kardynalnych wad to brak jakiejkolwiek systemowej ochrony programow i danych (nawet plikow systemowych i konfiguracyjnych). Ktos na przyklad napracuje sie przy konfiguracji komputera, a inny - z radoscia uczac sie Norton Commandera - skasuje autoexec lub config i jeszcze potem dziwi sie, ze komputer nie dziala poprawnie. O narzedzia ochrony w DOS-ie nalezy sie specjalnie odzielnie starac (system jako taki ich nie zapewnia). Dlatego przygotowalem po jednym przykladzie na softwarowe i hardwarowe rozwiazanie problemu ochrony (przynajmniej czesciowej).


Przykladowe rozwiazanie softwarowe

Przedstawimy tu programowa mozliwosc zablokowania DOS-owej funkcji zmiany atrybutu Read Only pliku. Mozna mianowicie napisac w assemblerze program typu TSR, monitorujacy procedure obslugi przerwania 21h i podpisujacy pod nie wlasna procedure, ktora uniemozliwia wyzerowanie plikowi atrybutu Read Only (jezeli oczywiscie ma on go ustawionego). Nie mozna w takim wypadku skasowac danego pliku. Procedura ta nie pozwala rowniez ustawiac tego atrybutu dla innych zbiorow, co czesciowo wyklucza pojawianie sie nowych, nieusuwalnych plikow na dysku. Instalacja tego programu (nazwijmy go PROTECT.COM) przebiega w sposob nastepujacy:

  1. ustawiamy newralgicznym plikom (wsrod nich musi byc config.sys, autoexec.bat i protect.com) atrybut Read Only,
  2. wstawiamy do config.sys linijke:"INSTALL sciezka_dostepu\PROTECT.COM" lub "INSTALLHIGH sciezka_dostepu\PROTECT.COM" (zamiast w config-u mozna w autoexec-u zamiescic:"sciezka_dostepu\PROTECT.COM lub "LH sciezka_dostepu\PROTECT.COM"),
  3. na poczatku pliku config.sys umieszczamy polecenie "SWITCHES /F /N" (nie bedzie wtedy mozliwe ominiecie plikow konfiguracyjnych ani ich krokowe, opcjonalne wykonanie podczas inicjacji systemu),
  4. resetujemy komputer, wchodzimy do CMOS SETUP, wybieramy dla Boot Sequence opcje "C,A" oraz zmieniamy (lub ustanawiamy) haslo do CMOS SETUP (aby osoby niepowolane nie mogly zmienic sekwencji bootowania).

Teraz po kazdym restarcie komputer bedzie chroniony przez program PROTECT.

Deinstalacje programu mozna przeprowadzic przez start komputera z dyskietki (osoba upowazniona bedzie musiala najpierw zmienic sekwencje bootowania w CMOS SETUP), wyzerowanie plikom konfiguracyjnym atrybutow Read Only i usuniecie z nich odpowiednich polecen.

Oto odnosnik do przykladowego, assemblerowego kodu zrodlowego programu PROTECT, autorstwa pana Marcina Lemanskiego.


Przykladowe rozwiazanie hardwarowe

Przedstawimy tu system PC Security SecCard 1012, kontrolujacy dostep do komputera oraz informacji w nim zgromadzonych.

W systemie znalazla sie specjalna 8-bitowa karta identyfikacyjna, wkladana w gniazdo ISA wraz z dolaczanym do niej czytnikiem zblizeniowym. Po zainicjowaniu systemu dostep do komputera maja tylko zdefiniowani uzytkownicy oraz administrator majacy specjalne uprawnienia. Wewnetrzny mikroprocesor karty podczas startu komputera przejmuje nad nim kontrole: blokuje maszyne do czasu zalogowania sie jednego z uprawnionych uzytkownikow. W celu zalogowania sie nalezy najpierw umiescic karte identyfikacyjna na czytniku, a nastepnie podac haslo (maksymalnie 16 znakow). Jesli karta i haslo odpowiadaja danym umieszczonym w pamieci SecCard, nastepuje uruchomienie calego komputera.

Jesli podczas pracy komputera oddalimy karte identyfikacyjna od glowicy czytajacej, spowoduje to blokade pracy systemu operacyjnego, wygaszenie monitora oraz blokade klawiatury. Ponowne zblizenie karty do czytnika pozwoli kontynuowac prace na komputerze w miejscu jej przerwania. Dodatkowa ochrone danych na dysku komputera zapewnia ich zaszyfrowanie wedlug praktycznie niepowtarzalnego klucza - kodowanie i rozkodowywanie dysku odbywa sie "w locie". SecCard rejestruje takze wszelkie proby sabotazu (np. wyjecie karty na dluzej niz 1 sekunde), o czym informuje przy ponownym starcie komputera. Naciskajac odpowiedni klawisz mozna dalej uruchomic komputer bez kontroli dostepu uzytkownika. W przypadku zaszyfrowanego dysku twardego nie bedzie on rozpoznawalny przez system operacyjny az do czasu podania klucza deszyfrujacego. System SecCard bedzie pozostawac w stanie deinstalacji do momentu ponownej jego inicjalizacji lub prawidlowego zalogowania sie administratora.

Bezpieczenstwo dostepu gwarantowane jest w ten sposob, iz tylko jeden uzytkownik moze sie zarejestrowac przez SecCard z ta sama karta identyfikacyjna. Kazdy identyfikator zawiera unikalne dane uniemozliwiajace jego podrobienie. Ponadto mozna deklarowac dlugosc oraz okres waznosci hasla (w dniach), a takze dozwolona liczbe bledow przy jego podawaniu - w przypadku przekroczenia tej liczby zostanie zawieszona waznosc karty identyfikacyjnej uzytkownika. Zablokowanie praw dostepu do komputera moze uchylic tylko administrator.

Jedynie zarejestrowany administrator moze zainicjowac funkcje zabezpieczenia, na ktore skladaja sie: szyfrowanie dysku twardego, zmiana klucza i zmiana sposobu szyfrowania dysku twardego, oraz jego odszyfrowanie. Podczas inicjalizacji karty SecCard pierwszy uzytkownik, ktory przeprowadza te operacje, automatycznie staje sie administratorem systemu. Zarejestrowany jako administrator, ma prawo do definiowania innych uzytkownikow i dalszych administratorow.

Administrator moze usunac badz czasowo zablokowac prawa pozostalych uzytkownikow, sprawdzic ich poprzednie prawa (parametry i prawa dostepu), a takze usunac zaistniale ograniczenia. Nie zdola natomiast przypadkowo zablokowac sobie praw, czy tez wykreslic sie z listy uprawnionych.

System SecCard umozliwia okreslanie praw dostepu do napedow dyskowych dla kazdego uzytkownika indywidualnie. Administrator okresla takze, czy uzytkownik ma prawo uruchomic komputer z dyskietki systemowej. Blokada uruchomienia z dyskietki nie moze zostac ominieta (chyba ze przy programowej deinstalacji karty SecCard, lecz wtedy nie bedzie dostepu do dysku twardego, o ile zostal on uprzednio zaszyfrowany).

Wszystkie zgromadzone na karcie SecCard informacje dotyczace uprawnien sa zabezpieczone poprzez jej wlasny mikroprocesor i zadne proby odzczytania czy zmiany bez stosownych uprawnien nie sa mozliwe.

Wewnetrzna data i czas karty sluza do okreslenia daty wygasniecia waznosci hasel uzytkownikow oraz poprawnego okreslania daty i czasu ostatniego logowania. Kazdorazowo w pamieci karty zapisywana jest data i czas logowania kazdego uzytkownika, ustalona wedlug indywidualnego zegara systemu SecCard.

Dane z karty identyfikacyjnej sa przesylane do systemu SecCard przez bezposredni interfejs laczacy czytnik z mikroprocesorem. Ma do nich dostep wylacznie administrator. Hasla uzytkownikow nie sa zapisywane w postaci znakowej. Bufor, ktory jest uzywany przy wprowadzaniu hasla z klawiatury, aktywnie modyfikuje wprowadzane znaki. Podczas logowania sie przy starcie systemu nie mozna w prosty sposob zinterpretowac zarejestrowanego hasla, wiec wszelkie proby rozszyfrowania oprogramowania zainstalowanego na dysku twardym czy dyskietkach sa bezskuteczne.

SecCard pozwala rowniez uzytkownikom na prace z calkowicie zaszyfrowanym dyskiem twardym. Trzeba w tym celu uruchomic program szyfrujacy. Szyfrowane sa wszystkie sektory lacznie z bootujacym, bez wzgledu na strukture partycji, katalogow czy plikow. Po zalogowaniu sie, system SecCard szyfruje wszystkie dane zapisywane na dysk i odszyfrowuje wszystkie dane odczytywane.

Przy rozpoczynaniu kazdej sesji wyswietlana jest data i czas ostatniego logowania sie danego uzytkownika. W ten sposob sprawdzane jest, czy od tego czasu nie miala miejsca nieautoryzowana proba logowania sie na podstawie posiadanego identyfikatora (na przyklad w przypadku jego kradziezy).

Na koniec proponuje zapoznac sie z danymi technicznymi urzadzenia oraz z informacjami o mozliwosciach jego nabycia i cenie.


spis tresci

rozdzial poprzedni

bibliografia i jeszcze kilka odnosnikow