所以我现在正在开发一个移动应用程序,它将向使用Django构建的REST API发出请求.
为了保护API,我计划使用私钥/公钥对身份验证系统.
我想到的工作流程是这样的:
- 用户使用Facebook登录
- 一旦用户签署应用程序,就会生成一个私钥
- 私钥在服务器和应用程序之间共享,以便服务器知道将该私钥映射到特定用户.
- 每次移动应用程序发出请求时,应用程序都会使用请求参数和私钥生成HMAC /签名.除了HMAC之外,应用程序还会发送发送它的用户的user_id(这将充当公钥).
- 当服务器收到请求时,它会生成自己的HMAC.它接受user_id并在表中查找私钥.使用私钥,它使用请求参数重新创建HMAC,并将其与移动应用程序发送的HMAC进行比较.如果服务器和移动设备具有匹配的HMAC,则它执行请求.
现在我的问题在于步骤3,其中私钥必须以某种方式在移动应用程序和服务器之间共享.如何安全地发送私钥?