PostgreSQL 数据安全之数据加密

news/2024/11/30 5:58:35/

文章目录

    • 密码加密
    • 字段加密
    • 存储加密
    • 传输加密
    • 认证加密
    • 应用加密

大家好,我是只谈技术不剪发的 Tony 老师。

《中华人民共和国数据安全法》自 2021 年 9 月 1 日开始实施,这是我国第一部有关数据安全的专门法律。与此同时,《中华人民共和国个人信息保护法》也将于 2021 年11月1日起施行。相关法律的陆续出台,意味着国家对于信息安全保护制度的完善,同时也对存储和处理数据的企业和组织提出了更高的要求。

数据库作为存储电子数据的主要方式,需要通过加密技术保护敏感数据,如个人医疗记录或金融交易数据。本文给大家介绍一些 PostgreSQL 提供的加密技术。PostgreSQL 支持多个不同级别的灵活加密技术,可以保护数据不因数据库服务器被盗、内部管理员或者不安全的网络传输而导致泄露。

密码加密

PostgreSQL 支持用户密码的加密存储(加密方式由 password_encryption 参数决定),确保数据库管理员无法得到用户的密码。

如果我们采用了 SCRAM 或者 MD5 加密的客户端认证,明文密码甚至不会在服务器中出现,因为客户端在发送之前就已经进行了密码加密。推荐使用 SCRAM 加密,因为它是一个互联网标准,而且比 PostgreSQL 使用的 MD5 认证协议更安全。

注意,某些旧的客户端可能不支持 SCRAM 认证机制,因此无法使用 SCRAM-SHA-256 加密后的密码。关于密码认证的详细信息可以参考官方文档。

字段加密

PostgreSQL pgcrypto 模块可以用于加密指定字段。这种方式对于敏感数据的包含非常有用。查询数据时,客户端提供解密密钥,数据在服务器端解密后发送给客户端。

解密后的数据和解密密钥在解密以及传输过程中会在服务器中短暂存在,这一短暂时刻可能导致拥有数据库服务器完全访问权限的用户(例如系统管理员)拦截获取数据和密钥。

存储加密

存储加密可以在文件系统级别或者块级别实现。Linux 文件系统加密选项包括 eCryptfs 和 EncFS,FreeBSD 使用 PEFS 加密技术。块级别或者整盘加密选项包括 Linux 操作系统的 dm-crypt + LUKS ,以及 FreeBSD 操作系统的 GEOM 模块 geli 和 gbde。包括 Windows 在内的许多其他操作系统都支持加密功能。

存储加密技术可以防止计算机被盗后未加密数据的泄露。这种方式无法组织文件系统加载之后的攻击,因为一旦加载文件系统,操作系统就提供了一个未加密的数据视图。尽管如此,为了能够加载文件系统,用户必须采用某种方式将加密密钥传递给操作系统,有时候密钥就存储在加载磁盘的主机中。

传输加密

SSL 连接可以加密网络传输中的所有数据,包括:密码、查询语句以及返回的结果。pg_hba.conf 配置文件可以允许管理员指定哪些主机可以使用非加密连接(host),以及哪些主机需要使用 SSL 加密连接(hostssl)。同时,客户端可以指定只通过 SSL 连接到服务器。

GSSAPI 加密连接可以加密网络传输中的所有数据,包括查询语句和返回的结果(密码不会通过网络传输)。pg_hba.conf 配置文件可以允许管理员指定哪些主机可以使用非加密连接(host),以及哪些主机需要使用 GSSAPI 加密连接(hostgssenc)。同时,客户端可以指定只通过 SSL 连接到服务器(gssencmode=require)。

除此之外,Stunnel 或者 SSH 也可用于加密传输。

认证加密

PostgreSQL 客户端和服务器都可以提供相互的 SSL 认证。认证加密需要客户端和服务器的一些额外配置,但是可以提供比密码更安全的身份认证。

认证加密可以防止机器伪装成数据库服务器读取客户端发送的密码,同时也可以防止“中间人”攻击,也就是在客户端和服务器中间的机器伪装成服务器读取和传递它们之间的所有数据。

应用加密

如果数据库服务器的管理员不可信,需要使用客户端加密技术。这样的话明文数据首先会在客户端应用中进行加密,网络中传输的就是密文数据,数据库中不会出现明文数据。这种方式也被称为全加密数据库解决方案。

全加密数据库
【图片来源:阿里云】

注意,这种方式查询的数据结果需要在客户端应用中进行解密后才能使用,无法在数据库中使用 SQL 进行操作。

如果你觉得文章有用,欢迎扫一扫:

在这里插入图片描述


http://www.ppmy.cn/news/466541.html

相关文章

如何对文件、文件夹加密?

想要对电脑上的文件、文件夹进行加密,其实电脑有自带一个加密方式: 打开Windows资源管理器 选择需要加密的文件或者文件夹,点击右键,查看属性,然后点击【高级】 在高级设置界面中,勾选上【加密内容以便保护…

加密内容以便保护数据无法勾选?

Windows系统自带的文件加密功能,大家应该都很熟悉,但是在我们自己实际操作的时候有些朋友会发选自己电脑上的加密内容以便保护数据是灰色的,根本没办法勾选。 其实Windows自带的加密功能还是有些限制的: 首先,只能加密…

联想拯救者电脑触摸板用不了了

文章目录 问题分析解决1. 解决方法一2. 解决方法二3. 解决方法三 问题 电脑触摸板用不了了,无论使用怎样的操作均未能完成对鼠标的操作 分析 这是因为被误触了“游戏模式”,就会出现“防误触”开关 解决 1. 解决方法一 (开机输入密码前…

笔记本电脑键盘个别键失灵的修复方法

电脑:惠普电脑 异常情况: 1、键盘上面的指示灯,一按键盘会亮(平时是不会亮的); 2、字母m变成0,9变成/等有几个键也变了。 修复方法: 1、按FnNumlk,没有反应&#xff1b…

Win10笔记本和外接键盘同个别键失灵

问题描述:笔记本键盘和外接键盘的同一个按键失灵,在重置系统和重置BIOS后,或者刷新驱动之后,只有一小会儿能用,之后继续失灵。 解决办法: 更据上面的路径进入到这个页面这个页面后,把【启动快速…

电脑重启后自带键盘失灵而外接键盘有用的一种情况

外界有用的化,大概率硬件是没什么问题的,我是强行关机导致的驱动出错 windows徽标键R,输入compmgmt.msc(计算机管理;这个命令在百科里可以找到),点击确定,打开计算机管理 点击设备管理器,点击…

win11 外接键盘个别按键(win,alt)失灵

问题描述 也不知道为什么,就很莫名其妙的外接键盘的部分的按键失灵了 win键alttabaltF4 但是笔记本上的键盘功能可以正常使用 解决方法 使用笔记本上的FnF9即可解开设置 大致原因 进入了游戏模式, 思路历程 开始我以为又出现了windows自带输入法锁…

c语言能让键盘失灵怎么办,电脑键盘个别字母失灵的三种解决方法

电脑键盘是电脑输入设备中最常用的设备之一,也是大家使用最频繁的的设备。由于电脑键盘使用频度高,容易出现个别字母失灵的情况,在没换新键盘之前,有什么办法能修复一下?导致键盘失灵的原因有三个,一是笔记…