Solaris のシステム管理 (セキュリティサービス)

第 13 章 Solaris の暗号化フレームワーク (概要)

この章では、Solaris の暗号化フレームワークについて説明します。この章の内容は次のとおりです。

Solaris の暗号化フレームワークの管理方法と使用方法については、第 14 章Solaris の暗号化フレームワーク (手順)を参照してください。

Solaris の暗号化フレームワークの新機能

Solaris 10 1/06: フレームワークの libpkcs11.so ライブラリには、「メタスロット」という新しいコンポーネントが含まれています。メタスロットは、フレームワークにインストールされているすべてのトークンとスロットの機能を結合させて単一の仮想スロットで提供するコンポーネントです。メタスロットにより、事実上、アプリケーションから利用可能なすべての暗号化サービスに単一のスロットを通じて透過的に接続できるようになります。

Solaris の暗号化フレームワーク

Solaris の暗号化フレームワークは、暗号化要求を処理するアルゴリズムと PKCS #11 ライブラリの共通の格納場所を提供します。PKCS #11 ライブラリは、RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) に従って 実装されます。

暗号化フレームワークは、現在、Kerberos および IPsec に対する暗号化要求をカーネルレベルで処理します。ユーザーレベルコンシューマは、libsasl や IKE などです。

米国の輸出法では、公開された暗号化インタフェースは使用の制限が義務付けられています。Solaris の暗号化フレームワークは、カーネル暗号化プロバイダおよび PKCS #11 暗号化プロバイダの署名を義務付けることにより、この現行法を満たしています。詳細については、「Sun 以外のソフトウェアのためのバイナリ署名」を参照してください。

暗号化フレームワークにより、暗号化サービスのプロバイダはそのサービスが Solaris オペレーティングシステム の多数のコンシューマに使用されるようにすることができます。プロバイダはプラグインとも言います。暗号化フレームワークでは、3 種類のプラグインが使用可能です。

暗号化フレームワークは、ユーザーレベルプロバイダ用に標準インタフェースとして PKCS #11 v2.11 ライブラリを実装しています。このライブラリは、Sun 以外のアプリケーションがプロバイダに到達するために使用することができます。サードパーティーは、署名付きライブラリ、署名付きカーネルアルゴリズムモジュール、および署名付きデバイスドライバを暗号化フレームワークに追加することもできます。これらのプラグインは、pkgadd ユーティリティーによって Sun 以外のソフトウェアがインストールされると追加されます。暗号化フレームワークの主なコンポーネントの一覧図については、『Oracle Solaris セキュリティーサービス開発ガイド』の第 8 章「Oracle Solaris 暗号化フレームワークの紹介」を参照してください。

Solaris の暗号化フレームワークの用語

次の定義と例のリストは、暗号化フレームワークでの作業時に役立ちます。

Solaris の暗号化フレームワークの適用範囲

暗号化フレームワークには、管理者、ユーザー、およびプロバイダを提供する開発者向けのコマンドが用意されています。

Solaris 暗号化フレームワークの管理コマンド

cryptoadm コマンドは、動作中の暗号化フレームワークを管理します。このコマンドは、Crypto Management 権利プロファイルの一部です。この権利プロファイルは、暗号化フレームワークを安全に管理する役割に割り当てることができます。cryptoadm コマンドは、次の内容を管理します。

svcadm コマンドを使用して、暗号化サービスデーモン、kcfd を有効化、更新、および無効化することができます。このコマンドは、Solaris のサービス管理機能 smf の一部です。svc:/system/cryptosvcs は、暗号化フレームワークのサービスインスタンスです。詳細は、smf(5) および svcadm(1M) のマニュアルページを参照してください。

Solaris 暗号化フレームワークのユーザーレベルコマンド

Solaris の暗号化フレームワークでは、ファイルの整合性の確認、ファイルの暗号化、およびファイルの復号化を行うユーザーレベルコマンドが用意されています。独立したコマンド elfsign によって、フレームワークでの使用のためにプロバイダがバイナリに署名することができます。

Sun 以外のソフトウェアのためのバイナリ署名

elfsign コマンドは、Solaris 暗号化フレームワークでの使用のためにプロバイダに署名する手段です。一般に、このコマンドはプロバイダの開発者によって実行されます。

elfsign コマンドには、Sun の証明書を要求するためのサブコマンドとバイナリ署名を行うためのサブコマンドが用意されています。署名を確認するサブコマンドもあります。署名されていないバイナリは、Solaris の暗号化フレームワークで使用することができません。1 つまたは複数のプロバイダに署名するには、Sun の証明書と、その証明書の要求に使用された非公開鍵が必要です。詳細については、『Oracle Solaris セキュリティーサービス開発ガイド』の付録 F「暗号化プロバイダのパッケージ化と署名」を参照してください。

Solaris の暗号化フレームワークのプラグイン

サードパーティーは、Solaris 暗号化フレームワークに自身のプロバイダをプラグインできます。Sun 以外のプロバイダとは、次のオブジェクトのいずれかです。

プロバイダのオブジェクトは、Sun の証明書付きで署名されている必要があります。証明書要求は、サードパーティーが選択する非公開鍵と Sun が提供する証明書に基づきます。証明書要求は Sun に送信され、サードパーティーが登録されたあと、証明書が発行されます。次にサードパーティーは Sun の証明書付きでそのプロバイダオブジェクトに署名します。

ロード可能なカーネルソフトウェアモジュールおよびハードウェアアクセラレータ用のカーネルデバイスドライバも、カーネルに登録する必要があります。登録は、Solaris 暗号化フレームワークの SPI (サービスプロバイダインタフェース) で行います。

プロバイダをインストールするために、サードパーティーは署名付きのオブジェクトと Sun の証明書をインストールするパッケージを提供します。パッケージには証明書が含まれ、管理者が証明書を安全なディレクトリに格納する必要があります。詳細については、『Oracle Solaris セキュリティーサービス開発ガイド』の付録 F「暗号化プロバイダのパッケージ化と署名」を参照してください。

暗号化サービスとゾーン

大域ゾーンと各非大域ゾーンには、それぞれの /system/cryptosvc サービスが用意されています。大域ゾーンで暗号化サービスが有効になったり更新されたりすると、大域ゾーンで kcfd デーモンが起動され、大域ゾーンに対するユーザーレベルポリシーが設定され、システムに対するカーネルポリシーが設定されます。非大域ゾーンでサービスが有効になったり更新されたりすると、その非大域ゾーンで kcfd デーモンが起動され、そのゾーンに対するユーザーレベルポリシーが設定されます。カーネルポリシーは、大域ゾーンによって設定されています。

ゾーンの詳細については、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』のパート II「ゾーン」を参照してください。永続的なアプリケーションを管理するサービス管理機能の詳細については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」および smf(5) のマニュアルページを参照してください。