HMAC 经常实现错误吗?
Is HMAC frequently implemented wrong?
我遇到的一些 REST 服务要求我下载一个 API 密钥或某种共享密钥,然后简单地将其与 headers 一起传递。
但是当我试图在 Google 搜索中描述这种设计模式时,我得到的只是 "HMAC" 这似乎更复杂; HMAC 旨在从不将共享密钥直接发送到服务器,并涉及将密钥与其他数据进行散列。
所以我在看什么?有名字吗?
您是正确的,以您描述的方式使用 API 密钥不是 HMAC。它通常被称为 "API Key Authentication" 或类似的名称。 API 密钥身份验证只是一个密码,通常作为 header 与每个请求一起传递。
这仅在与 HTTPS 配对时是安全的,因此观看流量的任何人都不能简单地读出 API 密钥。
我遇到的一些 REST 服务要求我下载一个 API 密钥或某种共享密钥,然后简单地将其与 headers 一起传递。
但是当我试图在 Google 搜索中描述这种设计模式时,我得到的只是 "HMAC" 这似乎更复杂; HMAC 旨在从不将共享密钥直接发送到服务器,并涉及将密钥与其他数据进行散列。
所以我在看什么?有名字吗?
您是正确的,以您描述的方式使用 API 密钥不是 HMAC。它通常被称为 "API Key Authentication" 或类似的名称。 API 密钥身份验证只是一个密码,通常作为 header 与每个请求一起传递。
这仅在与 HTTPS 配对时是安全的,因此观看流量的任何人都不能简单地读出 API 密钥。