PolarDB for PostgreSQL透明加密

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: PolarDB for PostgreSQL透明加密

PolarDB for PostgreSQL透明加密


简介


透明加密TDE(Transparent Data Encryption)通过在数据库层执行静止数据加密,阻止可能的攻击者绕过数据库直接从存储读取敏感信息。经过数据库身份认证的应用和用户可以继续透明地访问数据,而尝试读取数据库文件中敏感数据的操作系统用户或者未经认证的用户将不允许访问数据。


PolarDB for PG透明加密使用方法


1)编译代码时需要指定--with-openssl2)initdb初始化集群时需要指定密码短语和加密算法。增加了2个选项,如下:--cluster-passphrase-command 'xxx' -e aes-256其中cluster-passphrase-command参数后面接获取加密密钥的命令(可以是一个字符串),可以是具体的KMS获取明文密钥的接口命令;-e参数接数据加密所采用的加密算法,支持AES-128 和AES-256两种,表示密钥为128位和256位的AES算法


机制

1、initdb的过程

1)initdb首先读取外部参数,得到加密算法以及加密短语,并将加密短语写入postgresql.con文件中,以供后续使用。2)initdb的bootstrap_template1函数产生执行的cmd命令字符串后,通过PG_CMD_OPN即popen创建一个管道,调用fork产生一个子进程,执行该命令。3)实际上boot初始化时,调用堆栈:      AuxiliaryProcessMain->BootStrapXLOG          ->BootstrapModeMain   BootStrapXLOG调用BootStrapKmgr初始化密钥系统,其入参为 bootstrap_data_encryption_cipher,即上面-e的参数4)BootStrapKmgr将加密模式、表和WAL的密钥及密钥密文的信息摘要存入二进制文件global/pg_kmgr中。5)首先通过BootStrapXLOG生成加密相关信息,后面BootstrapModeMain初始化template时会对相关数据使用相应加密算法进行加密。


2、加密算法的选用


加密算法:

加密算法的选用:

加密模式使用CTR(技术器模式),因为CTR加密可以保证明文和密文长度相等。这是由数据块的大小决定的,内存和磁盘上块大小默认是8KB。


3、需要加密的数据


其中,上表加粗处理的文件中含有用户数据,可以分为以下六类:1)表数据:直接含有用户的敏感数据,必须加密。2)临时文件:只是周期性临时存在,可以选择不加密。3)共享数据:包含数据库名和用户名,一般敏感程度不高,可以选择不加密。4)逻辑复制数据:只有打开逻辑复制才需要进行加密。当前版本为了逻辑复制的目的端的兼容性,暂时不加密。5)统计信息:不直接包含用户数据,但是包含用户数据的统计信息,可以选择不加密。但是需要注意某些统计信息对用户来说可能比较敏感。6)预写式日志:通过一定的解密可以获取部分的有效数据。当前版本为了复制的目的端的兼容性,暂时不加密,但是会分配预写式日志的加密密钥,即上文中的WDEK,便于后期兼容。


4、加密的过程


加密过程如下图所示:

初始化时:1)初始化时,密码短语解析出keyEncKey和hmackey,密码短语会存储到postgresql.conf配置文件中2)generate_key_and_hmac函数生成一个随机数,先放到relEncKey中3)pg_wrap_key函数使用keyEncKey对随机数relEncKey进行加密生成密钥,即pg_kmgr文件中保持的key和hmac启动后,需要由函数InitializeKmgr先生成relEncKey:1)postgresql.conf文件中读取密码短语,通过get_key_and_hmackey_from_passphrase函数得到keyEncKey和result_hmac2)hmac和result_hmac进行校验3)keyEncKey和pg_kmgr中的key作为入参,通过ossl_wrap_key函数打开数据加密的密钥relEncKey数据加密:1)FlushBuffer->PageEncryptCopy中对数据页进行加密2)调用ossl_encrypt_data函数使用relEncKey和page的lsn+blocknum(作为salt)对数据进行加密

目录
相关文章
|
10月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
572 7
|
12月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
526 0
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
900 17
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
584 4
|
关系型数据库 分布式数据库 PolarDB
通过 PolarDB for PostgreSQL 实现一体化的 HTAP 能力
阿里云 PolarDB for PostgreSQL作为一款领先的云原生关系型数据库,利用向量化引擎+列存索引等技术实现了 OLTP 和 OLAP 的一体化。本方案为您展示如何通过 PolarDB for PostgreSQL 来实现一体化的 HTAP 能力。
通过 PolarDB for PostgreSQL 实现一体化的 HTAP 能力
|
运维 关系型数据库 分布式数据库
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
740 2
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。

热门文章

最新文章

推荐镜像

更多