---

title: API 网关认证与签名(HMAC、时间戳、防重放与时钟偏移)

keywords:

  • HMAC
  • 防重放
  • 时间戳
  • 签名
  • 时钟偏移

description: 设计并验证基于 HMAC 的网关签名方案,涵盖时间戳窗口、防重放与时钟偏移容忍,确保外部调用安全可靠。

date: 2025-11-26

tags:

  • HMAC
  • 后端
  • 安全
  • 时钟偏移
  • 时间戳
  • 签名
  • 网关
  • 防重放

categories:

  • 文章资讯
  • 编程技术

---

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 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部