証明書署名要求

CSR (PKI)

[4] CSR (証明書署名要求 (certificate signing request) ) は、証明書subject となる者が発行者に対して、 subjectDN公開鍵などの情報を提供し、証明書発行を依頼するものです。

[6] CSR証明書の発行時にのみ利用するものですから、実際の署名や通信などの際には用いません。 発行後は不要になりますし、そもそも CSR のような特定の書式を用いることも PKI としては必須ではありません。しかし多くの CA では証明書発行時に本項で説明する CSR の提出を求めているようです。

仕様書

構文

[5] RFC 2986ASN.1 構文が規定されています。

[28] CSR の内容は証明書の内容と似ています。 証明書に記述されるべき内容の一部を CSR として提出することになるからです。

拡張

[19] 証明書拡張CSR でも使われることがあります。

[20] 属性として 1.2.840.113549.1.9.14 が指定され、 その値の SET の値として SEQUENCE OF SEQUENCE { OBJECT IDENTIFIER; OCTET STRING } が指定される形となります。

[21] critical/non-critical の別は記述できないのでしょうか。

MIME 型

[12] DER または BER符号化したものの MIME型application/pkcs10 です >>10拡張子.p10 です >>10

[15] 古い実装は application/x-pkcs10 を使っていました >>14

PEM ファイル

[7] CSR は通常は Base64 符号化する .pem 形式で保管・送受信されるようです。

[16] .pem ファイルでは、ラベルとして CERTIFICATE REQUEST を使わなければなりません >>17NEW CERTIFICATE REQUEST も広く使われているので、そちらにも対応して構いません >>17

[18] データは、 ASN.1 CertificateRequest です。 BER でなければなりませんDER非常に好ましいです (strongly preferred) >>17

[8] .pem ファイルでは

-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
... と
-----BEGIN NEW CERTIFICATE REQUEST-----
...
-----END NEW CERTIFICATE REQUEST-----
... の2種類のヘッダー・フッターが使われているようです。

文脈

[22] subject となる者 (被発行者) が証明書発行者に対し提出することが発行者によって要求されることがあります。

[23] 論理的な発行者たる人間が物理的な発行者たる証明書発行ソフトウェアに必要な情報をひとまとめにして渡すために使うことがあります。

セキュリティー

[24] CSR証明書ではありません。 CSR は誰も何かを証明してくれるものではありません。 仮に証明書のかわりに CSR が提出されたとしても、 それを信用してはいけません。

[25] 証明書発行者は、発行にあたって CSR の内容が正当であることを確認し、 保証する必要があります (それがすなわち証明書の「証明」です)。 CSR 自体にその内容を「証明」する機能はなく、 証明書の発行者がそれが正常で改竄されたものでないと確かめないといけません。

[26] その確認の方法と程度は認証局の目的と要求される信用度により決まるものです。 分野によっては業界団体の定めに従うことになります。

[27] 例えば対面でファイルを受け取るとか、 身分証明書と突き合わせるとか、 既存の証明書に対応する秘密鍵署名させるとか。

歴史

[9] RSA Laboratories - PKCS #10: Certification Request Syntax Standard ( 版) http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs10-certification-request-syntax-standard.htm

This standard describes syntax for a request for certification of a public key, a name, and possibly a set of attributes.

[11] RFC 2314 - PKCS #10: Certification Request Syntax Version 1.5 ( 版) https://tools.ietf.org/html/rfc2314

メモ

[1] Certificate signing request - Wikipedia, the free encyclopedia ( 版) http://en.wikipedia.org/wiki/Certificate_signing_request

[2] CSRについて - UPKI電子証明書発行サービス (NetCommons 著, 版) https://certs.nii.ac.jp/faq/Q4/