ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris セキュリティーサービス開発ガイド Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris の開発者向けセキュリティー機能 (概要)
3. PAM アプリケーションおよび PAM サービスの記述
8. Oracle Solaris 暗号化フレームワークの紹介
Solaris オペレーティングシステムでは、アプリケーションソフトウェアは「パッケージ」と呼ばれる単位で配布されます。パッケージとは、ソフトウェア製品の配布とインストールに必要なファイルの集まりです。通常、パッケージは、アプリケーションコードの開発が完了したあとでアプリケーション開発者が設計して作成します。ソフトウェアアプリケーションのパッケージ化の概要については、『アプリケーションパッケージ開発者ガイド』を参照してください。
暗号化プロバイダのパッケージ化には、次の 2 つの要件があります。
開発者は、暗号化フレームワークを管理する構成ファイルにアプリケーションを追加するための入力ファイルを用意する必要があります。
開発者は、米国政府の輸出法に準拠していることを示す X.509 証明書を用意する必要があります。この証明書は、テストを行う目的で、米国政府の承認を得る前に作成できます。パッケージには承認が必要であり、署名付きプロバイダを出荷しなければなりません。
米国政府は、公開された暗号化インタフェース (「crypto-with-a-hole」とも呼ばれる) の輸出を制限しています。この制限のために、プロバイダのすべてのベンダーは米国政府から輸出の承認を得る必要があります。ベンダーは、輸出法に準拠していることを示すために、Oracle Corporation が発行する証明書を要求する必要があります。そして、ベンダーは、プロバイダの電子署名を行い、証明書を添付してソフトウェアを出荷します。
輸出承認プロセスでは、暗号化の強度によってソフトウェアを使用できる国が決まります。米国政府では、アメリカ合衆国で製造される暗号化製品に対して 2 つの輸出カテゴリを定義しています。
リテール版暗号化製品 – リテール版暗号化製品は、セキュリティー上の脅威になると指定された国を除く、すべての国に出荷することが許可されています。
非リテール版暗号化製品 – 非リテール版暗号化製品は、国内のみでの使用と米国政府によって認められている国への出荷が許可されています。
プロバイダが非リテール承認を得ている場合は、リテール承認を受けられるようにすることができます。リテール承認を得るには、IPsec などの特定の呼び出し側によるプロバイダの使用を禁止します。Oracle では、この場合、制限付きと制限なしの 2 つの証明書を用意します。どちらの証明書を使用するかは、証明書要求プロセス (「プロバイダに署名するための証明書を要求するには」) で指定します。また、特別な起動ファイルを作成および署名し、プロバイダとともに出荷する必要があります。「リテール版の輸出用の起動ファイルを作成するには」を参照してください。
Sun 以外で、ユーザーレベルの暗号化プロバイダアプリケーションの開発者は、次の処理を実行します。
Oracle Corporation から証明書を取得します。続いて、ライブラリに署名します。「プロバイダへの署名の追加」を参照してください。
証明書を添付してパッケージを出荷します。証明書は、/etc/crypto/certs ディレクトリに格納する必要があります。
pkcs11conf クラスを pkginfo ファイルの CLASSES 文字列内に追加します。次の行を追加してください。
CLASS=none pkcs11conf
入力ファイル pkcs11.conf を /etc/crypto ディレクトリに作成します。
ユーザーレベルのプロバイダの入力ファイル名は、pkcs11.conf です。このファイルは、プロバイダへのパスを示します。pkcs11.conf では、エントリに次の構文を使用します。
filename
このエントリは、ファイルへの絶対パス (/opt/lib/$ISA/myProviderApp.so など) です。pkgadd を実行すると、このファイルが構成ファイルに追加されます。パス名の $ISA 表現を書き留めておいてください。$ISA は、必要に応じて、32 ビット版または 64 ビット版のアプリケーションを指します。
次の行をパッケージのプロトタイプファイルに追加します。
e pkcs11conf etc/crypto/pkcs11conf 0644 root sys
Sun 以外で、カーネルレベルの暗号化プロバイダモジュールの開発者は、次の処理を実行します。
Oracle Corporation から証明書を取得します。続いて、カーネルソフトウェアモジュールまたはデバイスドライバに署名します。「プロバイダへの署名の追加」を参照してください。
証明書を添付してパッケージを出荷します。証明書は、/etc/crypto/certs ディレクトリに格納する必要があります。
kcfconf クラスを pkginfo ファイルの CLASSES 文字列内に追加します。次の行を追加してください。
CLASS=none kcfconf
入力ファイル kcf.conf を /etc/crypto ディレクトリに作成します。このファイルは、ソフトウェアとハードウェアのプラグインをカーネル構成ファイルに追加します。
プロバイダが暗号化機構を備えたカーネルソフトウェアモジュールである場合は、エントリに次の構文を使用します。
provider-name:supportedlist=mech1,mech2,...
カーネルソフトウェアモジュールのベース名
リスト内の暗号化機構の名前
次のエントリは、カーネルソフトウェアモジュールの例です。
des:supportedlist=CKM_DES_CBC,CKM_DES_ECB,CKM_DES_CFB
プロバイダが暗号化機構用のデバイスドライバ (アクセラレータカードなど) である場合は、エントリに次の構文を使用します。
driver_names=devicedriver1,devicedriver2,...
暗号化デバイス用のデバイスドライバの名前
次のエントリは、デバイスドライバの例です。
driver_names=dca