use*_*937 5 api django rest hmac
所以我现在正在开发一个移动应用程序,它将向使用Django构建的REST API发出请求.
为了保护API,我计划使用私钥/公钥对身份验证系统.
我想到的工作流程是这样的:
现在我的问题在于步骤3,其中私钥必须以某种方式在移动应用程序和服务器之间共享.如何安全地发送私钥?
首先,我要问为什么应用程序的服务器部分需要知道私钥。如果只想对用户进行身份验证,则只需要公共密钥和用户ID,并且用户ID不能为iself作为公共密钥(您需要一种方法来找出要使用的公共密钥)。
例如,共享密钥的过程(您的第三步)可能类似于以下内容:
也许整合到Facebook是使这一点变得不可能的部分。我不太了解Facebook是如何进入整个过程的。
使密钥传输更加安全的一件事是使用多个通道进行传输。
例如,您的应用程序可以发送使用REST API生成的私钥,但可以使用对称加密方案对其进行加密。对称加密密钥可以通过某种其他媒介(例如电子邮件)发送,也可以通过SMS发送,因为这是一个移动应用程序,甚至可以通过自动电话拨打注册用户提供的号码。密钥可以是生成实际对称加密密钥的随机密码,以确保它可以由用户输入。然后,要解锁该应用程序,用户需要在屏幕上键入此密码短语,然后将密钥解锁。
同样,这仅在很小的程度上提高了传输的安全性,尤其是考虑到以下事实:如果您可以拦截私钥的传输,则可能可以拦截包含密码短语的电子邮件。我认为,不将私钥发送到服务器不仅是最佳的,而且是必需的。
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |