Οι εφαρμογές για υπολογιστές και κινητά είναι ενσωματωμένα προγράμματα περιήγησης στην εφαρμογή για να βοηθήσουν στην ολοκλήρωση ολόκληρης της διαδικασίας OAuth 2.0
Η διαδικασία φαίνεται στο σχήμα
Ιστός OAuth2.0 1) Επιστρέψτε τον κωδικό ελέγχου ταυτότητας στο καθορισμένο Web redirectUri (αυτό το URI έχει διαμορφωθεί από τον προγραμματιστή της εφαρμογής) 2) Για να αλλάξετε το διακριτικό, πρέπει να περάσετε το clientId και το clientSecret για να επαληθεύσετε την ταυτότητα πελάτη (που λαμβάνεται από την υπηρεσία υποστήριξης της εφαρμογής)
Σημειώνοντας τα δύο παραπάνω σημεία, 1) Επειδή δεν είναι έγκυρη η ανίχνευση ανακατεύθυνσης της εφαρμογής Ιστού 2) Επειδή δεν υπάρχει πελάτης υπηρεσίας υποστήριξηςΤο μυστικό δεν είναι ασφαλές Τότε η επίθεση που μπορεί να συναντήσουμε είναι όπως φαίνεται στο παρακάτω σχήμα, μπορεί να υπάρχει μια κακόβουλη εφαρμογή που υποκλέπτει το authCode για να στείλει ένα μήνυμα στον AuthorizationServer για να αποκτήσει το token, έτσι ώστε το token να ληφθεί χωρίς την εξουσιοδότηση του πελάτη προς την εφαρμογή αλλά σε άλλη επίσημη εξουσιοδότηση εφαρμογής, επιτυγχάνοντας τον σκοπό της επίθεσης.
Λύση:
1. Ο πελάτης δημιουργεί μια τυχαία συμβολοσειρά: επαληθευτής κώδικα και αποθηκεύει αυτήν την τυχαία συμβολοσειρά code_challenge = transform(code_verifier, [Απλό| S256]) Εάν η μέθοδος μετασχηματισμού είναι απλή, τότε η πρόκληση κώδικα είναι ισοδύναμη με τον επαληθευτή κώδικα Εάν η μέθοδος μετασχηματισμού είναι S256, τότε η πρόκληση κώδικα ισούται με τον κατακερματισμό Sha256 του επαληθευτή κώδικα 2. Φέρτε μια πρόκληση κώδικα στο αίτημα κωδικού εξουσιοδότησης και πώς να δημιουργήσετε μια πρόκληση κώδικα. Αυτά τα δύο συνδέονται με τον κωδικό εξουσιοδότησης που εκδίδεται από τον διακομιστή 3. Μετά τη λήψη του κωδικού εξουσιοδότησης, ο πελάτης φέρνει τον επαληθευτή κώδικα που δημιουργήθηκε αρχικά κατά την ανταλλαγή του κωδικού εξουσιοδότησης για το διακριτικό πρόσβασης. Ο διακομιστής υπολογίζει τον επαληθευτή κώδικα σύμφωνα με τη μέθοδο δεσμευμένου μετασχηματισμού, συγκρίνει το υπολογισμένο αποτέλεσμα με την πρόκληση δεσμευμένου κώδικα και εκδίδει ένα διακριτικό πρόσβασης εάν είναι συνεπές. |