Wiele protokołów komunikacyjnych wykorzystuje szyfrowanie, aby zapewnić bezpieczeństwo połączenia. Zrozumienie, co tak naprawdę robi szyfrowanie i dlaczego jest ważne dla wszystkich, to dobry pomysł, abyś wiedział, przed czym może Cię chronić, a przed czym nie.
Szyfrowanie to matematyczny proces szyfrowania danych przy użyciu szyfru szyfrującego i klucza szyfrowania. Zaszyfrowane dane lub zaszyfrowany tekst można odszyfrować z powrotem do oryginalnej postaci „tekstu jawnego” tylko za pomocą klucza deszyfrującego.
Przy dobrym algorytmie szyfrowania zaszyfrowany tekst powinien być nie do odróżnienia od losowego szumu lub wartości bez znaczenia. To sprawia, że nie można stwierdzić, czy dane są nawet zaszyfrowanym tekstem, czy tylko szumem. Ten projekt znacznie utrudnia analizę zaszyfrowanego tekstu w celu jego odszyfrowania bez konieczności użycia klucza deszyfrującego w procesie zwanym kryptoanalizą.
Wskazówka: szumy są losowymi zakłóceniami w tle, podobnie jak śnieg lub zakłócenia, które można zobaczyć na niektórych starych telewizorach, gdy nie mają sygnału.
Symetryczny vs asymetryczny
W przypadku niektórych klas algorytmów szyfrowania klucz odszyfrowywania będzie taki sam jak klucz szyfrowania, w innych te dwa klucze są różne. Gdy klucz odszyfrowywania jest taki sam jak klucz szyfrowania, nazywa się to szyfrowaniem symetrycznym. W takim przypadku klucz szyfrowania można traktować jako hasło, a każdy, kto ma hasło, może szyfrować lub odszyfrowywać dane. AES jest dobrym przykładem algorytmu szyfrowania symetrycznego, ponieważ jednym z jego zastosowań jest zabezpieczanie komunikacji HTTPS w Internecie.
Wskazówka: HTTPS lub Hypertext Transfer Protocol Secure to podstawowy szyfrowany protokół komunikacyjny używany w Internecie.
Szyfrowanie asymetryczne wykorzystuje oddzielny klucz szyfrowania i odszyfrowywania, jest również powszechnie określane jako kryptografia klucza publicznego. Klucz szyfrowania jest znany jako klucz publiczny i jest publikowany dla każdego, kto może używać go do szyfrowania danych. Jednak klucz deszyfrujący jest znany jako klucz prywatny i jak sama nazwa wskazuje, jest utrzymywany jako prywatny.
Ta forma szyfrowania może być używana do zapewnienia, że tylko zamierzony odbiorca może odszyfrować i odczytać zaszyfrowaną wiadomość. Typowym przykładem algorytmu szyfrowania z kluczem publicznym jest RSA. RSA jest również powszechnie używany w połączeniach HTTPS, ale tylko po to, aby oba komputery mogły bezpiecznie uzgodnić symetryczny klucz szyfrowania, który ma być używany.
Wskazówka: algorytmy szyfrowania asymetrycznego są wolniejsze w użyciu niż algorytmy symetryczne, które zapewniają podobny poziom bezpieczeństwa. Dlatego szyfrowanie asymetryczne jest używane tylko do uzgodnienia klucza szyfrowania symetrycznego w protokołach wymagających szybkości i wydajności, takich jak HTTPS.
Wskazówka: Jedną z rzeczy, których HTTPS nie daje, jest gwarancja, że łączysz się z witryną, do której miałeś zamiar. To, co robi, to gwarancja, że łączysz się z witryną, którą wpisałeś w pasku wyszukiwania. Jeśli popełniłeś literówkę i przypadkowo przejdziesz do exanple.com zamiast example.com, HTTPS potwierdzi, że masz bezpieczne połączenie z exanple.com. HTTPS weryfikuje jedynie, czy połączenie z serwerem internetowym jest bezpieczne. Protokół HTTPS nie oznacza również, że witryna, z którą się łączysz, nie zawiera wirusów ani innego złośliwego oprogramowania.
Poziomy bezpieczeństwa
Bezpieczeństwo algorytmu szyfrowania mierzone jest w bitach. Bity bezpieczeństwa odnoszą się do rozmiaru użytego klucza szyfrowania, a zatem do tego, jak trudno jest go odgadnąć. Niestety nie da się w ten sposób bezpośrednio porównać bezpieczeństwa algorytmów symetrycznych i asymetrycznych.
Algorytmy szyfrowania symetrycznego, takie jak AES, muszą używać co najmniej 128-bitowego klucza szyfrowania, aby można je było uznać za bezpieczne, chociaż zalecany jest klucz 256-bitowy. Algorytmy asymetryczne muszą używać co najmniej 2048-bitowego klucza, aby można je było uznać za bezpieczne.
256-bitowy klucz szyfrowania ma 2^256 możliwych kombinacji, czyli dwa pomnożone przez siebie 256 razy. Spisane w całości są: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 możliwe kombinacje 256-bitowego klucza szyfrowania. Ta liczba jest tak duża, że jest w przybliżeniu równa liczbie atomów, którą naukowcy przewidują, że istnieją w widzialnym wszechświecie.
Niezrozumiale trudno jest poprawnie odgadnąć klucz potrzebny do odszyfrowania danych zaszyfrowanych kluczem 256-bitowym. Nawet gdybyś miał dedykowany dostęp do najszybszych superkomputerów i wieki czasu, statystycznie mało prawdopodobne jest, aby poprawnie odgadnąć klucz deszyfrujący.
Dlaczego to jest ważne?
Logując się na stronie internetowej, wysyłasz swoją nazwę użytkownika i hasło lub dane bankowe. Te dane są prywatne i poufne, jeśli ktoś je posiada, może uzyskać dostęp do Twoich kont, podszywać się pod Ciebie, ukraść Ci pieniądze i nie tylko.
Korzystając z protokołu HTTP w postaci zwykłego tekstu, każda osoba w sieci między Tobą a serwerem sieciowym może przechwycić i odczytać wysyłane i odbierane komunikaty. Obejmuje to Twoje hasła i inne poufne dane. Inni użytkownicy w Twojej sieci domowej, Twój dostawca usług internetowych i inni użytkownicy dowolnego publicznego hotspotu Wi-Fi, z którym się łączysz, mogą być w stanie przeprowadzić tego typu ataki.
Jeśli używasz protokołu HTTPS chroniącego komunikację do iz serwera internetowego, Twoje dane są szyfrowane i nie mogą być odczytane przez nikogo innego. To szyfrowanie zapewni bezpieczeństwo haseł i innych prywatnych danych podczas przeglądania Internetu.
Szyfrowanie jest jednak ważne nie tylko w przypadku danych prywatnych lub wrażliwych; jest to również przydatne narzędzie do ochrony prywatności. Na przykład może powstrzymać Twojego dostawcę usług internetowych przed podglądaniem Twoich nawyków przeglądania sieci.
Szyfrowanie jak największej części komunikacji sprawia, że mniej oczywiste jest, gdzie ukryte są poufne dane, które atakujący mogą chcieć ukraść. W związku z tym ogólnie zaleca się używanie szyfrowania wszędzie tam, gdzie to możliwe, aby zabezpieczyć wszystko, co robisz.
Dzięki nowoczesnemu sprzętowi i algorytmom szyfrowania szyfrowanie dodaje tylko niezauważalne opóźnienie, więc nie musisz się martwić, że spowalnia połączenie internetowe.