Nie ma możliwości wyznaczenia klucza prywatnego na podstawie znajomości klucza publicznego
Osoba chcąca przesłać zaszyfrowaną informację do drugiej szyfruje ją kluczem publicznym odbiorcy, odbiorca może ją odszyfrować swoim kluczem prywatnym
Nie ma problemu z wymianą klucza szyfrującego
[edytuj]Uwierzytelnianie z wykorzystaniem publicznej kryptografii
Uwierzytelnianie bez zastosowania kryptografii ma poważny problem, identyfikatory i hasła są wymieniane niezaszyfrowane. Każdy może je podsłuchać w sieci i wykorzystać do nielegalnego dostępu do komputera.
Tylko wymiana informacji w zaszyfrowanych kanałach komunikacyjnych będzie bezpieczna, może być do tego zastosowana kryptografia publiczna.
Przebieg komunikacji:
Alicja otrzymuje z komputera losowy ciąg znaków
Alicja szyfruje liczbę swoim kluczem prywatnym otrzymany ciąg znaków i odsyła go do serwera razem ze swoim identyfikatorem.
Komputer wyszukuje w bazie danych klucz publiczny Alicji i odszyfrowuje komunikat.
Jeżeli uda się odszyfrować komunikat i jeżeli odszyfrowany ciąg znaków jest ciągiem oryginalnie wysyłanym do Alicji jest ona uwierzytelniana.
[edytuj]Bezpieczeństwo w przypadku metod wykorzystujących kryptografię z kluczem publicznym
Istnieje możliwość przeprowadzenia ataku typu „man-in-the-middle”, dzięki któremu osoba trzecia może poznać treść wymienianych zaszyfrowanych komunikatów. Ma ona również możliwość podszywania się pod obie strony komunikacji i wysyłania komunikatów w jej imieniu.
Rozważmy następujący schemat wymiany klucza:
Alicja wysyła Bartkowi swój klucz publiczny, Staszek przechwytuje jej klucz publiczny, a do Bartka wysyła swój klucz publiczny.
Bartek wysyła do Alicji swój klucz publiczny, klucz ten jest przechwytywany przez Staszka, który do Alicji wysyła swój klucz publiczny.
Kiedy Alicja wysyła komunikat do Bartka, szyfruje go sfałszowanym kluczem publicznym Bartka, który w rzeczywistości jest kluczem publicznym Staszka. Komunikat ten przechwytuje Staszek, odszyfrowuje go kluczem swoim prywatnym. Staszek zaszyfrowuje komunikat kluczem publicznym Bartka i wysyła go do niego.
Kiedy Bartek wysyła komunikat do Alicji, szyfruje go sfałszowanym kluczem publicznym Alicji, który w rzeczywistości jest kluczem publicznym Staszka. Komunikat ten przechwytuje Staszek, odszyfrowuje go kluczem swoim prywatnym. Staszek zaszyfrowuje komunikat kluczem publicznym Alicji i wysyła go do niej.
SSL (Secure Socket Layer) jest protokołem opracowanym przez Netscape (TLS) umożliwia on zastosowanie szyfrowania przesyłanych danych w aplikacjach wykorzystujących TCP jako protokół transportowy.
SSL wykorzystuje kryptografię z kluczem publicznym i kryptografię symetryczną.
Przykładem typowego zastosowania SSL jest zabezpieczany szyfrowaniem HTTP -> HTTPS
Serwer przesyła swój klucz publiczny (podpisany cyfrowo przez centrum certyfikacyjne), klient weryfikuje autentyczność klucza publicznego.
Klient generuje losowo szyfrujący klucz sesyjny, szyfruje go kluczem publicznym serwera i przesyła go do serwera
Od tego momentu komunikacja pomiędzy klientem a serwerem może być zabezpieczona przy pomocy szyfrowania danych wykonywanego przy wykorzystaniu klucza sesyjnego.
HTTPS jest modyfikacją protokołu HTTP umożliwiającą bezpieczne przesyłanie poszczególnych komunikatów pomiędzy klientem a serwerem.
Aktualnie nie wszystkie programy klienckie i serwery obsługują HTTPS, HTTPS nie jest tak popularny jak SSL
W normalnym trybie pracy https szyfruje tylko dane przesyłane od klienta do serwera. Istnieją tryby pracy w których szyfrowane są dane przesyłane w obu kierunkach.