Rilevamento dell'implementazione dannosa OAuth

7

Mi chiedo come può un utente finale rilevare un OAuth implementato malintenzionalmente se a 2 o 3 zampe. In particolare, sono interessato a quei casi in cui il richiedente consumatore presenta maliziosamente all'utente una pagina del fornitore di risorse false per inserire le credenziali. In genere, se il consumatore è tenuto a inoltrare il richiedente a Facebook diciamo ma ciò che il consumatore fa presenta all'utente una pagina Facebook falsa. Ciò consentirebbe al consumatore di falsificare l'identità dell'utente in futuro ...

OAuth ha consigliato qualcosa con questo riguardo?

In particolare sono interessato ai casi d'uso in un ambiente browser.

    
posta smiley 17.08.2011 - 10:23
fonte

3 risposte

9

Il RFC OAuth afferma:

OAuth uses tokens to represent the authorization granted to the client by the resource owner. Typically, token credentials are issued by the server at the resource owner's request, after authenticating the resource owner's identity (usually using a username and password).

There are many ways in which a server can facilitate the provisioning of token credentials. This section defines one such way, using HTTP redirections and the resource owner's user-agent. This redirection- based authorization method includes three steps:

  1. The client obtains a set of temporary credentials from the server (in the form of an identifier and shared-secret). The temporary credentials are used to identify the access request throughout the authorization process.

  2. The resource owner authorizes the server to grant the client's access request (identified by the temporary credentials).

  3. The client uses the temporary credentials to request a set of token credentials from the server, which will enable it to access the resource owner's protected resources.

Quindi, per ottenere l'autorizzazione, il client (il sito che utilizza i tuoi dati) deve reindirizzare l'utente al server che contiene i tuoi dati per la registrazione.

Alla Sezione 2.2 gli stati RFC:

The way in which the server handles the authorization request, including whether it uses a secure channel such as TLS/SSL is beyond the scope of this specification. However, the server MUST first verify the identity of the resource owner.

Ma sicuramente io (come proprietario delle risorse) non userò alcuna orazione OAuth senza controllare il certificato del sito.

Quindi per OAuth 1.0 questo non è obbligatorio.

Il RFC OAuth 2.0 è ancora una bozza ma capisco che sia richiede TLS

10.9. Endpoints Authenticity

In order to prevent man-in-the-middle and phishing attacks, the authorization server MUST implement and require TLS with server authentication as defined by [RFC2818] for any request sent to the authorization and token endpoints. The client MUST validate the authorization server's TLS certificate in accordance with its requirements for server identity authentication.

[...]

10.11[...] To reduce the risk of phishing attacks, the authorization servers MUST utilize TLS on every endpoint used for end-user interaction

Quindi l'autenticazione si basa sul protocollo TLS come è stato discusso sul blog di recente .

Per riassumere, sospetto qualsiasi tentativo di OAuth senza TLS come dannoso. E ovviamente lo stesso se i certificati SSL non si convalidano.

    
risposta data 17.08.2011 - 11:54
fonte
2

Il mio approccio è stato quello di aprire una nuova scheda e assicurarmi di aver effettuato l'accesso al servizio che intendo autenticare, diciamo Facebook. Quindi, quando il nuovo sito mi reindirizza su Facebook, devo solo fare clic su qualcosa per acconsentire, non immettere nuovamente le credenziali. Se mi viene presentato un modulo per inserire le credenziali, saprò che qualcosa non va.

    
risposta data 17.08.2011 - 22:49
fonte
1

Non esiste una cura per questo poiché si tratta di un tipico esempio di phishing, che può essere eseguito senza includere la parola OAuth nel post in tutti ...

Ogni applicazione può reindirizzare i suoi utenti a un sito "facebook" falso e richiedere all'utente di inserire le sue credenziali facebook . L'unico rimedio è l'utente stesso a guardare attentamente l'URL nel browser, quando si inseriscono le sue credenziali apparentemente su " facebook" .

Come per OAuth a 2 vie, non devi preoccuparti, perché si tratta di una comunicazione machine-to-machine in cui gli utenti finali (e i browser) non partecipano ...

    
risposta data 17.08.2011 - 15:28
fonte

Leggi altre domande sui tag