Kryptografia a bezpieczeństwo danych

Stosowanie technik kryptograficznych nadal jest mało popularne w Polsce. Wynika to zarówno ze słabej znajomości tematu, jak i z braku wiedzy o zagrożeniach, na jakie narażone są dane przechowywane w systemach komputerowych oraz transmitowane za pośrednictwem rozmaitych mediów.

Stosowanie technik kryptograficznych nadal jest mało popularne w Polsce. Wynika to zarówno ze słabej znajomości tematu, jak i z braku wiedzy o zagrożeniach, na jakie narażone są dane przechowywane w systemach komputerowych oraz transmitowane za pośrednictwem rozmaitych mediów.

Nie wszyscy użytkownicy sieci komputerowych zdają sobie sprawę z faktu, iż list, przesyłany pocztą elektroniczną, może w prosty sposób przechwycić i przeczytać osoba postronna. Co gorsza, obok przechwytywania poczty inni internauci są w stanie podszywać się pod nas.

Niewielu użytkowników systemów komputerowych zdaje sobie sprawę z faktu, iż większość informacji przesyłanych za pośrednictwem sieci lokalnych i rozległych może być w stosunkowo łatwy sposób przechwycona bądź też zmodyfikowana.

Często spotykam się z przeświadczeniem użytkowników systemów komputerowych, że ochrona zasobów przy użyciu prostej identyfikacji użytkownika, polegającej na podaniu systemowi zdalnemu odpowiedniego identyfikatora i hasła, zapewnia wysoki poziom bezpieczeństwa. Jest to jednak dalekie od prawdy. Postaram się pokazać, jak złudne jest przekonanie o rzekomym bezpieczeństwie danych przesyłanych za pośrednictwem sieci komputerowych i jakie najczęstsze zagrożenia czyhają na Wasze dane, a także jak można zabezpieczyć się przed tymi zagrożeniami, stosując dostępne techniki kryptograficzne, czyli mówiąc wprost poprzez odpowiednie szyfrowanie przesyłanych informacji, zapewniające odpowiedni poziom ich poufności, oraz właściwą identyfikację systemu i użytkownika.

MNOŻĄ SIĘ ZAGROŻENIA

Obecnie sprawne funkcjonowanie przedsiębiorstwa jest najczęściej uzależnione od dobrze działającego systemu informatycznego. Systemy te, zainstalowane w firmach, zawierają najbardziej istotne dla działania i istnienia przedsiębiorstwa informacje - wszelkiego rodzaju systemy finansowo-księgowe, kadrowe, magazynowe, bazy danych gromadzące dane o klientach i kontrahentach, dokumenty wewnętrzne o różnym stopniu poufności, a w tym projekty i dokumentację. Niejednokrotnie firma ma wiele oddziałów położonych w różnych częściach kraju lub świata, które muszą wymieniać poufne informacje między sobą. Nie należy się więc dziwić, że mogą znaleźć się zarówno osoby, jak i instytucje pragnące w sposób nie autoryzowany dotrzeć do poufnych informacji zgromadzonych w systemie informatycznym naszej firmy.

O ile właściwie skonstruowana polityka bezpieczeństwa może chronić istotne dane przed użytkownikami wewnętrznymi i częściowo zewnętrznymi, komputery można umieścić w bezpiecznych pomieszczeniach i zatrudnić odpowiednią liczbę uzbrojonych strażników, a bezpieczeństwo sieci lokalnej można zapewnić przez instalację i właściwą konfigurację odpowiednio dobranego systemu firewall, o tyle najczęściej nie jesteśmy w stanie odpowiadać za bezpieczeństwo naszych poufnych danych w chwili, gdy muszą one z różnych przyczyn opuścić firmę i dotrzeć do innego oddziału lub innej, współpracującej z naszą firmą instytucji.

Istnieje wiele zagrożeń czyhających na dane transmitowane za pośrednictwem sieci komputerowej. Do najważniejszych z nich należą:

- Możliwość bezpośredniej kradzieży danych na terenie firmy - poczynając od zwykłego skopiowania tych informacji z niezbyt dobrze zabezpieczonego komputera (np. PC pracującego pod kontrolą Windows), poprzez "podsłuchiwanie" ruchu w sieci lokalnej przy użyciu zwykłej karty Ethernet i odpowiedniego oprogramowania (tzw. sniffera), aż do metod bardziej zaawansowanych, takich jak "podsłuchiwanie" danych przesyłanych kablem sieciowym przy użyciu odpowiedniej przystawki zaopatrzonej w elastyczny drut, którym ściśle owija się kabel sieciowy, lub też innej metody "nasłuchu" fal elektromagnetycznych.

- Kradzież danych i/lub ich modyfikacja w wyniku naruszenia systemu autoryzacji przez intruza. Intruz może m.in. korzystając z ww. technik "nasłuchu" sieci komputerowej, zdobyć ważne identyfikatory użytkowników i hasła, nie włamując się uprzednio na żaden z serwerów sieciowych. Rzecz jasna przechwycenie takich haseł może odbyć się na wiele innych sposobów - jest ich dostatecznie dużo, aby zapełniły odrębny artykuł poświęcony wyłącznie tym technikom. Intruz - mający ważny identyfikator użytkownika systemu i właściwe hasło - może podszyć się pod danego użytkownika i korzystając z jego zasobów próbować nielegalnie zdobyć uprawnienia wystarczające do kradzieży i/lub modyfikacji istotnych informacji. Może też, podszywając się pod legalnego użytkownika systemu, wprowadzać w błąd inne osoby poprzez dezinformację - np. za pomocą odpowiednio spreparowanej poczty elektronicznej.

- Możliwość "podkładania" przez intruza zmodyfikowanych informacji do strumienia transmitowanych danych, co w efekcie może wpływać na wadliwe, często zakończone utratą ważnych informacji bądź włamaniem do systemu, działanie wybranych elementów sieci komputerowej np. serwerów - tzw. spoofing.

JAK CHRONIĆ INFORMACJE

Przed tego typu zagrożeniami możemy chronić nasze dane, korzystając z obecnie dostępnych narzędzi kryptograficznych. Co może wydać się dziwne, efektywne narzędzia tego rodzaju mogą okazać się dość tanie lub wręcz bezpłatne. Istnieją także rozwiązania drogie, a nawet bardzo drogie, bazujące na specjalizowanym sprzęcie współpracującym z odpowiednim oprogramowaniem. Dziś przedstawię pokrótce rozwiązania najbardziej dostępne - bezpłatne i tanie, co wcale nie musi oznaczać, że mało wartościowe. Podstawową zaletą tych rozwiązań jest ich dostępność i niekiedy bardzo wysoka jakość i efektywność.

Zacznijmy od bezpiecznej pracy zdalnej przy użyciu zwykłego identyfikatora i hasła użytkownika. Bardzo często do otwarcia sesji na zdalnym komputerze wykorzystuje się protokół telnet (najczęściej program umożliwiający otwarcie zdalnej sesji również nazywa się telnet) lub rlogin (od ang. Remote Login). Obie te metody mają zasadniczą wadę - zarówno identyfikator, jak i hasło użytkownika przesyłane są za pośrednictwem sieci (niejednokrotnie rozległej - np. Internetu) w postaci czystego tekstu ASCII. Wystarczy więc, by intruz przechwycił tego typu informację i włamanie do systemu gotowe! Goryczy dopełnia fakt, iż cały dialog użytkownika z komputerem zdalnym również jest przesyłany przez sieć w formie czytelnego tekstu. Podobnie wygląda sprawa transmisji plików za pośrednictwem FTP lub też rcp (od ang. Remote Copy).

O ile autoryzację użytkownika możemy wzbogacić o mechanizm jednorazowego hasła (ang. One Time Password), o tyle nadal nie załatwia nam to sprawy "podsłuchiwania" sesji roboczej, a nawet prób jej modyfikacji (np. prób podstawienia polecenia systemowego, które zostanie wykonane przez zdalny komputer jako polecenie wydane przez autoryzowanego, aktualnie pracującego użytkownika - m.in. w tym celu hakerzy wykorzystują wspomniany spoofing).

Jak zwykle, potrzeba jest matką wynalazku. Przed kilkoma laty powstało oprogramowanie o nazwie SSH (ang. Secure Shell), którego źródła w języku C zostały udostępnione w Internecie. SSH jest typowym pakietem klient-serwer, który ma, w założeniu, zastąpić rlogin i telnet oraz umożliwić bezpieczną transmisję danych i bezpieczne tunelowanie (za pośrednictwem szyfrowanego kanału) dowolnej, innej usługi sieciowej, wykorzystującej protokół TCP/IP. (Więcej o tunelowaniu w artykule "Tunelowanie - cóż to jest?").

SSH wykorzystuje technikę kluczy asymetrycznych w powiązaniu z takimi algorytmami szyfrującymi, jak RSA, 3DES, Blowfish czy MD5. Podczas nawiązywania zdalnego połączenia najpierw tworzony jest szyfrowany kanał danych, później użytkownik podaje swoje hasło i rozpoczyna pracę. W efekcie nie jest możliwe "podsłuchanie" ani hasła użytkownika, ani też całości dialogu użytkownika z systemem. Można też powiedzieć inaczej - "podsłuchanie" jest możliwe, lecz podsłuchane informacje są bezwartościowe dla intruza zarówno w czasie trwania sesji roboczej, jak i po jej zakończeniu. SSH wykorzystuje w procesie autoryzacji klucze 1024-bitowe. Ponadto istnieje możliwość kompresji przesyłanych danych ?w locie?, co jest istotne szczególnie dla użytkowników kiepskich połączeń sieciowych. Kompresja stanowi też dodatkowe zabezpieczenie danych. Więcej informacji na temat SSH można znaleźć m.in. na stronie WWW: http://www.cs.hut.fi/ssh/.

ZABEZPIECZ SWOJĄ POCZTĘ

Istnieją proste, dostępne dla wszystkich internautów, mechanizmy umożliwiające szyfrowanie elektronicznych przesyłek. Aby zapewnić jeszcze wyższy stopień bezpieczeństwa, możemy posłużyć się cyfrowymi podpisami jednoznacznie potwierdzającymi autorstwo listów.

Świat nie kończy się jednak na tradycyjnej pracy zdalnej. Ogromną rolę we współczesnych systemach informatycznych odgrywa przesyłanie dokumentów - najczęściej w formie poczty elektronicznej. Najpopularniejszy obecnie protokół transmisji poczty elektronicznej - SMTP (ang. Simple Mail Transfer Protocol), stosowany powszechnie w Internecie i w sieciach wykorzystujących technologie intranetowe - nie zawiera praktycznie żadnych mechanizmów, umożliwiających zapewnienie bezpieczeństwa przesyłanej informacji.

Podobnie jest z autoryzacją. Użytkownik otrzymujący tradycyjną pocztę internetową nigdy nie może być pewien, że konkretny list napisał nadawca, którego dane można odczytać z nagłówka wiadomości. Co gorsza, nie można mieć pewności, że wiadomość nie jest zmodyfikowana. Autorzy programów obsługujących pocztę internetową próbowali w ciągu ostatnich lat nieco poprawić mechanizmy autoryzacji. W efekcie wysyłanie tzw. fakemails stało się nieco trudniejsze, ale nadal nie niemożliwe. Sytuacja nie jest jednak tragiczna!

Użytkownikom Internetu i intranetów pomocny staje sie słynny program PGP (ang. Pretty Good Privacy), którego autorem jest Amerykanin - Philip R. Zimmermann, znany specjalista z zakresu kryptografii i inżynierii oprogramowania, nagrodzony wieloma prestiżowymi nagrodami. P. Zimmermann jest również założycielem firmy PGP Inc., która obecnie wchodzi w skład konsorcjum o nazwie Network Associates.

Program PGP jest dostępny zarówno w postaci źródeł w języku C, jak i wersji przystosowanych do pracy w różnych systemach operacyjnych, w tym na platformę Windows oraz różne odmiany systemu Unixa. Dostępne są zarówno komercyjne, jak i darmowe wersje tego programu, różniące się typem licencji. Wersje komercyjne mogą być wykorzystywane w celach komercyjnych, natomiast bezpłatne wyłącznie do użytku prywatnego. Program PGP stosuje technikę kluczy asymetrycznych (klucz prywatny i publiczny), co rozwiązuje problem zachowania poufności przy przekazywaniu klucza, umożliwiającego szyfrowanie informacji innym osobom.

Ze względu na silne metody szyfrowania danych użyte w programie PGP, jest on objęty ograniczeniami eksportowymi nałożonymi przez rząd USA. Ograniczenia te ominięto poprzez wywiezienie z USA wersji źródłowej PGP w postaci drukowanej (dotyczą one eksportu wersji elektronicznej) i ponowne odtworzenie źródeł w języku C już w Europie przy użyciu skanerów i oprogramowania OCR. W ten sposób powstała legalna wersja PGP możliwa do wykorzystania poza USA bez konieczności otrzymywania zgody rządu USA. Wersja międzynarodowa zawiera w nazwie literę "i" (od ang. International - międzynarodowy). Obecnie obowiązującą wersją PGP jest PGP 5.5i.

Program PGP był pierwotnie opracowany jako narzędzie umożliwiające zarówno szyfrowanie przesyłanych wiadomości e-mail, jak i tworzenie tzw. podpisu elektronicznego pod dokumentem przesyłanym w formie elektronicznej. Kryptograficzny podpis elektroniczny jest bardziej wiarygodny niż podpis odręczny. Największą zaletą podpisu elektronicznego jest to, że jego stosowanie uniemożliwia zmodyfikowanie przesyłanej informacji po zaopatrzeniu jej w podpis, a także podszywanie się intruza pod prawdziwego nadawcę listu e-mail. Oczywiście, możliwe jest zakodowanie informacji i dodatkowe zaopatrzenie jej w podpis elektroniczny, co w efekcie podwyższa wiarygodność. Jedyne, o co musi się troszczyć użytkownik, jest to, aby jego klucz prywatny PGP (tworzony przez użytkownika przy użyciu programu PGP podczas rozpoczynania pracy z nim) nie wpadł w ręce osób niepowołanych. Klucz PGP jest dodatkowo zabezpieczony hasłem, co utrudnia jego wykorzystanie przez osoby postronne, nawet w przypadku przejęcia przez nie klucza użytkownika - mimo to należy trzymać klucz prywatny w możliwie najpewniejszym miejscu. Natomiast klucz publiczny należy rozesłać do wszystkich osób, z którymi zamierzamy utrzymywać poufną korespondencję - klucz publiczny można nawet umieścić na swojej, publicznie dostępnej stronie WWW.

Program PGP jest dostępny w Internecie. Do programu dołączona jest dokładna dokumentacja wraz z opisem bezpiecznego posługiwania się nim. Program PGP może być wykorzystywany do kodowania dowolnych rodzajów plików komputerowych. Więcej informacji na ten temat można znaleźć na stronach WWW: http://www.pgpi.com/ oraz http://www.pgp.com/

SSH i PGP to obecnie najbardziej popularne i najważniejsze rozwiązania programowe, mające na celu zapewnienie bezpieczeństwa danych przesyłanych za pośrednictwem sieci komputerowych. Jak już wspomniałem, rozwiązań tego typu jest wiele - w tym bardzo dobrych urządzeń sieciowych, takich jak szyfrujące karty sieciowe czy routery, umożliwiające łączenie oddalonych od siebie fizycznie sieci lokalnych za pośrednictwem zakodowanego kanału informacyjnego. Stosowanie takich urządzeń umożliwia łączenie rozproszonych geograficznie sieci lokalnych w jedną, bezpieczną sieć wirtualną za pośrednictwem publicznych sieci rozległych - takich jak choćby Internet.


Zobacz również