Sun GlassFish Enterprise Server 2.1 管理ガイド

Enterprise Server でのハードウェア暗号化アクセラレータの使用

ハードウェアアクセラレータトークンを使用すると、暗号化のパフォーマンスを向上させたり、セキュリティー保護された鍵ストレージ機能を備えたりすることができます。また、スマートカードを使用したモバイル用のセキュリティー保護された鍵ストレージを提供することもできます。

Sun Java System Application Server は、SSL 通信および TLS 通信用の PKCS#11 トークンと、鍵および PKCS#11 トークンを管理するための Network Security Services (NSS) ツールの使用をサポートします。この節では、Enterprise Server によるサポートの提供方法と、関連設定の手順を説明します。

J2SE 5.0 PKCS#11 プロバイダは、簡単に Enterprise Server ランタイムと統合できます。これらのプロバイダによって、ハードウェアアクセラレータなどの PKCS#11 トークンを Enterprise Server で使用して、高速なパフォーマンスを実現したり、SSL 通信や TLS 通信での非公開鍵の継承を防いだりすることができます。

ここでは、次の内容について説明します。

ハードウェア暗号化アクセラレータの設定について

Sun GlassFish Enterprise Server は、Sun Crypto Accelerator 1000 (SCA-1000) および SCA-4000 でテスト済みです。

Enterprise Server は、PKCS#11 トークンと通信できます。Enterprise Server にパッケージされているのは、NSS PKCS#11 トークンライブラリ (NSS 内部 PKCS#11 モジュール用、一般に NSS ソフトトークンと呼ばれる) と、NSS コマンド行管理ツールです。詳細は、「NSS (Network Security Services) ツールの使用」を参照してください。

NSS ツールを使用して PKCS#11 トークンと J2SE PKCS#11 プロバイダに鍵と証明書を作成し、実行時にトークンの鍵と証明書にアクセスします。PKCS#11 プロバイダは、暗号化サービスプロバイダで、ネイティブ PKCS#11 ライブラリのラッパーとして動作します。一般に、PKCS#11 トークンは、ネイティブ PKCS#11 インタフェースを使用してすべてのハードウェアとソフトウェアを参照します。ハードウェアトークンは、ハードウェアアクセラレータやスマートカードなどの物理デバイスに実装された PKCS#11 トークンです。ソフトウェアトークンは、完全にソフトウェアに実装された PKCS#11 トークンです。


注 –

Enterprise Server を J2SE 1.4.x プラットフォームで実行する場合、PKCS#11 トークンは 1 つだけ、つまり NSS ソフトトークンがサポートされます。


Microsoft Windows 環境では、NSS ライブラリの位置 AS_NSS と NSS ツールディレクトリ AS_NSS_BIN を PATH 環境変数に追加してください。簡単にするために、この節では UNIX のコマンドだけを使用して手順を説明します。必要に応じて UNIX 変数を Windows 変数に置き換えるようにしてください。

ハードウェア暗号化アクセラレータの設定は、主に次の 2 つの手順に分かれます。

PKCS#11 トークンの設定

ここでは、NSS セキュリティーツール modutil を使用して PKCS#11 トークンを設定する方法について説明します。次の手順で PKCS#11 トークンを設定します。

次のコマンドを入力します。すべて 1 行に入力してください。

modutil -dbdir AS_NSS_DB -nocertdb -force -add moduleName -libfile
 absolute_path_of_pkcs11_library -mechanisms list_of_security_mechanisms

ここで AS_NSS_DB は NSS データベースのディレクトリになり、ドメイン管理サーバー (DAS) を使用する場合には AS_DOMAIN_CONFIG と同じになります。

たとえば、ハードウェアアクセラレータトークンを設定するには、次のように入力します。すべて 1 行に入力してください。

modutil -dbdir AS_NSS_DB -nocertdb -force -add "Sun Crypto Accelerator" -libfile
 /opt/SUNWconn/crypto/lib/libpkcs11.so -mechanisms RSA:DSA:RC4:DES

この例のハードウェアアクセラレータは SCA–1000 暗号化アクセラレータです。対応する PKCS#11 ライブラリは、デフォルトでは /opt/SUNWconn/crypto/lib/libpkcs11.so にあります。

mechanisms は、トークンで利用可能な暗号化メカニズムの完全なリストにしてください。利用可能な暗号化メカニズムの一部だけを使用する方法については、「J2SE 5.0 PKCS#11 プロバイダの設定」を参照してください。サポートされるメカニズムの一覧については、NSS セキュリティーツールの Web サイト (http://www.mozilla.org/projects/security/pki/nss/tools) で modutil のドキュメントを参照してください。

次の例では、トークンのインストール時に指定したトークン名がmytoken であるとします。

ハードウェアアクセラレータが正しく設定されていることを確認するには、次のコマンドを入力します。

modutil -list -dbdir AS_NSS_DB

標準出力表示は次のようになります。


Using database directory /var/opt/SUNWappserver/domains/domain1/config ...

Listing of PKCS#11 Modules
-----------------------------------------------------------
  1. NSS Internal PKCS#11 Module
         slots: 2 slots attached
        status: loaded

         slot: NSS Internal Cryptographic Services                            
        token: NSS Generic Crypto Services

         slot: NSS User Private Key and Certificate Services                  
        token: NSS Certificate DB

  2. Sun Crypto Accelerator
        library name: /opt/SUNWconn/crypto/lib/libpkcs11.so
         slots: 1 slot attached
        status: loaded

         slot: Sun Crypto Accelerator:mytoken
        token: mytoken
-----------------------------------------------------------

 

鍵と証明書の管理

ここでは、certutilpk12util を使用して鍵や証明書を作成および管理する一般的な手順について説明します。certutilpk12util の詳細については、「NSS (Network Security Services) ツールの使用」と NSS セキュリティーツールの Web サイト (http://www.mozilla.org/projects/security/pki/nss/tools) を参照してください。


注 –

Java ランタイムの JAVA_HOME/jre/lib/security ディレクトリにある java.security プロパティーファイルで PKCS#11 プロバイダを設定することで、J2SE keytool ユーティリティーを使用して鍵や証明書を管理することもできます。keytool の使用方法については、『Java PKCS#11 Reference Guide』 (http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.html) を参照してください。


ここで説明する内容は次のとおりです。

鍵や証明書の一覧表示

非公開鍵と証明書の操作

自己署名付き証明書の作成や、証明書のインポート/エクスポートには、certutil を使用します。非公開鍵をインポートまたはエクスポートするには、pk12util ユーティリティーを使用します。詳細は、「NSS (Network Security Services) ツールの使用」を参照してください。


注意 – 注意 –

Enterprise Server では、certutilmodutil などの NSS ツールを使用して NSS パスワードを直接変更しないでください。そのようにすると、Enterprise Server のセキュリティーデータが破損する可能性があります。


J2SE 5.0 PKCS#11 プロバイダの設定

Enterprise Server は実行時に PKCS#11 トークン内にある鍵や証明書へのアクセスに、J2SE PKCS#11 プロバイダを使用します。デフォルトでは、Enterprise Server では NSS ソフトトークン用に J2SE PKCS#11 プロバイダが設定されます。ここでは、J2SE PKCS#11 プロバイダのデフォルト設定をオーバーライドする方法について説明します。

Enterprise Server では、PKCS#11 トークンごとに次のデフォルト PKCS#11 設定パラメータが生成されます。

これらの設定は、『Java PKCS#11 Reference Guide』で説明されている構文に従います。


注 –

name パラメータは、固有でなければならない場合を除き、必要ではありません。J2SE 5.0 の一部の以前のバージョンでは、英数字のみ使用できます。


デフォルトの設定パラメータをオーバーライドするには、カスタム設定ファイルを作成します。たとえば、SCA–1000 で RSA 暗号化方式と RSA 鍵ペアジェネレータを明示的に無効にすることができます。RSA 暗号化方式と RSA 鍵ペアジェネレータの詳細については、http://www.mozilla.org/projects/security/pki/nss/tools を参照してください。.

カスタム設定ファイルを作成するには、次の手順に従います。

  1. 次のコードを記述した as-install/mypkcs11.cfg という設定ファイルを作成して保存します。


    name=HW1000
    library=/opt/SUNWconn/crypto/lib/libpkcs11.so
    slotListIndex=0
    disabledMechanisms = {
    	CKM_RSA_PKCS
    	CKM_RSA_PKCS_KEY_PAIR_GEN
    }
    omitInitialize=true
  2. 必要に応じて NSS データベースを更新します。この場合は、RSA を無効にするために NSS データベースを更新します。

    以下のコマンドを実行します。


    modutil -undefault "Sun Crypto Accelerator" -dbdir AS_NSS_DB -mechanisms RSA

    mechanisms リストのアルゴリズム名は、デフォルト設定のアルゴリズム名とは異なります。NSS の有効な mechanisms の値については、NSS セキュリティーツールの Web サイト (http://www.mozilla.org/projects/security/pki/nss/tools) で modutil のドキュメントを参照してください。

  3. 次のように、適切な位置にプロパティーを追加して、この変更でサーバーを更新します。


    <property name="mytoken" value="&InstallDir;/mypkcs11.cfg"/>

    プロパティーの位置は、次のいずれかにします。

    • プロバイダが DAS またはサーバーインスタンス用である場合は、関連 <security-service> の下にプロパティーを追加します。

    • プロバイダがノードエージェント用である場合は、domain.xml ファイルで関連 <node-agent> 要素の下にプロパティーを追加します。

  4. Enterprise Server を再起動します。

    カスタマイズされた設定が再起動後に有効になります。