Perché utilizzare "App Secret" nelle applicazioni mobili?

4

Vedo che alcuni SaaS richiedono l'importazione di "App Secret" nell'applicazione anche con "Application Key". Comprendo la "Chiave Applicaton", ma non riesco a capire il "Segreto app". Ecco perché:

  1. Posso decompilare l'applicazione e ottenere facilmente l'app secret.
  2. Se stai crittografando il traffico tra te e il server con esso, e il tuo sistema operativo non mi consente di decompilare la tua applicazione, posso ancora fare casino con i tuoi dati replicando la richiesta di traffico e inviarla milioni di volte.

Perché utilizzare "App Secret" nelle applicazioni mobili? Non possiamo dire che in realtà è pubblico perché è facilmente accessibile dall'esterno? La chiave dell'applicazione è anche accessibile, qual è la differenza, è a causa della mancanza di esperienza di quel SaaS?

    
posta xecute 22.09.2014 - 15:30
fonte

1 risposta

4

I segreti delle app sono legati al "flusso di autenticazione del server Web" (in particolare OAuth2), ovvero il modo in cui un server esegue l'autenticazione all'altro che è autorizzato ad accedere alle risorse fornite dal server. Puoi considerarlo come una "password di autorizzazione", in cui la password consente al servizio di chiamata di accedere al servizio che viene chiamato.

I client mobili non devono essere considerati attendibili e non dovrebbero mai utilizzare un'app secret; questo è un rischio intrinseco per la sicurezza, in quanto può consentire a un app dannoso di accedere al servizio. Una volta che un'app segreta è in circolazione, il servizio deve essere modificato per impedire alle app dannose di abusare del servizio per conto degli utenti.

Si noti che non è possibile utilizzare gli attacchi di riproduzione con OAuth2 perché utilizza un numero casuale per salare ogni transazione, sebbene il problema della decompilazione sia ancora molto importante. Infatti, ci sono stati articoli scritti sull'estrema numero di app Android vulnerabili a causa della perdita di segreti delle app.

Una volta che hai un'app segreta, puoi emulare l'app a cui corrisponde la chiave segreta e non puoi distinguere tra un'app pubblicata e autorizzata e un clone dannoso. Molti sviluppatori non capiscono che il segreto dell'app è l'equivalente di una password o di una chiave di crittografia privata e devono essere trattati come tali.

I client mobili e altre app non attendibili (app basate sul browser web) devono utilizzare il "flusso di autenticazione del client utente", in cui viene utilizzata solo la chiave dell'app.

    
risposta data 22.09.2014 - 15:43
fonte

Leggi altre domande sui tag