Rischi di utilizzare l'UUID per identificare l'utente nell'app mobile

3

Ho una base clienti esistente. Un cliente ha appuntamenti. Al momento non possono accedere o modificare i loro appuntamenti senza contattarmi direttamente.

Voglio offrire loro un modo per accedere e modificare i loro appuntamenti imminenti, con il minor dispendio possibile (maggiore impegno per il cliente significa meno possibilità che lo usino e meno profitti).

Il mio pensiero è questo: generare un UUID (come "in modo sicuro casuale" il più possibile) e inviare loro un SMS con le istruzioni per l'installazione di un'app (Android / iOS) e un URL dell'app associato (app: // UUID).

Quando si apre l'app con questo URL, esso memorizza l'UUID e lo usa per fare richieste attraverso l'app al mio servizio web con HTTPS che poi recupera gli appuntamenti e potenzialmente cambia i loro appuntamenti (questa è l'unica operazione di "scrittura").

Dato che l'app non sarà disponibile attraverso un normale browser web, penso che fornire l'UUID in un app-URL impedirà alle persone di "lasciare" il proprio URL ovunque in browser casuali, dovranno solo utilizzare URL una volta e controllo che tutte le richieste di servizi Web vengono eseguite tramite l'app su HTTPS in modo che l'UUID non venga versato in questo modo.

Mentre sto pensando di rendere questo UUID "duraturo per sempre", aggiungerò un'opzione per i clienti per segnalare il loro ID come perso e per richiedere un nuovo ID (invalidando il vecchio).

Dato questo schema, penso che:

  • Perdere il telefono significa perdere la tua identità (memorizzata nell'app)

  • Inoltrare / perdere SMS / URL significa perdere la tua identità (non dovrebbe essere richiesto più che per l'apertura iniziale della app per salvare l'identità, ma non mi aspetto che la maggior parte delle persone si preoccupi di cancellarla anche se detto a)

  • Debole se UUID può essere indovinato

Quali sono le insidie e gli scenari di sicurezza a cui non ho pensato? Tieni presente che la facilità d'uso per i clienti è importante (preferibilmente non riempire nulla / molto), e mentre l'informazione è considerata privata non è un valore molto alto.

Commenti sull'utilizzo di UN / PW:

Poiché esiste una base di clienti, ho bisogno di sapere quale cliente ha il login. Sto pensando che o avrebbero dovuto crearlo da soli in ufficio (cosa che vorrei evitare di avere il minimo di input possibile), o dare loro qualche UN / PW generato che possano usare (ma poi di nuovo I lo sto distribuendo), oppure lo creano online e in qualche modo forniscono abbastanza informazioni per identificarsi e connettersi.

In generale mi piacerebbe qualche schema in cui il punto di partenza è che possono identificarsi senza problemi date alcune informazioni che poi conosco sono loro. Sono aperto a suggerimenti perché spero di trarre da pochissime informazioni.

    
posta TragedyStruck 21.06.2016 - 13:00
fonte

1 risposta

2

Il rischio principale è l'esposizione successiva del collegamento se il messaggio originale è trapelato.

Una strategia simile di utilizzo di un token univoco è piuttosto standard per reimpostazioni di password dimenticate o account pregenerati sui siti Web, con i seguenti avvertimenti:

  • il token non è ipotizzabile (un UUID generato in modo sicuro dovrebbe andare bene qui)
  • l'uuid / link è uno (usato con successo) solo
  • l'uuid / link scade dopo un certo periodo di tempo (la durata esatta è il compromesso tra la comodità dell'utente e l'esposizione potenziale)

Vedi link per ulteriori dettagli sulle strategie di reimpostazione della password.

Per il tuo approccio, una volta scaricata l'app, dovrai generare una seconda chiave per l'accesso futuro e archiviarla a livello locale. Significa che è necessario reimmettere il collegamento con un nuovo UUID occasionalmente se un utente riceve un nuovo telefono o se ha dimenticato di utilizzarlo la prima volta.

Piuttosto che un'app, suggerirei di creare un sito Web con un / pw e quindi solo precreare gli account e inviare collegamenti di registrazione con un UUID a ciascun utente (cioè, impostano UN / PW al primo accesso). In questo modo puoi avere un dominio e un sito Web (si spera, facile da ricordare) di facile accesso. Significa anche che i link di iscrizione non possono essere riutilizzati in seguito e possono essere scaduti.

    
risposta data 14.05.2018 - 04:54
fonte

Leggi altre domande sui tag