#SSL加密
SSL连接在普通的TCP连接之上增加了SSL协议,用于实现数据库客户端与服务端之间的通信加密。
通信加密表示对所有客户端与服务端间的通讯内容进行加密传输,例如客户端向服务端发起的SQL请求,服务端向客户端返回的查询结果数据等。
# SSL协议
SSL协议属于应用层(YashanDB)和传输层(TCP)之间的协议,SSL对应用层透明,用户无感知。
SSL握手
此阶段主要完成如下功能:
- 客户端和服务端的安全认证。
- 生成主密钥和会话密钥,用于后续传输对称加密。
SSL记录
此阶段使用双方的密钥进行数据的加密传输,发送方经历分块、压缩、加密等过程,接收方为反方向拆包。
加密套件
默认使用HIGH:MEDIUM:+3DES:!aNULL。
# SSL身份认证
YashanDB对SSL连接的登录请求采用SSL数字证书身份认证,包括证书的制作和证书的验证。
证书制作
在服务端生成密钥对(公/私钥);生成根证书(自签名,包含服务端公钥);利用根证书生成二级证书,且用私钥进行签名。
证书验证
客户端保留着服务端根证书,服务端将其二级证书发送至客户端,客户端用root公钥设计签名,与计算的消息摘要对比,进行验证。
# SSL连接开关
SSL连接默认关闭,在需要通信加密时开启,开启必须同时配置数字证书,否则将导致数据库无法正常启动。
SSL连接开启和配置操作请查阅SSL连接配置。
# 内部节点配置
HA主备间通信可配置SSL连接,配置操作请查阅HA节点间SSL连接配置。