跳到主要内容

数据传输加密概述

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。seekdb 在原有的 TCP 通信上扩展支持 SSL/TLS 协议,解决通信加密的问题。使用加密传输可以减少数据库中敏感信息的泄露风险。加密传输是采用密钥对信息进行加密和解密的过程,可以有效的保护数据的安全。具体而言,数据库加密传输可以通过 SSL 或 TLS 协议来实现。

其中采用两种协议进行通信:

  • MySQL 协议:驱动层 <=> 数据链路层,数据链路层 <=> DB 层之间的通信采用扩展的 MySQL 协议。开启通信加密后,加密即时生效,所有新的 MySQL 连接均采用加密方式进行通信。

  • OB-RPC 协议:seekdb 与 seekdb 之间,及 seekdb 与 liboblog、ob_admin 等之间的通信采用 seekdb 自有的 RPC 协议通信。

其中 DB 层的 seekdb、liboblog、obadmin 等组件均支持 SSL/TLS 加密通信,底层依赖 OpenSSL 或者第三方的 SSL 库,为业务提供安全的加密传输服务。

seekdb 为每个用户提供不同的 SSL 认证机制的选择。包括:

  • SSL 单向认证:客户端需要加载服务端的 CA 证书。客户端单向校验服务器端证书的有效性。
  • X509 双向认证:服务器端和客户端都需要加载对端的 CA 证书,服务器端和客户端双向校验证书的有效性。
  • 特殊的双向认证(可组合):
    • 指定加密算法认证:基于 X509 双向认证,同时限定 SSL 加密算法。
    • 指定发行方认证:基于 X509 双向认证,同时限定客户端 CA 证书发行方。
    • 指定 SSL 主题认证:基于 X509 双向认证, 同时限定客户端 CA 证书主题。