Solaris のシステム管理 (基本編)

Sun の証明書による署名付きパッケージおよびパッチの検証

「ストリーム形式」の SVR4 署名付きのパッケージまたはパッチには、PEM でコード化された PKCS7 署名が埋め込まれています。この署名には少なくとも、パッケージまたはパッチの暗号化されたダイジェストと署名者の X.509 公開鍵証明書とが含まれています。また、パッケージまたはパッチには「証明書チェーン」を含めることもできます。証明書チェーンを使うと、署名者の証明書からローカルに格納されている信頼される証明書へ、信頼関係のチェーンを形成することができます。

PEM でコード化された PKCS7 署名を使って、次のことを検証します。

次の表は、署名付きパッケージおよびパッチに関する暗号化関連の用語の一覧です。

用語 

定義 

 

ASN.1 

ASN.1 (Abstract Syntax Notation 1) は、一連の抽象オブジェクトを表現するための方式の 1 つである。たとえば、ASN.1 では、公開鍵証明書、公開鍵証明書を構成するすべてのオブジェクト、オブジェクトの収集順序などを定義している。ただし、ASN.1 では、オブジェクトを保存用または転送用にシリアライズする方法は定義していない。 

 

base64 

base64 は、任意のバイナリデータを ASCII テキストとしてコード化する方式の 1 つである。 

 

DER 

DER (Distinguished Encoding Rules) は、ASN.1 オブジェクトのバイナリ表現の 1 つである。DER では、コンピューティング環境で ASN.1 オブジェクトを保存用または転送用にシリアライズする方法を定義している。 

 

PEM 

PEM (Privacy Enhanced Message) は、base64 エンコーディングといくつかの任意のヘッダーを使って、ファイルを (DER またはその他のバイナリ形式で) コード化する方式である。もともとは、MIME タイプの電子メールメッセージをコード化するために使用された。また、PEM は、証明書と非公開鍵をファイルシステム上または電子メールメッセージ内のファイルにコード化する際にも広く使用される。 

 

PKCS7 

PKCS7 (Public Key Cryptography Standard #7) は、デジタル署名やデジタルエンベロープなどの暗号化データに対する汎用的な構文を定めた規格である。 

 

X.509 

ITU-T (International Telecommunication Union-Telcom) 勧告 X.509 は、広く採用されている X.509 公開鍵証明書の構文を定めた仕様である。 

この勧告では、認証サービスを提供するためのフレームワークが定義されている。X.509 で定義された 2 つの認証レベルを次に示す。 

  • 単純な認証 – パスワードを使ってユーザーの身元を検証する方式

  • 強い認証 – 暗号化技術を使って作成された資格情報に基づく方式。単純な認証でも不正なアクセスに対する多少の備えにはなるが、安全なサービスの提供基盤として使えるのは、強度の高い認証のみである。

 

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 コマンドの出力を一覧にまとめたものです。

フィールド 

説明 

Keystore Alias (キーストア別名) 

印刷、署名、削除のいずれかの目的で証明書を取得する場合、この名前を証明書の参照名として使用する必要がある。 

Common Name (共通名) 

証明書の共通の名前。信頼される証明書の場合、この名前はキーストア別名と同じになる。 

Certificate Type (証明書の種類) 

次の 2 つの種類がある。 

  • Trusted Certificate (信頼される証明書) - ほかの証明書を検証する際の信頼基盤として使用可能な証明書。信頼される証明書には非公開鍵は関連付けられない。

  • Signing Certificate (署名証明書) - パッケージまたはパッチへの署名用として使用可能な証明書。署名証明書には非公開鍵が関連付けられる。

Issuer Common Name (発行者の共通名) 

この証明書の署名、発行をしたエンティティの名前。信頼される証明書発行局 (CA、Certificate Authority) が発行した証明書の場合、発行者の共通名は、共通名と同じになる。 

Validity Dates (有効な日付) 

証明書の有効な日付。 

MD5 Fingerprint (MD5 フィンガープリント) 

証明書の MD5 ダイジェスト。このダイジェストを使えば、その証明書が証明元からの転送中に改変されなかったかどうかを検証できる。 

SHA1 Fingerprint (SHA1 フィンガープリント) 

MD5 フィンガープリントに似ているが、異なるアルゴリズムを使って計算される。 

証明書を認証するには、各証明書の MD5 ハッシュおよび SHA1 ハッシュ (「フィンガープリント」とも呼ばれる) を、発行者によって公開されている既知の正しいフィンガープリントと比較します。