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

发表评论 取消回复