暂无图片
MySQL SSL安全解读
最近更新:2022-12-12 16:52:34

简介

安全一直是不可不重视的问题。目前MySQL这方面应大方向上技术手段都具备。如:网络链接,权限控制,key秘钥认证,数据加密脱敏 等方式。综合考虑,虽然很多环境无法所有这些安全策略全部应用上,但在可控范围内尽量做到一定的防范实施。

其中SSL是属于加密连接方式,提供以下安全服务:

  1. 客户机和服务器之间的,通过使用公开密钥和对称密钥技术以达到信息保密。
  2. 信息完整性,确保SSL业务全部达到目的。应确保服务器和客户机之间的信息内容免受破坏。
  3. 双向认证,客户机和服务器相互识别的过程。它们的识别号用公开密钥编码,并在SSL握手时交换各自的识别号。
  4. 安全性服务对终端用户来讲做到尽可能透明。 image.png

SSL介绍

SSL定义:

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

SSL证书:

SSL安全证书是由权威认证机构颁发的,是CA机构将公钥和相关信息写入一个文件,CA机构用私钥对公钥和相关信息进行签名后,将签名信息也写入这个文件后生成的一个文件。 简单理解就是客户申请后,签发机构给一个唯一的文件,然后客户安装到服务器上进行使用,这个唯一的文件就是SSL证书。

备注: X.509:是一种证书格式,对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。 OpenSSL 相当于SSL的一个实现,如果把SSL规范看成接口,那么OpenSSL则认为是接口的实现。

MySQL里SSL使用方式

MySQL中SSL功能支持客户端到服务器端的认证。主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性。

TLS(Transport Layer Security)是更为安全的升级版SSL。SSL表示安全套接字层,而TLS表示传输层安全。 image.png

实际上,目前MySQL使用的就是TLS协议,而不是单纯的SSL协议(如:status的ssl信息TLS_AES_256_GCM_SHA384)

mysql> status
--------------
mysql  Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:		22
Current database:	
Current user:		ssluser@iZuf6178v14ipc59jbbpfnZ
SSL:			Cipher in use is TLS_AES_256_GCM_SHA384
                        #表示用户采用SSL连接到mysql服务器如上,如果不是显示"Not in use"
。。。
--------------

MySQL中SSL和RSA文件具有以下特征:

  • SSL和RSA密钥的大小为2048位。
  • SSL CA证书是自签名的。
  • 使用sha256WithRSAEncryption签名算法,使用CA证书和密钥对SSL服务器和客户端证书进行签名。
  • SSL证书使用以下通用名称(CN)值以及相应的证书类型(CA,服务器,客户端):
ca.pem:         MySQL_Server_suffix_Auto_Generated_CA_Certificate
server-cert.pm: MySQL_Server_suffix_Auto_Generated_Server_Certificate
client-cert.pm: MySQL_Server_suffix_Auto_Generated_Client_Certificate
......