5

Oracle/セキュリティの専門家の助けが必要です。

Oracle DB で暗号化/復号化のための関数を作成します。dbms_cryptoで使用するつもりAES256です。キー ファイルを O/S に保存し、utl_file.

これは良い考えですか?このアプローチに問題はありますか? たとえば、キー ファイルが関数の 10 の呼び出し元によって同時に読み取られる場合、utl_file に問題が発生する可能性はありますか? 代わりに他に何かお勧めはありますか?

これは非常に一般的なことだと確信しています。これを行う良いサンプルがどこにあるか知っている人はいますか?

これはセキュリティ関連であるため、他の人が従っている標準に従うことをお勧めします。

4

1 に答える 1

4

Oracle Database Enterprise Edition に 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 sys/password 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 test QUOTA UNLIMITED ON tde_test; GRANT CONNECT TO test; GRANT CREATE TABLE TO テスト;

  • 暗号化されたデータ: 暗号化された列を作成する方法。暗号化キーを保持するウォレットを作成する必要があります。サーバー上の 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";

次に、目的の列を暗号化するかどうかを指定してテーブルを作成できます。

CREATE TABLE tde_test (
  id    NUMBER(10),
  data  VARCHAR2(50) ENCRYPT
)
TABLESPACE tde_test;

これがお役に立てば幸いです。

于 2011-10-11T09:19:39.207 に答える