Man in the middle, MITM (również atak „człowiek pośrodku”[1]) – atak kryptologiczny polegający na podsłuchu i modyfikacji wiadomości przesyłanych pomiędzy dwiema stronami bez ich wiedzy.
Przykładem takiego ataku jest podsunięcie nadawcy własnego klucza przy transmisji chronionej szyfrem asymetrycznym. Scenariusz takiego ataku w systemie klucza publicznego mógłby wyglądać następująco:
- Alicja chce połączyć się z Bobem (np. stroną banku internetowego). Ewa jest osobą atakującą transmisję w celu przechwycenia tajnych haseł Alicji
- Ewa w pierwszym etapie musi przekierować ruch z komputera Alicji do Boba na swój komputer, może to zrobić np. zmieniając dane podawane przez DNS o adresie komputera Boba, lub nasłuchiwać zapytań do DNS i w odpowiednim momencie wysłać adres swojego komputera.
- Po połączeniu Ewa przekazuje Alicji swój klucz publiczny rzekomo jako klucz publiczny Boba, jednocześnie nawiązuje połączenie z Bobem, a otrzymane od niego dane (np. treść strony www) przekazuje Alicji.
- Alicja widząc stronę logowania Boba, wpisuje w przeglądarce swoje tajne hasło i wysyła je do Ewy, nie wiedząc o przechwyceniu transmisji.
- W zależności od celu ataku, Ewa po odczytaniu hasła albo przerywa transmisję, albo w dalszym ciągu pośredniczy w transmisji pomiędzy Alicją i Bobem, cały czas wykradając tajne dane (stan konta, dodatkowe hasła itp.).
- W ten sposób Ewa potrafi odczytać wszystkie przesyłane pozornie bezpiecznym kanałem dane, nie będąc zmuszona do czasochłonnego łamania szyfrów zabezpieczających transmisję.
Sytuacja normalna:
Atak Ewy:
- Alicja < [Klucz Alicji] -RSA/AES- [Klucz Ewy 1] > Ewa < [Klucz Ewy 2] -RSA/AES- [Klucz Boba] > Bob
Zabezpieczenie przed atakiem
Komunikacja jest odporna na atak man in the middle, jeśli jedna strona zna klucz publiczny drugiej lub potrafi go zweryfikować – np. jest on podpisany przez organizację certyfikującą (certification authority).
Rzadziej stosowanym sposobem zabezpieczenia jest także nadanie klucza publicznego na większej liczbie kanałów niż atakujący jest w stanie przechwycić.
Zobacz też
Przypisy
- ↑ Słownik terminów testowych ISTQB,Wersja 3.4 (2020), s. 8.