FIPS 140-2 プロバイダモジュールは CPU を集中的に使用するため、デフォルトでは有効になっていません。管理者には、FIPS 140-2 モードでこれらのプロバイダを有効にし、コンシューマを構成する責任があります。
Oracle Solaris OS では、FIPS 140-2 レベル 1 で検証された、暗号化アルゴリズムの 2 つのプロバイダが提供されます。
Oracle Solaris の暗号化フレームワーク機能は Oracle Solaris システム上の中央の暗号化ストアであり、2 つの FIPS 140-2 モジュールを提供します。ユーザーランドモジュールは、ユーザー空間で動作するアプリケーションに暗号化を提供し、カーネルモジュールは、カーネルレベルのプロセスに暗号化を提供します。使用可能な場合、両方のモジュールが SPARC および x86 プロセッサのアルゴリズムアクセラレーションを活用できます。
Oracle Solaris ユーザーランド暗号化フレームワークモジュールでは、その呼び出し元であるアプリケーション用の暗号化が提供されます。このモジュールでは、暗号化、復号化、ハッシュ処理、セキュアな乱数生成、署名の生成と検証、証明書の生成と検証、メッセージ認証機能、および RSA と DSA 用の鍵ペアの生成が提供されます。ユーザーランド暗号化フレームワーク の呼び出し元であるユーザーレベルのアプリケーション (passwd コマンドや IKEv2 など) は、FIPS 140-2 モードで実行されます。
Oracle Solaris カーネル暗号化フレームワークモジュールでは、カーネルモジュール用の暗号化が提供されます。このモジュールでは、暗号化、復号化、ハッシュ処理、セキュアな乱数生成、署名の生成と検証、およびメッセージ認証機能が提供されます。カーネルレベルのコンシューマ, (Kerberos や IPsec など) は、独自の API を使用してカーネル暗号化フレームワークを呼び出します。
OpenSSL オブジェクトモジュールは、SunSSH および Web アプリケーションに暗号化を提供します。
OpenSSL は、Secure Sockets Layer (SSL v2/v3) および Transport Layer Security (TLS v1) プロトコルのためのオープンソースのツールキットであり、暗号化ライブラリを提供します。Oracle Solaris では、SunSSH と Apache HTTP Server は OpenSSL FIPS 140-2 モジュールを使用し、その利点を活用できます。Apache HTTP Server はまた、暗号化フレームワークを使用して FIPS 140-2 モードで動作することもできます。
Oracle Solaris 11.3 には、コードが FIPS 140-2 をサポートしているすべてのコンシューマで使用できる OpenSSL の FIPS 140-2 バージョンが含まれています。
SunSSH は、Oracle Solaris 11.3 に含まれている OpenSSL の FIPS 140-2 バージョンを使用します。
Apache HTTP Server Version 2.4 は、Oracle Solaris 11.3 に含まれている OpenSSL の FIPS 140-2 バージョンを使用できます。
Apache HTTP Server Version 2.2 は、FIPS 140-2 をサポートしていない OpenSSL のバージョンを使用します。Version 2.2 を FIPS 140-2 モードで実行するには、OpenSSL ではなく PKCS #11 エンジンを使用します。
FIPS 140-2 モードでプロバイダを有効にし、アプリケーションでそれらのプロバイダを使用できるようにする例については、Oracle Solaris 11.3 SRU 5.6 システム上で FIPS 140-2 モードで実行する例を参照してください。
暗号化フレームワークを FIPS 140-2 モードで実行するには、Oracle Solaris 11.3 での暗号化と証明書の管理 の FIPS 140-2 が有効になったブート環境を作成する方法を参照してください。
OpenSSL を FIPS 140-2 モードで実行するには、Oracle Solaris 11.3 での暗号化と証明書の管理 の Oracle Solaris での OpenSSL のサポートを参照してください。
暗号化フレームワークは、さまざまな鍵の長さを持つ多くの暗号化アルゴリズムを実装します。アルゴリズムの各バリアントは、メカニズムと呼ばれます。すべてのメカニズムが FIPS 140-2 で検証されているわけではありません。
FIPS 140-2 モードで動作しているとき、ユーザーランド暗号化フレームワークは、FIPS 140-2 で承認されたアルゴリズムの使用を強制しません。この設計の選択により、ユーザー独自のセキュリティーポリシーを適用できます。
FIPS 140-2 モードでプロバイダを有効にしたあと、FIPS 140-2 アルゴリズムを使用するようにアプリケーションとプログラムを構成する必要があります。
cryptoadm および pktool コマンドは、暗号化フレームワークがサポートするアルゴリズムを一覧表示します。
暗号化メカニズムの完全なリストを表示するには、cryptoadm list -vm コマンドを使用します。cryptoadm(1M) のマニュアルページを参照してください。
ECC アルゴリズムの曲線のリストを表示するには、pktool gencert listcurves コマンドを使用します。pktool(1) のマニュアルページを参照してください。
Oracle Solaris に対して FIPS 140-2 で検証された Oracle Solaris での ECC 曲線については、暗号化フレームワークでの FIPS 140-2 アルゴリズムを参照してください。
暗号化フレームワークに対して検証された FIPS 140-2 アルゴリズムについては、Oracle Solaris システムでの FIPS 140-2 レベル 1 証明書のリファレンスに一覧表示されている Oracle Solaris セキュリティーポリシーを確認してください。カーネル暗号化フレームワーク と ユーザーランド暗号化フレームワーク では、サポートされているアルゴリズムが若干異なります。
FIPS 140-2 モードで動作している OpenSSL では、FIPS 140-2 で検証されたアルゴリズムが強制的に使用されます。そのため、OpenSSL を FIPS 140-2 モードで使用するアプリケーションは、FIPS 140-2 アルゴリズムにしかアクセスできません。
詳細および例については、次を参照してください。
Oracle Solaris 11.3 での暗号化と証明書の管理 の Oracle Solaris での OpenSSL のサポート
Oracle Solaris 11.2 上での OpenSSL (http://blogs.oracle.com/observatory/entry/openssl_on_solaris_11_2)
openssl(5) のマニュアルページ
最高のパフォーマンスを得るには、FIPS 140-2 プロバイダのコンシューマは可能な場合、ハードウェアで高速化された暗号化を使用するようにしてください。暗号化フレームワークは、FIPS 140-2 用に検証されている Oracle Solaris システムハードウェアに一覧表示されているシステム上で、ハードウェアアクセラレーションとともに FIPS 140-2 モードで実行されます。
OpenSSL を FIPS 140-2 モードで実行している場合に SPARC T4 または SPARC T5 サーバー上でハードウェアアクセラレーションを実現するには、pkcs11 エンジンを使用します。
詳細は、Oracle Solaris 11.3 での暗号化と証明書の管理 の SPARC T4 システムの暗号化の最適化を参照してください。例については、Oracle Solaris 11.3 SRU 5.6 システム上で FIPS 140-2 モードで実行する例を参照してください。