我正在尝试使用HMAC身份验证构建Restful API。我发现了一些帮助我开始工作的文章(http://www.9bitstudios.com/2013/07/hmac-rest-api-security/),但我有一些问题。
似乎HMAC身份验证依赖于私钥,该私钥用于在客户端生成哈希并用于在服务器端重新创建相同的哈希以进行比较。
但这引发了客户端如何知道密钥的问题。当用户登录时,它必须通过线路发送 - 或者它需要已经存在于客户端应用程序中。
似乎如果它在登录时通过电线发送 - 这会打开一个安全漏洞。但如果它已经存在于客户端(在这种情况下是一个Backbone应用程序),有人可以很容易地在代码中找到它。
我的下一个问题是,如果秘密密钥不应该通过网络发送,那么它首先如何到达客户端并且是安全的?