Wdrażam system uwierzytelniania API REST.Uwierzytelnianie API przy użyciu znacznika czasu: Co zrobić, gdy zmieni się ustawienie czasu klienta?
Ja w zasadzie za pomocą metody opisanej w tym miejscu:
http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/
Zasadniczo używa ciała żądanie utworzenia skrótu, wysyła je do serwera wraz z rzeczywistą żądanie, serwer odtwarza i porównuje go, a co nie ...
nie przeszkadza wyjaśniając szczegóły. Ważną częścią jest to, że używam znacznika czasu, aby zapobiec "powtórnym atakom".
Cytując ze strony, to wyjaśnia:
Porównaj znacznik czasu bieżącego serwera do znacznika czasu klient wysłał. Upewnij się, że różnica między tymi dwoma znacznikami czasu w akceptowalnym czasie (może to być 5-15 minut), aby zapobiec atakom powtórki.
Problem jestem stoi teraz jest to, że jeśli ustawienie zegara klienta jest modyfikowana, może to spowodować nieoczekiwane błędy uwierzytelniania API, ponieważ znacznik czasu waha się pomiędzy klientem a serwerem.
Czy nie da się tego obejść? Czy muszę zrezygnować z używania znacznika czasu?
Gorąco wdzięczny, jeśli ktoś może mi pomóc z rozwiązaniem tego problemu datownika, lub jakikolwiek inny sposób, który może zapobiec atakom przez powtórzenie.
Uwaga: Zdaję sobie sprawę, że wystawienie nonce do klienta jest doskonałym sposobem, aby zapobiec „atakom przez powtórzenie”, ale chcę, aby to moje ostateczności, ponieważ koszt realizacji tworząc nonce-issuing- API i backend do zarządzania nonce jest zbyt duży.
Jeśli ustawienie zegara klienta jest modyfikowany mówiąc rzeczywiście zaistnieje niepowodzeń uwierzytelniania i nikt nie może pomoc z wyjątkiem klienta musi zbadać i zmienić ustawienia. Jest kilka rzeczy, o których naprawdę nie powinno się martwić. Również 5-15 min jest zbyt dużym dopuszczalnym limitem. Powinno to być + -60 sekund. Nie zatrzymuj swojego pomysłu wysyłania znacznika czasu tylko dla nieodpowiedzialnego klienta.Twoje pytanie jest jednak bardzo dobre. – Satish
Witam, mam ten sam problem, rozwiązujesz go? Dziękuję –