在哪里分发HMAC密钥部分?

时间:2013-05-04 22:35:37

标签: api rest key hmac

所以我目前正在开发一个跨平台的应用程序。出于这个原因,我希望应用程序通过使用Zend Framework的REST API构建在云服务上使用外部数据库。我研究了如何构建安全的REST API,许多资源使用HMAC进行身份验证。让我有点困惑的部分是应该在哪里生成密钥以及如何与服务器和客户端共享?

每个客户端(在应用程序的每个用户中都应该)获得一个唯一的密钥吗?

如果没有,我想我可以这样做:

  1. 为(例如)服务器上的iOS设备生成密钥。
  2. 硬编码应用中的密钥
  3. 每次请求HMAC都会发送哈希密钥,一些数据和用户ID。
  4. 我检查HMAC中的用户ID,用普通JSON发送的用户ID,以及密钥是否匹配。
  5. 执行用户发送的任何用户请求。
  6. 每当第三方服务想要使用我的其他API时,我都需要专门为该服务生成一个单独的密钥。

    如果每个用户都必须生成一个单独的密钥,那么我不知道如何将密钥传输到服务器而不存在中间人攻击的风险。

    这听起来不错吗?

0 个答案:

没有答案