在Oracle中建议加密的方法是什么?

Zes*_*sty 5 database security oracle cryptography utl-file

我需要Oracle /安全专家的帮助.

我将在Oracle DB中创建加密/解密函数.我打算dbms_cryptoAES256.我知道我应该将密钥文件存储在O/S中并使用它来读取它utl_file.

这是一个好主意吗?这种方法有什么问题吗?例如,如果密钥文件被函数的10个调用者同时读取,那么utl_file是否会出现问题?还有其他建议吗?

我确信这是一件非常普遍的事情.有谁知道我在哪里可以找到这样做的好样品?

由于这与安全相关,我更愿意遵循其他人遵循的标准.

Ait*_*tor 4

如果您的 Oracle 数据库企业版中有 Oracle Advanced Security,则您已经对数据库中存储的数据进行了透明数据加密 (TDE)。请看一下:

http://download.oracle.com/docs/cd/B19306_01/network.102/b14268/asotrans.htm

您还可以查看此链接:

http://www.oracle-base.com/articles/10g/TransparentDataEncryption_10gR2.php

总结最后一页:

  • 设置:创建数据库文件和用户。

    CONN 系统/密码 AS SYSDBA

    创建表空间 tde_test 数据文件 '/u01/oradata/DB10G/tde_test.dbf' 大小 128K 在下一个 64K 上自动扩展;

    创建用户测试由测试默认表空间 tde_test 标识;ALTER USER test QUOTA UNLIMITED ON tde_test;授予连接测试;授予创建表进行测试;

  • 加密数据:如何创建加密列。您必须创建一个钱包来保存加密密钥。将以下条目添加到服务器上的 sqlnet.ora 文件中,并确保已创建指定的目录。

    ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/u01/app/oracle/admin/DB10G/encryption_wallet/)))

您必须创建并打开钱包:

CONN sys/password AS SYSDBA
ALTER SYSTEM SET ENCRYPTION KEY AUTHENTICATED BY "myPassword";
Run Code Online (Sandbox Code Playgroud)

然后,您可以创建表,其中所需的列已加密或未加密:

CREATE TABLE tde_test (
  id    NUMBER(10),
  data  VARCHAR2(50) ENCRYPT
)
TABLESPACE tde_test;
Run Code Online (Sandbox Code Playgroud)

我希望这对你有帮助。