Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 10415|Odpowiedź: 0

Analiza bezpieczeństwa OAuth 2.0 na urządzenia mobilne i desktopowe oraz mechanizm CodeVerifier

[Skopiuj link]
Opublikowano 28.11.2020 20:51:48 | | | |
Aplikacje desktopowe i mobilne to wbudowane przeglądarki w aplikacji, które pomagają w ukończeniu całego procesu OAuth 2.0

Proces przedstawiony jest na rysunku



OAuth2.0 web
1) Zwracaj autoryzacyjny kod do określonego Web redirectUri (ten URI jest konfigurowany przez dewelopera aplikacji)
2) Aby zmienić token, trzeba przekazać clientId i clientSecret, aby zweryfikować tożsamość klienta (uzyskaną przez usługę backendową aplikacji)

Zwracając uwagę na powyższe dwa punkty,
1) Ponieważ nie wykrywanie URI jest nieprawidłowe w aplikacji webowej
2) Ponieważ nie ma usługi backendowejKlientSecret nie jest bezpieczny
Wtedy atak, z którym możemy się spotkać, wygląda, jak pokazano na poniższym rysunku: złośliwa aplikacja przechwyca authCode i wysyła wiadomość do AuthorizationServer, aby uzyskać token, dzięki czemu token zostanie uzyskany bez autoryzacji klienta dla aplikacji, lecz do innej oficjalnej autoryzacji aplikacji, co osiąga cel ataku.



Rozwiązanie:

1. Klient generuje losowy ciąg tekstu: weryfikator kodu i zapisuje ten losowy ciąg
code_challenge = transform(code_verifier, [Plain| S256])
Jeśli metoda transformacji jest zwykła, to code challenge jest równoważny z code verifierem
Jeśli metoda transformacji to S256, to wyzwanie kodowe jest równe hashowi Sha256 weryfikatora kodu
2. Złożyć wyzwanie kodowe do żądania kodu autoryzacyjnego oraz jak wygenerować wyzwanie kodowe. Te dwa są powiązane z kodem autoryzacyjnym wydanym przez serwer
3. Po uzyskaniu kodu autoryzacyjnego klient przynosi początkowo wygenerowany weryfikator kodu podczas wymiany kodu autoryzacyjnego na Access Token. Serwer oblicza weryfikator kodu według metody transformacji bound, porównuje obliczony wynik z wyzwaniem bound code challenge i wydaje Access Token, jeśli jest on spójny.




Poprzedni:.NET/C# generuje plik CS z pliku XML WSDL
Następny:ASP.NET Rdzeń (iii) Dynamicznie twórz instancje za pomocą ActivatorUtilities
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com