データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

透過的データ暗号化を使用してOracleデータベースを保護する

このブログでは、高度なセキュリティオプションを使用して、Transparent DataEncryption(TDE)を使用してOracle®データベース内の機密データを保護する方法の基本について説明します。この機能を使用すると、データベース列を暗号化し、暗号化キーを管理できます。

はじめに

TDEは、オペレーティングシステムファイルに保存されている機密データベースデータの暗号化を有効にします。データベースの外部にあるセキュリティモジュールで暗号化キーの安全な保存と管理を提供します。

暗号化されたデータは、データにアクセスできるデータベースユーザーに対して透過的に復号化されます。 TDEは、暗号化キーをデータベース外部のセキュリティモジュールに保存します。

なぜTDEを使​​用するのですか?

泥棒がデータベースのバックアップテープを盗み、それを自分のサーバーに復元した場合、彼らは会社の最も機密性の高いデータにアクセスできます。これは容認できないリスクです。ほとんどの企業の規制とガイドラインでは、データベースデータの保護をコンプライアンス要件と見なしています。この脆弱性からデータベースをどのように保護できますか?

1つの解決策は、データベース内の機密データを暗号化し、暗号化キーを別の場所に保存することです。キーがなければ、盗まれたデータは価値がありません。

TDEはどのように機能しますか?

TDEは、キーベースのアクセス制御システムです。暗号化されたデータが取得されたとしても、テーブルへのアクセスを許可されたユーザーに対して自動的に行われる許可された復号化なしでは役に立ちません。

暗号化された列を含むテーブルの場合、暗号化キーは列暗号化キーと呼ばれます。各テーブルの列暗号化キーは、データベースサーバーのマスターキーで暗号化されます。マスター暗号化キーは、データベースの外部のOracleWalletに保存されます。

暗号化されたテーブルキーはデータディクショナリに配置されます。ユーザーが暗号化されていると定義されている列にデータを入力すると、Oracleは次のタスクを実行します。

  1. ウォレットからマスターキーを取得します。
  2. データディクショナリからそのテーブルの暗号化キーを復号化します。
  3. 入力値にその暗号化キーを使用します。
  4. 暗号化されたデータをデータベースに保存します。
透過的データ暗号化を使用してOracleデータベースを保護する

画像ソース :https://docs.oracle.com/database/121/ASOAG/img/GUID-5FD3A3BB-441C-4C42-A520-1248974627B0-default.png

TDEは、次のデータベースファイルのデータを暗号化します。

  • データファイル
  • REDOログとアーカイブログファイル
  • メモリ
  • ファイルのバックアップ
Oracleウォレットの管理

このセクションでは、ウォレットの作成、開閉について説明します。

ウォレットを作成する

TDEを最初に有効にするときは、マスターキーが保存されるウォレットを作成する必要があります。

デフォルトでは、ウォレットは $ ORACLE_BASE / admin / $ ORACLE_SID / walletに作成されます。 、ただし、 sqlnet.ora で指定することにより、別の場所を設定できます 次の行で:

ENCRYPTION_WALLET_LOCATION = (SOURCE =
                             (METHOD = FILE)
                             (METHOD_DATA =
                             (DIRECTORY =D:\oracle\product\Wallet)))

次に、次のコマンドを実行してウォレットを作成します。

ALTER SYSTEM SET ENCRYPTION KEY [certificate_ID] IDENTIFIED BY password;
透過的データ暗号化を使用してOracleデータベースを保護する
  • ウォレットのパスワード 大文字と小文字が区別されます。パスワード文字列を二重引用符( "")で囲みます。

  • certificate_ID Oracleウォレットに格納されている証明書の一意の識別子を含むオプションの文字列です。 V $ WALLET にクエリを実行すると、acertificate_IDを検索できます。 ウォレットが開いているときの固定ビュー。

透過的データ暗号化を使用してOracleデータベースを保護する ウォレットを開いたり閉じたりします

ウォレットを作成してパスワードを設定したら、SYSを使用してウォレットを明示的に開く必要があります 、SYSTEM 、またはSYSDBA データベースを起動するたびにアカウントを作成します。

たとえば、次のコマンドを実行します。

alter system set encryption wallet open identified by "oracle12345";

重要: データベースでアクションを実行するには、ウォレットを開く必要があります。

次の例は、データベースが稼働しているがウォレットが閉じているデータベース操作を示しています。

alter system set encryption wallet close;
透過的データ暗号化を使用してOracleデータベースを保護する

ここで、暗号化された列からデータを取得しようとすると、ウォレットが閉じているため、次のエラーメッセージが表示されます。

透過的データ暗号化を使用してOracleデータベースを保護する

暗号化された列からデータを取得するには、次のコマンドを使用してウォレットを開く必要があります。

alter system set encryption wallet open identified by "oracle12345";
透過的データ暗号化を使用してOracleデータベースを保護する

ウォレットが開いているため、暗号化された列からデータを取得できるようになりました。

暗号化された列を使用してテーブルを作成する

次のコマンドを使用して、暗号化された列を持つテーブルを作成します。

CREATE TABLE test2 (id number,name varchar2(20),s_s_num number ENCRYPT);
透過的データ暗号化を使用してOracleデータベースを保護する デフォルト以外のアルゴリズムとNOSALTオプションを使用してテーブルを作成します

SALTはランダムな文字列であり、暗号化される前にデータに追加されるため、データの安全性がさらに高まり、ハッキングが困難になります。デフォルトでは、TDEは暗号化する前にクリアテキストにSALTを追加します。

SALTオプションで暗号化された列を作成してインデックスを作成することはできません。暗号化された列にインデックスを追加する場合は、次の例のようにNOSALTオプションを使用する必要があります。

CREATE TABLE test3 (id number,name varchar2(20),s_s_num number ENCRYPT NO SALT,Ph_no number ENCRYPT USING '3DES168');
透過的データ暗号化を使用してOracleデータベースを保護する

ここでは、 S_S_NUM 列はNOSALTオプションとPH_NOで暗号化されます 列はデフォルトのSALTオプションで作成されます。

次の例は、 PH_NOにインデックスを作成できないことを示しています デフォルトでSALTオプションを使用して作成したため、列。

透過的データ暗号化を使用してOracleデータベースを保護する 既存のテーブルの列を暗号化する

次のコマンドは、既存のテーブルの列を暗号化します。

ALTER TABLE test1 ADD (ssn VARCHAR2(11) ENCRYPT);
透過的データ暗号化を使用してOracleデータベースを保護する 列の暗号化を無効にする

次のコマンドは、列の暗号化を無効にします:

ALTER TABLE test1 MODIFY (ssn DECRYPT);
透過的データ暗号化を使用してOracleデータベースを保護する

TDEの使用に関する制限

TDEの使用に関する次の制限に注意してください。

  • 暗号化された列にBツリー以外のインデックスを作成することはできません。
透過的データ暗号化を使用してOracleデータベースを保護する
  • 外部の大きなオブジェクト(BFILE)では暗号化は許可されていません。
透過的データ暗号化を使用してOracleデータベースを保護する
  • ウォレットが閉じている場合、インポートまたはエクスポート操作を実行することはできません。

ウォレットが閉じているためエラーが発生しました

透過的データ暗号化を使用してOracleデータベースを保護する

ウォレットが開いているため成功

透過的データ暗号化を使用してOracleデータベースを保護する 結論

不正なアクセスやバックドアアクセスから機密データを保護する必要がある場合は、TDEセキュリティオプションを使用してください。この機能により、コーディングやキー管理を複雑にすることなく、データの暗号化とコンプライアンスを即座に提供できます。したがって、より戦略的な取り組みに集中することができます。

[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。

専門家による管理、管理、構成で環境を最適化する

Rackspaceのアプリケーションサービス(RAS) 専門家は、幅広いアプリケーションポートフォリオにわたって次の専門的かつ管理されたサービスを提供します。

  • eコマースおよびデジタルエクスペリエンスプラットフォーム
  • エンタープライズリソースプランニング(ERP)
  • ビジネスインテリジェンス
  • Salesforceの顧客関係管理(CRM)
  • データベース
  • メールホスティングと生産性

お届けします:

  • 偏りのない専門知識 :私たちは、即時の価値を提供する機能に焦点を当てて、お客様の近代化の旅を簡素化し、導きます。
  • 狂信的な経験 ™:最初にプロセスを組み合わせます。テクノロジーセカンド。包括的なソリューションを提供するための専用のテクニカルサポートを備えたアプローチ。
  • 比類のないポートフォリオ :豊富なクラウドエクスペリエンスを適用して、適切なテクノロジーを適切なクラウドに選択して導入できるようにします。
  • アジャイルデリバリー :私たちはあなたがあなたの旅の途中であなたに会い、あなたの成功と一致します。

今すぐチャットして始めましょう。


  1. 透過的なデータ暗号化

    Oracle®は、セキュリティの目的でOracle 12Cに透過的データ暗号化(TDE)機能を導入し、ユーザーが機密データのテーブルスペースおよび列レベルの暗号化を有効にできるようにしました。 はじめに データを暗号化すると、許可されたユーザーまたはアプリケーションのみがデータにアクセスできます。 Oracleは、ツールとプロセスを使用してデータベースを認証、承認、監査しますが、データを格納するOSデータファイルは使用しません。 Oracle Database Advanced Security Guide(ASOAG)によると、「TDEはデータファイルに保存されている機密データを暗号化し

  2. Oracle19cでDBCAコマンドを使用してデータベースのクローンを作成する

    このブログでは、Oracle19cの新機能であるDatabaseConfiguration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成せずにリモートプラガブルデータベース(PDB)をコンテナデータベース(CDB)に複製する方法を紹介します。 ソースからターゲットへのクローン作成にかかる時間は最小限です。 ソースDBの詳細 CDB:LCONCDBPDB:LCON 以下は総数です。ソース内の各コンテナ(CDBおよびPDB)の下にあるDBFファイルのうち、クローンがターゲット内にある後に検証する必要があります。上記のソースDBから、ターゲットホスト内にCDB