S/MIME 証明書のプロファイル

この記事では、暗号化されたメールや S/MIME 署名付きメールで使用するために信頼されるために、X.509 チェーン内の各証明書が満たす必要のある要件について説明します。

これらの要件に加えて、チェーンは、この目的で Google が明示的に信頼する認証局(CA)証明書に固定されている必要があります。管理者が認定する CA のルート証明書の使用を許可することもできます。詳細については、ルート証明書のガイドラインをご覧ください。

注:

  • Google は、Gmail for S/MIME による信頼を得ている CA 証明書の一覧を提供し、管理しています。この一覧にある CA は Google 独自の裁量で信頼できると判断したものであり、Google は、いつでも予告なくルート CA を削除する権利を保持しています。
  • インストールされた拡張機能が、同じ証明書の他の拡張機能と矛盾しないことを確認します。たとえば、nsCertTypes が定義されている場合、鍵の用途拡張、鍵の拡張的用途拡張、基本制約拡張と同じ用途をカバーする必要があります。

証明書チェーンのルール

ルート CA

フィールド 値

発行者識別名

CA を識別できる値にする必要があります。

たとえば、「認証局」のような一般的な値を使用することはできません。

主体者識別名

エンコード形式は、発行者識別名とバイト単位で同じでなければなりません。

主体者公開鍵情報

RSA モジュラス(2048、3072、または 4096)による rsaEncryption。あるいは、secp256r1 または secp384r1 を使った ecPublicKey。

発行元の中間 CA 以外の中間 CA の証明書

ルートとエンド エンティティの間に、直接的または間接的に複数の中間 CA がある場合は、この情報を使用します。

発行元の中間 CA が、エンド エンティティ証明書を発行する中間 CA です。このセクションは、発行元の中間 CA 以外のチェーン内の中間 CA に適用されます。

フィールド 値
バージョン バージョン 3
シリアル番号 ゼロ(0)より大きく、(INTEGER 型を使用した DER エンコードの場合は)20 バイト以下でなければなりません。
署名アルゴリズム SHA‐256、SHA‐384、SHA‐512 のいずれかを使った RSA。または、SHA‐256、SHA‐384、SHA‐512 のいずれかを使った ECDSA。
発行者識別名

発行元 CA の主体者識別名とバイト単位で同じでなければなりません。

有効期間 規定はありません。
主体者識別名 規定はありません。
主体者公開鍵情報

RSA モジュラス(2048、3072、または 4096)による rsaEncryption。あるいは、secp256r1 または secp384r1 を使った ecPublicKey。

拡張機能 Presence Critical(致命的) 値
鍵の用途 必須 ○

次のビット位置を設定する必要があります: keyCertSign
その他のビット位置は設定してもかまいません

基本制約 必須 ○ cA フィールドが true に設定されている
pathLenConstraint フィールドが存在している
CRL 配布ポイント 必須 ×

一般公開されている HTTP
uniformResourceIdentifier が 1 つ以上存在する必要があります

(注) 失効サーバーは、一般に信頼される証明書の発行と管理に関する CA/ブラウザ フォーラムのベースライン要件証明書ポリシーのバージョン 1.3.2 以降の次のセクションに準拠する必要があります。
  • 4.9.7. CRL 発行間隔
  • 4.9.9. オンライン失効、ステータス チェックの可用性
  • 4.9.10. オンライン失効確認の要件
    4.10.2 サービスの可用性

その他の拡張情報 存在する可能性があります。

エンド エンティティを発行する中間 CA 証明書

重要: 少なくとも 1 つの中間 CA 証明書がチェーン内に存在する必要があります。つまり、ルート CA がエンド エンティティ証明書を直接発行することは許可されていません。

フィールド 値
バージョン バージョン 3
シリアル番号 ゼロ(0)より大きく、(INTEGER 型を使用した DER エンコードの場合は)20 バイト以下でなければなりません。
署名アルゴリズム

SHA‐256、SHA‐384、SHA‐512 のいずれかを使った RSA。または、SHA‐256、SHA‐384、SHA‐512 のいずれかを使った ECDSA。

発行者識別名

発行元 CA の主体者識別名とバイト単位で同じでなければなりません。

有効期間

notBefore と notAfter の間隔は

10 年以内であることが望ましく、20 年以内でなければなりません。

主体者識別名

CA の使用目的を示す必要があります。

主体者公開鍵情報

RSA モジュラス(2048、3072、または 4096)による rsaEncryption。あるいは、secp256r1 または secp384r1 を使った ecPublicKey。

拡張機能 Presence Critical(致命的) 値
鍵の用途 必須 ○

ビット位置は、
keyCertSign に設定する必要があります。
ビット位置は、
cRLSign、
digitalSignature に設定できます。
OCSP レスポンスの署名に直接使用する場合は、
digitalSignature が存在する必要があります。

他のビット位置を設定してはなりません。

鍵の拡張的用途 必須 任意 存在する必要がある:
emailProtection
存在してはならない:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

基本制約

必須 ○

cA フィールドは true に設定する必要があります。
pathLenConstraint フィールドは存在すべきであり、0 であるべきです

証明書ポリシー 省略可能 ×

CA が運用するポリシーを識別する policyIdentifier を指定すべきです。anyPolicy を指定すべきではありません。
cps が存在する場合、有効な HTTP または HTTPS リンクを含んでいる必要があります。

CRL 配布ポイント 必須 ×

一般公開されている HTTP
uniformResourceIdentifier が少なくとも 1 つ存在する必要があります。

(注)

失効サーバーは、CA/Browser Forum の「パブリック証明書の発行および管理に関する基本要件」バージョン 1.3.2 以降の、次のセクションに沿って運用する必要があります。

  • 4.9.7. CRL 発行間隔
  • 4.9.9. オンライン失効、ステータス チェックの可用性
  • 4.9.10. オンライン失効チェックの要件
  • 4.10.2. サービスの可用性
その他の拡張情報 省略可能 クリティカルでない

存在する可能性があります。

エンド エンティティ証明書

フィールド 値
バージョン バージョン 3
シリアル番号

ゼロ(0)より大きく、予測不可能な 64 ビット以上を指定する必要があります。

注: CA/ブラウザ フォーラムのベースライン要件証明書ポリシーのエンド エンティティのシリアル番号のエントロピー要件を反映するように更新されます。

署名アルゴリズム SHA‐256、SHA‐384、SHA‐512 のいずれかを使った RSA。または、SHA‐256、SHA‐384、SHA‐512 のいずれかを使った ECDSA。
発行者識別名

発行元 CA の主体者識別名とバイト単位で同じでなければなりません。

有効期間

notBefore と notAfter の間隔は 27 か月以内でなくてはなりません。

notBefore の時刻は署名時刻の前後 48 時間以内でなければなりません。

主体者識別名

メールアドレス以外のサブジェクト相対識別名は、発行前に、公開されている監査済みの手順を使用して厳密に検証する必要があります。許容される手順については、CA/ブラウザ フォーラムの一般に信頼される証明書の発行と管理に関するベースライン要件証明書ポリシーのバージョン 1.3.2 以降のセクション 3.2.3「個人の身元確認」を参照してください。

また、任意のメールアドレス(commonName フィールド内や emailAddress フィールド内など)が、主体者代替名拡張情報に rfc822Name 形式で存在する必要があります。

主体者公開鍵情報

RSA モジュラス(2048、3072、または 4096)による rsaEncryption。あるいは、secp256r1 または secp384r1 を使った ecPublicKey。

拡張機能 Presence Critical(致命的) 値
鍵の用途(RSA) 必須 ○

ビット位置は、
digitalSignature
および/または
nonRepudiation/contentCommitment
のいずれかに設定する必要があります。ビット位置は、
dataEncipherment
keyEncipherment に設定できます。

他のビット位置を設定してはなりません。

鍵の使用状況(ECDH) 必須

ビット位置は、
digitalSignature に対して設定する必要があります。ビット位置は、
nonRepudiation/contentCommitment、
keyAgreement、
encipherOnly(keyAgreement が設定されている場合)、
decipherOnly(keyAgreement が設定されている場合)に対して設定できます。

他のビット位置を設定してはなりません。

鍵の拡張的用途 必須 任意

存在する必要がある:
emailProtection
存在してはならない:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

基本制約

省略可能 任意

存在する場合、cA フィールドは true に設定できません。
pathLenConstraint フィールドは存在できません

証明書ポリシー 必須 ×

存在している必要がある: 証明書が発行されたポリシーを識別する policyIdentifier を指定する必要があります。また、anyPolicy であってはなりません。

存在する場合あり: cps。存在する場合、証明書が発行された CPS への有効な HTTP リンクまたは HTTPS リンクを含んでいる必要があります。

認証局情報アクセス

省略可能 ×

caIssuers と、存在する場合は ocsp には、少なくとも 1 つの一般公開されている HTTP uniformResourceIdentifier が含まれている必要があります。

AccessDescription には、個人の証明書に固有のラベルやパラメータを含めてはなりません。

CRL 配布ポイント 必須 ×

一般公開されている
HTTPuniformResourceIdentifier が少なくとも 1 つ存在する必要があります

(注)

失効サーバーは、バージョン 1.3.2 以降の CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates の次のセクションに従って動作する必要があります。

  • 4.9.7. CRL 発行間隔
  • 4.9.9. オンライン失効、ステータス チェックの可用性
  • 4.9.10. オンライン失効チェックの要件
  • 4.10.2. サービスの可用性

主体者代替名

必須 クリティカルでない

rfc822Name 形式の項目を 1 つ以上含める必要があります。
次のタイプの項目を含んではなりません。
dNSName
iPAddress
uniformResourceIdentifier
各 rfc822Name は、リクエストを送信するエンティティがメールアドレスに関連付けられたメール アカウントを管理しているか、メール アカウントの所有者からアカウントの所有者に代わって行動する権限を与えられていることを確認するために、公開されている文書化された監査済みの措置で検証する必要があります。

その他の拡張情報

省略可能 クリティカルでない 存在する可能性があります。