我們已經構建了一個可嵌入第三方網頁的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