我们已经构建了一个可嵌入第三方网页的JavaScript模块。当这个客户端模块被初始化时,它通过一个跨站请求在我们的Web应用程序中执行一个事务。需要多长时间才能破解HMAC sha256摘要私钥给定数据
该交易由外部uuid,电子邮件和一些其他元属性组成。此消息使用我们的合作伙伴的专用API密钥与HMAC sha256摘要签署。
红宝石例如:
data = {
uuid: "ABCAFAFDS",
email: "[email protected]",
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私钥长度有多难?
可能更适合http://security.stackexchange.com – deceze