パッケージにはデジタル署名を含めることができます。有効なデジタル署名付きのパッケージは、署名が適用された以降はパッケージの変更が行われていないことを保証します。署名付きパッケージを使用すると、パッケージをシステムに追加する前にデジタル署名を検証できるため、パッケージを安全にダウンロードまたは追加できます。
同じことが、署名付きパッチにも言えます。有効なデジタル署名付きのパッチは、署名が適用された以降はパッチの変更が行われていないことを保証します。署名付きパッチを使用すると、パッチをシステムに追加する前にデジタル署名を検証できるため、パッチを安全にダウンロードまたは追加できます。
署名付きパッチをシステムに追加する方法については、patchadd コマンドによる署名付きパッチの追加 (作業マップ)を参照してください。
署名付きパッケージを作成する方法については、『Application Packaging Developer's Guide (英語版)』を参照してください。
署名付きパッケージは、デジタル署名が含まれる点以外は、署名なしパッケージとまったく同一です。署名付きパッケージのインストール、照会、または削除は、既存の Solaris パッケージングツールを使って行えます。また、署名付きパッケージと署名なしパッケージは、バイナリレベルでも互換性があります。
デジタル署名されたパッケージまたはパッチをシステムに追加するには、信頼される証明書を使ってパッケージキーストアを設定しておく必要があります。これらの証明書は、パッケージやパッチ上のデジタル署名の有効性を確認する際に使用されます。
次の表は、署名付きパッケージおよびパッチに関する一般的な用語の一覧です。
署名付きパッケージまたはパッチをシステムに追加する手順は、基本的に次の 3 つから構成される。
pkgadm コマンドを使ってシステムのパッケージキーストアに証明書を追加する
(省略可能) pkgadm コマンドを使って証明書を一覧表示する
pkgadd コマンドを使ってパッケージを追加するか、patchadd コマンドを使ってパッチを追加する
署名付きパッケージをシステムに追加する手順については、署名付きパッケージの追加と削除 (作業マップ)を参照してください。署名付きパッチをシステムに追加する手順については、patchadd コマンドによる署名付きパッチの追加 (作業マップ)を参照してください。
「ストリーム形式」の SVR4 署名付きのパッケージまたはパッチには、PEM でコード化された PKCS7 署名が埋め込まれています。この署名には少なくとも、パッケージまたはパッチの暗号化されたダイジェストと署名者の X.509 公開鍵証明書とが含まれています。また、パッケージまたはパッチには「証明書チェーン」を含めることもできます。証明書チェーンを使うと、署名者の証明書からローカルに格納されている信頼される証明書へ、信頼関係のチェーンを形成することができます。
PEM でコード化された PKCS7 署名を使って、次のことを検証します。
そのパッケージに署名したエンティティがそのパッケージの作成者である
そのエンティティが実際にそのパッケージに署名した
そのパッケージがエンティティによる署名後に変更されていない
そのパッケージに署名したエンティティが信頼されたエンティティである
次の表は、署名付きパッケージおよびパッチに関する暗号化関連の用語の一覧です。
Sun Microsystems から発行された認証済みデジタル署名を使って、ダウンロードされたパッケージやパッチが改ざんされていないことを検証できます。こうした証明書は、システムのキーストアにインポートされます。
Sun のすべての証明書は、先頃 GTE CyberTrust を買収した Baltimore Technologies によって発行されています。
Sun の証明書をインポートするときに特別なパスワードを使用することで、キーストアへのアクセスを保護できます。
pkgadm listcert コマンドを使えば、ローカルのパッケージキーストア内に格納されている証明書の情報を表示できます。たとえば、次のようになります。
# pkgadm listcert -P pass:store-pass Keystore Alias: GTE CyberTrust Root Common Name: GTE CyberTrust Root Certificate Type: Trusted Certificate Issuer Common Name: GTE CyberTrust Root Validity Dates: <Feb 23 23:01:00 1996 GMT> - <Feb 23 23:59:00 2006 GMT> MD5 Fingerprint: C4:D7:F0:B2:A3:C5:7D:61:67:F0:04:CD:43:D3:BA:58 SHA1 Fingerprint: 90:DE:DE:9E:4C:4E:9F:6F:D8:86:17:57:9D:D3:91:BC:65:A6... |
次の表は、pkgadm listcert コマンドの出力を一覧にまとめたものです。
証明書を認証するには、各証明書の MD5 ハッシュおよび SHA1 ハッシュ (「フィンガープリント」とも呼ばれる) を、発行者によって公開されている既知の正しいフィンガープリントと比較します。
SunSolve Online は、以下の証明書を使って署名付きパッチ上のデジタル署名を検証します。なお、その際、PatchPro を含む以前の Solaris パッチ管理ツール (smpatch コマンド) を使います。
ルート CA 証明書と呼ばれるトップレベルの証明書
Class B CA 証明書と呼ばれるサブ CA (Sun Microsystems Inc.) による証明書
Sun EnterpriseTM Services によって発行される、「パッチ管理証明書」と呼ばれる証明書
「証明書発行局」は、パッチ上のデジタル署名の復号時に使用される公開鍵と、こうした公開鍵の所有者の関係を認証します。
Sun ルート CA 証明書、Sun Class B CA 証明書、およびパッチ署名証明書は、PatchPro を含む Solaris パッチ管理ツールに含まれています。この 3 つの証明書により、Sun のルート CA 証明書から Class B CA 証明書、Class B CA 証明書からパッチ管理証明書にさかのぼってパッチの信頼性を検証する認証チェーンが構成されます。最終的に、Sun のルート CA は、GTE CyberTrust CA によって認証されます。
署名付きパッケージおよびパッチを追加するための Sun の信頼される証明書を取得するには、次の方法を使います。
Java キーストア – Sun のルート CA 証明書をインポートします。この証明書は、この Solaris リリースをインストールする際に Java キーストア内にデフォルトで格納されます。
Sun の PKI (Public Key Infrastructure) サイト – システム上に Java キーストアが存在していない場合は、以下のサイトから証明書をインポートできます。
PatchPro のキーストア – smpatch コマンドを使って署名付きパッチを追加するための PatchPro がすでにインストールされている場合、Java キーストアから Sun のルート CA 証明書をインポートできます。
以前の Solaris リリースでは、パッチ管理ツールをダウンロードし、keytool コマンドを使って証明書をインポートすることで、PatchPro が使用する Java キーストアを作成することができました。
証明書の格納された Java キーストアがシステム上にすでに存在している場合、Sun Microsystems のルート CA 証明書を Java キーストアから keytool コマンドを使ってエクスポートできます。続いて、その証明書を、pkgadm コマンドを使ってパッケージキーストア内にインポートします。
ルート CA 証明書のパッケージキーストアへのインポートが完了すると、pkgadd コマンドや patchadd コマンドを使って署名付きパッケージおよびパッチをシステムに追加できるようになります。
なお、Sun Microsystems のルート証明書が必要となるのは、Sun が署名したパッチやパッケージを追加する場合のみです。
証明書をパッケージキーストアにインポートする手順については、信頼される証明書をパッケージキーストアにインポートする方法 (pkgadm addcert)を参照してください。
pkgadd コマンドを使って署名付きパッケージを追加するための完全な手順については、署名付きパッケージの追加と削除 (作業マップ)を参照してください。