Fornire OAuth per le app mobili pone una minaccia alla sicurezza?

4

Diamo un'occhiata al flusso di lavoro di OAuth di base:

L'ideadibaseècheilconsumatore(App)chiedeall'utentediconcederglil'accessoalfornitorediservizi.Ilservizioproteggel'utentechiedendogliognivoltachel'appvuoleunanuovachiavediaccesso.

Ilveroproblemaquiècheilserviziononsamoltodelconsumatore.Nelcasoincuiun'appmobilesiaunconsumatore,nonconoscenemmenoilsuoURL.

Quindi,quandoapparelapaginadiaccessoallesovvenzioni,ilserviziononsachivuoledavverol'accesso.Quindil'utentesiconfonde.

Qualèlasoluzioneaquestoproblema?

Nelcasodiun'appWeb,èpossibileutilizzarelechiaviprivategiàcondivise.Manonèun'opzioneperun'appmobile(poichéèimpossibilenasconderelachiaveprivata).

Èdavverounaminacciaallasicurezza?Suppongochel'utentedebbasaperedalcontestoincuil'appharichiestol'accesso.Maperchéalloratantisitiwebrichiedonounachiave"segreta"? (che non è un segreto quando è coinvolta un'applicazione mobile)

Modifica

Probabilmente, non ero abbastanza chiaro. Proviamo di nuovo. Ecco una foto esplicativa:

Comepuoivedere,èl'utentechedovrebbeassicurarsichel'appcorrettaacceda.

Mailmessaggio"Non so chi cerca di accedere al servizio", pur essendo preciso, è molto confuso.

Esiste una tecnica per identificare l'app in modo affidabile?

    
posta Vanuan 22.05.2013 - 20:49
fonte

2 risposte

5

Quindi penso che il problema che stai descrivendo sia, in una certa misura, risolto aggiungendo gli ID client alla richiesta di autenticazione. L'applicazione fornisce un ID al fornitore di servizi e il provider limita quindi il token fornito per essere valido solo per tale applicazione.

Tuttavia ciò non risolve il problema di un'applicazione malevola che potrebbe fornire un ID cliente appositamente modificato (se utilizzato).

Il fatto è che, nei dispositivi mobili, l'applicazione è già affidabile, una volta che l'utente ha installato l'applicazione che ha scelto di fidarsi. Non credo ci sia molto che il fornitore di servizi possa fare per proteggere gli utenti da applicazioni dannose, una volta che l'utente ha scelto di installarli.

Stavo guardando un video da Eran Hammer (avvertenza del linguaggio NSFW), dove menziona che dove il servizio i fornitori stavano costringendo i client mobili a fare visualizzazioni web per l'accesso degli utenti (per impedire all'app mobile di accedere direttamente alle credenziali degli utenti) e che l'app mobile lo stesse sovrapponendo e catturando le credenziali degli utenti, in modo che non dovessero infastidire l'utente per loro in futuro.

In definitiva non penso che sia possibile proteggere completamente gli utenti da un'applicazione una volta che hanno deciso di affidarsi ad essa installandola.

    
risposta data 24.05.2013 - 14:20
fonte
0

Credo che il modo corretto per farlo sarebbe quello di impostare un servizio Web per gestire l'accesso tramite OAuth e fare in modo che l'applicazione si colleghi solo al tuo servizio web. Da lì, il servizio Web potrebbe gestire l'accesso nello stesso modo in cui normalmente OAuth funzionerà (e proteggerà la chiave segreta). Puoi quindi utilizzare qualsiasi meccanismo tu desideri per garantire che l'app si connetta solo al tuo servizio web per l'accesso.

    
risposta data 22.05.2013 - 21:47
fonte

Leggi altre domande sui tag