PostgreSQL 10.1 手册_部分 III. 服务器管理_第 18 章 服务器设置和操作_18.8. 加密选项

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 18.8. 加密选项 PostgreSQL提供了几个不同级别的加密, 并且在保护数据不会因为数据库服务器偷窃、不道德的管理员、不安全网络等因素而泄漏方面 提供很高的灵活性。加密可能也是保护一些诸如医疗记录或财务交易等敏感数据所要求的。

18.8. 加密选项

PostgreSQL提供了几个不同级别的加密, 并且在保护数据不会因为数据库服务器偷窃、不道德的管理员、不安全网络等因素而泄漏方面 提供很高的灵活性。加密可能也是保护一些诸如医疗记录或财务交易等敏感数据所要求的。

口令存储加密

默认情况下,数据库用户的口令以 MD5 哈希的方式存储, 所以管理员无法判断赋予用户的实际口令。如果 MD5 被加密用于客户端认证, 那么未加密的口令甚至都不可能临时出现在服务器上,因为客户端在透过网络发送口令之前,就先用 MD5 加密过。

指定列加密

pgcrypto模块允许对特定域进行加密存储。这个功能只对某些敏感数据有用。 客户端提供解密的密钥,然后数据在服务器端解密并发送给客户端。

在数据被解密和在服务器与客户端之间传递时,解密数据和解密密钥将会在服务器端存在短暂的一段时间。 这就给那些能完全访问数据库服务器的人提供了一个短暂的截获密钥和数据的时间,例如系统管理员。

数据分区加密

存储加密可以在文件系统层面或者块层面上执行。Linux 文件系统加密 选项包括 eCryptfs 和 EncFS,而 FreeBSD 使用 PEFS。快层面或者全 盘加密选项包括 Linux 上的 dm-crypt + LUKS 以及 FreeBSD 上的 GEOM 模块 geli 及 gbde。很多其他操作系统也支持这个功能,包括 Windows。

这个机制避免了在整个计算机或者驱动器被盗的情况下, 未加密的数据被从驱动器中读取。它无法防止在文件系统被挂 载时的攻击,因为在挂载之后,操作系统提供数据的解密视图。不过,要想挂载该文件系统,你需要有一些方法把加密密钥传递给操作 系统,并且有时候这个密钥就存储在挂载该磁盘的主机上的某处。

跨网络加密口令

MD5认证方法在将口令发送给服务器之前由客户端对它进行双重加密。第一次 MD5 加密是基于用户名的, 然后在建立数据库连接时,用服务器发送的随机盐粒再次加密口令。通过网络传递给服务器的就是这个双重加密的值。双重加密 不仅可以防止口令被发现,还可以防止稍后另一个连接使用同样的加密口令连接数据库。

跨网络加密数据

SSL 连接加密所有跨网络发送的数据:口令、查询以及返回的数据。pg_hba.conf文件允许管理员指定哪些主机可以使用 非加密连接(host),以及哪些主机需要使用 SSL 加密的连接(hostssl)。客户端还可以指定它们只通过 SSL 连接到服务器。我们还可以使用StunnelSSH加密传输。

SSL 主机认证

客户端和主机都可以提供 SSL 证书给对方。这在两边都需要一些额外的配置, 但是这种方式提供了比仅使用口令更强的身份验证。 它避免一个计算机伪装成服务器,这个时长只要足够读取客户端发送的口令就行了。它还避免了 中间人攻击,在其中有一台计算机处于客户端和服务器之间并伪装成服务器读取和传递两者之间的所有数据。

客户端加密

如果服务器所在机器的系统管理员是不可信的,那么客户端加密数据也是必要的。在这种情况下,未加密的数据从来不会在数据库服务器上出现。数据在发送给服务器之前加密,而数据库结果在能使用之前必须在客户端上解密。

本文转自PostgreSQL中文社区,原文链接:18.8. 加密选项

相关文章
|
21天前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的服务器日志文件
本文介绍了PostgreSQL数据库的物理存储结构,重点讨论了服务器日志文件。通过`pg_ctl`命令启动PostgreSQL实例时,使用`-l`参数指定日志文件位置,记录数据库启动、运行及关闭过程中的关键信息。附有相关视频讲解和日志文件示例。
|
关系型数据库 Linux PostgreSQL
Linux centos8 docker中安装postgresql12.4及远程访问设置
Linux centos8 docker中安装postgresql12.4及远程访问设置
712 0
|
7月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
消息中间件 Java 关系型数据库
实时计算 Flink版操作报错合集之从 PostgreSQL 读取数据并写入 Kafka 时,遇到 "initial slot snapshot too large" 的错误,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
1022 0
|
3月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
171 8
|
3月前
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
103 8
HAProxy的高级配置选项-Web服务器状态监测
|
4月前
|
关系型数据库 Shell 数据库
PostgreSQL怎么设置?
【8月更文挑战第6天】PostgreSQL怎么设置?
47 3
|
4月前
|
存储 编解码 监控
云端加密代码库问题之企业设置网络隔离如何解决
云端加密代码库问题之企业设置网络隔离如何解决
|
6月前
|
弹性计算 网络协议 安全
阿里云服务器ECS自定义购买方式各选项参数选择与注意事项参考
在我们通过自定义购买的方式购买阿里云服务器器ECS时,会有多个选项,有的新手用户可能并不是很清楚这些选项是什么,选择或设置时需要注意什么,本文将从付费类型、地域与可用区、网络及实例、镜像、存储、带宽和安全组、管理设置以及高级选项等多个方面,为您详细介绍如何选择与配置阿里云ECS实例,以供参考。
阿里云服务器ECS自定义购买方式各选项参数选择与注意事项参考
|
5月前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之使用连接串模式新增PostgreSQL数据源时遇到了报错"not support data sync channel, error code: 0001",该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。