首页 > 解决方案 > 智能手机唯一标识符作为密码/登录凭据?

问题描述

我的意图

  1. 应用程序只允许每部智能手机使用一个帐户(例如 Telegram/Whatsapp)
  2. 智能手机唯一标识符一起充当密码/登录凭据并确保第 1 点。
  3. 基于令牌的登录返回一个 48 小时有效令牌,因此登录过程不会占用太多服务器端资源

研究至今

SO上关于android唯一标识符的热门帖子已经建议使用什么标识符。

搜索“无密码登录”会导致结果,但它们与我想要创建帐户的方式无关。我发现的“使用智能手机作为登录凭据”的唯一主题只是写了关于好处以及可能的应用方式/领域。就像使用 NFC 获得进入建筑物的授权一样。

到目前为止的解决方案

问题

如果有人对应用程序进行反汇编/逆向工程,使用提取的客户端证书(应用程序中的 PKCS#12 文件)构建桌面应用程序模拟器,因为服务器需要有效的客户端证书,他可以通过制作智能手机唯一标识符数据来注册帐户。

问题

  1. 由于将已经唯一的标识符保存在明文中不是一种选择,因为它是敏感的用户数据,因此散列它们不会增加散列冲突的危险吗?尽管 4 个唯一值一起创建了一个新的唯一值,即使有时其中的一两个值与其他记录中的值相同。所以对此的担忧可以忽略不计吗?
  2. 这个问题阻止了我每部智能手机只有 1 个帐户的意图。因此,我是否别无选择,将帐户绑定到电话号码并要求通过短信验证?
  3. 其他方法?(比如只从 4 个唯一标识符生成唯一密码?)
  4. 还在寻找被认为是破碎的咸味 MD5 哈希函数吗?如果 20 个字符就足够了,因为 4 个唯一值不再存在,还是我应该使用完整的 32 个字符?
  5. 这种方法可以与基于令牌的登录一起使用吗?
  6. 我忽略了什么吗?任何进一步的安全方面?

标签: androidpasswordsuniqueidentifiersmartphoneuser-accounts

解决方案


推荐阅读