SZYFROWANIE INFORMACJI W BAZACH DANYCH
WSTĘP
Ludzie od dawna starali się ukrywać różne informacje (z różnych powodów). Pojawienie się komputerów spowodowało powstanie nowych możliwości zabezpieczania danych przed dostępem do nich osób niepowołanych. W większości przypadków popularne metody kryptograficzne w wystarczający sposób zapewniają ukrycie danych przed innymi. Należy jednak pamiętać, że nie istnieje idealny algorytm, którego nie dałoby się złamać (wymaga to tylko czasu). Przyjmuje się, że algorytm kryptograficzny jest bezpieczny jeśli w momencie jego powstania nie istnieją metody i środki mogące go złamać (dobry algorytm powinien zapewniać bezpieczeństwo przynajmniej na kilkadziesiąt lat).
PODSTAWOWE POJĘCIA
Kryptografia (szyfrowanie danych) jest nauką zajmującą się szyfrowaniem, czyli procesem przekształcania danych w nieodczytalny, bez znajomości odpowiedniego klucza, szyfr. W zależności od tego czy do procesu deszyfrowania wykorzystywany jest ten sam klucz który brał udział w procesie szyfrowania czy inny wyróżniamy system kryptograficzny z kluczem tajnym (ten sam klucz, szyfrowanie symetryczne) oraz system krypotograficzny z kluczem publicznym (różne klucze, szyfrowanie niesymetryczne).
Szyfrowanie (ang. encryption) - to proces polegający na przekształceniu informacji
jawnej w informację zaszyfrowaną (kryptogram) za pomocą algorytmu
kryptograficznego oraz hasła szyfrowania (tzw. klucza).
W zapisie matematycznym szyfrowanie możemy zapisać:
E
k
(P) = C;
gdzie: Ek- funkcja szyfrująca;
P - tekst jawny;
C - szyfrogram;
Deszyfrowanie (ang. decryption) - to proces odwrotny do szyfrowania polegający na
tym, że kryptogram jest przekształcany z powrotem w oryginalną informację jawną za
pomocą algorytmu kryptograficznego oraz klucza.
W zapisie matematycznym deszyfrowanie możemy zapisać:
Dk
(C) = P;
gdzie: Dk- funkcja deszyfrująca;
W praktyce zachodzi potrzeba szyfrowania :
łańcuchów znaków;
liczb - dane typu byte, word, integer;
rekordów i zbiorów.
Klucz Kryptograficzny [klucz] (ang. cryptographic key) - ciąg symboli, od którego w
sposób istotny zależ y wynik przekształcenia kryptograficznego (np. szyfrowania,
deszyfrowania).
Każdy klucz ma przypisany przedział czasu (tzw. okres ważności klucza kryptograficznego),
w którym określony klucz jest uprawniony do użytku lub w którym klucze dla danego
systemu mogą pozostawać skuteczne.
Podstawowe warunki stosowalności kryptosystemu.
przekształcenia szyfrujące i deszyfrujące muszą być efektywne dla wszystkich kluczy;
użytkowanie systemu musi być łatwe;
bezpieczeństwo systemu powinno zależeć tylko od zagwarantowania poufności
kluczy,
Pierwszy warunek jest istotny w zastosowaniach komputerowych. Otóż szyfrowanie i
deszyfrowanie odbywa się zwykle podczas transmisji danych i dlatego operacje te muszą
przebiegać sprawnie, aby nie stanowiły przeszkody w realizacji zadania.
Z drugiego warunku wynika, że osoba szyfrująca powinna mieć łatwy dostęp do klucza
Korzystając z przekształcenia odwrotnego.
Trzeci warunek ustala, że algorytmy szyfrowania i deszyfrowania muszą być wewnętrznie
silne, tj. złamanie szyfru przy znajomości wyłącznie metody szyfrowania powinno być
niemożliwe.
Przegląd systemów kryptograficznych.
Kryptosystemy można podzielić na dwie grupy: symetryczne i asymetryczne.
W systemach symetrycznych (ang. symmetrical systems) lub jednokluczowych (ang. one-
key-systems) klucze szyfrowania i deszyfrowania są jednakowe (lub klucz szyfrujący jest
wyznaczany z klucza deszyfrującego i odwrotnie). Systemy te wymagają od nadawcy i
odbiorcy uzgodnienia klucza, zanim rozpoczną oni przesyłanie wiadomości. Klucz musi być
utrzymany w tajemnicy, bezpieczeństwo systemu bazuje bowiem na bezpieczeństwie klucza.
Ujawnienie klucza oznacza, że w takim systemie każdy będzie mógł szyfrować i deszyfrować
wiadomości. Jako przykłady szyfrów symetrycznych służyć mogą DES (Data Encryption
Standard), IDEA (International Data Encryption Algorithm), Rijndael
W systemach asymetrycznych (ang. asymmetrical systems) lub systemach dwukluczowych
(ang. two-key-systems) klucze szyfrowania i deszyfrowania różnią się tym, że jednego z nich
nie można określić w realnym czasie na podstawie drugiego za pomocą metod
obliczeniowych. Systemy te są nazywane systemami z kluczem jawnym, ponieważ klucz
szyfrujący można ujawnić. Każda osoba znająca ten klucz może zaszyfrować wiadomość,
lecz tylko posiadacz odpowiedniego klucza deszyfrującego będzie w stanie ją odczytać. W
systemach asymetrycznych klucz szyfrujący nazywany jest kluczem jawnym lub
publicznym (ang. public key), a klucz deszyfrujący kluczem tajnym lub prywatnym (ang.
private key). Przykładami tego typu systemów są algorytmy plecakowe, szyfr RSA (Rivest,
Shamir, Adelman), algorytm Rabina.
Sprzętowa implementacja algorytmów kryptograficznych.
Sprzętowa implementacja algorytmów kryptograficznych polega na tym, że dany
Algorytm kryptograficzny jest zaimplementowany w wybranym układzie scalonym. Dzięki
temu uzyskuje się dużą szybkość działania takiego układu. Dzieje się tak dlatego, że układ
projektowany jest w taki sposób, aby pewne operacje wykorzystywane przez dany algorytm
były wykonywane szybciej. Drugi powód rozpowszechnienia rozwiązań sprzętowych to
bezpieczeństwo. Istnieją bowiem sposoby fizycznej ochrony sprzętu przed niepożądaną
modyfikacją. Specjalizowane układy cyfrowe typu VLSI mogą być pokrywane środkami
chemicznymi w ten sposób, że dowolna próba wniknięcia do ich wnętrza spowoduje
zniszczenie układu. Ochrona przed promieniowaniem „ujawniającym” jest realizowana w ten
sposób, że istnieją specjalne skrzynki ekranujące, które nie przepuszczą żadnej informacji.
Kolejną zaletą jest łatwość instalowania. Chcąc szyfrować rozmowy telefoniczne, transmisje
faksowe itp. znacznie lepiej jest wstawić sprzęt szyfrujący specjalnego przeznaczenia do
telefonów, urządzeń faksowych i modemów, aniżeli umieścić go w mikroprocesorze lub
połączyć z oprogramowaniem. Z tych względów rozwiązania sprzętowe rozpowszechnione
są w większości zastosowań wojskowych i komercyjnych.
Programowa implementacja algorytmów kryptograficznych.
Programowa implementacja algorytmów kryptograficznych polega na tym, że dany
Algorytm kryptograficzny jest zaimplementowany w oprogramowaniu. Rozwiązanie takie
posiada kilka zalet i wad. Podstawowe zalety to: elastyczność i przenośność. Otóż algorytmy
napisane w języku C mogą być zaimplementowane na dowolnym komputerze, można je
zainstalować na wielu maszynach jak również włączyć do większych aplikacji. Do
najważniejszych wad należ y mniejsza szybkość działania w porównaniu z rozwiązaniem sprzętowym.
Zarys historyczny kryptografii.
Już w starożytności stosowane były pewne metody szyfrowania wiadomości o
charakterze strategicznym. Stosowane metody były dawniej zazwyczaj dość prymitywne i
pozwalały na złamanie szyfrów dostatecznie zdeterminowanemu przeciwnikowi. Sytuacja
uległa zmianie już w pierwszej połowie XX wieku. Zbudowano wtedy szereg systemów
szyfrowania przy pomocy urządzeń mechanicznych wykorzystywanych powszechnie podczas
II Wojny Światowej (np. niemiecki system Enigma). Prawdziwą rewolucję pod względem
projektowania systemów szyfrujących przyniósł rozwój elektroniki dający olbrzymie
możliwości operacji obliczeniowych niskim kosztem. Rozwój kryptografii od swych
początków był bardzo silnie związany z celami wojskowymi. To właśnie dla wojska
powstawały specjalistyczne urządzenia kryptograficzne, wykorzystywane do utajniania
różnych informacji o charakterze strategicznym.
Prawdziwy przełom w rozwoju kryptografii nastąpił w latach siedemdziesiątych wraz z
odkryciem asymetrycznych algorytmów szyfrujących. Olbrzymie zainteresowanie w
środowiskach naukowych spowodowały lawinowy wzrost ilości prowadzonych badań.
Wymiana informacji, jaka ma miejsce od tego czasu pozwoliła na ogromny rozwój wiedzy w
tej dziedzinie.
Niewystarczające zabezpieczenia
Na rynku istnieje wiele rozwiązań szyfrujących. Użytkownik może wybrać rozwiązanie do szyfrowania wybranych plików - w takim przypadku po utworzeniu nowego zbioru, który powinien pozostać poufny, należy każdorazowo taki zbiór zaszyfrować. Inną opcją jest tworzenie wirtualnego zaszyfrowanego dysku - wszystkie pliki zapisywane na takim dysku są automatycznie szyfrowane, jednak należy pamiętać, by poufne zbiory zapisywać zawsze wyłącznie na wirtualnym dysku. Pozostawienie jakiejkolwiek kopii poza wirtualnym dyskiem wiąże się z dużym ryzykiem. Niestety obydwie powyższe metody, nawet jeśli skrupulatnie pamiętamy o zapisywaniu danych we właściwych miejscach, tak naprawdę nie gwarantują 100% pewności bezpieczeństwa danych. Dopiero szyfrowanie całego dysku daje optymalny poziom bezpieczeństwa. Dlaczego tak się dzieje? Zagrożenie dla poufności naszych danych wynika ze specyficznych cech działania systemu operacyjnego w naszym komputerze - o czym osoby niezainteresowane na codzień informatyką nie zawsze są poinformowane. Chociażby kasowanie plików poleceniem ”usuń” tylko pozornie usuwa pliki z dysku. W rzeczywistości plik pozostaje na dysku, ale jest niewidoczny dla użytkownika korzystającego z komputera.
DLACZEGO SZYFRUJEMY DANE?
Pracując na komputerze gromadzimy na nim zwykle cenne poufne dane. Numery kart kredytowych, dane osobowe, strategie firm, listy klientów, umowy, listy płac, karty chorobowe pacjentów, to tylko przykład informacji, które traktujemy jako poufne.
W społeczeństwie opartym na wiedzy informacja jest najcenniejszym zasobem. Istnieje wiele sposobów zabezpieczania danych przed dostępem osób niepowołanych, ale najpewniejszym sposobem jest ich zaszyfrowanie.
Co ważne, obowiązek szyfrowania niektórych danych wynika również z przepisów prawa. Zgodnie z polskim ustawodawstwem każdy wynoszony poza obręb firmy komputer, na którym przetwarzane są dane osobowe, powinien być zabezpieczony rozwiązaniem szyfrującym:
„Osoba użytkująca komputer przenośny zawierający dane osobowe zachowuje szczególną ostrożność podczas jego transportu, przechowywania i użytkowania poza obszarem, o którym mowa w § 4 pkt 1 rozporządzenia, w tym stosuje środki ochrony kryptograficznej wobec przetwarzanych danych osobowych.” (Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 29 kwietnia 2004 roku.)
PRZYKŁADY PROGRAMÓW SZYFRUJĄCYCH DANE
Folder Lock- Dość popularny program do blokowania dostępu do wybranych katalogów. Dzięki niemu można ograniczyć dostęp do plików osobom nieupoważnionym, dzieciom, współpracownikom itp. Chronione pliki są ukrywane, nie ma możliwości ich usunięcia. Tak ukryte pliki są niedostępne dla wirusów, trojanów, czy programów typu spyware. Program umożliwia również zabezpieczanie danych w pamięciach przenośnych typu USB Flash Drive, Memory Stick, CD-RW, dyskietka 3,5'. Pliki chronione są 256-bitowym szyfrowaniem danych, pod różnymi systemami Windows, DOS na różnych systemach plików takich jak FAT16, FAT32, NTFS. Automatyczne czyszczenie historii ostatnio używanych plików zapewnia zacieranie śladów pracy.
TrueCrypt -W pełni darmowy program służący do szyfrowania danych "w locie". Pozwala zarówno na szyfrowanie całych dysków, ich partycji i przenośnych dysków USB (pendrive'ów), jak i na tworzenie wirtualnych zaszyfrowanych dysków (także ukrytych) o określonej pojemności - w obu przypadkach zabezpieczonych hasłem przed nieautoryzowanym dostępem. Szyfrowanie odbywa się za pomocą bardzo silnych algorytmów szyfrujących AES-256, Blowfish, CAST5, Serpent, Triple DES i Twofish, kodowanych nawet 448-bitowym kluczem szyfrującym. Możliwe jest także szyfrowanie kaskadowe tzn. szyfrowanie danych po kolei kilkoma algorytmami.
TopSecret Next Generation- Dobry polski program do zabezpieczania danych przechowywanych na komputerach, autorstwa znanej z programu AntiVirenKit Professional firmy G DATA Software. TopSecret Next Generation umożliwia szyfrowanie zasobów i aplikacji w taki sposób, aby inni użytkownicy tego samego komputera, nie mieli do nich dostępu, a jednocześnie, po podaniu hasła można było ich używać jak zwykłych plików i aplikacji, bez potrzeby odkodowywania. Idealnie nadaje się do ochrony poufnych danych, do których osoby nie powołane nie powinny mieć dostępu. Zawiera niszczarkę plików do bezpowrotnego usuwania wszystkich rodzajów plików.
Główne funkcje i zalety programu:
- Praca w Sejfach (wirtualnych dyskach).
- Dowolna ilość zakładanych sejfów oraz użytkowników, ograniczona jedynie pojemnością dysków fizycznych.
- Do wyboru trzy algorytmy szyfrowania: Rijndael, Serpent, Twofish.
- Technologia szyfrowania "w locie".
- Bezpieczna korespondencja dzięki szyfrowaniu poczty e-mail .
- Zabezpieczenie ekranu, gdy użytkownik na moment opuszcza stanowisko.
- Ukrywanie programu TopSecret NxG - staje się niewidoczny dla systemu Windows.
- Opcja ochrony antywirusowej plików wykonywalnych, znajdujących się w Sejfie.
- Niszczarka plików do bezpowrotnego usuwania wszystkich rodzajów plików.
SafeCryptor jest programem umożliwiającym szybkie i łatwe szyfrowanie tekstu. Dzięki temu można publicznie przesyłać poufne informacje (np. hasła, numery kart kredytowych) za pomocą wiadomości e-mail czy komunikatora internetowego bez obawy, że wiadomość zostanie odczytana przez osoby do tego nie upoważnione. Program szyfruje dane za pomocą unikalnego klucza wygenerowanego dla danego komputera. Dla zagwarantowania bezpieczeństwa używa szyfrowania AES (Advanced Encryption Standard) ze 128-bitowym kluczem szyfrującym. Program może automatycznie szyfrować i rozszyfrowywać dane pochodzące ze schowka systemowego.
SafeDecryptor to darmowy program pozwalający na odczytanie tekstu zaszyfrowanego programem SafeCryptor bez konieczności wykupywania komercyjnej licencji na ten program. Dzięki tym programom można publicznie przesyłać poufne informacje (np. hasła, numery kart kredytowych) za pomocą wiadomości e-mail czy komunikatora internetowego bez obawy, że wiadomość zostanie odczytana przez osoby do tego nie upoważnione. Aby odczytać zaszyfrowany tekst, musi on zostać zaszyfrowany wg wcześniej przekazanego klucza szyfrującego wygenerowanego na tym komputerze, na którym wiadomość ma być odczytana.