什么是在Oracle中进行加密的推荐方式?
我需要Oracle /安全专家的帮助。什么是在Oracle中进行加密的推荐方式?
我打算在Oracle数据库中进行加密/解密的功能。我打算使用dbms_crypto
与AES256
。我知道我应该将密钥文件存储在O/S中,并使用utl_file
来读取它。
这是个好主意吗?这种方法有什么问题吗?例如。如果密钥文件由函数的10个调用者并发读取,utl_file是否会有问题?还有其他建议吗?
我相信这是一件很平常的事情。有谁知道我在哪里可以找到一个很好的样本,这样做?
由于这是与安全相关的,我宁愿遵循其他人遵循的一些标准。
如果您在Oracle数据库企业版具有Oracle高级安全性,已经存储在database.Take看看数据的透明数据加密(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 SYS /密码AS SYSDBA
CREATE TABLESPACE tde_test DATAFILE '/u01/oradata/DB10G/tde_test.dbf' SIZE 128K AUTOEXTEND ON NEXT 64K;
CREATE USER test IDENTIFIED BY test DEFAULT TABLESPACE tde_test; ALTER USER测试QUOTA UNLIMITED ON tde_test; GRANT CONNECT TO测试; GRANT CREATE TABLE TO测试;
-
加密数据:如何创建加密列。您必须创建一个钱包来保存加密密钥。将以下条目添加到服务器上的sqlnet.ora文件中,并确保已创建指定的目录。
ENCRYPTION_WALLET_LOCATION = (SOURCE =(METHOD = FILE)(METHOD_DATA = (DIRECTORY =/U01 /应用/ ORACLE /管理/ DB10G/encryption_wallet /)))
您必须创建和opne钱包:
CONN sys/password AS SYSDBA
ALTER SYSTEM SET ENCRYPTION KEY AUTHENTICATED BY "myPassword";
然后你就可以创建表与所需的列进行加密或不:
CREATE TABLE tde_test (
id NUMBER(10),
data VARCHAR2(50) ENCRYPT
)
TABLESPACE tde_test;
我希望这对你有所帮助。
+1谢谢。这是有用的信息,但是,我需要的是一对加密/解密功能。我必须能够实时加密/解密。数据不一定驻留在表格中。 – Zesty
不客气;)... mmm,以及DBMS_OBFUSCATION_TOOLKIT如何?它包含使用数据加密标准(DES)或三重DES算法加密/解密数据的功能。 – Aitor
据我所知,推荐使用DBMS_CRYPTO。 DBMS_OBFUSCATION_TOOLKIT适用于较旧的DB。此外,我需要通过将其存储在O/S中来保护密钥。 – Zesty