Skip to content

ネットワーク暗号化

Oracle Database には、クライアント〜DB間の通信を暗号化する仕組みとして、大きく次の2系統があります。

  • ネイティブ・ネットワーク暗号化(NNE: Native Network Encryption)
  • TLS(TCPS)

このチュートリアルでは、それぞれのセットアップ手順を扱います。

TDE(保存データの暗号化)を行っていても、クライアント〜DB間の通信が平文のままでは、ネットワーク上での盗聴(スニッフィング)によってデータが漏洩するリスクがあります。 通信の暗号化(Data in Transit の保護)は、保存データの暗号化と合わせて実施することが重要です。

NNETLS(TCPS)
仕組みOracle Net 独自の暗号化プロトコル標準の SSL/TLS プロトコル
設定の手軽さsqlnet.ora の数行追記で有効化証明書・ウォレットの作成が必要
証明書不要必要(自己署名または CA 署名)
改ざん検出CRYPTO_CHECKSUM で追加設定TLS に組み込み済み
標準準拠Oracle 独自業界標準
クライアント対応Oracle Net クライアントのみ標準 TLS 対応クライアント

ネイティブ・ネットワーク暗号化(NNE)

Section titled “ネイティブ・ネットワーク暗号化(NNE)”

NNE は Oracle Net の機能で、sqlnet.ora のパラメータを設定するだけで通信内容の暗号化と改ざん検出(整合性チェック)を有効化できます。 証明書の管理が不要で導入が容易な点が特長です。

パラメータ役割
SQLNET.ENCRYPTION_SERVERサーバ側の暗号化要求レベル(REQUIRED / REQUESTED / REJECTED / ACCEPTED
SQLNET.ENCRYPTION_TYPES_SERVER許可する暗号化アルゴリズム(例:AES256, AES192, AES128
SQLNET.CRYPTO_CHECKSUM_SERVER整合性チェックの要求レベル
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER整合性チェックのアルゴリズム(例:SHA512

TLS は業界標準の SSL/TLS プロトコルを使い、TCPS ポートでの接続を提供します。 Oracle ウォレット(orapki で管理)にサーバ証明書を格納し、listener.ora に TCPS エンドポイントを追加することで有効化します。

  1. サーバー側ウォレットと証明書の作成

    orapki ユーティリティでウォレットを作成し、自己署名証明書(または CA 証明書)を登録します。クライアントへ配布するため証明書をエクスポートします。

  2. クライアント用ウォレットの作成

    サーバー証明書を「信頼された証明書」として登録したクライアント用ウォレットを作成します。

  3. サーバ側ネットワーク設定(sqlnet.ora / listener.ora

    sqlnet.ora にウォレットのパスを指定し、listener.ora に TCPS エンドポイント(例:ポート 1522)を追加します。

  4. クライアント側設定(sqlnet.ora / tnsnames.ora

    クライアント側にもウォレットと接続定義(tnsnames.ora)を配置します。