Ho un'applicazione web che consente agli utenti di aggiungere dispositivi mobili ai propri account (utilizzando l'app mobile).
Ogni dispositivo viene referenziato in modo univoco dal suo UUID . Il client mobile è sviluppato utilizzando PhoneGap, quindi utilizza la variabile device.uuid
per questo scopo. Un'app scritta in PhoneGap può essere eseguita su molti sistemi, ma la mia applicazione ha come target solo Android e iOS.
La domanda: Come il mio sistema (server e client mobile) dovrebbe reagire, quando rileva, che il nuovo account utente (nuovo login e pass) sta tentando di aggiungere un dispositivo, quale UUID esiste già in un database e attualmente è associato a un altro account utente?
Posso supporre (nel mondo di oggi - su iOS e Android) che l'UUID di qualsiasi dispositivo particolare:
- è univoco senza alcun dubbio (due dispositivi non possono avere lo stesso UUID),
- è sicuro (non può essere modificato o falsificato).
In altre parole: il mio servizio può automaticamente "rebindare" un particolare dispositivo (UUID) a un altro account utente, nella situazione descritta sopra? Posso supporre che non ci siano due dispositivi con lo stesso UUID e che non ci siano modi troppo semplici per lo spoofing dell'UUID?
O dovrei introdurre qualche logica "più sicura" in tali situazioni? Come una sorta di dispositivo che cancella la registrazione (dal primo account) e ri-registra (su un nuovo account)? E non consentire all'utente (account utente) di aggiungere / registrare un nuovo dispositivo, se lo stesso UUID è già registrato con un altro account utente?
Non lo negherò, sono un laico in materia di sicurezza. Quindi, presumo, che gli UUID siano unici e resistenti allo spoofing quanto basta per introdurre la nuova registrazione del dispositivo automatico (UUID) nella situazione menzionata.