多长时间破解HMAC sha256摘要私钥给定数据

时间:2017-10-16 16:57:43

标签: javascript sha256 hmac

我们已经构建了一个可以嵌入第三方网页的javascript模块。初始化此客户端模块时,它会通过跨站点请求在我们的Web应用程序中执行事务。

该交易包括外部uuid,电子邮件和一些其他元属性。此消息使用我们合作伙伴的私有API密钥与HMAC sha256摘要签名。

Ruby示例:

data = {
  uuid: "ABCAFAFDS",
  email: "email@gmail.com",
  meta: {}
}

private_key = "Qd9fe0y2ezqfae4Qj6At"
signature = OpenSSL::HMAC.hexdigest(
  OpenSSL::Digest.new("sha256"),
  private_key,
  data.to_json
)

在第三方网页中,然后使用签名和数据初始化javascript客户端:

new Client(signature, data).execute();

最初,我们的计划是允许客户在我们的系统中创建部分/不完整的事务,然后通过我们的REST API请求后续的后端请求来确认/完成事务。但是,假设我们可以保护前端,那么删除后端确认要求将是优先的。

我们能否以这种方式使用签名邮件合理保护客户端代码?如果数据和签名消息在客户端可用,那么如果长度超过,那么糟糕的演员有多么难以强制使用API​​私钥长度?

1 个答案:

答案 0 :(得分:2)

如今,大多数互联网流量都在客户端上签署了令牌。你所有的Gmail登录,facebook登录等都是这样做的,所以它是相当标准的。我建议使用现有标准(和第三方库),而不是使用自己的令牌。这将让您利用其他人在该领域的专业知识。

JWT(json web token)是常用的,有许多库可供JWT使用。有关详细信息,请参阅https://jwt.io