#通信加密
通信加密包括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连接配置。