【发布时间】:2017-01-30 13:24:36
【问题描述】:
我有一个有趣的问题。假设我们有一个用户 Bob,他登录到某个服务。假设 Bob 积极希望其他人尝试冒充他,该服务如何证明 Bob 的身份?即,我们如何确定登录的用户确实是 Bob?
- 使用 Bob 的 MAC/IP 地址是行不通的,因为这些地址很容易被欺骗。
- 作为身份验证手段的用户名/密码不起作用,因为 Bob 可以将这些凭据提供给任何人。
- 公钥系统(例如,使用 RSA 进行签名)无法正常工作,因为 Bob 只能与任何人共享他的私钥。
我本质上需要的是 Bob 有一些他不能分享的身份证明(或者至少其他人很难复制,因为 Bob 拥有的所有信息)。
编辑(如果有用的话):我正在使用 iOS 应用 (Bob) 和 Python Web 服务器(服务)。
【问题讨论】:
-
诸如 RSA 令牌之类的东西,或者必须插入的加密 USB 密钥或卡?
-
@RonMaupin 对于 USB 密钥或卡 - Bob 可以将其赠送给任何人。关于 RSA 令牌,您能再解释一下吗?
-
Bob 可以把它送出去,但 Bob 不会得到它。在Information Security 上问这个问题可能会更好。
-
公钥系统(例如使用 RSA 进行签名)无法正常工作,因为 Bob 可以与任何人共享他的私钥是不正确的。您可以使用@RonMaupin 所述的加密令牌或管理不可提取密钥的加密软件系统。例如用于 Web 浏览器或 AndroidKeyStore 或 iOS KeyChain 的 WebCryptographApi。取决于你的执行环境
-
@pedrofb 感谢您提供此信息。我假设共享私钥在技术上是可行的,但实际上软件使这不可行?此外,为了清楚了解我正在使用的平台,我更新了我的问题。
标签: ios security authentication encryption cryptography