编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

一文读懂数据库加密(数据库加密三种方式)

wxchong 2025-07-06 17:30:24 开源技术 5 ℃ 0 评论

佛系随性笔记,记录最好的自己!

前面写了一篇数据库加密相关的,回头看了一下,问题挺多的,要重写下。


1、什么是数据库加密?


数据库加密是指对存储在数据库中的敏感数据进行编码处理的过程,目的是防止未经授权的访问和数据泄露。加密后的数据即使被未授权的第三方获取,也无法看到明文数据,从而保护数据,数据库加密的主要目标:数据保密性、完整性和可用性。

举个栗子:你有一个日记本,里面记录着你的生活经历、隐私和一些信息。你肯定不想让别人偷看波,你想给日记本上一把锁(原来我也买过这种),只有拿输入正确的密码才能打开看。这样做可以保护里面的隐私不被别人偷看,这就是数据库加密的一个小栗子。


2、数据库加密的功能


数据库加密,这一块功能相对来说比较单一,大致就四个,其余什么公共模块"系统管理、角色人员设置、备份恢复等",这一块说了也意义不大,大家都知道,加密方法策略:这块常用的是“列加密、表空间加密、全盘加密(就不说了字面意思)等等”。

2.1、列加密:

如下图2,在库表里,列加密是专门保护表格中的某些列,比如密码。当这些数据被存入数据库后,它们会被加密处理,就像加了个密码锁,即使有人试图查看,他们看到的也只是乱码,就像密码锁保护下的物品,无法轻易被获取。


列加密原理图的详解

1、识别数据:表中有多列数据,其中某些列为敏感数据(比如密码等)。

2、没加密前:以明文形式存储在数据库表中,都能看到。

3、加密过程:加密工具在数据写入或更新时动态对敏感列数据进行实时加密。

4、加密后:加密算法将敏感数据变成密文,存储在库表中。

5、使用过程:当你要读取加密列数据,解密工具会自动解密数据,然后你收到解密后的数据。


2.2、表空间加密

表空间加密

举个栗子:把数据库比作成一个花园,里面种着各种各样的植物,而表空间就像是花园里的一个个独立区域,每个区域都有其独特的植物(数据)。为了保护这些珍贵的植物不受外来者(未授权的人)的破坏,你决定在每个区域(表空间)周围建造一堵"透明的"墙,这堵墙就是"表空间加密"。


表空间原理图的详解

1、数据库表空间:存储数据的磁盘空间,逻辑上划分的存储区域

2、加密前的数据文件:表空间中的数据文件,是未加密的数据库对象和数据。

3、加密过程:在数据文件创建或扩展时,加密工具会对整个数据文件进行加密,包括所有数据库对象和数据。

4、加密后的数据文件:数据文件被加密算法变成密文形式,文件继续存储在表空间中。

5、数据库操作:当你执行读写操作时,加解密工具会自动处理,不需要进行额外的解密步骤。


3、数据库加密的工作原理


现在对数据加密一般都是三种方案,不熟悉的还望指导,写下网关加解密,其他的就不说了,差不多,就是位置换了。

网关加密

举个栗子:你想给远方的朋友写封信或者礼物,为了保证信件礼物(数据)内容的安全,你会选择一个可靠的平台来帮你邮寄(邮政京东顺丰),(邮政京东顺丰)就是"网关加密"

网关加密原理图详解:

1、邮寄人:我要邮寄一封信(发送到服务器的明文数据。)

2、快递方:位于邮寄人和接收人之间,负责处理收发快递(加解密)工作。

3、打包(加密)过程:邮寄人将信件给到快递方,快递方使用包装盒(加密密钥)对信件打包(进行加密)。

4、运送(加密后)过程:快递发往目的地(接收方)。

5、送货(解密)过程:接收方收到快递后,签字验收(对其进行解密)。


4、数据库加密的部署模式


这一块各大厂商所支持部署模式功能,各不相同,功能和性能上也有较大的区别。选择自己最合适的部署模式,才是最重要的。



网关代理:旁路部署在网络中,库和数据库加密网络可达即可,数据库加密代理数据库,影响现有数据库访问方式(可以简单理解为旁路部署、逻辑串联)。

插件部署:数据库加密插件部署,需要在数据库侧安装插件,不改变现有访问方式(影响数据库的性能)。

5、数据库加密的应用场景和价值


6、题外话-怎么挑选数据库加密

选择数据库加密考虑以下几点:

  • 重点(库的兼容性)确认现有需要防护的数据库,确认所支持库的版本类型、版本号(很多厂商都是支持某一个或几个版本,就忽悠,后期再定开,哈哈哈),这一块很重要,至于后面会详细调研一些库运行模式、字符集、集群节点、是不是加密数据库、是否修改过源码等等。
  • 重点(功能):不同的数据库加密具有不同的功能和特点,常规厂商都有的功能我就不说了,说一些少有的功能:"国密浏览器、量子密钥、加密卡、拥有几级密钥"?对库、表、列、行的加密能做到什么程度?加密算法支持有哪些?根据自己的需求和安全要求,选择具备所需要的功能和特点。
  • 重点(性能):对数据库加密进行相应的场景性能测试,看看加解密效果,是否能接受。



老登的安全观

数据安全工作者,佛系随行笔记,记录最好的自己!

注释:如有失误,望批评指正!

后面会写下Windows和liunx的应急响应技巧、容器、还有一些网络安全、数据安全。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表