API 网关认证与签名(HMAC、时间戳、防重放与时钟偏移)概述对外 API 需要签名与凭证校验,防止参数篡改与重放。本文给出 HMAC 方案与验证方法。关键实践与参数签名基串:`method + path + canonicalQuery + bodyHash + timestamp + nonce`算法:`HMAC-SHA256`;密钥最短 32 字节并定期轮换。时间窗口:允许 `±300s` 时钟偏移;过期请求拒绝。防重放:对 `nonce` 建立短期去重(如 10 分钟,Redis)。示例(伪配置)auth: hmac: algo: SHA256 clock_skew_seconds: 300 timestamp_header: X-Timestamp nonce_header: X-Nonce signature_header: X-Signature replay_protection: store: redis ttl_seconds: 600 验证方法篡改参数与过期请求应被拒绝;时钟偏移在窗口内通过。压测查重命中率与延迟;观察拒绝比例与误拒比。审计日志包含签名上下文与失败原因。注意事项所有通信走 HTTPS;避免明文泄露。规范化参数与编码;一致的排序与空白规则。密钥轮换与访问控制到位;避免跨环境复用。

发表评论 取消回复