headers 里添加一个签名 x-response-signature,BKJ 确保每一个请求返回的签名都具有唯一性。调用方可以使用 api_key 对该签名进行 ED25519 数字签名校验,以达到验证响应数据合法性,防篡改等。┌─────────┐ ┌──────────┐ ┌─────────┐
│ 调用方 │ ──1──> │ 开放平台 │ ──2──> │调用方 │
│ │ │(签名验证) │ │验证签名 │
└─────────┘ └──────────┘ └─────────┘
1. 调用方使用 api_secret 生成 HMAC-SHA256 请求签名
2. 请求签名验证通过后,生成 ED25519 响应签名,通过 x-response-signature 请求头传递
3. 调用方使用 api_key(或 api_secret) 验证响应签名,并可通过对签名进行唯一性校验,达到防重放攻击的目的x-response-signatureapi_keytimestamp 和 nonceapi_secretapi_secret的服务端,且对应于正确的请求(timestamp、nonce、api_key)。SHA256(api_secret) 派生 ED25519 签名密钥SHA256(api_secret) 派生验证密钥api_secret。api_secret 作为私钥进行签名(服务端)api_key 作为公钥进行验证(调用方)timestamp|nonce|api_key 的签名。调用方可以使用原始请求的 timestamp、nonce 和自己的 api_key 来验证签名,无需从响应头获取额外信息。api_secret 必须安全存储,不能暴露给调用方