Czym jest szyfrowanie? Klucze, hashe i sumy kontrolne
Szyfrowanie przekształca czytelne informacje w szyfrogram, z którego za pomocą właściwego klucza można odzyskać dane. Jego celem jest zachowanie poufności danych podczas przesyłania lub przechowywania. Haszowanie i sumy kontrolne rozwiązują inne problemy: ich wyniku nie odszyfrowuje się, aby odzyskać pierwotną wiadomość. Pomylenie tych operacji łatwo daje złudne poczucie bezpieczeństwa.
Klucze i proces szyfrowania
Algorytm szyfrowania łączy tekst jawny z kluczem i tworzy szyfrogram. W szyfrowaniu symetrycznym strony współdzielą tajny klucz. W systemach asymetrycznych klucz publiczny i odpowiadający mu klucz prywatny pełnią różne role. Znaczenie mają algorytm, tryb działania, jakość klucza i sposób jego przechowywania. Stwierdzenie, że plik jest „zaszyfrowany”, niewiele mówi o jego bezpieczeństwie, jeśli hasło łatwo odgadnąć albo klucz wysłano w tej samej niezabezpieczonej wiadomości. Nowoczesne aplikacje powinny korzystać ze sprawdzonych protokołów i szyfrowania uwierzytelnionego, a nie z domowej roboty ciągu przekształceń tekstu.
Czym różnią się hashe i sumy kontrolne
Kryptograficzna funkcja skrótu tworzy skrót danych o stałym rozmiarze; nie jest to zaszyfrowana kopia danych wejściowych. Skrót SHA-256 pomaga porównać pobrany plik ze skrótem podanym przez zaufanego wydawcę. Takie porównanie sprawdza zgodność, ale nie ukrywa pliku. Przechowywanie haseł wymaga specjalnych metod haszowania haseł z solą i regulowanym kosztem obliczeniowym. CRC32 przydaje się do wykrywania przypadkowych błędów transmisji, ale nie jest mechanizmem uwierzytelniania chroniącym przed celowymi zmianami. MD5 i SHA-1 nie nadają się do nowych zastosowań wymagających odporności na kolizje. NIST opisuje odchodzenie od SHA-1. Generator hashy 2IP obliczy hashe i sumy kontrolne dowolnego tekstu.
Dwa typowe przykłady
Aby udostępnić poufny dokument, wybierz zaufaną aplikację, która szyfruje i uwierzytelnia plik, a hasło przekaż osobnym, chronionym kanałem. Odbiorca odzyska treść za pomocą właściwego klucza. Aby sprawdzić pobrane archiwum, oblicz natomiast jego hash i porównaj go z wartością uzyskaną z autentycznej strony wydawcy. To różne procedury: hash nie chroni archiwum przed odczytaniem. Jeśli strona wyświetla tekst w Base64, każdy może go zdekodować bez tajnego klucza; kodowanie nie jest szyfrowaniem.
Ograniczenia, o których warto pamiętać
TLS chroni dane przesyłane między punktami końcowymi, ale nie gwarantuje, że którykolwiek z tych punktów jest godny zaufania. Złośliwe oprogramowanie na urządzeniu, ujawniony klucz lub słaby proces odzyskiwania dostępu mogą zniweczyć skądinąd poprawną kryptografię. Korzystając z narzędzia tekstowego online, upewnij się, czy wybrana operacja szyfruje, haszuje, czy tylko koduje dane. Nie wklejaj prywatnych dokumentów ani danych logowania do nieznanej usługi tylko dlatego, że na jej przycisku widnieje napis „bezpieczne”. Zanim z niej skorzystasz, sprawdź, jak przetwarza i przechowuje dane.
TLS 1.3 i bezpieczeństwo połączenia
W HTTPS szyfrowanie jest częścią szerszego protokołu: TLS negocjuje parametry, ustala klucze i uwierzytelnia certyfikat serwera. Nowoczesny TLS 1.3 usunął kilka przestarzałych opcji i uprościł standardowy handshake. Przewodnik po handshake TLS 1.3 szczegółowo wyjaśnia tę sekwencję. TLS chroni dane przesyłane do wskazanego rozmówcy; sam w sobie nie dowodzi, że strona jest godna zaufania.