0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL*Net 暗号化機能を試す(Oracle Database 19c)

Last updated at Posted at 2025-06-19

通信の暗号化

 Oracle Database と Oracle Client 間の通信経路が信頼できない場合に通信データの暗号化を設定することができます。この機能は旧バージョンでは有償の Oracle Advanced Security ライセンスが必要でしたが、現在は標準ライセンスに含まれるようになりました。マニュアルに記載があります。

暗号化設定

SQLNET.ORA のパラメーター

 暗号化はクライアント側、サーバー側両方の sqlnet.ora ファイルに設定が存在します。

パラメーター名 設定場所 説明 デフォルト値
SQLNET.ENCRYPTION_CLIENT Client クライアント側で暗号を有効化 accepted
SQLNET.ENCRYPTION_SERVER Server サーバー側で暗号を有効化 accepted
SQLNET.ENCRYPTION_TYPES_CLIENT Client クライアント側の暗号化アルゴリズム一覧 利用可能な全アルゴリズム
SQLNET.ENCRYPTION_TYPES_SERVER Server サーバー側の暗号化アルゴリズム一覧 利用可能な全アルゴリズム
SQLNET.CRYPTO_CHECKSUM_CLIENT Client クライアント側で暗号化チェックサムの有効化 accepted
SQLNET.CRYPTO_CHECKSUM_SERVER Server サーバー側で暗号化チェックサムの有効化 accepted
SQLNET.CRYPTO_CHECKSUM_TYPE_CLIENT Client クライアント側の暗号化チェックサム・タイプ 利用可能な全タイプ
SQLNET.CRYPTO_CHECKSUM_TYPE_SERVER Server サーバー側の暗号化チェックサム・タイプ 利用可能な全タイプ
SQLNET.IGNORE_ANO_ENCRYPTION_FOR_TCPS Server TCPS 接続で ENCRYPTION_SERVER 設定を無視 FALSE

暗号化設定の組み合わせ

 SQLNET.ENCRYPTION_CLIENT と SQLNET.ENCRYPTION_SERVER は暗号化の要求を設定します。これらのパラメーターには以下の値を設定できます。

設定値 説明 備考
accepted 暗号化要求を受け入れる デフォルト
rejected 暗号化通信を禁止する
requested 暗号化通信を要求する
required 暗号化通信を必須にする

 SQLNET.ENCRYPTION_CLIENTとSQLNET.ENCRYPTION_SERVERの設定値の組み合わせにより、暗号化されるかが決定されます。

通信 CLIENT accepted CLIENT rejected CLIENT requested CLIENT required
SERVER accepted 非暗号化 非暗号化 暗号化 暗号化
SERVER rejected 非暗号化 非暗号化 非暗号化 接続エラー
SERVER requested 暗号化 非暗号化 暗号化 暗号化
SERVER required 暗号化 接続エラー 暗号化 暗号化

 暗号化に使用されるアルゴリズムは初期接続時にクライアントとサーバー間でネゴシエーションが行われ、双方が利用できる暗号化アルゴリズムから選択されます。クライアントのトレース・ファイルを取得すると以下のようなログが出力されます。

暗号化アルゴリズムの選択
2025-06-18 16:54:27.689 : naeecom:The server chose the 'AES256' encryption algorithm

サーバーとクライアント間に暗号化設定の矛盾がある場合(例えば ENCRYPTION_SERVER=REQUIRED, ENCRYPTION_CLIENT=REJECTED)は接続できず ORA-12660 エラーが発生します。

暗号化の設定エラー
$ sqlplus user1/{Password}@dbsvr1:1521/pdb1

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 19 09:24:18 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-12660: Encryption or crypto-checksumming parameters incompatible


Enter user-name:

パラメーター設定値

暗号化とチェックサムのアルゴリズムには以下の値が使用できます。

暗号化アルゴリズム

パラメーター SQLNET.ENCRYPTION_TYPES_{CLIENT|SERVER} で指定する暗号化アルゴリズムは Oracle Database Client 19.3 では以下の値が使用できます(トレースファイルから)。クライアントとサーバー間で一致するアルゴリズムを指定します。

設定 ID 備考
AES256 17
AES192 16
AES128 15
3DES168 12 非推奨
3DES112 11 非推奨
RC4_128 10 非推奨
RC4_56 8 非推奨
RC4_256 6 非推奨
DES40 3 非推奨
DES 2 非推奨
RC4_40 1 非推奨

チェックサム・アルゴリズム

暗号化チェックサムは Oracle Database Client 19.3 では以下の値が使用できます(トレースファイルから)

設定 ID 備考
MD5 1
SHA1 3
SHA512 4
SHA256 5
SHA384 6

JDBC Driver

JDBC Driver (Thin) では通信の暗号化は接続時のプロパティで設定します。

sqlnet.ora パラメーター JDBC プロパティ
SQLNET.ENCRYPTION_CLIENT OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL
SQLNET.ENCRYPTION_TYPES_CLIENT OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES
SQLNET.CRYPTO_CHECKSUM_CLIENT OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL
SQLNET.CRYPTO_CHECKSUM_TYPE_CLIENT OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES

Author: Noriyoshi Shinoda / Date: June 19, 2025

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?