Iphone 如何使用UDID或设备令牌进行安全登录?

Iphone 如何使用UDID或设备令牌进行安全登录?,iphone,android,security,login,udid,Iphone,Android,Security,Login,Udid,因此,我正在制作一个应用程序,我希望用户能够添加、编辑和评价内容,但我不想强迫他们注册。相反,我计划只使用他们的设备id或设备令牌来识别他们。我计划同时生产iPhone和Android版本,因此我正在寻找一个通用的解决方案,但iPhone版本具有更高的优先级,因此也欢迎针对iPhone的解决方案 问题是,我不希望任何人都能通过发送虚假的设备id或其他人的设备id来使用我的web服务 客户端如何向服务器证明它提供了正确的设备id?理论上,您不能。设备ID不是特别机密,在大多数情况下,它很容易被欺骗

因此,我正在制作一个应用程序,我希望用户能够添加、编辑和评价内容,但我不想强迫他们注册。相反,我计划只使用他们的设备id或设备令牌来识别他们。我计划同时生产iPhone和Android版本,因此我正在寻找一个通用的解决方案,但iPhone版本具有更高的优先级,因此也欢迎针对iPhone的解决方案

问题是,我不希望任何人都能通过发送虚假的设备id或其他人的设备id来使用我的web服务


客户端如何向服务器证明它提供了正确的设备id?

理论上,您不能。设备ID不是特别机密,在大多数情况下,它很容易被欺骗。至于Android,该操作系统上根本没有可靠的设备ID——请参见此处的血淋淋的详细信息:

你所能依赖的只是隐晦的安全性——希望没有人能够下定决心对代码进行反向工程并分析身份验证协议。不公开代码也不是一个选项——毕竟你是在分发应用程序

这就是说,一种不特别安全的身份验证方法是——发送设备ID和设备ID的散列,并将其与一个秘密连接起来,在客户端代码字符串中硬编码为共享秘密。该服务将包含机密的副本,使用提供的设备ID重新计算哈希值,并匹配哈希值。通过协议分析无法破解,只有通过挖掘密码才能破解。但易受重播攻击。请随意混淆代码-e中的秘密。G使用前,将储存在不同位置的零件组合在一起


要获得更强大的解决方案,请验证用户,而不是设备。这取决于您的客户,并取决于业务性质。

我不是安卓专家,但我认为代码对于设备来说是独一无二的。我不知道你如何读取和传输它。

当拥有多台设备或自己的设备的用户尝试使用你的应用程序时,你希望发生什么?这是一个很好的观点。我计划让用户可以选择注册他们的电子邮件地址。您可以使用电子邮件地址将多个设备ID与同一用户关联起来进行验证。这与我提出的解决方案完全相同。然而,我不是安全专家,所以我想可能stackoverflow上的人会知道更好的方法。我不处理任何敏感数据,因此简单性比安全性更重要。