最后更新:
Click to expand / collapse
API集成不仅需要访问控制,还需要确保每个请求的真实性和完整性。为此,我们支持HMAC签名(基于Hash的消息认证代码)以及查询主体和参数的加密,即使在通过开放网络传输时也能提供数据保护。
使用HMAC,每个方面(客户端和服务器)都确认请求是由授权方创建的,没有沿途更改,并且具有加密的内容。
实现的内容
| 二.机制 | 目的和好处 |
|---|---|
| HMAC签名 | 使用密钥签名每个请求 |
| 完整性控制 | 在传输过程中检查内容是否未更改 |
| 请求主体加密 | 使用AES或RSA保护敏感数据 |
| 标题timestamp's | 防止重复和延迟攻击(replay attack) |
| 查询参数签名 | 通过哈希函数验证查询字符串和计费 |
它是如何工作的?
1.客户端生成请求主体并添加timestamp
2.由HMAC(例如SHA256)根据秘密和内容计算
3.标题添加到标题(例如"X-Signature")
4.服务器检查签名、时间戳和有效的IP
5.如果签名匹配-请求正在执行,否则将拒绝
API集成的优势
防止请求被替换或失真
能够在没有TLS的情况下进行安全交互(在封闭的网络中)
提高对数据链路的信心
独立于特定平台或语言
针对不同类型的客户灵活实现: 收银机、网关、提供商
在哪里,特别重要
与支付、现金或财政系统的集成
在多协议或合作伙伴环境中运行的API
查询验证要求较高的系统
内部服务之间的交互,无需永久授权