Odpowiedz

8

Ogólnie rzecz biorąc, systemy reagowania na wyzwania niekoniecznie zapobiegają atakom pośrednim: Jeśli Alicja próbuje podać numer konta bankowego Bobowi, ten protokół, który wykonuje pewne wyzwanie i odpowiedź, wygrał ". t zapewnienie integralności i prywatności:

Alice: Bob, is that you? // first challenge 
Bob: Yes, Alice, it is me, is that you? // first response, second challenge 
Alice: Yes! Great. My account number is 314159. // second response, and result 

Mallory mógł odpowiedzieć „tak” w miejsce obu Alice lub Bob może fałszywy komunikat trzeci „wynik”, czy może słuchać na trzecim komunikacie.

Nawet jeśli wyzwania zostaną poprawione, na przykład: "Proszę hasz 0x31415926 dodany do naszego wspólnego hasła", dane przesyłane w przejrzysty sposób (lub pod słabymi/złymi szyframi lub przy złym doborze klucza) mogą ulec utracie prywatność, a dane przesyłane bez jakiejkolwiek weryfikacji uwierzytelnienia wiadomości mogą podlegać modyfikacji przez stronę trzecią.

Gdzie protokoły wyzwanie/odpowiedź naprawdę zabłysnąć w zapobieganiu atakom powtórzenie: jeśli Alice właśnie wysyła Bobowi wiadomość wzdłuż linii „Proszę obciążyć moje 5 dolarów, a Twoje konto 5 $”, Mallory mogła nagrać wiadomość i powtórka wiadomość, aby zlikwidować konto Alice.

Dobry system wyzwań/reakcji stworzy nowe wyzwanie dla każdej transakcji lub sesji (i upewnij się, że poprzednie wyzwania nie zostaną ponownie wykorzystane!), Tak że transkrypty sesji nie mogą być łączone razem w celu utworzenia nowych nieuczciwych systemów.

Mam nadzieję, że to pomoże, ale obawiam się, że bez bardziej szczegółowego pojęcia, skąd pochodzą twoje wątpliwości, będzie to po prostu hałas.

+0

Czy system reagowania na wyzwania z wykorzystaniem kryptografii z kluczem publicznym pomoże wyeliminować człowieka w ataku środkowym? – user574183

+0

@ user574183: Jak dokładnie chcesz korzystać z kryptografii z kluczem publicznym? – sharptooth

+0

czy te systemy działają na kluczach symetrycznych? – user574183

3

już zapewnia a good answer, chciałbym zwrócić uwagę na następujące.

Wyzwanie-odpowiedź rozwiązuje dwa problemy - sprawia, że ​​wysyłanie sekretu w postaci zwykłego tekstu jest niepotrzebne (wysyłany jest produkt podobny do hash) i zapobiega atakom typu "powtórka" (ponieważ wyzwania zmieniają się za każdym razem). Nie robi nic poza tym - nie uwierzytelnia nikogo komukolwiek samemu, jest tylko ulepszeniem protokołu zwykłego tekstu, w którym klient wysyła swoją nazwę użytkownika i hasło (sekret), a serwer decyduje, czy są one poprawne .

Więc jeśli w środku jest jakaś impreza, nie pomoże to w wykryciu go lub uniemożliwi mu podszywanie się pod klienta podczas tej konkretnej sesji, ale ta strona nie uzyska dostępu do sekretu, ponieważ sekret nie zostanie nigdy wysłany zwykły tekst, a strona ta nie będzie w stanie ponownie podszyć się pod inną osobę, wykonując powtórkę - może tylko podszywać się pod nią podczas tej sesji.

+0

ok, więc w to uwierzytelnienie wyzwaniem/odpowiedzią człowieka w ataku środkowym jest możliwe tylko wtedy, gdy środkowy zna tajny klucz. Jeśli klucz jest znany, będzie w stanie odszyfrować wyzwanie i poprawnie odpowiedzieć na pytanie, czy mam rację? – user574183

+0

@ user574183: Najpierw wyzwanie jest wysyłane niezaszyfrowane, sekret służy do połączenia wyzwania z sekretem. Jeśli strona w środku zna sekret, który może podszywać się pod klienta w dowolnym momencie - zna sekret, więc serwer nie może odróżnić go od klienta. Może także zakłócać trwającą już sesję, nawet jeśli nie zna sekretu - sekret jest używany tylko na początku, nie jest używany dla danych wysyłanych podczas sesji. – sharptooth

+0

Dobrze powiedziane! Dzięki. – sarnold