OAuth2 e collegamento di risorse di un proprietario a un altro account personale

1

Sto implementando il lato client OAuth e sono preoccupato per il seguente scenario.

C'è un'applicazione A registrata con il servizio B che offre accesso alle sue risorse utente - autorizzata da OAuth (Confidential, Authorization code flow).

Ora c'è un utente malintenzionato X che si registrerà all'applicazione A e acquisirà il reindirizzamento OAuth iniziale, operazione banale da eseguire quando utilizza il browser Xs.

Se riesce a ottenere qualche utente Bs (chiamiamolo C) per aprire il collegamento, B mostrerà che A sta chiedendo l'accesso. Se A è un nome noto, c'è una possibilità che l'utente approverà l'accesso.

Ora il server di autorizzazione Bs sta reindirizzando l'utente su A e A recupererà il token di accesso e potrebbe utilizzarlo per accedere alle risorse C.

Ecco la cosa che mi preoccupa - se A sta usando state per identificare il processo di autorizzazione, saprà che la richiesta è stata avviata da X. Se non autentica separatamente l'utente C, allora collegherà le risorse C a Account X.

Questa è una preoccupazione valida? O c'è qualcosa in OAuth che impedisce tale attacco?

È giusto dire - 'se il client OAuth ha i propri utenti DEVE autenticarli quando si esegue la richiamata della risposta di autorizzazione - e non può fare affidamento sul parametro state a tale scopo'?

Esistono ulteriori attenuazioni da applicare? Ad esempio, limitando la velocità con cui X può avviare il processo OAuth - nel caso in cui stia tentando di fornire più collegamenti a più target nella speranza che qualcuno cada per questo? Limite di tempo per il quale è stato dato il state valido? Altro?

    
posta AGrzes 01.08.2018 - 10:40
fonte

0 risposte

Leggi altre domande sui tag