本文目录:
引言 一、MySQL 5.7 未加密连接的情况 1.1 抓包 1.2 MySQL 通过 tcp 进行连接,并执行测试 SQL 1.3 通过 wireshark 解析抓包 二、MySQL 8.0 加密连接 2.1 抓包 2.2 MySQL 通过 tcp 进行连接,并执行测试 SQL 2.3 通过 wireshark 解析抓包 2.4 分析使用 TLS 加密连接握手过程 写在最后
引言社区之前的文章“快速掌握 MySQL 8.0 认证插件的使用”中说道,MySQL 8.0 使用 caching_sha2_password 认证插件进行加密连接,初步介绍了加密连接,本文从网络抓包层面看一下在使用 caching_sha2_password 插件的 MySQL 8.0 是如何进行加密连接的。
一、MySQL 5.7 未加密连接的情况环境:
MySQL 5.7.25
tcpdump 4.9.2
wireshark 3.2.2
1.1 抓包tcpdump -i eth0 -s 0 host 10.186.65.69 and port 3306 -w ./5.7.cap
1.2 MySQL 通过 tcp 进行连接,并执行测试 SQLshell> mysql -uroot -pxxxx -h10.186.60.73 -P3306mysql> show databases;mysql> select * from qinfulang.sbtest1 limit 1;mysql> exit
1.3 通过 wireshark 解析抓包
从上图可以分析以下信息:
从包 9-20 可以看出,没有使用加密连接插件的情况下,在经过抓包工具抓包后,经过 wireshark 就可以直接解析到查询语句,非常不安全。Tips:此处提供一个小技巧:
在 wireshark 里,编辑-首选项-Protocols-MySQL 里可以设置是否在解析窗口的 info 列里面显示 SQL query 语句以及可以设置 MySQL TCP 默认端口。