Oracle 中 Workflow Manager 工作空间的透明数据加密

可采取多种预防措施来协助保护数据库安全,例如设计安全系统、加密机密资产以及在数据库服务器周围建立防火墙。但如果物理介质(如驱动器或备份磁带)被盗,则恶意方可以恢复或附加数据库并浏览数据。一种解决方案是对数据库中的敏感数据进行加密,并通过一个证书来保护用于加密数据的密钥。这样便可防止任何没有密钥的用户使用该数据,但此种保护必须提前计划。

透明数据加密 (TDE) 可用于加密敏感数据,例如存储在表和表空间中的信用卡号。加密数据将为能够访问数据的数据库用户或应用程序进行透明解密。TED 有助于在存储介质或数据文件被盗的情况下保护介质中存储的数据。Oracle 使用验证、授权和审计机制来保护数据库中数据的安全,但不能保护用于存储数据的操作系统数据文件中数据的安全。为保护这些数据文件,Oracle 提供了 TDE。TDE 可加密数据文件中存储的敏感数据。为防止发生未经授权的解密,TDE 将加密密钥存储在数据库以外的安全模块中。

通过 Oracle,可将新的表空间定义为已加密。将表空间定义为已加密意味着将对在操作系统中创建的物理数据文件进行加密。任何表、索引以及新表空间中定义的其他对象都将默认加密,而不具备额外的存储空间要求。数据写入磁盘时会自动进行加密,并在应用程序访问数据时自动解密。

使用 TDE 的优势在于:

有关配置 TDE 表空间加密的详细信息,请参阅 Oracle 文档

要使用 TDE,请执行以下其中一种方法。

配置 TDE Oracle Enterprise Manager

以下步骤显示了如何使用 Oracle Enterprise Manager (OEM) 来配置 TDE。

注注:

对示例进行复制和粘贴可能会导致语法错误。

步骤:
  1. 创建 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
    
  2. 备份 wallet 文件夹。
    cd C:\oracle\admin
    
    zip -r wallets wallets
    

手动配置 TDE

以下步骤显示了如何手动配置 TDE。

注注:

对示例进行复制和粘贴可能会导致语法错误。

步骤:
  1. 从命令窗口创建 wallet 文件夹。
    mkdir C:\oracle\admin\wallets
    
  2. 将 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 参数。

  3. 使用 Oracle SQL Plus 或 Oracle SQL Developer 生成主密钥。
    alter system set encryption key identified by "walletadmin";
    
  4. 使用 Oracle SQL Plus 或 Oracle SQL Developer 验证 wallet 状态。
    select * from "v$encryption_wallet";
    
  5. 在命令窗口中将 wallet 设置为自动登录。
    set ORACLE_SID=wmxdb
    
    orapki wallet create -wallet C:\oracle\admin\wallets -auto_login -pwd walletadmin
    
  6. 在命令窗口中备份 wallet 文件夹。
    cd C:\oracle\admin
    
    zip -r wallets wallets
    
5/10/2014