# 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;避免明文泄露。 - 规范化参数与编码;一致的排序与空白规则。 - 密钥轮换与访问控制到位;避免跨环境复用。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部