Szyfrowanie SSL
W celu wyeliminowania możliwości uzyskania przez osoby trzecie cennych
informacji z podsłuchanej transmisji sieciowej należy stosować szyfrowanie
poufnych danych.
SSL - Secure Sockets Layer - protokół służący do szyfrowanej komunikacji
sieciowej.
Umożliwia:
- identyfikację serwera - pojęcie certyfikatu
- szyfrowanie przesyłanych danych
- w wersji 3 SSL umożliwia także identyfikację użytkownika
POJĘCIE CERTYFIKATU
Certyfikat elektroniczny jest mechanizmem pozwalającym skutecznie
zidentyfikować osobę lub serwer w sieci Internet.
Zawiera:
- informację, która pozwala stwierdzić osobie komunikującej
się z właścicielem tego certyfikatu, że ów właściciel jest tym,
za kogo się podaje.
- publiczny klucz szyfrujący
Certyfikat jest nadawany przez zaufane instytucje trzecie, tzw.
centra certyfikacji.
SSL v.3 - CERTYFIKAT PO STRONIE KLIENTA
SSL w wersji 3 pozwala nie tylko serwerom, ale także użytkownikom
na posiadanie własnego certyfikatu. Dzięki takiemu rozwiązaniu serwer,
z którym użytkownik się łączy nie musi prosić o dane identyfikacyjne.
Jednakże w praktyce okazuje się, że:
- Instytucje wydające certyfikaty nie przykładają zbytniej wagi
do weryfikowania danych służących do tworzenia certyfikatów użytkownikom.
- Możliwość ataku Brute-force poprzez próbowanie stworzyć certyfikatów
dla różnych użytkoników, a następnie próba nawiązania komunikacji
z serwerem przy pomocy tych certyfikatów.
- Kradzież certyfikatów przy pomocy "koni trojańskich" - certyfikaty
(a w tym najważniejsza ich część - klucz prywatny użytkownika)
często przechowywane są na niedostatecznie zabezpieczonych komputerach.
Z powyższych względów podpis elektroniczny ważnych dokumentów
wykonywany jest przy pomocy specjalnych dodatkowych urządzeń i kart,
które wykluczają możliwość skopiowania klucza prywatnego danej osoby.
CERTYFIKAT SERWERA
Serwer wykorzystujący SSL posiada swój certyfikat, który umożliwia
udowodnienie tożsamości. Dzięki niemu użytkownik może być pewny,
że jest połączony z właściwym serwerem.
Certyfikat serwera zawiera m.in. nazwę domeny serwera. Jeśli użytkownik
łączy się z serwerem i okazuje się, że nazwa rzeczywista różni się od
nazwy z certyfikatu, to użytkownik zostaje o tym poinformowany.
Działa dobrze gdy:
- użytkownik wykorzysta powyższą informację
- użytkownik jest świadomy, że serwer posiada certyfikat
Dodatkowo trzeba zwrócić uwagę na fakt, że stosowanie SSL w komunikacji
z serwerem nie jest jednoznaczne z całkowitym zabezpieczeniem serwera
przed kradzieżą przesyłanych danych (dane wewnątrz serwera mogą i tak
być przechowywane w sposób niewystarczająco zabezpieczony)
Poniżej przechwycona zaszyfrowana sesja SSH: