プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
12c (12.2.1.3.0)
E90181-03
目次へ移動
目次

前
次

13 ハードウェアとOracle Web Services Managerの統合

SafeNet Luna SAなどのハードウェアをOWSMと統合することで、鍵を安全に格納し、暗号処理の負荷を軽減できます。OWSMとOracle SPARC T5およびSPARC T4暗号化アクセラレーションとの統合によって、T5およびT4プロセッサ・ベースの暗号化機能を使用できるようになります。

OWSMを必要なハードウェアと統合することにより、トランスポート・レイヤーおよびメッセージ・レイヤーの保護ポリシーによって強制された場合など、計算集中型の暗号化操作に依存するシナリオで高パフォーマンスのセキュリティが提供されます。

この章の内容は次のとおりです。

13.1 OWSMでのハードウェア・セキュリティ・モジュールの使用

ハードウェア・セキュリティ・モジュール(HSM)は、Oracle Advanced Securityで動作することが保証されています。これらのモジュールでは、鍵を安全に格納し、暗号処理の負荷を軽減できます。OWSMはSafeNet Luna SA HSMをサポートしており、それをインストールして構成できます。

次の各項では、これについてさらに詳しく説明しています。

13.1.1 鍵保存のためのSafeNet Luna SAおよびOWSMの理解

SafeNet Luna SAは、アプリケーションのための暗号化処理およびハードウェア鍵管理機能を備える、ネットワーク接続されたHSMです。Luna SAは、様々なセキュリティ・アプリケーションで、非常に重要な暗号化鍵を保護するように設計されています。

OWSMとともにLuna SAを使用する場合、鍵について次のような利点があります。

  • ネットワークの共有性

  • ハードウェアにより、鍵の最も高い安全性が常に維持されます

  • FIPSの検証

注意:

Oracle Advanced Securityで使用する動作保証済のハードウェアおよびソフトウェアを入手するには、SafeNetの代理店にお問い合せください。

デフォルトでは、OWSMはキー保存にキーストア・サービス(KSS)を使用します。暗号化操作のためにOWSMによって必要とされる鍵および証明書は、キーストア・ファイルからフェッチされます。ネットワーク内でLuna SAが使用可能である場合、鍵の保存目的および暗号化操作のためにOWSMではLuna SAを活用できます。

13.1.2 Luna SA HSMクライアントのインストールおよび構成について

Luna SA HSMクライアントは、使用可能なLuna SA HSMネットワークと通信できるように、OWSMの実行中のインスタンスが存在するホストにインストールする必要があります。

ただし、Luna SAクライアントのインストール、Luna SAネットワークのインストールおよび設定については、このドキュメントの範囲外であり、ここでは取り上げません。こうした手順は、Luna SAドキュメント(http://www.safenet-inc.com/Products/Detail.aspx?id=2147483853&terms=search)を参照してください。

Luna SA HSMクライアントをインストールする前に、次のチェックリストを確認してください。

  • ネットワークにはすでにLuna SAがインストールされており、使用可能です。

  • そして、ルートまたはインストール権限を持つユーザーとしてログインしています。

  • Luna SAクライアント・インストールCDまたはソフトウェア・イメージが利用可能です。

  • 管理者パスワードおよびパーティション・パスワードを含めて、Luna SAに必要なすべてのパスワードが手元にあります。

注意:

ハードウェア・セキュリティ・モジュールおよび必要なライブラリを入手するには、SafeNetの代理店にお問い合せください。

これらの作業は、OWSMでLuna SAハードウェア・セキュリティ・モジュールを使用する前に実施する必要があります。

13.1.3 OWSMが使用するJREの構成

Luna SAクライアントをインストールした後、OWSM設定によって使用されるJREを構成する必要があります。

次の手順を実行する必要があります。

  1. /usr/lunasa/jsp/libディレクトリから$JAVA_HOME/jre/lib/extディレクトリに次のJARファイルをコピーします。
    • LunaJCASP.jar

    • LunaJCESP.jar

  2. libLunaAPI.soファイルをjava.library.pathにコピーします。
  3. $JAVA_HOME/jre/lib/security/java.securityファイルを編集して、2つのLunaプロバイダを含めます。

    これを行うには、security.providersリストの最後に、次の2つのLunaプロバイダを追加します。

    security.provider.n=com.chrysalisits.crypto.LunaJCAProvider
    security.provider.n+1=com.chrysalisits.cryptox.LunaJCEProvider
    

    ここで:

    nは、特定のプロバイダをリクエストしない場合に、リクエストしたアルゴリズムについてプロバイダを検索する順序を決定するプリファレンス順序を指定します。順序は1が基準になり、1が最も優先されます。その後、2、3、...と続きます。

13.1.4 Luna SAへのログオン

OWSMでLuna SAを使用するには、Luna SAサーバーにログオンする必要があります。これはクライアント・マシンでLunaログイン・セッションを作成する1回かぎりのプロセスであり、クライアント・マシンまたはサーバー・マシンが再起動されるか、またはユーザーがLunaセッションを明示的にログアウトするまで、このセッションはアクティブなままです。

ログインするにはsaloginユーティリィティを使用する必要があります。saloginユーティリィティは、特定のアプリケーションのためにクライアントとHSMパーティション間の接続を確立します。引数としてアプリケーションIDを取得します。このアプリケーションIDは、上位IDおよび下位IDの2つの部分から構成されます:。

saloginユーティリィティを起動する前に、アプリケーションIDを登録するエントリをChrystoki.confファイルに追加する必要があります。Chrystoki.confファイルは通常、/etc/ディレクトリにあります。これも1回かぎりのプロセスです。

  1. /etc/Chrystoki.confファイルを編集し、ファイルの末尾にアプリケーションIDを追加します。次に例を示します。
    Misc = { AppIdMajor=<major id>; AppIdMinor=<minor id>;  }
    
  2. 次のように入力してLuna SAサーバーにログインします。
    /salogin -o -s <partition number> -i <AppIdMajor>:<AppIdMinor> -v -p <partition_password>
    

    これによって、指定したアプリケーションIDのセッションが開きます。saloginは、/usr/lunasa/binディレクトリにあります。

  3. Luna SAサーバーからログアウトするには、次のように入力します。
    salogin -c -s <slot number> -i <AppIdMajor>:<AppIdMinor>
    

13.1.5 Luna SAへの鍵および証明書のコピー

鍵および証明書が現在はKSSまたはJKSキーストアにある場合、すべての鍵および証明書をLuna SAに移動する必要があります。LunaSAで提供されているcmuスクリプトを使用して鍵および証明書をインポートできます。

  • cmu importKeyコマンドは、ファイルからRSA|DSA秘密鍵をHSMにインポートします(PKCS12(RSA)、PKCS8(RSA/DSA)またはPKCS1(RSA)をサポートします)。

  • cmu importコマンドは、ファイルからX.509証明書をHSMにインポートします。

注意:

cmuスクリプトはファイルからインポートします。したがって、鍵および証明書をLuna SAにインポートするには、最初にそれらをKSSまたはJKSキーストアからファイルにエクスポートする必要があります。

13.1.6 Luna SAを使用するためのOWSMの構成について

Luna SAを使用するようにOWSMを構成する一環として、デフォルトのKSSキーストアではなくLuna HSMを使用するようにOWSMドメインを構成する必要があります。

詳細は、以下のトピックを参照してください。

13.2 Oracle SPARC T5およびOracle SPARC T4暗号化アクセラレーションのためのOWSMの構成について

Oracle SPARC T5およびSPARC T4プロセッサ・ベースのサーバーの暗号化アクセラレーション機能を活用するようにOWSMを構成できます。

OWSMでは、Oracle SPARC T5およびSPARC T4プロセッサ・ベースのサーバーを使用できます。これによって、計算、セキュリティおよびI/Oが単一チップ上に統合され、サード・パーティ製のセキュリティ・ハードウェアが不要になります。Oracle SPARC T5およびSPARC T4ベースのサーバーにOWSMをデプロイすることで、SPARC T5およびT4プロセッサ・ベースの暗号化機能が透過的に活用されます。これは、トランスポート・レイヤーおよびメッセージ・レイヤーの保護ポリシーによって強制された場合など、計算集中型の暗号化操作に依存するシナリオで高パフォーマンスのセキュリティを提供します。この項は、Oracle Solaris 10 8/11以降を実行するOracle SPARC T5およびT4プロセッサ・ベースのサーバーにのみ該当します。

次の項目について説明します。

13.2.1 理解しておく必要がある用語

暗号化アクセラレーション用にOWSMを構成するには、いくつかの用語を理解する必要があります。

これらの用語の詳細は、「暗号化アクセラレーションのための追加資料」に記載されているホワイトペーパーを参照してください。

  • PKCS#11トークン — PKCS#11 APIを実装するすべてのハードウェアおよびソフトウェアのトークンを一般的に示すトークン。PKCS#11 APIは、ハードウェア暗号化アクセラレータ、暗号化トークン(たとえばSCA-6000など)およびスマートカードを統合するためのRSA標準です。

    ソフトウェア・ベースのPKCS#11トークンは、完全にソフトウェアで実装されたPKCS#11トークンです(たとえばSolaris PKCS11 Softtokenなど。)

  • Solaris暗号化フレームワーク — Solaris暗号化フレームワーク(SCF)ライブラリは、 Oracle Sun Crypto Accelerator 6000 PCIeカード(SCA-6000)およびサード・パーティ製HSMを含めて、Oracle T-seriesプロセッサおよびハードウェア・セキュリティ・モジュール(HSM)によって提供されるハードウェア支援暗号化アクセラレーションに対するアプリケーション・アクセスを提供するうえで重要な役割を果たします。SCFは、PKCS#11標準インタフェースに基づいており、暗号化操作を実行するためにカーネル・レベルおよびユーザー・レベルのコンシューマに一連の暗号化サービスを提供します。

13.2.2 Oracle SPARC T5およびSPARC T4ハードウェア支援暗号化アクセラレーションの概要

Oracle SPARC T5およびSPARC T4プロセッサは、Oracle SPARC T-seriesプロセッサ・ファミリに属し、Chip Level Multi-Threading (CMT)を可能にするために、プロセッサ・コア・レベルのマルチプロセッシングと、効率的な命令パイプラインを備える各コア内部でのハードウェア・マルチスレッディングを組み合せています。

これらのプロセッサは、オンチップ/オンコア暗号化アクセラレーション、10ギガビット・イーサネット・ネットワーク、ハードウェア対応仮想化機能などの専用機能を組み込むユニークな「システム・オン・チップ」設計原理を示すものです。Oracle SPARC T5およびSPARC T4プロセッサの各コアには、コアと同クロック速度で暗号化操作処理を実行するStream Processing Unit (SPU)が搭載されています。このSPUは、プロセッサの10 GbEポート上でワイヤ速度の暗号化および復号化を実現するように設計されています。

Oracle SPARC T5およびSPARC T4ベースのサーバーでOWSMを構成およびデプロイすることにより、SSLおよびWS-Securityメカニズムを使用して、Webサービスのセキュリティ・トランザクションの一環として、オンコア暗号化命令を活用して計算集中型の暗号化操作を実行することにより、高いパフォーマンスが得られます。たとえば、すべてのメッセージ保護ポリシーは計算集中型です。

OWSMは、次のシナリオでSPARC T5およびSPARC T4プロセッサ・ベースの暗号化アクセラレーションを使用します。

  • トランスポート・レベルのセキュリティ(「暗号化アクセラレーションのためのトランスポート・レベル・セキュリティの構成」を参照してください)

    SPARC T5およびSPARC T4プロセッサのオンコア暗号化アクセラレーション機能は、適用されるセキュリティ・シナリオとその要件に応じて、OWSMデプロイメントで様々な方法で使用できます。Oracle Ucryptoプロバイダ機能およびJava Cryptography Extension (JCE)フレームワーク内のSun PKCS#11インタフェースにより、OWSMおよびWebLogic Serverは、SSLv3/TLSv1およびWS-Securityベースの暗号化ワークロードの、ハードウェア支援暗号化アクセラレーションを利用できます。

    JDK7 Update 4リリースで導入されたOracle Ucryptoプロバイダでは、PKCS#11をバイパスして、OracleのSPARC T4およびSPARC T5 (または最新の)プロセッサのハードウェア支援暗号化アクセラレーションを自動的に利用する、専用のインタフェースが提供されます。Oracle Solaris 11 (SPARC)における一般的なJDK7インストール(JDK7u4以降)では、デフォルトでOracle Ucryptoプロバイダを使用するように、Java Runtime Environmentが事前構成されています。これにより、JavaとOracle WebLogic ServerがホストするアプリケーションおよびXML Webサービスでは、Oracle SPARC T5およびSPARC T4ベースのオンコア暗号化命令を使用して、Oracle Solaris暗号化フレームワークを通じて処理される暗号化集中型の操作を自動的に委任できます。

    JDK6のJava PKCS#11インタフェースは、SPARC T5およびSPARC T4プロセッサのオンコア暗号化命令を使用することにより、SSL/TLSプロトコルの計算集中型の暗号化ワークロードを軽減し、高速化します。

  • メッセージ・レベルのセキュリティ(「暗号化アクセラレーションのためのメッセージ・レベル・セキュリティの構成」を参照してください)

    メッセージ・レベル・セキュリティは、WS-Security、WS-SecurityPolicy、WS-TrustなどのWebサービス・セキュリティ標準をサポートする暗号化操作を基盤として構築されます。

    特に、Webサービス・セキュリティは、XML暗号化、XMLデジタル署名および関連する暗号化操作をサポートするために、公開鍵暗号化、デジタル署名(RSA、DSA、ECCなど)、バルク暗号化(AES、3DES、DESなど)およびメッセージ・ダイジェスト(SHA-1、SHA-2、MD5など)の機能を利用します。

    OWSMでは、SPARC T4プロセッサのオンコア暗号化命令に(SCFを通じて)暗号化操作を委任するための専用PKCS#11インタフェースを実装しています。

13.2.3 暗号化アクセラレーションのためのトランスポート・レベル・セキュリティの構成

トランスポート・レベルのセキュリティのために暗号化アクセラレーションを構成できます。

トランスポート・レベルのセキュリティのために暗号化アクセラレーションを構成するには、次のタスクを実行します。

  1. Oracle WebLogic Server管理コンソール・オンライン・ヘルプのキーストアの構成に関する項の説明に従って、WebLogic Serverキーストアを構成します。

    「カスタム・アイデンティティとJava標準信頼」および「Javaキーストア(JKS)」を選択します。

  2. WebLogic Serverに対してJSSE SSLを有効にします。

    JSSEベースのSSLを使用することによって、Solaris SPARC上でJavaランタイム環境により事前構成済のSunPKCS11プロバイダ実装が自動的に活用されます。

    実行する手順については、『Oracle WebLogic Serverセキュティの管理 12c (12.2.1)』のJSSEベースのSSL実装の使用に関する項を参照してください。

  3. SPARC Solaris上の一般的なWebLogic Serverインストールでは、Oracle Ucryptoプロバイダ(JDK7)またはSunPKCS11プロバイダを利用するためのJavaランタイム環境が構成済です。

    Oracle Ucryptoプロバイダを利用するには、Oracle Solaris 11上のJava Runtime EnvironmentとしてJDK7 Update 4 (以上)を使用する必要があります。$JAVA_HOME/jre/lib/security/ディレクトリにあるJavaセキュリティ・プロパティ・ファイルjava.security内で、Oracle Ucryptoプロバイダがデフォルトのプロバイダとして認識されていることを確認します。

    security.provider.1=com.oracle.security.ucrypto.UcryptoProvider
    ${java.home}/lib/security/ucrypto-solaris.cfg
    
  4. JDK6を使用している場合は、SunPKCS11プロバイダの使用を確認します。

    SunPKCS11プロバイダは、SCFおよびその公開暗号化プロバイダによって提供される基盤PKCS#11実装と統合するJavaベースのPKCS#11実装です。

    Solaris上の一般的なWebLogic Serverインストールでは、SunPKCS11プロバイダを利用するためのJavaランタイム環境が構成済です。

    したがって、$JAVA_HOME/jre/lib/security/java.security propertiesプロパティ・ファイルで最初のプロバイダとしてSunPKCS11プロバイダがリストに含まれることを確認してください。

    security.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/sunpkcs11-solaris.cfg
    

    次の部分的なjava.securityファイルの例に、Solarisのデフォルトの$JAVA_HOME/jre/lib/security/java.securityファイルの関連する部分を示します。

    #
    # List of providers and their preference orders (see above):
    #
    security.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/sunpkcs11-solaris.cfg
    security.provider.2=sun.security.provider.Sun
    security.provider.3=sun.security.rsa.SunRsaSign
    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
    security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.9=sun.security.smartcardio.SunPCSC
    
  5. WebLogic Serverを再起動します。
  6. SSL構成が動作していることを確認します。

13.2.4 暗号化アクセラレーションのためのメッセージ・レベル・セキュリティの構成

メッセージ・レベルのセキュリティのために暗号化アクセラレーションを構成できます。

メッセージ・レベルのセキュリティのために暗号化アクセラレーションを構成するには:

  1. Solarisコマンド行から、PKCS11キーストアを作成します。

    PKCS11キーストアを作成および初期化するには、pktool setpinコマンドを使用します。

    keystore=pkcs11を指定した場合、キーストアはデフォルトの「Sun Software PKCS#11 softtoken」になります。

    softokenキーストアが初期化されていない場合は、元のパスフレーズとして「changeme」を使用します。

    # pktool setpin keystore=pkcs11
    Enter token passphrase:
    Create new passphrase:
    Re-enter new passphrase:
    Passphrase changed.
    
  2. キーストアの秘密鍵を生成します。
    # pktool genkeypair keystore=pkcs11 keytype=rsa keylen=1024 hash=sha1
  3. また、次のコマンドを使用することにより、JavaキーストアからSolaris Softtokenキーストアに鍵をインポートできます。
    # keytool –importkeystore
    -srckeystore /opt/Oracle/Middleware/default-keystore.jks
    -destkeystore NONE -srcstoretype JKS
    -deststoretype PKCS11
    	-srcstorepass changeme -deststorepass your-scfpassword
    
  4. Solarisコマンド行から、Solaris Softtokenキーストア内に鍵があることを確認します。
    keytool -list -storetype pkcs11 -keystore NONE
    
  5. 使用するポリシーのアルゴリズム・スイートが$JAVA_HOME/jre/lib/security/sunpkcs11-solaris.cfgsunpkcs11-solaris.cfg構成ファイル内のdisabledMechanismsリストに含まれていないことを確認します。

    たとえば、図13-1に示すように、ポリシーに対して指定されたアルゴリズム・スイートがBasic256Rsa15である場合、鍵のラップのためにAes256暗号化およびKwAes256/kwRsA15が使用されます。この場合、構成ファイル内のdisabledMechanismsリストにCKM_AESが含まれないことを確認します。

    図13-1 サンプル・アルゴリズム・スイート



    サポートされるアルゴリズムのリストは、Java PKCS#11リファレンス・ガイド付録A、Sun PKCS#11プロバイダのサポートされるアルゴリズムに関する項を参照してください。

  6. 次の項の手順に従って、PKCS11キーストアを使用するようにOWSMキーストアを構成します。
  7. 構成を確認します。

    ハードウェア支援暗号化アクセラレーションが正しく構成され、動作していることを確認するために、次のSolaris DTraceスクリプトを使用します。

    #!/usr/sbin/dtrace -s 
    pid$1:libsoftcrypto:yf*:entry, 
    pid$1:libmd:yf*:entry 
    { 
      @[probefunc] = count(); 
    } 
    tick-10sec 
    { 
      printa(@); 
      clear(@); 
      trunc(@,0); 
    } 
    tick-100sec 
    {exit(0);} 
    

    このスクリプトをcryptoverify.dという名前のファイルとして保存します。次のようにして、コマンドライン引数としてWebLogic ServerのJavaプロセスIDを指定してこのスクリプトを実行します。

    # dtrace -s cryptoverify.d  <WeblogicServer Process ID>
    

    たとえば、AESアルゴリズムを使用する暗号化のシナリオでは、AESジョブの値が正で増大する場合、暗号化アクセラレーションがターゲットAESバルク暗号化ペイロードに対して動作していることを示します。

13.2.5 暗号化アクセラレーションのための追加資料

いくつかのホワイトペーパーは、Oracle SPARC T-seriesプロセッサ・ベースのサーバーを使用するための暗号化アクセラレーションに関する最も信頼性の高い資料です。これらのホワイトペーパーでは、Solaris暗号化フレームワーク・コンポーネント、Solaris Kernel SSL (KSSL)の使用、Apache Webサーバー、Oracle Databaseの透過的データ暗号化、パフォーマンス特性など、多くの追加関連トピックについて取り上げています。

詳細は、次のホワイトペーパーを参照してください。