API 安全
我们的 API 基于 HTTPS 协议,使用 POST 方法传输 JSON 数据。为了确保安全并防止数据被篡改,API 要求客户端进行认证,并支持两种认证方式:Basic Auth 和 RSA 签名认证。为保护敏感数据,需要加密部分字段,我们提供两种加密方式:AES 和 RSA。本文将介绍这两种认证机制,并讨论加密敏感数据的两种方式。
认证
1. RSA 签名认证(推荐)
RSA 签名认证通过使用私钥对请求数据进行签名,接收方可以使用发送方的公钥来验证请求的真实性,确保消息未被篡改并确认发送者身份。
工作原理:
客户端使用自己的 RSA 私钥对请求报文进行签名。服务器通过交换过来的客户端的 RSA 公钥验证签名的有效性。
优点:
- 相比 Basic Auth,安全性更高,采用非对称加密和数字签名。
- 能有效确保发送方的身份和消息的完整性。
- 防止重放攻击和中间人攻击。
缺点:
- 实现复杂度较高,涉及公私钥管理。
2. Basic Auth
Basic Authentication 是一种简单的认证方式,它通过将用户名和密码(或令牌)进行 Base64 编码后在请求头中发送。这种认证方法主要用于简单的身份验证,但本质上并没有加密,因此需要结合 HTTPS 和IP白名单来确保通信安全。
提示
当前版本暂不支持 Basic Auth,将在下一个版本上线,敬请期待!
工作原理:
请求方将用户名和密码以 用户名:密码 形式组合,并使用 Base64 进行编码。编码后的字符串作为 HTTP 请求头中的 Authorization 字段传递。服务器通过解码来验证用户名和密码的有效性。