我有一个网络应用程序,允许用户将移动设备添加到他们的帐户(使用移动应用程序)。
每个设备都由其UUID唯一引用。移动客户端是使用 PhoneGap 开发的,因此它device.uuid
为此使用了变量。用 PhoneGap 编写的应用程序可以在许多系统上运行,但我的应用程序仅针对 Android 和 iOS。
问题:当我的系统(服务器和移动客户端)检测到新用户帐户(新登录名和密码)试图添加一个设备时,我的系统(服务器和移动客户端)应该如何反应,该设备的 UUID 已经存在于数据库中并且当前绑定到另一个用户帐号?
我可以假设(在当今世界 - 在 iOS 和 Android 上)任何特定设备的 UUID:
- 毫无疑问是独一无二的(两个设备不能有相同的 UUID),
- 是安全的(不能更改或欺骗)。
换句话说:在上述情况下,我的服务能否自动将特定设备(UUID)“重新绑定”到另一个用户帐户?我可以假设没有两个设备具有相同的 UUID 并且没有太简单的方法来欺骗 UUID?
或者我应该在这种情况下引入一些“更安全”的逻辑?像某种设备注销(从第一个帐户)并重新注册(在新帐户上)?并且不允许用户(用户帐户)添加/注册新设备,如果相同的 UUID 已经注册到另一个用户帐户?
我不会否认,我是安全领域的门外汉。所以,我会假设,UUID 是独特的并且具有足够的抗欺骗性,可以在提到的情况下引入提到的自动设备 (UUID) 重新注册。