Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 10415|Antwoord: 0

Mobiele en desktop OAuth 2.0 beveiligingsanalyse en CodeVerifier-mechanisme

[Link kopiëren]
Geplaatst op 28-11-2020 20:51:48 | | | |
De desktop- en mobiele apps zijn ingebouwde browsers in de app om te helpen bij het voltooien van het volledige OAuth 2.0-proces

Het proces wordt weergegeven in de figuur



OAuth2.0 web
1) AuthCode teruggeven aan de gespecificeerde Web redirectUri (deze URI wordt geconfigureerd door de app-ontwikkelaar)
2) Om het token te wijzigen, moet je de clientId en clientSecret doorgeven om de clientidentiteit te verifiëren (verkregen door de backend-service van de applicatie).

Met de bovenstaande twee punten in aanraking,
1) Omdat de redirectUri-detectie van de webapp niet ongeldig is
2) Omdat er geen backend-service is clientSecret is niet veilig
Dan is de aanval die we kunnen tegenkomen zoals getoond in de onderstaande figuur: er kan een kwaadaardige applicatie zijn die authenticatie Code onderschept om een bericht naar de AuthorizationServer te sturen om het token te verkrijgen, zodat het token wordt verkregen zonder toestemming van de klant voor de applicatie, maar via een andere officiële applicatieautorisatie, waarmee het doel van de aanval wordt bereikt.



Oplossing:

1. De client genereert een willekeurige string: code verifier en slaat deze willekeurige string op
code_challenge = transform(code_verifier, [Plain| S256])
Als de transformatiemethode eenvoudig is, dan is code challenge gelijkwaardig aan code verifier
Als de transformatiemethode S256 is, dan is de code-uitdaging gelijk aan de Sha256-hash van de codeverificator
2. Breng een code-uitdaging naar het autorisatiecodeverzoek en hoe je een code-uitdaging genereert. Deze twee zijn gebonden aan de autorisatiecode die door de server wordt uitgegeven
3. Na het verkrijgen van de autorisatiecode brengt de client de aanvankelijk gegenereerde code-verifier mee wanneer de autorisatiecode wordt uitgewisseld voor het Access Token. De server berekent de codeverificator volgens de bound transform-methode, vergelijkt het berekende resultaat met de bound code-uitdaging en geeft een Access Token uit als deze consistent is.




Vorig:.NET/C# genereert een CS-bestand uit een WSDL XML-bestand
Volgend:ASP.NET Core (iii) Maakt dynamisch instanties aan met behulp van ActivatorUtilities
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com