...

Oracle JDBCシン・ドライバを使用したSSL

by user

on
Category: Documents
113

views

Report

Comments

Transcript

Oracle JDBCシン・ドライバを使用したSSL
Oracle JDBC シン・ドライバを使用した
SSL
Oracle テクニカル・ホワイト・ペーパー
2007 年 11 月
はじめに .............................................................................................................. 3
SSL の使用 .......................................................................................................... 3
SSL 設定の概要 .................................................................................................. 4
サーバーにおける設定................................................................................. 4
JDBC シン・ドライバにおける設定 .......................................................... 6
必要な jar ファイル................................................................................. 6
SSL をアクティブ化する方法 ............................................................... 6
関連するプロパティ ............................................................................... 6
Oracle ウォレットを Java で使用する方法........................................... 7
使用できる暗号スイート ....................................................................... 9
SSL を暗号化専用で使用する........................................................................... 9
サーバーの設定........................................................................................... 10
JDBC シン・クライアントの設定 ............................................................ 10
SSL を暗号化しサーバー認証に使用する..................................................... 10
サーバーの設定........................................................................................... 10
JDBC シン・クライアントの設定 ............................................................ 11
トラストストア・フォーマットのタイプが JKS の場合 ................. 11
トラストストアがウォレットの場合 ................................................. 11
サーバーの識別名の確認........................................................................... 12
SSL を暗号化し両方の層の認証に使用する................................................. 12
サーバーの設定........................................................................................... 12
JDBC シン・クライアントの設定 ............................................................ 12
キーストア・フォーマットのタイプが JKS の場合......................... 13
キーストアがウォレットの場合 ......................................................... 13
データベースで SSL を認証サービスとして使用する ................................ 13
サーバーの設定........................................................................................... 14
JDBC シン・クライアントの設定 ............................................................ 14
結論 .................................................................................................................... 14
付録 A トラブルシューティング................................................................... 15
付録 B トラストストアとキーストアの作成 ............................................................. 17
orapki の使用 ............................................................................................... 17
テスト CA 用のウォレットの作成...................................................... 17
Oracle サーバー用のウォレットの作成.............................................. 17
クライアントの場合(サーバーと同様) ......................................... 19
信頼できる証明書だけを格納するウォレットの作成...................... 19
keytool の使用.............................................................................................. 19
JKS キーストアの作成.......................................................................... 19
JKS トラストストアの作成.................................................................. 21
Oracle JDBC シン・ドライバを使用した SSL
2
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Oracle JDBC シン・ドライバを使用した SSL
はじめに
Oracle Advanced Security は、Oracle
Database Enterprise Edition の有償オ
プションです。
Oracle Advanced Security には、セキュリティ機能の包括的なスイートが含まれて
います。これらの機能により、企業ネットワークは保護され、インターネットへ
セキュアに拡張されます。Oracle Advanced Security は、ネットワーク暗号化、デー
タ整合性、認証の複数のソリューション、シングル・サインオン・サービス、セ
キュリティ・プロトコルを備えた統合のための単一ソースを提供します。
Oracle Databse には非常に機密性の高い情報(従業員レコード、財務レコード、顧
客注文、製品情報など)が含まれていることがあり、そのセキュリティに対する
脅威(データの傍受、データの改ざん、ユーザーID の偽造)のため、セキュリティ
が課題となっています。Oracle Advanced Security は、データベースを保護するソ
リューションを提供します。
データ暗号化とデータ整合性のためには、Oracle Net のネイティブ暗号化(たとえ
ば、Oracle Net 層の AES と SHA1)または Secure Sockets Layer(SSL)のいずれか
を設定できます。また、Oracle Advanced Security では、Kerberos、Radius、デジタ
ル証明などの強力な認証方法を選択できます。
このホワイト・ペーパーでは、ネットワーク・クライアント層が Oracle JDBC シ
ン・ドライバである場合に、SSL を使用する方法を説明します。SSL および JDBC
シン・ドライバに詳しい読者を対象としています。Oracle JDBC シン・ドライバで
使用可能なほかのセキュリティ機能の詳細は、『JDBC 開発者ガイドおよびリファ
レンス』を参照してください。
このホワイト・ペーパーで取り上げるデータベースとドライバの製品バージョン
は、10.2.0.3 と 11.1.0.6 です。また、JDK バージョンが JDK5.0 または JDK6.0 であ
ることを前提とします。
データベース・サーバー上での Oracle Advanced Security のオプション設定の詳細
は、データベース・ドキュメントの『Advanced Security 管理者ガイド』を参照し
てください。
SSL の使用
Secure Sockets Layer(SSL)は、ネットワーク接続を保護するための業界標準プロ
トコルです。SSL は、対象鍵暗号化とあわせて RSA 公開鍵暗号化を使用して、認
証、暗号化、およびデータ整合性を提供します。
Oracle JDBC シン・ドライバを使用した SSL
3
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Oracle Advanced Security の SSL 機能を使用して、JDBC シン・クライアントとサー
認証は、通信の双方の当事者が信頼する
サード・パーティである認証局(CA)を
介しておこなわれます。
バー間の通信を保護することにより、以下のことが可能になります。
•
クライアントとサーバー間の接続を暗号化する
•
ネットワーク・クライアント層を認証する。データベース・サーバーは、
信頼できる機関が署名した証明をもつ Oracle Application Server などのクラ
イアントからの接続のみを受け入れます。データベースが信頼しないクラ
イアント層またはアプリケーションから試行される接続は、失敗します。
•
データベース層を認証する。JDBC シン・ドライバは、データベースの証
明書を検証するように設定できます。信頼できる機関が署名していない場
合、接続は失敗します。そのため、アプリケーションの観点から、データ
ベースの信頼性が証明されます。
•
SSL をサーバー上で認証サービスとして使用する(JDBC シン・ドライバ
11.1.0.6 以降)。データベース・ユーザーは、ネットワーク・クライアン
ト層とは対照的に、SSL によって認証されます。この場合、データベース
の各ユーザーが証明書をもっています。
SSL 機能は、単独でも使用できますが、Oracle Advanced Security でサポートされ
ているほかの認証方法とあわせても使用できます。たとえば、JDBC シン・ドライ
バの場合、SSL が提供する暗号化と Kerberos が提供する認証を組み合わせて使用
できます(11.1.0.6 以降)。
SSL は、Oracle Database 10g Release 2 の JDBC シン・ドライバで初めてサポートさ
れるようになりました。Oracle Database を使用した認証サービスとしての SSL は、
Oracle Database 11g Release 1 の JDBC シン・ドライバで初めてサポートされました。
JDBC シン・ドライバでは、Sun に定義された Java Secure Socket Extension(JSSE)
が使用されます。また、SunJSSE と呼ばれる Sun の JSSE プロバイダをデフォルト
で使用しますが、ほかのプロバイダ(PKI または SSL プロバイダ)も使用できま
す。詳細は、『JSSE Reference Guide』を参照してください。
SSL 設定の概要
この項では、SSL 固有の設定を詳細に説明します。
サーバーにおける設定
リスナーがTCPSプロトコルを使用するように設定されている必要があります。
LISTENER = (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))
)
サーバーの自動ログイン・ウォレットのロケーションは、sqlnet.oraとlistener.oraの
ウォレットは、秘密鍵、証明書、および
SSL に必要な信頼できる証明書も含めて、
認証と署名の資格証明の格納に使用され
る コ ン テ ナ で す 。 Oracle Wallet
Manager を使用してウォレットを作成
できます。
両方に含まれる必要があります。一般的には、両方のファイルに同一のウォレッ
ト・ロケーションが含まれていますが、必ずしも同一である必要はありません。
リスナーが独自のウォレットを使用することもあります。便宜上、このホワイト・
ペーパーでは、sqlnet.oraとlistener.oraが同一のウォレット・ロケーションを使用し
ていると仮定します。
Oracle JDBC シン・ドライバを使用した SSL
4
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
WALLET_LOCATION=(SOURCE=(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/server/wallet/path/)))
これで、クライアント認証を有効または無効に設定できます。デフォルトでは有
効になっています。
SSL_CLIENT_AUTHENTICATION=FALSE
または
SSL_CLIENT_AUTHENTICATION=TRUE
この設定は、listener.ora と sqlnet.ora の両方に適用されます。SSL クライアント認
証が有効の場合、JDBC シン・クライアントは、クライアントのデジタル証明を送
信するように設定されている必要があります。デジタル証明は、サーバーに受け
入れられる必要があります。受け入れられない場合は、接続できません。
SSL 認証を使用しない場合にも、サーバー上でウォレットのロケーションを設定
する必要があります。ウォレットの作成方法の詳細は、データベース・ドキュメ
ントの『Advanced Security 管理者ガイド』を参照してください。このホワイト・
ペーパーでは、orapki ユーティリティを使用してテスト用のウォレットと証明書
を作成する方法についても説明します(付録 B を参照)。
また、使用可能な暗号スイートのサブセットを使用する場合は、オプションとし
暗号スイートに優先順位をつけることが
できます。クライアントは、どの暗号ス
イートを使用するかに関して、サーバー
と交渉する際に設定された優先順位に従
います。
て、サーバー上で sqlnet.ora 内に暗号スイートを設定できます。サーバーは、以下
の暗号スイートをサポートします。
•
SSL_RSA_WITH_3DES_EDE_CBC_SHA
•
SSL_RSA_WITH_RC4_128_SHA
•
SSL_RSA_WITH_RC4_128_MD5
•
SSL_RSA_WITH_DES_CBC_SHA
•
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
•
SSL_DH_anon_WITH_RC4_128_MD5
•
SSL_DH_anon_WITH_DES_CBC_SHA
•
SSL_RSA_EXPORT_WITH_RC4_40_MD5
•
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
•
SSL_RSA_WITH_AES_128_CBC_SHA
•
SSL_RSA_WITH_AES_256_CBC_SHA
最後の 2 つの暗号は、TLS プロトコルを使用し、Java では、SSL_xxx ではなく、
TLS_xxx という名前がつけられます。これらの暗号の意味についての詳細は、
『Advanced Security 管理者ガイド』を参照してください。
た
暗号化スイートを強力なものから弱いも
のへ優先順位をつけ、可能な限り最高の
セキュリティを確保します。
と
え
ば
、
SSL_RSA_WITH_AES_128_CBC_SHA
ま
た
は
SSL_DH_anon_WITH_3DES_EDE_CBC_SHAのいずれかを使用する接続のみを受
け入れるようにサーバーを設定するには、sqlnet.oraに以下を追加します。
SSL_CIPHER_SUITES=(SSL_RSA_WITH_AES_128_CBC_SHA,
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA)
Oracle JDBC シン・ドライバを使用した SSL
5
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
このような設定で、ネットワーク・クライアントがSSL認証を使用しない場合は、
SSL_DH_anon_WITH_3DES_EDE_CBC_SHAを使用する必要があります。そうし
ないと、SSL_RSA_WITH_AES_128_CBC_SHAが使用されます。
JDBC シン・ドライバにおける設定
必要な jar ファイル
10.2 以降、ojdbc14.jar は、JDK1.4 を使
用してコンパイルされていますが、
JDK5.0 または JDK6.0 も使用できます。
10.2.0.3 の場合
以下の JDBC jar が必要です($ORACLE_HOME/jdbc/lib)。
•
ojdbc14.jar
Oracle PKI プロバイダが必要な場合(クライアント上でウォレットを使用する場
合)、以下の jar も必要です($ORACLE_HOME/jlib)。
•
oraclepki.jar
•
ojpse.jar
11.1.0.6 の場合
JDK5.0 を 使 用 し て コ ン パ イ ル さ れ た JDBC jar が 必 要 で す
($ORACLE_HOME/jdbc/lib)。
•
ojdbc5.jar
注:JDK6.0 を使用する場合は、JDK6.0 を使用してコンパイルした ojdbc6.jar も使
用できます。
Oracle PKI プロバイダが必要な場合(クライアント上でウォレットを使用する場
合)、以下の jar も必要です($ORACLE_HOME/jlib)。
•
oraclepki.jar
•
osdt_cert.jar
•
osdt_core.jar
SSL をアクティブ化する方法
JDBC シン・ドライバで SSL をアクティブ化するには、すべての JDBC URL で“tcps”
プロトコルが使用されている必要があります。
たとえば、次の URL は SSL をアクティブ化します。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename)))
関連するプロパティ
使用する SSL の機能に応じて、次のプロパティの設定が必要になる場合がありま
す。これらのプロパティは、接続プロパティまたはシステム・プロパティを介し
て設定できます。
Oracle JDBC シン・ドライバを使用した SSL
6
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Diffie-Hellman 匿名認証を使用しない暗号スイートを使用する場合は、“トラスト
ストア”を提供する必要があります。トラストストアは、証明書が信頼できるサー
バーによって発行されたことを証明します。“トラストストア”には、秘密鍵は含
まれていませんが、認証局(CA)の証明書など、信頼できる証明書のエントリが
含まれています。次の JSEE プロパティは、“トラストストア”の設定に使用できま
す。
•
javax.net.ssl.trustStore
•
javax.net.ssl.trustStoreType
•
javax.net.ssl.trustStorePassword
サーバー上でクライアント認証が有効になっている場合は、“キーストア“を提供
する必要があります。“キーストア”には、クライアントの証明書が含まれていま
す。次の JSEE プロパティは、“キーストア”の設定に使用できます。
•
javax.net.ssl.keyStore
•
javax.net.ssl.keyStoreType
•
javax.net.ssl.keyStorePassword
デフォルトで使用可能な暗号スイートのサブセットを有効にするには、次のプロ
パティを使用します。
•
oracle.net.ssl_cipher_suites
次のプロパティを使用して、識別名の一致検証をドライバに強制できます。
•
oracle.net.ssl_server_dn_match
SSL を認証サービスとしてデータベース内でアクティブ化するために、次のプロ
パティが使用されます(11.1 で導入)。
•
oracle.net.authentication_services
これらのプロパティを使用する方法についての詳細は、次の項で説明します。
注:“oracle.net.wallet_location”プロパティについて。
11.1.0.6 と 10.2.0.3 には、このプロパティの使用に関連したバグと制限がい
くつかあります。たとえば、MS Windows では、ウォレット・ロケーショ
ンにドライブ文字を入力できません。このホワイト・ペーパーでは、この
プロパティを使用しないことを前提とします。
Oracle ウォレットを Java で使用する方法
Oracle Wallet Manager または“orapki”(付録 B を参照)によって作成されたウォレッ
トは、標準的な PKCS12 フォーマットを使用して、X.509 証明書および秘密鍵を
保存します。このウォレットは、“ewallet.p12”という名前のファイルに保存されま
す。
Oracle JDBC シン・ドライバを使用した SSL
7
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Sun が提供する PKCS12 実装には、いくつかの非互換性があります。そのため、Java
から Oracle ウォレットにアクセスするには、“OraclePKI”という名前の Oracle の
PKI プロバイダを使用する必要があります。
ウォレットの自動ログインを有効にすると、ファイル“cwallet.sso”に、ウォレット
の不明瞭化されたコピーが作成されます。このコピーは、パスワードを入力せず
に使用できます。このような自動ログイン・ウォレットのフォーマットは、Oracle
Single Sign-On インフラストラクチャで使用されるので、拡張子“sso”がつきます。
Java から自動ログイン・ウォレット(このホワイト・ペーパーでは SSO ウォレッ
トとも呼びます)にアクセスするには、Oracle の PKI プロバイダも使用する必要
があります。
JSSE では、2 つの方法でプロバイダを有効にできます。1 つは動的な方法、もう 1
つは静的な方法です。
ウォレットを使用する場合は、Oracle の
PKI プロバイダを有効にする必要があり
ます。
Oracle の PKI プロバイダを静的に有効にする方法
SSO ウォレット(cwallet.sso)を使用する場合、Oracle の PKI プロバイダは、以下
に示すように、ファイル java.security(JRE インストールに含まれています)のプ
ロバイダ・リストの最後に追加することによって、静的に有効化できます。
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=oracle.security.pki.OraclePKIProvider
ほかのプロバイダがタイプ“SSO”をサポートする場合は、Oracle の PKI プロバイ
ダのあとに追加します。
PKCS12 ウォレット(ewallet.p12)を使用する場合、Oracle の PKI プロバイダをポ
ジション#3 または Sun のプロバイダよりも前に移動する必要があります。Sun の
プロバイダも PKCS12 をサポートしますが、Oracle のウォレットとは互換性があ
りません。したがって、java.security のプロバイダのリストは、以下のようになり
ます。
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=oracle.security.pki.OraclePKIProvider
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
新しい接続を作成する前に、OraclePKIProviderをインスタンス化して、クラスが
ロードされ、初期化されるようにする必要もあります。
new oracle.security.pki.OraclePKIProvider();
Oracle の PKI プロバイダを動的に有効にする方法
JavaコードでSystem.addProviderまたはSystem.insertProviderAtを呼
び出すことによって、プロバイダを動的に有効化できます。
SSO ウォレットを使用する場合、順序は重要ではないので(SSO にほかのプロバ
イダがないと仮定した場合)、Oracle の PKI プロバイダを“追加”するだけです。
Oracle JDBC シン・ドライバを使用した SSL
8
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Security.addProvider(new oracle.security.pki.OraclePKIProvider());
PKCS12 ウォレットを使用する場合、Oracle の PKI プロバイダをポジション#3 に
挿入する必要があります。
Security.insertProviderAt(
new oracle.security.pki.OraclePKIProvider(),3);
TLS_RSA_WITH_AES_256_CBC_SHA
は 、 JCE
Unlimited
Strength
Jurisdiction Policy Files のインストー
ルを必要とします。J2SE 5 ダウンロー
ド・ページを参照してください。
使用できる暗号スイート
SSL ハンドシェイクの間に、両方の層が使用する暗号スイートを決定します。JSSE
は、多数の暗号スイートを定義しますが、使用できるのは、Oracle Database サー
バーがサポートする暗号スイートに対応するものだけです。データベースがサ
ポートするすべての暗号は、JSSE で定義され、Sun の SSL プロバイダにサポート
されます。
以下のサブセットがサポートされます(Java の暗号名)。
−
−
−
−
−
−
−
−
−
−
−
Transport Layer Security(TLS)は、
基本的には、SSL バージョン 3.0 の段階
的な改良です。
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_MD5 (default)
SSL_RSA_WITH_DES_CBC_SHA
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
SSL_DH_anon_WITH_RC4_128_MD5
SSL_DH_anon_WITH_DES_CBC_SHA
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
これらの暗号スイートの名前は、SSL_xxx が TLS_xxx に変わる最後の 2 つを除い
て、データベース内の名前と同じです。
これらの暗号スイートの名前をoracle.net.ssl_cipher_suitesプロパティ
で使用して、定義されたスイートだけをSSLハンドシェイクに使用できます。
暗号スイートがサーバーでもクライアントでも指定されない場合、暗号スイート
のネゴシエーションの結果はSSL_RSA_WITH_RC4_128_MD5になります。
次の項では、SSL に JDBC シン・ドライバを設定する手順を説明します。暗号化
に SSL だけを使用し、サーバーもクライアントも認証しない、もっとも簡単なケー
スから始めます。次に、SSL を使用してサーバーを認証します。その後、サーバー
とクライアントの両方を認証し、最後に SSL をデータベース内の認証サービスと
して使用します。
二重の暗号化が禁止されているので、
SSL 暗号化を設定する場合は、SSL 以外
の暗号化を無効にする必要があります。
SSL を暗号化専用で使用する
暗号化とデータ整合性だけを目的として SSL を使用するもっとも基本的なケース
を検討します。このケースでは、Diffie-Hellman 匿名認証を使用します。それ以外
の場合は、接続に失敗します。
このケースには、次の暗号スイートを使用できます。
(SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,
SSL_DH_anon_WITH_RC4_128_MD5,
SSL_DH_anon_WITH_DES_CBC_SHA)
Oracle JDBC シン・ドライバを使用した SSL
9
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Diffie-Hellman 匿名認証では、サーバーもクライアントも認証されません。
サーバーの設定
クライアント認証を無効にするようにリスナーを設定する必要があります。典型
的な設定では、listener.ora ファイルの内容は次のようになります。
LISTENER = (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))
)
WALLET_LOCATION=(SOURCE=(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/server/wallet/path)))
SSL_CLIENT_AUTHENTICATION=FALSE
同様に、SSL クライアント認証を sqlnet.ora で無効にする必要があります。
WALLET_LOCATION=(SOURCE=(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/server/wallet/path)))
SSL_CLIENT_AUTHENTICATION=FALSE
JDBC シン・クライアントの設定
“トラストストア”も“キーストア”も設定する必要はありません。ただし、暗号ス
イートに Diffie-Hellman 匿名認証の使用を強制する必要があります。
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))
(CONNECT_DATA=(SERVICE_NAME=servicename)))");
Properties props = new Properties();
props.setProperty("user", "scott");
props.setProperty("password", "tiger");
props.setProperty("oracle.net.ssl_cipher_suites",
"(SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_RC4_128_MD5,
SSL_DH_anon_WITH_DES_CBC_SHA)"};
Connection conn=DriverManager.getConnection(url,props);
プロパティoracle.net.ssl_server_dn_matchを"true"に設定すると、接続
は失敗し、“peer not authenticated”という例外メッセージが表示されます。
これは、JDBCシン・ドライバがサーバーを認証できないため、サーバーの識別名
がURLからの識別名と一致することを確認できないからです。
SSL は、11.1.0.6 以降の JDBC シン・ド
ラ イ バ を 使 用 す る Kerberos ま た は
Radius など、ほかの認証方法と組み合わ
せることができます。
SSL を暗号化しサーバー認証に使用する
Diffie-Hellman 匿名認証を使用する暗号スイート以外なら、どのような暗号スイー
トでも使用できます。
サーバーの設定
サーバーの設定は変更しません。
Oracle JDBC シン・ドライバを使用した SSL
10
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
JDBC シン・クライアントの設定
“トラストストア”は、サーバーの証明書を確認するために使用されます。“トラス
トストア”に格納されている信頼できる証明書が、サーバーの証明書の確認に使用
できない場合、接続は失敗し、“unable to find valid certification path to requested
target”という例外メッセージが(Sun のデフォルトの SSL プロバイダとともに)
表示されます。
公開鍵インフラストラクチャ(PKI)は、
トラスト・アサーションに基づいて、組
織全体にセキュリティの基盤を提供する
ネットワーク・コンポーネントの基礎を
構成します。
フォーマットのプロバイダを指定する限り、“トラストストア”の任意のフォー
マットを使用できます。Sun のデフォルトの PKI プロバイダは、“トラストストア”
の JKS フォーマットをサポートします。ウォレットは、Oracle の PKI プロバイダ
でも使用できます。
トラストストア・フォーマットのタイプが JKS の場合
次のコードは、JKS トラストストアを設定する方法を示しています。例として、
パスは MS Windows スタイルで指定されています。
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))
(CONNECT_DATA=(SERVICE_NAME=servicename)))");
Properties props = new Properties();
props.setProperty("user", "scott");
props.setProperty("password", "tiger");
props.setProperty("javax.net.ssl.trustStore",
"D:¥¥truststore¥¥truststore.jks");
props.setProperty("javax.net.ssl.trustStoreType","JKS");
props.setProperty("javax.net.ssl.trustStorePassword","welcome123");
Connection conn = DriverManager.getConnection(url, props);
トラストストアがウォレットの場合
ウォレットを使用して、信頼できる証明書を保存できます。ウォレットを使用す
るには、Oracle の PKI プロバイダを有効にする必要があります。
次の Java コードは、PKCS12 ウォレットをトラストストアとして使用する方法を
示しています(パスは UNIX スタイルで指定されています)。
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))
(CONNECT_DATA=(SERVICE_NAME=servicename)))");
Properties props = new Properties();
props.setProperty("user", "scott");
props.setProperty("password", "tiger");
props.setProperty("javax.net.ssl.trustStore",
"/truststore/ewallet.p12");
props.setProperty("javax.net.ssl.trustStoreType","PKCS12");
props.setProperty("javax.net.ssl.trustStorePassword","welcome123");
Connection conn = DriverManager.getConnection(url, props);
SSO ウォレットを使用する場合、つまり“トラストストア”ウォレットを作成した
ときに、“自動ログイン”を有効にした場合
props.setProperty("javax.net.ssl.trustStore",
"/truststore/cwallet.sso");
props.setProperty("javax.net.ssl.trustStoreType","SSO");
Oracle JDBC シン・ドライバを使用した SSL
11
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
サーバーの識別名の確認
サーバーが正常に認証されると(証明書が信頼されると)、識別名の確認が可能
になります。
期待される識別名は、次の例のように、JDBC URL で指定されます。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename))
(SECURITY=(SSL_SERVER_CERT_DN=¥"CN=server_test,C=US¥")))
サーバーの識別名の確認を JDBC シン・ドライバに強制するには、次のプロパティ
も使用する必要があります。
props.setProperty("oracle.net.ssl_server_dn_match", "true");
サーバーの証明書の識別名が、URL で指定された識別名と一致しない場合、接続
は失敗し、次の例外メッセージが表示されます。“Mismatch with the server cert DN”
SSL を暗号化し両方の層の認証に使用する
サーバーの設定
クライアント認証を有効にするようにリスナーを設定する必要があります。典型
的な設定では、listener.ora ファイルの内容は次のようになります。
LISTENER = (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))
)
WALLET_LOCATION=(SOURCE=(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/server/wallet/path)))
SSL_CLIENT_AUTHENTICATION=TRUE
同様に、SSL クライアント認証を sqlnet.ora で有効にする必要があります。
WALLET_LOCATION=(SOURCE=(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/server/wallet/path)))
SSL_CLIENT_AUTHENTICATION=TRUE
ウォレットのロケーションは、listener.ora と sqlnet.ora で同一である必要がありま
す。
JDBC シン・クライアントの設定
前項のように、“トラストストア”を指定する必要があります。
サーバー上でクライアントを認証する必要があるので、“キーストア”も指定する
必要があります。“キーストア”には、認証に使用されるクライアント証明書だけ
ではなく、暗号化に使用される秘密鍵/公開鍵のセットも含まれています。
Oracle JDBC シン・ドライバを使用した SSL
12
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
フォーマットのプロバイダを指定する限り、“キーストア”の任意のフォーマット
を使用できます。Sun のデフォルトの PKI プロバイダは、JKS と PKCS12 をサポー
トします(詳細は、JSSE ドキュメントを参照してください)。
“キーストア”に PKCS12 ウォレットを使用する場合は、Oracle の PKI プロバイダ
を使用する必要があります。JKS キーストアを使用する場合は、Sun の PKI プロ
バイダが使用されます。PKCS12 または SSO ウォレットを使用する場合は、Oracle
の PKI プロバイダを使用する必要があります。
キーストアを提供しない場合、サーバーはクライアント証明書を確認できず、SSL
ハンドシェイクは実行されません。接続は失敗し、次の例外メッセージが表示さ
れます。“Received fatal alert:bad_certificate”
キーストア・フォーマットのタイプが JKS の場合
次のコードでは、“props”が接続プロパティです。キーストアのロケーションは、
MS Windows スタイルで指定されています。
props.setProperty("javax.net.ssl.keyStore",
"D:¥¥client_jks¥¥keystore.jks");
props.setProperty("javax.net.ssl.keyStoreType","JKS");
props.setProperty("javax.net.ssl.keyStorePassword","welcome123");
キーストアがウォレットの場合
この場合にも、Oracle の PKI プロバイダを有効にする必要があります。
PKCS12 ウォレットを使用する場合(パスは UNIX スタイルで指定されます)
props.setProperty("javax.net.ssl.keyStore",
"/client_wallet/ewallet.p12");
props.setProperty("javax.net.ssl.keyStoreType","PKCS12");
props.setProperty("javax.net.ssl.keyStorePassword","welcome123");
SSO ウォレットを使用する場合(パスワードは不要)
props.setProperty("javax.net.ssl.keyStore",
"/truststore/cwallet.sso");
props.setProperty("javax.net.ssl.keyStoreType","SSO");
SSL によるデータベース・ユーザーの認
証は、11.1.0.6 以降の JDBC シン・ドラ
イバでサポートされます。
データベースで SSL を認証サービスとして使用する
識別名で確認されるデータベース・ユーザーは、SSL によって認証できます。こ
のためには、SSL クライアント認証を有効にする必要があります。サーバーは、
SSL ハンドシェイク中にクライアントの資格証明を確認します。SSL 認証サービ
スが有効になっている場合、データベース・ユーザーは、SSL 資格証明を通して、
データベースによって認証されます。
前項では、クライアントの証明書が、アプリケーション・サーバーで実行してい
るアプリケーションなどのネットワーク・クライアントを識別することを確認し
ました。この項では、クライアントの証明書がデータベース・ユーザーを識別し
ます。
Oracle JDBC シン・ドライバを使用した SSL
13
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
サーバーの設定
リスナーの設定は、前項と同じです。
前項の設定に加えて、ファイル sqlnet.ora の SSL 認証サービスを有効にする必要が
あります。
SQLNET.AUTHENTICATION_SERVICES = (tcps, beq, none)
外部で識別名として識別されるユーザーを作成する必要があります。次に例を示
します。
SQL> create user sslclient identified externally as
'CN=client_test,C=US';
User created.
SQL> grant connect,create session to sslclient;
Grant succeeded.
JDBC シン・クライアントの設定
JDBC側で、接続プロパティ“oracle.net.authentication_services”を使
用して、SSL認証をアクティブ化する必要があります。SSL認証を使用する場合、
ユーザー名とパスワードの入力は不要になりましたが、入力すると、指定したユー
ザー名がデータベース認証中に使用されます。
次のコードでは、SSO ウォレットが使用されていますが、JKS または PKCS12 も
使用できます。
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)
(HOST=servername)(PORT=2484))
(CONNECT_DATA=(SERVICE_NAME=servicename)))");
Properties props = new Properties();
props.setProperty("oracle.net.authentication_services","(TCPS)");
props.setProperty("javax.net.ssl.trustStore",
"D:¥¥truststore¥¥cwallet.sso");
props.setProperty("javax.net.ssl.trustStoreType","SSO");
props.setProperty("javax.net.ssl.keyStore",
"D:¥¥client_wallet¥¥cwallet.sso");
props.setProperty("javax.net.ssl.keyStoreType","SSO");
Connection conn = DriverManager.getConnection(url, props);
結論
SSL は、暗号化、データ整合性、両方のネットワーク層の認証を含む、高レベル
のセキュリティを提供します。これらのすべての機能は、JDBC シン・ドライバを
使用する場合に使用可能で、簡単に設定できます。JDBC シン・ドライバで Java
アプリケーションを保護する柔軟、強力かつ簡単な方法を探している場合、有効
な解決策として SSL の使用が考えられます、
Oracle JDBC シン・ドライバを使用した SSL
14
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
付録 A トラブルシューティング
この項には、JDBC シン・ドライバを SSL 用に設定する際に発生する可能性のあ
る例外のリストを記載します(このリストは限定的なものです)。
•
“java.lang.NoClassDefFoundError:com/phaos/crypto/AuthenticationException”
:10.2.0.4 を使用しているので、CLASSPATH に ojpse.jar を含める必要が
あります。
•
“java.lang.NoClassDefFoundError:oracle/security/crypto/core/AuthenticationEx
ception”:11.1.0.x を使用しているので、CLASSPATH に osdt_core.jar を含
める必要があります。
•
“java.lang.NoClassDefFoundError:oracle/security/crypto/cert/PKCS12”:11.1.0.x
を使用しているので、CLASSPATH に osdt_cert.jar を含める必要がありま
す。
•
“java.sql.SQLException:Io exception:The Network Adapter could not establish
the connection”:この例外は、非常に一般的で、多数の構成上の問題によ
り発生します。10.2.0.3 および 11.1.0.6 では、原因が表示されませんが、以
下の可能性があります。
o
“Unable to initialize the key store.java.io.FileNotFoundException:
D:¥truststore (The system cannot find the path specified)”:トラスト
ストアのプロパティで指定されたパスが不適切です(キーストア
でも同じことが発生する場合があります)。
o
“java.security.KeyStoreException:SSO not found”:SSOトラストスト
アのタイプは指定したが、OracleのPKIプロバイダ
(Security.addProvider(new
oracle.security.pki.OraclePKIProvider());)を有効
にしなかったことが原因です。
o
“java.io.IOException:Invalid keystore format”:たとえば、トラスト
ストアのタイプ javax.net.ssl.trustStoreType = SSOを
指
定
せ
ず
に
、
javax.net.ssl.trustStore
=
D:¥¥cwallet.ssoを設定した場合に発生します。
o
“java.io.IOException:failed
to
entry:java.lang.ArithmeticException:/
decrypt
by
zero
safe
because
contents
this
is
needed”:PKCS12 ウォレットを使用する場合は、ポジション#3
以
上
(
Security.insertProviderAt(new
oracle.security.pki.OraclePKIProvider(),3);)に設
定したOracle PKIプロバイダを使用する必要があります。
Oracle JDBC シン・ドライバを使用した SSL
15
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
o
“com.phaos.ASN1.ASN1FormatException:com.phaos.crypto.CipherE
xception:Invalid padding string (or incorrect password)”:(PKCS12
ウォレットを使用している場合)パスワードが欠落していること
が原因です。
•
“java.sql.SQLException:Io exception:Remote host closed connection during
handshake”:listener.log ファイルを調べます。“TNS-12560: TNS:protocol
adapter error”または“TNS-00540: SSL protocol adapter failure”のいずれかが
あるはずです。リスナーを停止し、listener.ora にウォレット・ロケーショ
ンを追加して、再起動する必要があります。
•
“java.sql.SQLException:Io
exception:sun.security.validator.ValidatorException:PKIX
path
building
failed:sun.security.provider.certpath.SunCertPathBuilderException:unable to find
valid certification path to requested target”:クライアントのトラストストアに、
(サーバーのウォレットに格納されている)サーバーの証明書を承認する
パスがありません。また、sqlnet.ora と listener.ora の両方が同じウォレッ
ト・ロケーションを指していることを確認する必要があります。
“listener.ora”でウォレット・ロケーションを変更した場合は、リスナーを
再起動する必要があります。
•
“java.sql.SQLException:Io exception:Received fatal alert:bad_certificate” :
listener.ora ファイルおよび sqlnet.ora ファイルで SSL クライアント認証を
無効にするか(ssl_client_authentication=false)、有効なキーストアを提供
します。
•
“java.sql.SQLException:Io
exception:sun.security.validator.ValidatorException:No
trusted
certificate
found”:トラストストアを提供するか、匿名認証を使用する暗号スイート
を使用する必要があります。
•
“java.sql.SQLException:Io exception:Received fatal alert:handshake_failure”:た
とえば、クライアントとサーバーが、使用する暗号スイートを決定できな
い場合に発生します。
•
“java.sql.SQLException:Io
exception:java.lang.RuntimeException:Unexpected
error:java.security.InvalidAlgorithmParameterException:the
trustAnchors
parameter must be non-empty”:PKCS12 ウォレットの使用時に、Oracle の
PKI プロバイダが正しく有効化されていない場合に発生します。この例外
は、Oracle ウォレットと互換性のない Sun(Sun の PKI プロバイダ)の
PKCS12 の実装に起因します。PKCS12 ウォレットを使用する場合、Oracle
の PKI プロバイダを静的または動的に正しく有効化する必要があります。
•
“java.sql.SQLException:Io exception:Broken pipe”:この例外は、クライアン
ト認証がサーバー上で有効であり、クライアントが送信した証明書をサー
バーが確認できない場合に発生するので、SSL ハンドシェイクは失敗しま
す。通常、これは、トラストストアが正確であり、キーストアが正確でな
いことを意味します。
Oracle JDBC シン・ドライバを使用した SSL
16
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
付録 B トラストストアとキーストアの作成
orapki の使用
テスト CA 用のウォレットの作成
テストの目的で、“root”と呼ばれる CA を使用します。この CA には自己署名証明
書があります。
ルート・ディレクトリに空のウォレットを作成します。
> orapki wallet create -wallet ./root
/root ディレクトリに ewallet.p12 ができます。
自己署名証明書をウォレットに追加します。
> orapki wallet add -wallet ./root -dn CN=root_test,C=US -keysize 2048
-self_signed -validity 3650
ウォレットを表示します。
> orapki wallet display -wallet ./root
Requested Certificates:
User Certificates:
Subject:
CN=root_test,C=US
Trusted Certificates:
Subject:
CN=root_test,C=US
(&)
証明書をエクスポートします。
> orapki wallet export -wallet ./root -dn CN=root_test,C=US
-cert ./root/b64certificate.txt
Oracle サーバー用のウォレットの作成
自動ログインを有効にして、空のウォレットを作成します。
> orapki wallet create -wallet ./server -auto_login
サーバー・ディレクトリに 2 つのファイルが作成されます。
server/cwallet.sso server/ewallet.p12
ウォレットにユーザーを追加します(公開鍵/秘密鍵の新しいペアが作成されま
す)。
> orapki wallet add -wallet ./server -dn CN=server_test,C=US -keysize
サーバーのウォレットを表示すると、要求された証明書が次のように表示されま
す。
Requested Certificates:
Subject:
CN=server_test,C=US
Oracle JDBC シン・ドライバを使用した SSL
17
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
証明書要求をファイルにエクスポートします。
> orapki wallet export -wallet ./server -dn CN=server_test,C=US
-request ./server/creq.txt
テスト CA を使用して、証明書要求に署名します。
> orapki cert create -wallet ./root -request ./server/creq.txt
-cert ./server/cert.txt -validity 3650
サーバー・ディレクトリには以下のファイルがあります。
server/cert.txt server/creq.txt server/cwallet.sso
server/ewallet.p12
署名された証明書を表示します。
> orapki cert display -cert ./server/cert.txt -complete
{ fingerprint = cb384d05b627d2cb20f0499781f704f6, notBefore = Tue Nov
13 17:44:47 PST 2007, notAfter = Fri Nov 10 17:44:47 PST 2017, holder
= CN=server_test,C=US, issuer = CN=root_test,C=US, serialNo = 0,
sigAlgOID = 1.2.840.113549.1.1.4, key = { modulus =
1959367951374601576535596271107995277417664424536098395399265269124721
8377994361345161198275934214447477226820230208385849110018924496387704
4484639443652466378093963161320192391160905740289465375255115252978607
9834099013465953836979377789767891049188057304407921469766478339671147
3736713730827796216908755554377710566510839206341716045058853599226754
8460749873033793093373387298332477942247788814090235867746623126621826
9319505528877172776186889553531222971886597798361091355959715918186264
3061313984478003607762017842505744116997048267905434071794600231924974
969198032240336875590366035431182383935713771751264581303, exponent =
65537 } }
テスト CA の信頼できる証明書をウォレットに追加します。
> orapki wallet add -wallet ./server -trusted_cert
-cert ./root/b64certificate.txt
この段階でサーバーの証明書を表示する場合は、信頼できる証明書のリストの新
しいエントリを確認する必要があります。
Subject:
CN=root_test,C=US
最後に、ユーザーの証明書をウォレットに追加します。
> orapki wallet add -wallet ./server -user_cert -cert ./server/cert.txt
サーバーの証明書は次のように表示されます。
Requested Certificates:
User Certificates:
Subject:
CN=server_test,C=US
Trusted Certificates:
Subject:
CN=root_test,C=US
(...)
前のステップで信頼できる証明書を追加していない場合、次のエラーが発生しま
す。
Could not install user cert at./client/cert.txt
Please add all trusted certificates before adding the user certificate
Oracle JDBC シン・ドライバを使用した SSL
18
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
クライアントの場合(サーバーと同様)
> orapki wallet create -wallet ./client_wallet -auto_login
> orapki wallet add -wallet ./client_wallet -dn CN=client_test,C=US
-keysize 2048
> orapki wallet export -wallet ./client_wallet -dn CN=client_test,C=US
-request ./client_wallet/creq.txt
> orapki cert create -wallet ./root -request ./client_wallet/creq.txt
-cert ./client_wallet/cert.txt -validity 3650
> orapki wallet add -wallet ./client_wallet -trusted_cert
-cert ./root/b64certificate.txt
> orapki wallet add -wallet ./client_wallet -user_cert
-cert ./client_wallet/cert.txt
信頼できる証明書だけを格納するウォレットの作成
トラストストア専用で使用されるウォレットの場合は以下のようになります。
> orapki wallet create -wallet ./truststore -auto_login
> orapki wallet add -wallet ./truststore -trusted_cert
-cert ./root/b64certificate.txt
> orapki wallet display -wallet ./truststore
Requested Certificates:
User Certificates:
Trusted Certificates:
(...)
Subject:
CN=root_test,C=US
keytool の使用
JKS キーストアの作成
‘CN=client_test, C=US’に秘密鍵/公開鍵の新しいペアを作成します。
> keytool -genkey -alias testclient -dname 'CN=client_test, C=US'
-storepass 'welcome123' -storetype JKS
-keystore ./client_jks/client.jks -keyalg RSA
CSR(証明書署名要求)を生成します。
> keytool -certreq -alias testclient -file ./client_jks/csr.txt
-keystore ./client_jks/client.jks -storepass 'welcome123'
テスト CA(root)を使用して、クライアント証明書に署名します。
> orapki cert create -wallet ./root -request ./client_jks/csr.txt
-cert ./client_jks/cert.txt -validity 3650
署名された証明書をインポートします。
Oracle JDBC シン・ドライバを使用した SSL
19
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
> keytool -import -v -alias testclient -file ./client_jks/cert.txt
-keystore ./client_jks/client.jks -storepass 'welcome123'
keytool error:java.lang.Exception:Failed to establish chain from
reply
テスト CA の証明書もインポートする必要があります。
> keytool -import -v -alias testroot -file ./root/b64certificate.txt
-keystore ./client_jks/client.jks -storepass 'welcome123'
再度、署名された証明書をインポートします。
> keytool -import -v -alias testclient -file ./client_jks/cert.txt
-keystore ./client_jks/client.jks -storepass 'welcome123'
以下を呼び出すことによって、いつでもキーストアを表示できます。
> keytool -list -keystore ./client_jks/client.jks -storepass
'welcome123' -v
Keystore type:jks
Keystore provider:SUN
Your keystore contains 2 entries
Alias name:testroot
Creation date:Nov 13, 2007
Entry type:trustedCertEntry
Owner:CN=root_test, C=US
Issuer:CN=root_test, C=US
Serial number:0
Valid from:Tue Nov 13 17:33:19 PST 2007 until:Fri Nov 10 17:33:19
PST 2017
Certificate fingerprints:
MD5:71:66:1B:34:F3:40:75:5C:A1:B1:5E:D5:98:E6:60:ED
SHA1:13:C6:35:F8:EF:48:0F:
75:04:99:02:F2:B4:A4:DA:CE:BE:E0:65:9F
*******************************************
*******************************************
Alias name:testclient
Creation date:Nov 13, 2007
Entry type:keyEntry
Certificate chain length:2
Certificate[1]:
Owner:CN=client_test, C=US
Issuer:CN=root_test, C=US
Serial number:0
Valid from:Tue Nov 13 18:44:49 PST 2007 until:Fri Nov 10 18:44:49
PST 2017
Certificate fingerprints:
MD5:67:5A:17:E8:08:B6:49:3D:71:9F:C6:83:C8:5F:4D:3A
SHA1:D3:DF:4E:6C:6E:4E:11:3B:83:7C:12:B8:1E:
8B:D7:F1:47:AE:DF:80
Certificate[2]:
Owner:CN=root_test, C=US
Issuer:CN=root_test, C=US
Oracle JDBC シン・ドライバを使用した SSL
20
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Serial number:0
Valid from:Tue Nov 13 17:33:19 PST 2007 until:Fri Nov 10 17:33:19
PST 2017
Certificate fingerprints:
MD5:71:66:1B:34:F3:40:75:5C:A1:B1:5E:D5:98:E6:60:ED
SHA1:13:C6:35:F8:EF:48:0F:
75:04:99:02:F2:B4:A4:DA:CE:BE:E0:65:9F
*******************************************
*******************************************
JKS トラストストアの作成
テスト CA の証明書をインポートします。
> keytool -import -v -alias testroot -file ./root/b64certificate.txt keystore ./truststore/truststore.jks -storetype JKS -storepass
welcome123
トラストストアを表示して、テスト CA の証明書が存在することを確認します。
> keytool -list -keystore ./truststore/truststore.jks -storepass
'welcome123' -v
Keystore type:jks
Keystore provider:SUN
Your keystore contains 1 entry
Alias name:testroot
Creation date:Nov 13, 2007
Entry type:trustedCertEntry
Owner:CN=root_test, C=US
Issuer:CN=root_test, C=US
Serial number:0
Valid from:Tue Nov 13 17:33:19 PST 2007 until:Fri Nov 10 17:33:19
PST 2017
Certificate fingerprints:
MD5:71:66:1B:34:F3:40:75:5C:A1:B1:5E:D5:98:E6:60:ED
SHA1:13:C6:35:F8:EF:48:0F:
75:04:99:02:F2:B4:A4:DA:CE:BE:E0:65:9F
*******************************************
*******************************************
Oracle JDBC シン・ドライバを使用した SSL
21
Oracle Corporation 発行「SSL With Oracle JDBC Thin Driver」の翻訳版です。
Oracle JDBC シン・ドライバを使用した SSL
2007 年 11 月
著者:Jean de Lavarene
共著者:Benjamin Job、Kuassi Mensah
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
海外からのお問い合わせ窓口:
電話:+1.650.506.7000
ファクシミリ:+1.650.506.7200
www.oracle.com
Copyright © 2007, Oracle. All rights reserved.
本文書は情報提供のみを目的として提供されており、ここに記載される内容
は予告なく変更されることがあります。本文書は一切間違いがないことを保
証するものではなく、さらに、口述による明示または法律による黙示を問わ
ず、特定の目的に対する商品性もしくは適合性についての黙示的な保証を含
み、いかなる他の保証や条件も提供するものではありません。オラクル社は
本文書に関するいかなる法的責任も明確に否認し、本文書によって直接的ま
たは間接的に確立される契約義務はないものとします。本文書はオラクル社
の書面による許可を前もって得ることなく、いかなる目的のためにも、電子
または印刷を含むいかなる形式や手段によっても再作成または送信すること
はできません。Oracle は米国 Oracle Corporation およびその子会社、関連会
社の登録商標です。その他の名称はそれぞれの会社の商標です。
Fly UP