Sulla piattaforma Android, è sicuro utilizzare uno schema URI personalizzato per ricevere una risposta di autorizzazione OAuth 2.0 dalla piattaforma Google Identity?

1

Supponendo di aver sviluppato un'app per Android utilizzando la piattaforma di identificazione di Google come sistema di identificazione. Nel documento Google Identify Platform doc ( link ), si dice "La tua app deve registrarsi con il sistema per lo schema URI personalizzato per ricevere la risposta all'autorizzazione ".

La mia domanda è se un hacker ha decodificato il mio APK e capito il mio schema URI personalizzato. Ha quindi utilizzato lo schema URI personalizzato e ha rilasciato la sua app Android con lo schema URI ( link ). Quindi Google può inviare la risposta di autorizzazione OAuth 2.0 (codice di autenticazione) all'app Android dell'hacker.

Non è un grosso problema di sicurezza?

    
posta ytw 12.12.2016 - 16:56
fonte

2 risposte

1

In realtà, questo è uno dei problemi di sicurezza fondamentali. Se qualcuno sa come dovrebbe funzionare la tua applicazione, allora può imitarla e fare cose malvagie come rubare gettoni.

Dato questo, non esiste una soluzione diretta al problema, ma una serie di soluzioni correlate a problemi leggermente diversi. Questi includono (ma non limitati a):

  • Limitazioni dei dispositivi per impedire il caricamento laterale delle app
  • Convalida dell'app durante l'invio allo store
  • Memorizza richieste di ritiro

Questo è il prezzo che paghiamo (attualmente) per avere funzionalità SSO all'interno di un'applicazione. Ci sono altre opzioni come richiedere chiavi personalizzate in base all'istanza di ogni app, ma è impossibile gestirle, e fa sì che un aggressore lavori un piccolo più difficile. Al contrario, puoi trasferire l'autenticazione e lo scambio di token al dispositivo stesso all'interno di un processo simile al sistema, ma ciò significa solo che l'app malvagia ha bisogno di fare la stessa cosa, il che potrebbe rendere più facile il loro lavoro.

Quindi, in sostanza, è se sei a tuo agio con le protezioni di cui sopra già in atto.

    
risposta data 12.12.2016 - 18:13
fonte
1

Questo particolare rischio per la sicurezza è stato analizzato in uno standard chiamato PKCE, che tenta di mitigarlo: link . PKCE è un'estensione di OAuth e sia il tuo server che la tua app devono implementarlo per utilizzarlo.

La libreria AppAuth sponsorizzata da Google open source implementa PKCE per te. link

Personalmente ritengo che utilizzare un reindirizzamento https: // al posto di un reindirizzamento URI personalizzato sia migliore. Ciò richiede la configurazione su un server che corrisponde al link https: // per assicurarsi che la tua app e solo la tua app possano requisire quel reindirizzamento - vedi link per una discussione.

Una discussione su alcune delle questioni coinvolte qui è sepolta in questa discussione molto più ampia: link

Si noti che questo ultimo documento suggerisce l'uso della mitigazione PKCE anche se si sceglie la route di reindirizzamento https: //. Non ho ancora capito quale tipo di attacco teorico hanno in mente. Esse menzionano la "comunicazione interapp" con la quale potrebbero significare (sto indovinando) un caso limite in cui il malware è stato iniettato in un'altra app installata firmata con la chiave dello sviluppatore.

    
risposta data 09.05.2017 - 17:29
fonte

Leggi altre domande sui tag