MySQL中TCP和套接字SSL加密连接行为分析

news2025/5/24 8:09:13

目录

一、前言

二、背景

三、参数介绍

3.1、 have_openssl

3.2、have_ssl

3.3、require_secure_transport

四、--ssl-mode=mode

五、CREATE USER SSL/TLS选项

六、问题验证

6.1、使用套接字连接

6.2、使用TCP连接

七、分析与总结


一、前言

SSL(Secure Sockets Layer)认证是客户端到云数据库服务器端的认证,对用户和服务器进行认证。开通 SSL 加密,可获取 CA 证书,将 CA 证书上传在服务端。在客户端访问数据库时,将激活 SSL 协议,在客户端和数据库服务端之间建立一条 SSL 安全通道,实现数据信息加密传输,防止数据在传输过程中被截取、篡改、窃听,保证双方传递信息的安全性。

SSL 协议要求建立在可靠的传输层协议(TCP)之上,其优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP、FTP、TELNET 等)能透明地建立于 SSL 协议之上。SSL 协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作,在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

二、背景

使用非加密方式连接数据库时,在网络中传输的所有信息都是明文,因此存在被非法用户窃听、篡改、冒充的三大风险;而 SSL 协议是为解决这三大风险而设计的,理论上可达到:

  • 信息是加密传播,第三方无法窃听。
  • 具有校验机制,一旦被篡改,通信双方会立刻发现。
  • 配备身份证书,防止身份被冒充。

数据库 MySQL 支持通过开启 SSL 加密来增强链路安全性,并支持下载和安装 SSL CA 证书到需要的应用服务。

SSL 加密不保护数据本身,是确保来往于数据库和服务器之间的流量安全,在传输层对网络连接进行加密,能够提升通信数据的安全性和完整性,但会同时增加网络连接响应时间。

三、参数介绍

3.1、 have_openssl

  • 这个变量表示 MySQL 服务器是否编译时包含了 OpenSSL 支持。OpenSSL 是一个开源的加密库,广泛用于实现 SSL 和 TLS 协议。
  • 如果值为 YES,表示服务器支持 OpenSSL,可以用于建立安全的 SSL 连接。

3.2、have_ssl

  • 这个变量表示 MySQL 服务器是否编译时包含了 SSL 支持。SSL(Secure Sockets Layer)用于在客户端和服务器之间建立安全的加密连接。
  • 如果值为 YES,表示服务器支持 SSL,可以配置 SSL 加密连接。

3.3、require_secure_transport

  • require_secure_transport 设置为 ON 时,MySQL 服务器会拒绝所有非加密的客户端连接。这意味着所有客户端连接都必须使用 SSL/TLS 加密,以确保数据传输的安全性。
  • 默认情况下,require_secure_transport 设置为 OFF,允许非加密连接。

四、--ssl-mode=mode

8.0官方文档:https://dev.mysql.com/doc/refman/8.0/en/connection-options.html

  • DISABLED:禁用 SSL 加密连接。客户端可以不使用 SSL 连接。
  • PREFERRED:首选 SSL 加密连接,如果服务器不支持 SSL,客户端会退回到非加密连接。这是默认值。

  • REQUIRED:必须使用 SSL 加密连接,如果服务器不支持 SSL,连接将失败。
  • VERIFY_CA:必须使用 SSL 加密连接,并验证服务器证书是否由受信任的证书颁发机构签发。
  • VERIFY_IDENTITY:必须使用 SSL 加密连接,并验证服务器证书的主机名或 IP 地址是否与实际连接的主机名或 IP 地址匹配。

五、CREATE USER SSL/TLS选项

官方文档:https://dev.mysql.com/doc/refman/8.0/en/create-user.html#create-user-tls

create user 允许tls_option的值有多个,下面只介绍SSL

  • SSL

通知服务器只允许语句指定的所有帐户进行加密连接。

CREATE USER 'jeffrey'@'localhost' REQUIRE SSL;

默认情况下,客户端尝试建立安全连接。对于具有REQUIRE SSL的帐户,如果无法建立安全连接,则连接尝试失败。

六、问题验证

6.1、使用套接字连接

这里创建一个demo4的用户并设置该账号进行加密连接

尝试使用套接字进行连接,可以看到这里没有进行安全连接导致连接失败,而指定--ssl-ca后则连接成功,并且使用了ssl加密

6.2、使用TCP连接

可以看到使用TCP连接时,没有指定--ssl-mode的模式,也没有指定--ssl-ca,但是可以连接成功,没有被拒绝掉,并且连接后发现实际链路还是加密了的

七、分析与总结

问题分析:

  • 首先TCP 连接是网络层的连接方式,而 SSL 加密是应用层的安全协议。
  • 其次REQUIRE SSL 仅是账号级别的限制,而非协议级别的强制。
  • 最后发现当关闭have_ssl和have_openssl后,使用TCP连接后查看实际链路上并没有加密

实际连接行为:

have_sslhave_openssl 被禁用时:

  • 无论是使用 TCP 连接还是套接字连接,都不会进行加密连接。

have_sslhave_openssl 被启用时:

  • TCP 连接:MySQL 服务器会默认尝试使用加密连接,即使客户端没有显式指定 --ssl-ca 或其他 SSL 参数。这是因为服务器配置为支持 SSL,客户端驱动程序可能会自动协商使用 SSL。
  • 套接字连接:默认情况下,套接字连接(Unix socket)通常不使用 SSL 加密,因为它是一种本地通信方式。如果用户被设置为 REQUIRE SSL,而客户端没有显式指定 SSL 参数(如 --ssl-ca),连接将失败,因为套接字连接默认不使用 SSL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2384463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php本地 curl 请求证书问题解决

错误: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for 解决方案 在php目录下创建证书文件夹, 执行下面生成命令, 然后在php.ini 文件中配置证书路径; 重启环境 curl --eta…

爱普生晶振赋能UWB汽车数字钥匙,解锁未来出行新方式

随着科技的发展,尤其是国产新能源汽车的崛起,相信大家对数字钥匙的概念已经不陌生了,通过手机、智能穿戴实现对汽车的多功能控制已经是很多汽车的标配。但是目前数字钥匙也有一定的局限性,比如定位不准、安全性不强等等&#xff0…

电子电路:深入理解电磁耦合的定义与应用

电场和磁场是独立存在的吗?,但实际上根据麦克斯韦理论,它们是同一现象的两个方面,通过变化相互产生。这时候需要强调时变场的重要性,以及静态场和动态场的区别。 通过电磁波的概念,说明电磁耦合如何导致电…

宝塔安装的 MySQL 无法连接的情况及解决方案

宝塔安装的 MySQL 无法连接的情况及解决方案 宝塔面板是一款流行的服务器管理工具,其中集成的 MySQL 数据库有时会出现连接问题。本文详细介绍两种最常见的 MySQL 连接错误:“1130 - Host is not allowed to connect” 和 “1045 - Access denied”&…

今日行情明日机会——20250523

上证指数缩量下跌,个股下跌超过4000个,总体跌多涨少,日线总体处于高位,注意风险。 深证60分钟级别下跌趋势线压制,总体日线转下跌的概率大,注意风险。 2025年5月23日涨停股主要行业方向分析 一、核心主…

微服务项目->在线oj系统(Java版 - 4)

相信自己,终会成功 目录 B端用户管理 C端用户代码 发送验证码: 验证验证码 退出登录 登录用户信息功能 用户详情与用户编辑 用户竞赛接口 用户报名竞赛 用户竞赛报名接口查询 用户信息列表 ThreadLocalUtil Hutool工具库 常用功能介绍 B端用户管理 进行列表显示与…

ReAct 与 CoAct:AI 代理的推理与行动之旅

引言 能推理又能行动的 AI 代理,是朝着构建更自主系统迈出的重要一步。传统上,语言模型在“思维链”提示方面表现得很出色,也就是通过文本逐步思考问题来解决像算术、常识问题或符号推理这类任务。但用思维链时,模型只依赖自身的…

uni-app使用大集

1、手动修改页面标题 uni.setNavigationBarTitle({title: 修改标题 }); 2、单选 不止有 radio-group&#xff0c;还有 uni-data-checkbox 数据选择器 <!-- html部分 --> <uni-data-checkbox v-model"sex" :localdata"checkboxList"></u…

零件剖切配置教学 | 玩转EasyTwin 工业产线第三期(上)课程回顾

-在工业数字孪生领域&#xff0c;工程施工模拟、车间产线运转、机械装置和零件配置等交互效果的呈现至关重要。通过EasyTwin&#xff0c;我们能够以更低成本、更高效率来构建数字孪生场景&#xff0c;但在搭建的过程中&#xff0c;也会因为复杂的场景交互配置产生一些疑问。该案…

onnx模型转入rknn3399平台上工作记录

1.rknn虚拟环境使用时报错问题 使用rknn17环境的报错&#xff1a; ImportError: libdc1394.so.22: cannot open shared object file: No such file or directory 参考链接&#xff1a;https://blog.csdn.net/2301_80032564/article/details/142316410 创作软连接&#xff1a; …

第三个小程序动工:一款结合ai的菜谱小程序

1.环境搭建&#xff0c;与初步运行 安装及使用 | Taro 文档 找到一个合适的文件夹&#xff0c;cmd D:\gitee>pnpm install -g tarojs/cli╭──────────────────────────────────────────╮│ …

OpenCV CUDA 模块图像过滤------创建一个线性滤波器(Linear Filter)函数createLinearFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于创建一个线性滤波器&#xff08;Linear Filter&#xff09;&#xff0c;可以对图像执行任意用户定义的卷积核&#xff08;kernel&…

Excel 密码忘记了?巧用PassFab for Excel 解密帮您找回数据!

在工作中&#xff0c;你是否遇到过这样的尴尬时刻&#xff1f;打开重要的 Excel 文件&#xff0c;却发现忘记密码&#xff0c;里面的财务报表、客户数据、项目计划瞬间变成 “加密天书”。重新制作耗时耗力&#xff0c;找专业人员解密又担心数据泄露&#xff0c;这个时候&#…

Vue.js教学第十二章:Vue Router实战指南(二)

Vue Router(二):深入剖析 Vue Router 高级特性 在前端开发领域,Vue.js 框架凭借其简洁、灵活和高效的特点,得到了广泛应用。而 Vue Router 作为 Vue.js 的官方路由管理器,为构建单页面应用(SPA)提供了强大的支持。本文将深入探究 Vue Router 的高级特性,包括路由的动…

【前端开发】Uniapp日期时间选择器:实现分钟动态步长设置

技术栈 Uniapp Vue3 uView年份显示前后一年&#xff0c;分钟动态设置间隔 效果图 主体显示 <view class"uni-row-between selector"><view class"uni-flex-1 left" click"!props.disabled && openPicker()"><uni-icons…

Visual Studio已更新为17.14+集成deepseek实现高效编程

01 Visual Studio 2022 v17.14。 此更新侧重于全面提供出色的开发人员体验&#xff0c;侧重于稳定性和安全性以及 AI 改进。 02 GPT-4o代码完成模式 我们非常高兴地宣布&#xff0c;新的 GPT-4o Copilot 代码完成模型现已在 Visual Studio 17.14 中为 GitHub Copilot 用户…

养生指南:五维打造健康新方式

一、饮食&#xff1a;天然搭配&#xff0c;科学进食 遵循 “食物多样化” 原则&#xff0c;早餐以红薯玉米粥搭配水煮蛋、凉拌黄瓜&#xff0c;开启活力一天&#xff1b;午餐选用糙米饭、番茄炖牛腩、蒜蓉空心菜&#xff0c;营养均衡&#xff1b;晚餐用冬瓜虾皮汤配上蒸芋头&a…

网络爬虫学习之httpx的使用

开篇 本文整理自《Python3 网络爬虫实战》&#xff0c;主要是httpx的使用。 笔记整理 使用urllib库requests库的使用&#xff0c;已经可以爬取绝大多数网站的数据&#xff0c;但对于某些网站依然无能为力。 这是因为这些网站强制使用HTTP/2.0协议访问&#xff0c;这时urllib和r…

无人机桥梁检测效率问题-高精度3D建模及航线规划

无人机桥梁检测效率问题-高精度3D建模及航线规划 无人机桥梁检测的效率分析 结论-并没有提升效率 飞行任务制定步骤繁琐且续航限制 需要首先对大桥建立高精度的3D建模&#xff0c;根据任务制定无人机的飞行路径以及动作&#xff0c;商用无人机续航通常仅30-40分钟&#xff0c…

想免费使用 AWS 云服务器?注册、验证及开通全攻略

拥有一台 AWS 免费云服务器&#xff0c;可以轻松搭建个人网站、博客或部署 ChatGPT 等 AI 服务。本文详解如何 注册 AWS 账号、完成 信用卡验证&#xff0c;并在 AWS 控制台中 开通 EC2 实例&#xff0c;享受长达 12 个月的免费额度。 提示&#xff1a; 国内信用卡及银联借记卡…