Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理 12c (12.1.3) E59414-02 |
|
前 |
次 |
この章では、ハードウェアの設定情報を説明します。SafeNet Luna SAなどのハードウェアをOWSMと統合することで、鍵を安全に格納し、暗号処理の負荷を軽減できます。OWSMとOracle SPARC T5およびSPARC T4暗号化アクセラレーションとの統合によって、T5およびT4プロセッサ・ベースの暗号化機能を使用できるようになります。これは、トランスポート・レイヤーおよびメッセージ・レイヤーの保護ポリシーによって強制された場合など、計算集中型の暗号化操作に依存するシナリオで高パフォーマンスのセキュリティを提供します。
この章の内容は次のとおりです。
ハードウェア・セキュリティ・モジュール(HSM)は、Oracle Advanced Securityで動作することが保証されています。これらのモジュールでは、鍵を安全に格納し、暗号処理の負荷を軽減できます。
OWSMがサポートするSafeNet Luna SA HSMは、次の各項の説明に従ってインストールおよび構成できます。
SafeNet Luna SAは、アプリケーションのための暗号化処理およびハードウェア鍵管理機能を備える、ネットワーク接続されたHSMです。Luna SAは、様々なセキュリティ・アプリケーションで、非常に重要な暗号化鍵を保護するように設計されています。
OWSMとともにLuna SAを使用する場合、鍵について次のような利点があります。
ネットワークの共有性
ハードウェアにより、鍵の最も高い安全性が常に維持されます
FIPSの検証
注意: Oracle Advanced Securityで使用する動作保証済のハードウェアおよびソフトウェアを入手するには、SafeNetの代理店にお問い合せください。 |
デフォルトでは、OWSMはキー保存にキーストア・サービス(KSS)を使用します。暗号化操作のためにOWSMによって必要とされる鍵および証明書は、キーストア・ファイルからフェッチされます。ネットワーク内でLuna SAが使用可能である場合、鍵の保存目的および暗号化操作のためにOWSMではLuna SAを活用できます。
Luna SA HSMクライアントは、OWSMの実行中のインスタンスが存在するホストにインストールする必要があります。これによって、Luna SA HSMクライアントは、使用可能なLuna SA HSMネットワークと通信します。ただし、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ハードウェア・セキュリティ・モジュールを使用する前に実施する必要があります。 |
Luna SAクライアントをインストールした後、OWSM設定によって使用されるJREを構成する必要があります。
/usr/lunasa/jsp/lib
ディレクトリから$JAVA_HOME/jre/lib/ext
ディレクトリに次のJARファイルをコピーします。
LunaJCASP.jar
LunaJCESP.jar
libLunaAPI.so
ファイルをjava.library.path
にコピーします。
$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が優先されます。以降も同様です。
OWSMでLuna SAを使用するには、Luna SAサーバーにログオンする必要があります。これは、クライアント・マシン上でLunaログイン・セッションを作成する1回かぎりのプロセスです。クライアント・マシンまたはサーバー・マシンが再起動されるか、またはユーザーがLunaセッションを明示的にログアウトするまで、このセッションはアクティブなままです。
ログインするにはsalogin
ユーティリィティを使用する必要があります。salogin
ユーティリィティは、特定のアプリケーションのためにクライアントとHSMパーティション間の接続を確立します。引数としてアプリケーションIDを取得します。このアプリケーションIDは、上位IDおよび下位IDの2つの部分から構成されます:。
salogin
ユーティリィティを起動する前に、アプリケーションIDを登録するエントリをChrystoki.conf
ファイルに追加する必要があります。Chrystoki.conf
ファイルは通常、/etc/
ディレクトリにあります。これも1回かぎりのプロセスです。
/etc/Chrystoki.conf
ファイルを編集し、ファイルの末尾にアプリケーションIDを追加します。例:
Misc = { AppIdMajor=<major id>; AppIdMinor=<minor id>; }
次のように入力してLuna SAサーバーにログインします。
/salogin -o -s <partition number> -i <AppIdMajor>:<AppIdMinor> -v -p <partition_password>
これによって、指定したアプリケーションIDのセッションが開きます。salogin
は、/usr/lunasa/bin
ディレクトリにあります。
Luna SAサーバーからログアウトするには、次のように入力します。
salogin -c -s <slot number> -i <AppIdMajor>:<AppIdMinor>
鍵および証明書が現在は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キーストアからファイルにエクスポートする必要があります。 |
Luna SAを使用するようにOWSMを構成する一環として、デフォルトのKSSキーストアではなくLuna HSMを使用するようにOWSMドメインを構成する必要があります。詳細は、次のトピックを参照してください。
OWSMでは、Oracle SPARC T5およびSPARC T4プロセッサ・ベースのサーバーを使用できます。これによって、計算、セキュリティおよびI/Oが単一チップ上に統合され、サード・パーティ製のセキュリティ・ハードウェアが不要になります。Oracle SPARC T5およびSPARC T4ベースのサーバーにOWSMをデプロイすることで、SPARC T5およびT4プロセッサ・ベースの暗号化機能が透過的に活用されます。これは、トランスポート・レイヤーおよびメッセージ・レイヤーの保護ポリシーによって強制された場合など、計算集中型の暗号化操作に依存するシナリオで高パフォーマンスのセキュリティを提供します。
ここでは、Oracle SPARC T5およびSPARC T4プロセッサ・ベースのサーバーの暗号化アクセラレーション機能を活用するためにOWSMを構成する方法について説明します。
この項は、Oracle Solaris 10 8/11以降を実行するOracle SPARC T5およびT4プロセッサ・ベースのサーバーにのみ該当します。
この項の項目は次のとおりです。
ここでは、まず次の用語について理解しておく必要があります。これらの用語の詳細は、「追加資料」に記載されているホワイトペーパーを参照してください。
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標準インタフェースに基づいており、暗号化操作を実行するためにカーネル・レベルおよびユーザー・レベルのコンシューマに一連の暗号化サービスを提供します。
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インタフェースを実装しています。
トランスポート・レベルのセキュリティのために暗号化アクセラレーションを構成するには、次のタスクを実行します。
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのキーストアの構成に関する項の説明に従って、WebLogic Serverキーストアを構成します。
「カスタム・アイデンティティとJava標準信頼」および「Javaキーストア(JKS)」を選択します。
WebLogic Serverに対してJSSE SSLを有効にします。
JSSEベースのSSLを使用することによって、Solaris SPARC上でJavaランタイム環境により事前構成済のSunPKCS11プロバイダ実装が自動的に活用されます。
実行する手順については、『Oracle WebLogic Serverセキュリティの管理』のJSSEベースのSSL実装の使用に関する項を参照してください。
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
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
例13-1
に、デフォルトの$JAVA_HOME/jre/lib/security/java.securityファイルの関連部分を示します。
例13-1 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
WebLogic Serverを再起動します。
SSL構成が動作していることを確認します。
メッセージ・レベルのセキュリティのために暗号化アクセラレーションを構成するには、次のタスクを実行します。
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.
キーストアの秘密鍵を生成します。
# pktool genkeypair keystore=pkcs11 keytype=rsa keylen=1024 hash=sha1
また、次のコマンドを使用することにより、JavaキーストアからSolaris Softtokenキーストアに鍵をインポートできます。
# keytool –importkeystore -srckeystore /opt/Oracle/Middleware/default-keystore.jks -destkeystore NONE -srcstoretype JKS -deststoretype PKCS11 -srcstorepass changeme -deststorepass your-scfpassword
Solarisコマンド行から、Solaris Softtokenキーストア内に鍵があることを確認します。
keytool -list -storetype pkcs11 -keystore NONE
使用するポリシーのアルゴリズム・スイートが$JAVA_HOME/jre/lib/security/sunpkcs11-solaris.cfgsunpkcs11-solaris.cfg
構成ファイル内のdisabledMechanismsリストに含まれていないことを確認します。
たとえば、図13-1に示すように、ポリシーに対して指定されたアルゴリズム・スイートがBasic256Rsa15である場合、鍵のラップのためにAes256暗号化およびKwAes256/kwRsA15が使用されます。この場合、構成ファイル内のdisabledMechanismsリストにCKM_AESが含まれないことを確認します。
サポートされるアルゴリズムのリストは、Java PKCS#11リファレンス・ガイドの付録A、Sun PKCS#11プロバイダのサポートされるアルゴリズムに関する項を参照してください。
次の項の手順に従って、PKCS11キーストアを使用するようにOWSMキーストアを構成します。
構成を確認します。
ハードウェア支援暗号化アクセラレーションが正しく構成され、動作していることを確認するために、次の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バルク暗号化ペイロードに対して動作していることを示します。
SPARC T5およびSPARC M5サーバーにおける高パフォーマンス・セキュリティの使用の詳細は、OracleのSPARC T5およびSPARC M5サーバーを使用したOracle WebLogic Serverアプリケーションのための高パフォーマンス・セキュリティを参照してください。このホワイトペーパーは、http://www.oracle.com/technetwork/articles/systems-hardware-architecture/security-weblogic-t-series-168447.pdf
から入手できます。
Oracle SPARC T-seriesプロセッサ・ベースのサーバーにおけるOWSMデプロイメントの詳細は、SPARC T4を使用したOracle DatabaseおよびFusion Middlewareアプリケーションのための高パフォーマンス・セキュリティを参照してください。このホワイトペーパーは、http://www.oracle.com/technetwork/server-storage/sun-sparc-enterprise/documentation/o12-021-t4security-1577047.pdf
から入手できます。
このホワイトペーパーは、Oracle SPARC T-seriesプロセッサ・ベースのサーバーを使用するための暗号化アクセラレーションに関する最も信頼性の高い資料です。
このホワイトペーパーでは、Solaris暗号化フレームワーク・コンポーネント、Solaris Kernel SSL (KSSL)の使用、Apache Webサーバー、Oracle Databaseの透過的データ暗号化、パフォーマンス特性など、多くの追加関連トピックについて取り上げています。