Szyfrowanie danych – kiedy stosować szyfrowanie plików?

Wyślij link znajomemu

Definicja szyfrowania danych

Szyfrowanie danych jest procesem, który polega na przekształcaniu informacji w taki sposób, że stają się niezrozumiałe dla osób nieuprawnionych. Szyfrowanie danych ma na celu zapewnienie poufności, integralności i autentyczności danych, a także zapobieganie ich kradzieży, manipulacji lub utracie.

Szyfrowanie danych w przedsiębiorstwie pozwala zapewnić:

1) Poufność danych – zastosowanie odpowiednich algorytmów szyfrowania pozwala przekształcić dane w taki sposób, żeby były one nieczytelne dla podmiotów (osób lub systemów) nieposiadających odpowiedniego klucza do zdekodowania zasobów;

2) Integralność danych – szyfrowanie pozwala uchronić dane przed modyfikacją podczas ich transmisji bądź przechowywania bez wiedzy i zgody właściciela danych;

3) Uwierzytelnienie – możliwe jest uwierzytelnienie tożsamości strony internetowej, aplikacji bądź użytkownika przy pomocy certyfikatów SSL/TLS, dzięki czemu użytkownik będzie miał pewność, że łączy się z prawdziwym serwerem danej strony czy aplikacji;

4) Ochronę przed atakami – istotne jest szyfrowanie danych w celu zapewnienia ochrony informacji przed różnymi atakami cybernetycznymi, takimi jak Man-in-the-Middle, podsłuchiwanie informacji przepływających w ruchu sieciowym czy wstrzyknięcie danych;

5) Niezaprzeczalność – dzięki odpowiednio skonfigurowanej infrastrukturze kryptograficznej odbiorca może dowieść, że dane zostały przesłane przez danego nadawcę, a nadawca nie może zaprzeczyć wysłania tych danych.

Szyfrowanie jako mechanizm bezpieczeństwa systemów został wprost wymieniony w art. 32 RODO jako przykład rozwiązania służącego ochronie danych osobowych przed ryzykiem naruszenia praw lub wolności osób fizycznych.

Ustawodawca nie przedstawił jednak bardziej szczegółowych wytycznych wskazujących w jakich sytuacjach oraz przy użyciu jakich metod szyfrowanie powinno być stosowane. Administratorowi danych nie pozostaje zatem nic innego, jak odwołać się do „najnowszego stanu wiedzy” oraz norm i standardów w zakresie dostępnych rozwiązań w tym zakresie.

Szyfrowanie powinno być stosowane w szczególności, gdy sytuacja dotyczy następujących zasobów:

1) Aplikacja lub strona WWW dostępna przez sieć Internet – w takim wypadku niewątpliwie należy zastosować szyfrowanie danych przesyłanych pomiędzy serwerem aplikacji a jej użytkownikiem. Wedle obecnych standardów powinno się stosować co najmniej:
· szyfrowanie HTTPS z wykorzystaniem protokołu TLS w wersji 1.2 lub 1.3,
· certyfikat serwera RSA o długości 2048 bitów.

2) Dane w spoczynku (data in rest) dostępne z sieci publicznej – bazy danych, kopie zapasowe lub inne dane, do których dostęp jest możliwy z sieci publicznej także powinny być szyfrowane. Szyfrowanie danych dostępnych za pośrednictwem sieci publicznej może odbywać się np. przy pomocy:
· szyfrowania baz danych – wiele systemów zarządzania bazami danych (DBMS) oferuje mechanizmy szyfrowania, które pozwalają na zabezpieczenie danych przechowywanych w tabelach,
· szyfrowania danych w chmurze (Cloud encryption) – dostawcy usług chmurowych często oferują własne mechanizmy szyfrowania danych przechowywanych na ich serwerach,
· szyfrowania macierzy dyskowych – macierze można m.in. szyfrować na poziomie dysków, woluminów wirtualnych, bloków (SAN – Storage Area Network) bądź plików (NAS – Network Attached Storage).
· szyfrowanie plików na serwerach – pliki na serwerach mogą być szyfrowane na poziomie plików, katalogów bądź szyfrowane mogą być całe dyski.

3) Poczta elektroniczna – wiadomości e-mail są standardowym i często wykorzystywanym środkiem komunikacji, istotne jest zatem dbanie o prywatność i bezpieczeństwo przesyłanych danych. Istnieją dwa główne aspekty szyfrowania w związku z wiadomościami e-mail:
· Szyfrowanie połączenia (zabezpieczenie odpowiednim protokołem TLS) – kiedy komunikują się ze sobą serwery bądź następuje komunikacja nadawca – serwer pocztowy, dane są szyfrowane za pomocą protokołu TLS w czasie rzeczywistym, co minimalizuje ryzyko przechwycenia danych w trakcie przesyłania,
· Szyfrowanie zawartości (szyfrowanie całości wiadomości lub samych załączników):
o szyfrowanie całej wiadomości – stosowane są najczęściej mechanizmy oferowane przez oprogramowanie poczty lub korzysta się z oprogramowania firm trzecich umożliwiające szyfrowanie całych wiadomości poprzez integrację z oprogramowaniem poczty.
o szyfrowanie załączników – stosuje się programy do szyfrowania plików, np. WinZIP. Hasło do odszyfrowania dokumentu powinno zostać przesłane za pomocą innego kanału komunikacyjnego, np. wiadomości SMS. Nigdy nie przesyłam haseł mailem, jeśli dokument także wysłaliśmy mailem.
Istniej także możliwość szyfrowania za pomocą kluczy. Przykładem jest tutaj rozwiązanie PGP (Pretty Good Privacy) lub jego otwarta implementacja GPG (GNU Privacy Guard). W metodzie tej wykorzystywane są pary kluczy (klucz publiczny i klucz prywatny). Obecnie najczęściej wykorzystywanymi są klucze RSA o długości minimalnej 2048 bitów. Szyfrowanie przy pomocy kluczy realizujemy szyfrując wiadomość kluczem publicznym odbiorcy wiadomości. Mając prywatny klucz szyfrujący, odbiorca może ją odszyfrować. Zaletą tej metody jest brak konieczności przesyłania haseł i duże bezpieczeństwo tej metody.

4) Urządzenia mobilne lub przenośne (np. laptopy, dyski przenośne) – ze względu na wysokie ryzyko zgubienia lub kradzieży urządzeń, pamięć powinna być odpowiednio zaszyfrowana. Istnieją różne metody szyfrowania, w tym przede wszystkim:
· Szyfrowanie całego dysku – pamięć wewnętrzna powinna być szyfrowana za pomocą kluczy symetrycznych co najmniej AES-192 lub AES-256.
· Szyfrowanie katalogów lub plików – to rozwiązanie polega na selektywnym zastosowaniu szyfrowania tylko do wybranych danych; poszczególne pliki mogą zostać zaszyfrowane i wymagać odpowiedniego klucza bądź hasła do ich odczytania.

szyfrowanie danych

Podstawowe modele szyfrowania danych (techniki szyfrowania)

Modele szyfrowania danych to sposoby, w jakie dane są przekształcane z postaci czytelnej dla człowieka na postać niezrozumiałą dla osób nieuprawnionych. Istnieją różne rodzaje szyfrowania, takie jak:

Szyfrowanie symetryczne

Ta technika polega na użyciu tego samego klucza do szyfrowania i odszyfrowywania danych. Klucz jest wspólny dla nadawcy i odbiorcy, dlatego musi być przechowywany w tajemnicy i bezpiecznie przekazywany. Przykładami szyfrów symetrycznych są AES, DES, RC4 czy Blowfish. Szyfrowanie symetryczne jest szybkie i efektywne, ale ma też wady, takie jak konieczność zarządzania kluczami, ryzyko ich skompromitowania lub utraty, a także trudność w zapewnieniu uwierzytelnienia i niezaprzeczalności.

Szyfrowanie asymetryczne

Algorytm szyfrujący wykorzystywany w tej technice polega na użyciu pary kluczy: prywatnego i publicznego. Klucz prywatny służy do odszyfrowywania danych, a klucz publiczny do ich szyfrowania. Klucz prywatny jest znany tylko właścicielowi, a klucz publiczny może być udostępniany innym osobom. Przykładami szyfrów asymetrycznych są RSA, ECC, ElGamal czy DSA. Szyfrowanie asymetryczne jest bezpieczniejsze i łatwiejsze w zarządzaniu kluczami niż szyfrowanie symetryczne, ale jest też wolniejsze i wymaga większej mocy obliczeniowej. Szyfrowanie asymetryczne umożliwia również realizację funkcji takich jak podpis cyfrowy, uwierzytelnianie lub wymiana kluczy symetrycznych.

Szyfrowanie hybrydowe

Metoda łączenia szyfrowania symetrycznego i asymetrycznego. Polega ona na tym, że wiadomość jest szyfrowana kluczem symetrycznym, a następnie klucz ten jest szyfrowany kluczem asymetrycznym odbiorcy. W ten sposób nadawca i odbiorca mogą wymieniać się zaszyfrowanymi wiadomościami, korzystając z publicznych i prywatnych kluczy asymetrycznych, bez konieczności wcześniejszego uzgadniania klucza symetrycznego. Szyfrowanie hybrydowe jest często stosowane w protokołach komunikacyjnych, takich jak SSL/TLS czy PGP, ponieważ łączy zalety szybkości szyfrowania symetrycznego i bezpieczeństwa szyfrowania asymetrycznego.

Szyfrowanie end-to-end

Szyfrowanie end to end jest techniką zabezpieczania komunikacji, która zapewnia, że tylko nadawca i odbiorca mogą odczytać wiadomości. Szyfrowanie end to end polega na tym, że nadawca szyfruje wiadomość kluczem prywatnym, a odbiorca odszyfrowuje ją kluczem publicznym. Klucze są generowane przez algorytmy kryptograficzne i nie są udostępniane nikomu innemu. Szyfrowanie end to end zapobiega podsłuchiwaniu, manipulowaniu i podszywaniu się pod nadawcę lub odbiorcę. Szyfrowanie end to end jest stosowane w wielu aplikacjach komunikacyjnych, takich jak WhatsApp, Signal, Telegram czy ProtonMail. Szyfrowanie end to end zapewnia prywatność, poufność i integralność danych. Wadą tego rozwiązania jest fakt, że musimy mieć zaufanie do dostawcy danego kanału komunikacyjnego, że nie ujawni klucza szyfrującego.

Szyfrowanie homomorficzne

Rodzaj kryptografii, który umożliwia wykonywanie obliczeń na danych zaszyfrowanych bez ich odszyfrowywania. Jest to przydatne w sytuacjach, gdy dane są przechowywane lub przesyłane w chmurze i nie chcemy ujawniać ich treści ani klucza deszyfrującego. Szyfrowanie homomorficzne pozwala na zachowanie poufności i integralności danych, jednocześnie umożliwiając ich przetwarzanie. Szyfrowanie homomorficzne jest uznawane za rewolucyjne w dziedzinie kryptografii i ma wiele potencjalnych zastosowań, np. w medycynie, bankowości czy sztucznej inteligencji. Wadą tego typu szyfrowania jest niestety konieczność stosowania znacznie wydajniejszych mocy obliczeniowych. W dalszym ciągu jest to technologia w fazie eksperymentalnej i nie nadaje się do wszystkich zastosowań.

Metody łamania szyfru

Atak statystyczny

Metoda kryptoanalizy, która polega na analizie częstości występowania liter, słów lub innych elementów tekstu jawnego w tekście zaszyfrowanym. Celem takich ataków jest znalezienie klucza lub algorytmu szyfrującego, który pozwoli odszyfrować wiadomość. Ataki statystyczne wykorzystują fakt, że niektóre języki mają charakterystyczny rozkład częstości liter lub innych cech tekstu, które mogą być wykryte w tekście zaszyfrowanym.

Atak brutalny (brute-force)

Metoda łamania zabezpieczeń kryptograficznych, która polega na systematycznym sprawdzaniu wszystkich możliwych kombinacji kluczy lub algorytmów szyfrujących, aż do znalezienia tego, który pasuje do danego szyfrogramu. Jest to bardzo czasochłonna i pochłaniająca zasoby technika, która wymaga dużej mocy obliczeniowej i pamięci. Atak brute-force może być skuteczny tylko wtedy, gdy długość klucza lub algorytmu jest mała lub gdy istnieją słabe punkty w implementacji szyfrowania.

Atak słownikowy (dictionary attack)

Rodzaj ataku hakerskiego, polegający na próbie złamania hasła poprzez sprawdzanie wszystkich możliwych słów z danego zbioru, zwanego słownikiem. Atak taki jest skuteczny, jeśli hasło jest słabym lub powszechnym słowem, takim jak imię, nazwisko, data urodzenia lub fraza z kultury popularnej. Aby zabezpieczyć się przed atakiem słownikowym, należy używać silnych i unikalnych haseł, zawierających litery, cyfry i znaki specjalne.

Atak kryptoanalizy (cryptanalysis)

Atak kryptoanalizy to proces odkrywania ukrytych informacji poprzez analizę szyfrogramów lub systemów kryptograficznych. Istnieją różne rodzaje ataków kryptoanalizy, takie jak atak z tekstem jawnym, atak z tekstem wybranym, atak z kluczem znanym lub atak z kluczem wybranym. Celem ataku kryptoanalizy jest znalezienie słabości w algorytmie szyfrującym lub protokole kryptograficznym, które umożliwią złamanie szyfru lub podsłuchanie komunikacji.
Atak kanału bocznego (side-channel attack)

Atak kanału bocznego

Atak kanału bocznego to rodzaj ataku na system kryptograficzny, który wykorzystuje informacje uzyskane z obserwacji fizycznych działania systemu, takich jak czas, pobór mocy, hałas czy promieniowanie elektromagnetyczne. Ataki te nie polegają na analizie samego algorytmu kryptograficznego, lecz na wykorzystaniu luk w jego implementacji. Ataki kanału bocznego mogą być bardzo skuteczne i trudne do wykrycia, dlatego należy stosować odpowiednie środki zapobiegawcze i zabezpieczenia.

Autor: Wiesław Krawczyński