ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 での Image Packaging System を使用したソフトウェアのパッケージ化および配布 Oracle Solaris 11.1 Information Library (日本語) |
IPS パッケージマニフェストには署名することができ、その署名はマニフェストの一部になります。
ほかのすべてのマニフェスト内容がアクションとして表されるのとまったく同様に、署名もアクションとして表されます。マニフェストにはすべてのパッケージメタデータ (ファイルアクセス権、所有権、内容のハッシュなど) が含まれているため、マニフェストがその発行以降変わってないことを検証する署名アクションはシステム検証の重要な一部分です。
signature アクションは、インストールされたソフトウェアの完全な検証ができるように、配布されたバイナリが含まれるツリーを形成します。
署名は、検証に加えて、ほかの組織または関係者による承認を示すためにも使用できます。たとえば、パッケージが本稼働での使用に適格であると認められると、内部の品質管理組織がパッケージのマニフェストに署名する場合が挙げられます。そのような承認がインストールに必要となることがあります。
マニフェストには、ほかに依存しない署名を複数含めることができます。署名を追加または削除しても、存在している他の署名が無効になることはありません。この機能により、パスに従って署名を使用することで途中過程での完了が示され、本稼働でのハンドオフが容易になります。以降の手順では、オプションでいつでも前の署名を削除できます。
signature アクションの形式は次のとおりです。
signature hash_of_certificate algorithm=signature_algorithm \ value=signature_value \ chain="hashes_of_certificates_needed_to_validate_primary_certificate" \ version=pkg_version_of_signature
ペイロードおよび chain 属性は、発行元のリポジトリから取り出せる x.509 証明書を含む、PEM (Privacy Enhanced Mail) ファイルのパッケージハッシュを表します。ペイロード証明書とは、value の値を検証する証明書です。value は、後述のように用意された、マニフェストのメッセージテキストの署名付きハッシュです。
提示されたほかの証明書は、ペイロード証明書からトラストアンカーに通じる証明書パスを形成する必要があります。
2 種類の署名アルゴリズムがサポートされています。
最初のタイプの署名アルゴリズムは RSA グループのアルゴリズムです。RSA 署名アルゴリズムの一例は rsa-sha256 です。ハイフンのあとの文字列 (この例では sha256) は、メッセージテキストを RSA アルゴリズムが使用できる単一値に変えるために使用するハッシュアルゴリズムを指定します。
2 つめのタイプの署名アルゴリズムはハッシュのみの計算です。このタイプのアルゴリズムは、主としてテストやプロセス検証のために存在し、ハッシュを署名値として提示します。このタイプの署名アクションは、ペイロード証明書ハッシュがないことによって示されます。このタイプの署名アクションは、イメージが署名をチェックするように構成されている場合に検証されます。ただし、署名が必要な場合、その存在は署名とみなされません。次の例は、ハッシュのみの署名アクションを示しています。
signature algorithm=hash_algorithm value=hash \ version=pkg_version_of_signature
署名付きマニフェストの発行は 2 段階のプロセスです。このプロセスでは、パッケージはそのタイムスタンプも含め、変更されません。
署名されていないパッケージをリポジトリに発行します。
pkgsign コマンドを使用して署名アクションをリポジトリ内のマニフェストに追加することで、対象のマニフェストを更新します。
このプロセスでは、発行元以外が最初の発行元の署名を無効にすることなく、署名アクションを追加できます。たとえば、会社の品質管理部門では社内にインストールされたすべてのパッケージに署名をして、それらの使用が承認されていることを示す必要がありますが、再発行すると新しいタイムスタンプが作成され、最初の発行元の署名が無効になるため、それらのパッケージの再発行は行わない場合があります。
pkgsign コマンドを使用することが署名付きパッケージを発行する唯一の手段であることに注意してください。すでに署名が含まれているパッケージを発行した場合、その署名は削除され、警告が発行されます。pkgsign(1) のマニュアルページには、pkgsign コマンドの使用方法の例が記載されています。
バリアントを含む署名アクションは無視されます。そのため、マニフェストのペアに対して pkgmerge を実行すると、以前に適用されたすべての署名が無効になります。
注 - パッケージの署名は、パッケージ開発の、パッケージをテストする前の最後の手順にするようにしてください。