#通信加密

通信加密包括SSL连接或TLCP连接,两者均在普通的TCP连接之上增加了相应的通信加密协议,用于实现数据库客户端与服务端之间的通信加密。

通信加密表示对所有客户端与服务端间的通讯内容进行加密传输,例如客户端向服务端发起的SQL请求,服务端向客户端返回的查询结果数据等。

# 加密协议

# SSL协议

SSL协议属于应用层(YashanDB)和传输层(TCP)之间的协议,SSL对应用层透明,用户无感知。

SSL握手

此阶段主要完成如下功能:

  • 客户端和服务端的安全认证。
  • 生成主密钥和会话密钥,用于后续传输对称加密。

SSL记录

此阶段使用双方的密钥进行数据的加密传输,发送方经历分块、压缩、加密等过程,接收方为反方向拆包。

# TLCP协议

TLCP协议采用SM系列密码算法和数字证书等密码技术保障传输层的机密性、完整性、身份认证和抗攻击,是一种基于国产密码算法的类SSL安全协议,作用机制与SSL协议类似。

# 加密身份认证

# SSL身份认证

YashanDB对SSL连接的登录请求采用SSL数字证书身份认证,包括证书的制作和证书的验证。

证书制作

在服务端生成密钥对(公/私钥);生成根证书(自签名,包含服务端公钥);利用根证书生成二级证书,且用私钥进行签名。

证书验证

客户端保留着服务端根证书,服务端将其二级证书发送至客户端,客户端用root公钥设计签名,与计算的消息摘要对比,进行验证。

# TLCP身份认证

TLCP采用SM2双证书体系进行身份认证,由CA签发加密证书用于会话密钥生成,签发签名证书用于身份验证。

# 加密连接开关

SSL连接、TLCP连接默认关闭,在需要通信加密时开启,开启必须同时配置数字证书,否则将导致数据库无法正常启动。

数据库服务端TLCP连接开启和配置操作请查阅数据库服务端TLCP连接配置

数据库服务端SSL连接开启和配置操作请查阅数据库服务端SSL连接配置

HA主备间通信可配置SSL连接,配置操作请查阅HA节点间SSL连接配置