PostgreSQL 连接是否要通过SSL,为什么使用SSL 连接后,业务部门会投诉我?

news/2024/7/9 21:53:53 标签: postgresql, ssl, 数据库, 网络协议, 网络

5e514e538a76674dba949e91a66eaeac.png

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(共1680人左右 1 + 2 + 3 + 4) 3群突破 490已关闭自由申请如需加入请提前说明,新人会进4群(200+)准备开5群,另欢迎 OpenGauss GAUSSDB的技术人员加入。

每日感悟

朋友走着走着就散了,可惜吗。谈不上一辈子你如火车,朋友如一段平行的列车,千万不要交汇点,有利益的冲突,那必然是车毁人亡,大部分时间人生的轨道上,只有你自己在上面飞奔,习惯就好。

相信使用数据库的同学,对于SSL这名词并不陌生,但问及SSL的数据库连接的访问的方式是否应该被用在数据库上面,这点可能知道的人就不多了,用了怎么样,不用又会怎么样。咱们的说一说,SSL安全套接字,安全套接字是一种加密的安全协议,1995由netscape发明,确保通信中的信息的隐私性和身份验证性等。SSL 本身在两个通信设备之间启动成为握手验证,确保两个设备确认他们所定义的身份,同时SSL还对数据进行数字签名验证数据是否到达目标接手者之前是否篡改过。

对于数据产品本身经过在这么多年的数据库使用中,并未有通过SSL协议来进行数据访问的使用经验,为什么有如下的一些问题需要进行解决。

1  什么时候应该使用SSL

这是一个好的问题,在多种的专业资料中都提到SSL对于数据库的必要性保证数据和应用端使用数据的信息安全,防止数据被盗取等问题。防止黑客对数据库数据进行访问或截取网络的数据包等问题,导致数据被盗取。但是SSL 协议以及相关的使用者从未说明这些SSL的使用的领域是在数据库被放置在公网的领域里面。

为什么基于SSL协议本身的一些问题,SSL对于数据库的性能损耗一直是一个被数据库工作者关心的问题,这正如你如果要横跨告诉公路,一定不能从告诉公路中横跨,但如果你仅仅是在你家小区横跨以下也要建立一个人行天桥就未免有些不能被理解了。

在一些安全的材料中,也提到SSL 的必要性,但专业的材料中也基本会提到,Unless the database server and the client are communicating over a local network. 这里大致的意思是SSL非常重要,除非你是在本地网络进行数据的访问,也就是你的应用和数据库都在一个网络内,在一个本地区域的网络内,这样就没有必要进行SSL 的使用。

dd56b711369c99acebab2ea4ace6cc76.png

为什么,他们要提及这句话,实际上SSL的使用是有很大的成本的,这里简单的描述SSL 访问的过程,这里 A 与 B 进行访问,则A 和 B 都需要选定加密的算法,通过确认饱含公钥的证书,并且双方 都要进行会话秘钥的产生和确认并且进行握手。简单的总结为5部分

1 client hello

2  server hello

3  certificate server key exchange , server hello done

4  client key exchange ,change cipher spec ,encrypted handshake message

5  change cipher spec, encrypted handshake message

也就是如果你想进行一次客户端和数据库之间的访问,要走5步后才能正常 进行数据的传输。相对于TCP/IP的协议,3步走,还要多两步。

所以我们必然考虑一件事情,在采用SSL 后对于数据库的性能下降我们是否能接受,正好我们最近做了一次PG的数据库在不采用SSL 和采用SSL协议后的数据的使用中的性能变化,我们简单列一个表。

基于下面的表中的测试数据,我们可以看到在相关的测试中,只要通过SSL 访问的方式中对比采用普通方式访问的情况下,必然出现性能的损耗,损耗的差异与表的大小 ,以及并发等都有关。

编号

数据库开启SSL/TPS

数据库关闭SSL/TPS

 性能损耗

客户端模拟数量

应用线程数据量

数据操作方式

表数量

表行数

测试时间

说明

编号

数据库开启SSL/TPS

数据库关闭SSL/TPS

 性能损耗

客户端模拟数量

应用线程数据量

数据操作方式

表数量

表行数

测试时间

说明

11520117861 2660 TPS1004update100100万180S
214658176593001 TPS1004update100100万300S
314733178703137 TPS1004update1001000万180S
414852180493197 TPS1004update1001000万300S
512249147172468 TPS1004update + select100100万180S
612501144491948 TPS1004update + select100100万300S
712628154402812 TPS1004update + select1001000万180S
812526145272001 TPS1004update + select1001000万300S

5f9ea1744aa08ac2d108f485ca270b57.png

基于相关的测试中的结果,在内网中对于POSTGRESQL 访问建议不启用SSL 的访问方式,而是采用其他的方式来进行核心数据的安全防护。

这里有以下的一些建议

1   在内网访问中,关于核心的表的核心字段进行字段加密,在数据写入到数据列中的数据为已经加密好的数据,读取数据解密也在应用程序中进行,尽量将对数据库产生可能的压力,分解到应用服务器中。

2   如果必须在数据库中进行加密则使用POSTGRESQL 扩展pgcrypto 来进行相关的工作。

但如果数据库是放到外网中,则需要更多的手段来进行安全防护,这里就不过多的进行叙述了。

3f3a1366947b167d9f0bbbc1e9e3e3be.png

4f372a253c7215a8b9b5f5e697016ed9.png


http://www.niftyadmin.cn/n/5152440.html

相关文章

uni-app华为审核被拒,驳回原因:您的应用在运行时,未见向用户告知权限申请的目的

华为审核被拒&#xff1a; 您的应用在运行时&#xff0c;未见向用户告知权限申请的目的&#xff0c;向用户索取(相机存)等权限&#xff0c;不符合华为应用市场审核标准。 <uni-popup ref"perpopup" type"center" :mask-clickfalse><view class&qu…

基于 golang 从零到一实现时间轮算法 (二)

Go实现单机版时间轮 上一章介绍了时间轮的相关概念&#xff0c;接下来我们会使用 golang 标准库的定时器工具 time ticker 结合环状数组的设计思路&#xff0c;实现一个单机版的单级时间轮。 首先我们先运行一下下面的源码&#xff0c;看一下如何使用。 https://github.com/x…

数字化时代,数据仓库是什么?有什么用?

在激烈的市场竞争和全新的数字经济共同作用下&#xff0c;数字化转型成为了大多数企业的共识&#xff0c;也是获取数字经济的最佳方式。在整个数据价值生产链路中&#xff0c;数据仓库的主要作用就是中心化分发&#xff0c;将原始数据与数据价值挖掘活动隔离。 所有的原始数据…

深入理解C++方法重载、内联与高级用法

标题深入理解C方法重载、内联与高级用法 方法重载 你可能已经注意到&#xff0c;你可以在一个类中写多个构造函数&#xff0c;所有这些构造函数都有相同的名字。这些构造函数只在参数的数量和/或类型上有所不同。你可以对C中的任何方法或函数做同样的事情。具体来说&#xff…

如何提高项目团队资源利用率?5大注意事项

项目团队的资源是有限的&#xff0c;这包括人力、时间、资金、设备等。如果这些资源利用率低下或者浪费&#xff0c;这直接会导致项目成本的增加&#xff0c;不利于产品在竞争激烈的商业环境中保持优势。 因此我们需要提高团队资源利用率&#xff0c;降低项目成本&#xff0c;避…

单链表经典算法

移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 思路&#xff1a;&#xff08;1&#xff09;创建三个结构体指针&#xff0c;分别代表一条新链表的头newhead&#xff0c;…

[go 反射] 进阶

[go 反射] 进阶 本文你将了解 反射拷贝指针通过反射创建对象将panic风险尽可能降低 反射拷贝指针秘诀在于将任何指针都想象成一个普通的uint64整数类型 import ("fmt""reflect" ) func main(){var one,two *intnew(int),nil*one23//现在要将one的指针拷…

点云从入门到精通技术详解100篇-基于激光雷达点云的交通场景三维车辆目标检测与跟踪

目录 前言 国内外研究现状 三维激光雷达点云目标检测技术 三维激光雷达点云多目标跟踪技术