Wprowadzanie i modyfikowanie danych

Napastnik, który zdoła przejąć połączenie, może zmienić przepływające przez nie dane. Napastnik, który kontroluje ruter między klientem i serwerem, może przechwycić pakiet i zmodyfikować go, a nie tylko go odczytać. W rzadkich przypadkach zdoła to zrobić nawet bez kontroli nad ruterem (wysyłając zmodyfikowany pakiet w taki sposób, aby przybył na miejsce przed oryginalnym pakietem). Szyfrowanie danych nie zabezpieczy cię przed tym rodzajem ataku. Napastnik nadal będzie mógł modyfikować zaszyfrowane dane. Co prawda nie potrafi przewidzieć, jaki wynik otrzymasz po rozszyfrowaniu danych, ale z pewnością nie będzie to nic, czego oczekiwałeś. Szyfrowanie uniemożliwi zmianę zamówienia na 2 gumowych kurczaków w zamówienie na 2 gumowych kurczaków, ale napastnik nadal będzie mógł przekształcić je w przypadkowe śmieci, które spowodują awarię twojego systemu przyjmowania zamówień. Nie możesz nawet być pewien, że napastnik przypadkowo nie zmieni zamówienia w taki sposób, że nadal będzie ono miało sens.

Pełne zabezpieczenie usług przed modyfikacjami wymaga ochrony integralności komunikatów. Pakiet musi zawierać sumę kontrolną obliczaną na podstawie danych, która nie może zostać przeliczona przez napastnika. Ochrona integralności komunikatów jest opisana w dodatku C, „Kryptografia”.

Odtwarzanie. Napastnik, który nie może przejąć połączenia ani zmienić danych, może nadal wyrządzić szkody, rejestrując przepływające dane i wysyłając je ponownie. Omówiliśmy już pewną odmianę takiego ataku, mającą związek z hasłami.

Istnieją dwa rodzaje odtworzeń (replays): takie, w których musisz zidentyfikować pewne informacje (na przykład ataki związane z hasłami), oraz takie, w których po prostu przesyłasz ponownie cały pakiet. Wiele form szyfrowania chroni przed atakami, w których napastnik gromadzi dane, aby je później odtworzyć, ale szyfrowanie na nic się nie zda, jeśli można po prostu ponownie wykorzystać pakiet, nie wiedząc, co w nim jest.

Odtwarzanie pakietów nie działa w przypadku TCP ze względu na numery sekwencyjne, ale nie ma powodu, żeby nie działało w protokołach opartych na UDP. Jedynym sposobem zabezpieczenia się przed takim atakiem jest wykorzystanie protokołu, który odrzuci odtworzone pakiety (na przykład dzięki użyciu znaczników czasowych albo osadzonych numerów sekwencyjnych). Protokół musi także sprawdzać integralność komunikatów, aby uniemożliwić napastnikowi uaktualnienie przechwyconego pakietu.

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>