Oracle 中 Workflow Manager 工作空间的透明数据加密
可采取多种预防措施来协助保护数据库安全,例如设计安全系统、加密机密资产以及在数据库服务器周围建立防火墙。但如果物理介质(如驱动器或备份磁带)被盗,则恶意方可以恢复或附加数据库并浏览数据。一种解决方案是对数据库中的敏感数据进行加密,并通过一个证书来保护用于加密数据的密钥。这样便可防止任何没有密钥的用户使用该数据,但此种保护必须提前计划。
透明数据加密 (TDE) 可用于加密敏感数据,例如存储在表和表空间中的信用卡号。加密数据将为能够访问数据的数据库用户或应用程序进行透明解密。TED 有助于在存储介质或数据文件被盗的情况下保护介质中存储的数据。Oracle 使用验证、授权和审计机制来保护数据库中数据的安全,但不能保护用于存储数据的操作系统数据文件中数据的安全。为保护这些数据文件,Oracle 提供了 TDE。TDE 可加密数据文件中存储的敏感数据。为防止发生未经授权的解密,TDE 将加密密钥存储在数据库以外的安全模块中。
通过 Oracle,可将新的表空间定义为已加密。将表空间定义为已加密意味着将对在操作系统中创建的物理数据文件进行加密。任何表、索引以及新表空间中定义的其他对象都将默认加密,而不具备额外的存储空间要求。数据写入磁盘时会自动进行加密,并在应用程序访问数据时自动解密。
使用 TDE 的优势在于:
- 安全管理员可在存储介质或数据文件被盗的情况下确保敏感数据的安全。
- 实施 TDE 有助于解决安全相关法规遵从问题。
- 无需创建用于为授权用户或应用程序解密数据的触发器或视图。表中的数据会为数据库用户和应用程序透明解密。
- 数据库用户和应用程序无需了解他们正在访问的数据是以加密形式存储的。数据会为数据库用户和应用程序透明解密。
- 无需为处理加密数据而对应用程序进行修改。数据的加密和解密由数据库管理。
- 密钥管理操作是自动进行的。用户或应用程序无需管理加密密钥。
有关配置 TDE 表空间加密的详细信息,请参阅 Oracle 文档。
要使用 TDE,请执行以下其中一种方法。
配置 TDE Oracle Enterprise Manager
以下步骤显示了如何使用 Oracle Enterprise Manager (OEM) 来配置 TDE。
对示例进行复制和粘贴可能会导致语法错误。
- 创建 wallet 文件夹。
mkdir C:\oracle\admin\wallets OEM > login as sys / sysdba OEM > Server > Transparent Data Encryption Advanced Options > Change Location Host Credentials Username: <DOMAIN>\dbs_ora Password: xxxxxxx Configuration Method: File System Encryption Wallet Directory: C:\oracle\admin\wallets OK Create Wallet > Local Auto-Open Wallet > Create Host Credentials Username: <DOMAIN>\dbs_ora Password: xxxxxxx Wallet Password: walletadmin Continue
- 备份 wallet 文件夹。
cd C:\oracle\admin zip -r wallets wallets
手动配置 TDE
以下步骤显示了如何手动配置 TDE。
对示例进行复制和粘贴可能会导致语法错误。
- 从命令窗口创建 wallet 文件夹。
mkdir C:\oracle\admin\wallets
- 将 wallet 位置添加到 sqlnet.ora 文件。
ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = C:\oracle\admin\wallets\$ORACLE_SID)
注:默认的加密 wallet 位置为 $ORACLE_BASE/admin/<global_db_name>/wallet。如果希望允许 Oracle 在默认位置下管理 wallet,则无需在 sqlnet.ora 文件中设置 ENCRYPTION_WALLET_LOCATION 参数。
- 使用 Oracle SQL Plus 或 Oracle SQL Developer 生成主密钥。
alter system set encryption key identified by "walletadmin";
- 使用 Oracle SQL Plus 或 Oracle SQL Developer 验证 wallet 状态。
select * from "v$encryption_wallet";
- 在命令窗口中将 wallet 设置为自动登录。
set ORACLE_SID=wmxdb orapki wallet create -wallet C:\oracle\admin\wallets -auto_login -pwd walletadmin
- 在命令窗口中备份 wallet 文件夹。
cd C:\oracle\admin zip -r wallets wallets