Przejdź do treści

Szyfrowanie w praktyce — symetryczne, asymetryczne i certyfikaty

Dwa rodzaje kluczy, haszowanie i jak HTTPS łączy to wszystko razem

Wstęp

Szyfrowanie polega na uczynieniu danych nieczytelnym dla wszystkich oprócz kogoś, kto ma właściwy klucz — to jądro poufności w bezpieczeństwie IT. Ale nie ma tylko jednego rodzaju szyfrowania; różne sytuacje wymagają różnych technik, a technik powinien umieć je rozróżniać.

Szyfrowanie symetryczne

W przypadku szyfrowania symetrycznego ten sam klucz jest używany zarówno do szyfrowania, jak i deszyfrowania danych. AES (Advanced Encryption Standard) jest najpowszechniej stosowanym algorytmem i jest używany między innymi do szyfrowania dysków twardych i dużych ilości danych, ponieważ jest szybki. Wadą jest problem dystrybucji kluczy: obie strony muszą mieć ten sam tajny klucz, a w pewnym momencie musi być bezpiecznie przeniesiony bez przechwycenia przez stronę trzecią.

Szyfrowanie asymetryczne

Szyfrowanie asymetryczne — zwane również kryptografią klucza publicznego — używa pary kluczy: klucza publicznego, który można swobodnie dzielić, i klucza prywatnego, który nigdy nie opuszcza właściciela. Dane zaszyfrowane kluczem publicznym mogą być odszyfrowane tylko za pomocą towarzyszącego klucza prywatnego. RSA jest znanym algorytmem tego typu. Metoda rozwiązuje problem dystrybucji kluczy, ale jest znacznie bardziej wymagająca obliczeniowo niż szyfrowanie symetryczne i jest dlatego zazwyczaj używana tylko do bezpiecznej wymiany klucza symetrycznego, po czym sam strumień danych jest szyfrowany symetrycznie.

Hashing — coś innego niż szyfrowanie

Hashing nie jest szyfrowaniem, ponieważ nie można go odwrócić: funkcja skrótu konwertuje dane na wartość stałej długości, od której nie można obliczyć wstecz. Służy do sprawdzenia integralności – czy plik został zmieniony od ostatniego – i do przechowywania haseł, tak aby technik lub atakujący widział bazę danych, nie widział samego hasła, ale tylko jego skrótu.

SymetrycznyAsymetrycznyHaszowanie
KluczeJeden wspólny kluczKlucz publiczny + prywatnyBrak klucza
Można cofnąćTak, z kluczemTak, z kluczem prywatnymNie, jednostronna
Typowe zastosowanieSzyfrowanie dużych ilości danychWymiana kluczy, podpisyIntegralność, hasła dostępu

TLS/HTTPS i certyfikaty

Gdy przeglądarka nawiązuje połączenie HTTPS, wszystkie trzy techniki są używane razem. Szyfrowanie asymetryczne jest używane początkowo do bezpiecznego uzgodnienia wspólnego, tajnego klucza; następnie sam strumień danych jest szyfrowany symetrycznie, ponieważ jest szybszy; a hashing jest używany w celu zapewnienia, że dane nie zostały zmienione w trakcie przesyłania. Tożsamość serwera jest potwierdzona certyfikatem wystawionym przez urząd certyfikacji (Certificate Authority), który wiąże klucz publiczny z konkretną nazwą domeny — jest to podstawa tego, co się nazywa PKI (Public Key Infrastructure).

Szyfrowanie chroni dane w drodze. Nie chroni cię przed dobrowolnym dostarczaniem ich złej osobie.

Podstawowa zasada zawodowa w bezpieczeństwie IT