# 通信安全

除了使用HTTPS保证传输安全外, 还需要通过数字签名验证来认证通信双方的身份以及消息内容的完整性, 数字签名使用SHA256withRSA方式生成。

## 交换公钥

交换密钥前需要生成各自的RSA密钥对。通信的双方(接入开放平台的客户, 开放平台)以可信方式交换双方的公钥并保存在各自的系统中。

## 数字签名

### 请求签名

客户需要使用自身的私钥对API请求路径、消息体等关键数据的组合进行SHA256withRSA签名。请求的签名信息通过HTTP头Authorization传递，具体说明请见[签名生成与验证](/zh-hans/collection/apis/intro/signature)。没有携带签名或者签名验证不通过的请求，都不会被执行，并返回401 Unauthorized。

### 应答签名

对于签名验证成功的请求，开放平台会使用自己的私钥对应答进行签名。签名的信息包含在HTTP头部中，具体说明请见[签名生成与验证](/zh-hans/collection/apis/intro/signature)。

### 回调通知与签名

客户向开放平台提供接收回调通知的HTTPS端点地址。当调用客户的接口时，开放平台私钥对回调请求进行签名。签名的方法同应答签名的方式一致，客户必须使用开放平台公钥验证回调的签名。通知必须验证开放签名，避免被恶意攻击。