やってみた マイナカードで S/MIME (Thunderbird編)
概要
マイナンバーカードに搭載されている署名用電子証明書を用いることで、行政機関や民間事業者への電子申請において、電子署名を付すことができます。
電子申請の仕組みとしては、Webを用いた仕組みを構築することが多いのではないかと思いますが、ここでは、S/MIME(Secure / MIME(Multipurpose Internet Mail Extensions))を用いた電子メールによる電子申請を行う場合の一方法について説明します。
以下に記載の内容を、電子申請を行うユーザに実施してもらうことになります。
以下、「あなた」とは、電子申請を行うユーザのことを指します。
なお、本記事では、CRL(Certificate Revocation List)やOCSP(Online Certificate Status Protocol)を用いた電子署名の検証の部分については記載していません。
電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律第17条第1項に規定する署名検証者又は同条第5項に規定する団体署名検証者として認定されると必要な情報が提示されるようなので、そちらを参照してください。
マイナンバーカードと電子証明書について
まずは、マイナンバーカードに搭載されるアプリや電子証明書の種類について。
マイナンバーカードには、以下の4つのアプリが搭載されています。(参考:マイナンバーカードのアプリの概要)
- 券面アプリケーション(券面AP)
- 公的個人認証サービスによる電子証明書アプリケーション(JPKI-AP)
- 券面事項入力補助アプリケーション(券面入力補助AP)
- 住基アプリケーション(住基AP)
今回使用するのは、これらのうち、公的個人認証サービスによる電子証明書アプリケーション(JPKI-AP)です。
公的個人認証サービスによる電子証明書アプリケーションには、署名用電子証明書と利用者証明用電子証明書の二種類の電子証明書が含まれており、これらのうち、署名用電子証明書を用いて電子署名を付すことで、S/MIMEによる電子署名付きメールの送信ができます。
対象プラットフォーム
筆者が検証した環境は以下のとおりです。
メール送信側
- OS: Windows 11 Pro
- メーラ: Thunderbird
- OpenSC
- ICカードリーダ・ライタ: SONY RC-S380
なお、ここで用いているThunderbirdやOpenSCは、LinuxやMacOSでも動作します。細かい手順は異なる部分もあるでしょうが、概ね同じ手順でうまく行くものと考えます。
メール受信側
- OS: Windows 10 Pro
- メーラ: Outlook
メール送信側の設定
メール送信側(電子申請を実施する側)の設定としては、大きく、
- OpenSCのインストール・設定
- Thunderbirdの設定
となります。
ここでは、ICカードリーダ・ライタの接続、ドライバのインストール等は完了しているものとします。
OpenSCのインストール・設定
ICカードリーダ・ライタを用いてマイナンバーカード内の情報を読みだすのに必要となるOpenSCをインストールし、設定します。
OpenSCのインストール
インストールにあたっては、Windows Quick Start等を参考にしてください。
署名用電子証明書のみを用いる設定
OpenSCをインストールし特に設定を変更していない状態だと、「利用者証明用パスワード」、「署名用パスワード」、「券面事項入力補助用パスワード」及び「個人番号カード用(住民基本台帳用)パスワード」の4つのパスワードを毎回入力しなければならず大変面倒であるため、署名用電子証明書だけを用いるよう、opensc.confを編集しました。
具体的には、
C:\Program Files\OpenSC Project\OpenSC\opensc.conf
に、以下のように
create_slots_for_pins = "sign"
を追加することで、署名用パスワードのみを入力すればよいようにしました。
もちろん、他の用途で利用者証明用電子証明書等を利用する場合には、これをやってしまうと使えなくなりますのでご注意ください。
app default {
# debug = 3;
# debug_file = opensc-debug.txt;
framework pkcs15 {
# use_file_caching = public;
}
pkcs11 {
create_slots_for_pins = "sign"
}
}
Thunderbirdの設定
Thunderbirdでメールを送信する際に電子署名を付すために必要な設定としては、
- セキュリティデバイスの設定
- 個人証明書の設定
- 認証局証明書の設定
となります。
それぞれ、以下に説明していきます。
セキュリティデバイスの設定
セキュリティデバイスの設定とは、ThunderbirdでICカードリーダを利用するための設定です。
具体的には、以下のようにします。
セキュリティデバイスの設定
Thunderbirdの画面左下の設定ボタン → 左下の「アカウント設定」ボタン → 左上の「エンドツーエンド暗号化」とクリックし、表示されるエンドツーエンド暗号化メニューの中の「S/MIME」の項の「S/MIME セキュリティデバイス」をクリックし、OpenSCを利用する設定を行います。
具体的な手順については、Use Your YubiKey for S/MIME Email in ThunderbirdのWindows Instructionsの1.~8.を参考にしてください。
設定が無事に完了すれば、デバイスマネージャー画面の左側「セキュリティモジュールとデバイス」の欄に、OpenSC及びお使いのICカードリーダ(ここでは、Sony FeliCa Port/PaSoRi 3.0.0)が表示されます。
個人証明書の設定
署名に用いる証明書を選択します。
具体的には以下のとおりです。
上の手順で用いた「S/MIME セキュリティデバイス」ボタンの数行上に、「デジタル署名のための個人証明書: 」という項があり、「選択」というボタンがあるのでそのボタンをクリックします。
「PKCS#11トークン JPKI(Digital Signature PIN)のパスワードを入力してください。」と尋ねられるので、署名用電子証明書のパスワード(6~16桁)を入力します。
上段の「証明書:」の欄に「JPKI(Digital Signature PIN):Digital Signature Certificate …」が選択されているのを確認し、右下の「OK」をクリックします。
「他の人があなたに暗号化しメールを送信する際に使用する証明書を指定してください。暗号化証明書を今すぐ設定しますか?」というメッセージが表示されますので、必要に応じて設定してください。(もちろん、送信相手の暗号化用電子証明書を用いた暗号化もできるはずですが、話がややこしくなるので、本記事では暗号化は行わないこととします。)
「暗号化されていないメッセージに署名する」については、必要に応じてチェックを入れてください。(本記事では暗号化は行わないのでチェックを入れました。)
JPKI証明書のインポート
この時点では、Thunderbirdは、あなたの証明書に署名を行った認証局の証明書を知らないので、それを登録する必要があります。
そのためには次のようにします。
概要としては、
- マイナンバーカードに入っている認証局証明書をファイルの形で取り出す。
- それをThunderbirdに登録する。
という流れとなります。
具体的な手順は以下のとおりです。
上で用いた「S/MIME セキュリティデバイス」ボタンの左側に「S/MIME 証明書の管理」というボタンがあるのでこれをクリックし、「証明書マネージャー」を開きます。
上の方に、「あなたの証明書」、「認証の決定」、「個人証明書」、「サーバー証明書」、「認証局証明書」とあるので、一番右側の「認証局証明書」をクリックします。
ずらずらっと認証局の一覧が表示されます。
おそらく表示領域が狭いので、右下の「OK」ボタンのさらに右下のこのウィンドウの最右下のエリアをマウスカーソルでつかんでドラッグし、表示領域を広げるのが良いでしょう。
下の方にスクロールしていくと、「JPKI」という項目があり、「JPKI for user authentication」と「JPKI for digital signature」という二つの証明書があります。
このうちの「JPKI for digital signature」が今回お目当ての証明書です。
ここに表示はされているのですが、この状態では正しく認識されていないようで、一度ファイルにエクスポートし、インポートしなおす必要がありました。(これに気づくまでにとても時間を要しました。デバッガで動作を追っていってようやく分かりました。)
「JPKI for digital signature」を選択した状態で、下の方にある「エクスポート」ボタンをクリックします。
デスクトップなど適当な場所に保存します。名前はデフォルトのJPKIfordititalsignature.crtのままで良いと思います。
証明書マネージャーに戻ったら、今度は、下の方の「インポート」ボタンをクリックし、先ほど保存した、JPKIforditigalsignature.crtを読み込みます。
「新しい認証局(CA)を信頼するよう求められています。本当にこの認証局を信頼しますか?」と尋ねられるので、「この認証局によるメールユーザーの識別を信頼する」にチェックを入れたうえで「OK」をクリックします。
電子署名付きメールの送信方法
送信の際の手続きとしては、パスワードの入力が必要となります。
送信先を指定したり、件名、本文等を記載したりして送信ボタンをクリックすると、パスワードを尋ねられるので、署名用電子証明書のパスワード(6~16桁)を入力します。
有効な署名ではありません?
上に記載の方法で、以前はきちんと有効な署名が付いたメールを送信できていたのですが、現在Thunderbird 102で確認したところ、以下のように「有効な署名ではありません。」との表示が出るようになっていました。
メッセージのセキュリティ-S/MIME
デジタル署名が正しくありません
メッセージにデジタル署名が合まれていますが、有効な署名ではありません。
メッセージの署名に使用された証明書の発行者はこの種類の証明き発行者とし
て信頼していない認証局です。
署名者:202206021226210000040133102B
メールアドレス:(メールアドレスなし)
証明書の発行者:
署名証明書を表示
メッセージは暗号化されていません
メッセージは送信前に暗号化されていません。暗号化せずにインターネットに送信
された情報は転送中に他人に傍受される可能性があります。
Outlookで確認すると、以下のように、「有効で信頼されています」と表示されるので、電子署名自体はきちんとできていると思うのですが……
件名: test
差出人: KUWAYAMA Masayuki
署名者: 202206021226210000040133102B
デジタル署名:有効
このメッセージのデジタル署名は、有効で信頼されています。
メッセージのデジタル署名に使用された証明書の詳細については、[詳細]を
クリックしてください。
詳細(D) ...
メッセージを開く前に、デジタル署名された電子メールのエラーについて警告する(W)
閉じる(C)
電子署名の内容確認
(注:このパートは、単に筆者の趣味でやっている部分なので、電子申請を行う方に実施してもらう必要はありません。)
送信したメールを確認してみましょう。
送信済みトレイに送信したメールがあるので、これを選択します。
右の方の「返信」「転送」「アーカイブ」といったボタンが並んでいるところの「その他」をクリックし、「ソースを表示」をクリックします。
メールの内容が表示されるので、「ファイル」の「名前を付けてページを保存」で適当な名前(ここではsigned-mail.txtという名前としました。)を付けてテキストファイルとして保存します。
保存したファイルをメモ帳等で開くと、電子署名の部分が以下のような感じとなっているかと思います。(これはあくまでメールの形を見せるためのサンプルであり、実際にマイナンバーカードを用いて電子署名を行ったメールではありません(住所等の部分をマスクするのが面倒だったため)。)
Date: Thu, 12 Oct 2023 04:45:10 +0900
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.1
From: KUWAYAMA Masayuki <xxxxxxxxxx@xxxxxx.com>
Subject: test
To: xxxxxxxxxxxxxxx@gmail.com
Content-Language: en-US
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms030202060104040900060801"
This is a cryptographically signed message in MIME format.
--------------ms030202060104040900060801
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
これはテストメールです。
電子署名はきちんと付くかな?
--------------ms030202060104040900060801
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
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
--------------ms030202060104040900060801--
この内容を確認してみましょう。
Content-Type: multipart/signed; protocol="application/pkcs7-signature"
とあるように、これは全体としてはRFC1847(Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted)のMultipart/Signedのデータです。
後半の何やらデータがずらずらと並んでいるところは、
Content-Type: application/pkcs7-signature
との記載があることから、RFC8551(Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification)の3.5.3.1.に記載のある、SignedDataタイプを一つだけ持つRFC5652(Cryptographic Message Syntax (CMS))のContentInfoです。
このapplication/pkcs7-signatureの部分がどのような内容か確認してみましょう。
先ほど保存したsigned-mail.txtから、電子署名のデータの部分のみを抜き出したテキストファイル(上の例でいうとMIAGCSで始まる行から6Czdruで始まる行までのみとしたファイル)を作り適当な名前を付けて保存します。ここではsign.txtという名前で保存しました。
Windowsに付属のCertUtilコマンドを用いて
CertUtil -asn sign.txt
とすると、次のように表示されます。
途中、02c8の行に氏名、02e9の行に生年月日、0304の行に性別、0367の行に住所が見えているのがわかります(一部伏字にしています。)。
0000: 30 80 ; SEQUENCE (9ef バイト - 不確定長)
0002: | 06 09 ; OBJECT_ID (9 バイト)
0004: | | 2a 86 48 86 f7 0d 01 07 02
| | ; 1.2.840.113549.1.7.2 PKCS 7 署名
000d: | a0 80 ; OPTIONAL[0] (9e0 バイト - 不確定長)
000f: | | 30 80 ; SEQUENCE (9dc バイト - 不確定長)
0011: | | | 02 01 ; INTEGER (1 バイト)
0013: | | | | 01
0014: | | | 31 0f ; SET (f バイト)
0016: | | | | 30 0d ; SEQUENCE (d バイト)
0018: | | | | 06 09 ; OBJECT_ID (9 バイト)
001a: | | | | | 60 86 48 01 65 03 04 02 01
| | | | | ; 2.16.840.1.101.3.4.2.1 sha256 (sha256NoSign)
0023: | | | | 05 00 ; NULL (0 バイト)
0025: | | | 30 80 ; SEQUENCE (d バイト - 不確定長)
0027: | | | | 06 09 ; OBJECT_ID (9 バイト)
0029: | | | | 2a 86 48 86 f7 0d 01 07 01
| | | | ; 1.2.840.113549.1.7.1 PKCS 7 データ
0032: | | | | 00 00 ; 不確定長 (@0025)
0034: | | | a0 82 07 20 ; OPTIONAL[0] (720 バイト)
0038: | | | | 30 82 07 1c ; SEQUENCE (71c バイト)
003c: | | | | 30 82 06 04 ; SEQUENCE (604 バイト)
0040: | | | | | a0 03 ; OPTIONAL[0] (3 バイト)
0042: | | | | | | 02 01 ; INTEGER (1 バイト)
0044: | | | | | | 02
0045: | | | | | 02 04 ; INTEGER (4 バイト)
0047: | | | | | | 04 0c b8 9d
004b: | | | | | 30 0d ; SEQUENCE (d バイト)
004d: | | | | | | 06 09 ; OBJECT_ID (9 バイト)
004f: | | | | | | | 2a 86 48 86 f7 0d 01 01 0b
| | | | | | | ; 1.2.840.113549.1.1.11 sha256RSA
0058: | | | | | | 05 00 ; NULL (0 バイト)
005a: | | | | | 30 81 80 ; SEQUENCE (80 バイト)
005d: | | | | | | 31 0b ; SET (b バイト)
005f: | | | | | | | 30 09 ; SEQUENCE (9 バイト)
0061: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0063: | | | | | | | | 55 04 06
| | | | | | | | ; 2.5.4.6 国/地域コード (C)
0066: | | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
0068: | | | | | | | 4a 50 ; JP
| | | | | | | ; "JP"
006a: | | | | | | 31 0d ; SET (d バイト)
006c: | | | | | | | 30 0b ; SEQUENCE (b バイト)
006e: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0070: | | | | | | | | 55 04 0a
| | | | | | | | ; 2.5.4.10 組織 (O)
0073: | | | | | | | 0c 04 ; UTF8_STRING (4 バイト)
0075: | | | | | | | 4a 50 4b 49 ; JPKI
| | | | | | | ; "JPKI"
0079: | | | | | | 31 23 ; SET (23 バイト)
007b: | | | | | | | 30 21 ; SEQUENCE (21 バイト)
007d: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
007f: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
0082: | | | | | | | 0c 1a ; UTF8_STRING (1a バイト)
0084: | | | | | | | 4a 50 4b 49 20 66 6f 72 20 64 69 67 69 74 61 6c ; JPKI for digital
0094: | | | | | | | 20 73 69 67 6e 61 74 75 72 65 ; signature
| | | | | | | ; "JPKI for digital signature"
009e: | | | | | | 31 3d ; SET (3d バイト)
00a0: | | | | | | 30 3b ; SEQUENCE (3b バイト)
00a2: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
00a4: | | | | | | | 55 04 0b
| | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
00a7: | | | | | | 0c 34 ; UTF8_STRING (34 バイト)
00a9: | | | | | | 4a 61 70 61 6e 20 41 67 65 6e 63 79 20 66 6f 72 ; Japan Agency for
00b9: | | | | | | 20 4c 6f 63 61 6c 20 41 75 74 68 6f 72 69 74 79 ; Local Authority
00c9: | | | | | | 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 53 79 73 ; Information Sys
00d9: | | | | | | 74 65 6d 73 ; tems
| | | | | | ; "Japan Agency for Local Authority Information Systems"
00dd: | | | | | 30 1e ; SEQUENCE (1e バイト)
00df: | | | | | | 17 0d ; UTC_TIME (d バイト)
00e1: | | | | | | | 32 32 30 36 30 32 30 33 32 36 31 36 5a ; 220602032616Z
| | | | | | | ; 2022/06/02 12:26
00ee: | | | | | | 17 0d ; UTC_TIME (d バイト)
00f0: | | | | | | 32 37 30 37 31 36 31 34 35 39 35 39 5a ; 270716145959Z
| | | | | | ; 2027/07/16 23:59
00fd: | | | | | 30 68 ; SEQUENCE (68 バイト)
00ff: | | | | | | 31 0b ; SET (b バイト)
0101: | | | | | | | 30 09 ; SEQUENCE (9 バイト)
0103: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0105: | | | | | | | | 55 04 06
| | | | | | | | ; 2.5.4.6 国/地域コード (C)
0108: | | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
010a: | | | | | | | 4a 50 ; JP
| | | | | | | ; "JP"
010c: | | | | | | 31 14 ; SET (14 バイト)
010e: | | | | | | | 30 12 ; SEQUENCE (12 バイト)
0110: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0112: | | | | | | | | 55 04 07
| | | | | | | | ; 2.5.4.7 地域 (L)
0115: | | | | | | | 0c 0b ; UTF8_STRING (b バイト)
0117: | | | | | | | 46 75 6b 75 6f 6b 61 2d 6b 65 6e ; Fukuoka-ken
| | | | | | | ; "Fukuoka-ken"
0122: | | | | | | 31 1c ; SET (1c バイト)
0124: | | | | | | | 30 1a ; SEQUENCE (1a バイト)
0126: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0128: | | | | | | | | 55 04 07
| | | | | | | | ; 2.5.4.7 地域 (L)
012b: | | | | | | | 0c 13 ; UTF8_STRING (13 バイト)
012d: | | | | | | | 46 75 6b 75 6f 6b 61 2d 73 68 69 2d 43 68 75 6f ; Fukuoka-shi-Chuo
013d: | | | | | | | 2d 6b 75 ; -ku
| | | | | | | ; "Fukuoka-shi-Chuo-ku"
0140: | | | | | | 31 25 ; SET (25 バイト)
0142: | | | | | | 30 23 ; SEQUENCE (23 バイト)
0144: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0146: | | | | | | | 55 04 03
| | | | | | | ; 2.5.4.3 共通名 (CN)
0149: | | | | | | 0c 1c ; UTF8_STRING (1c バイト)
014b: | | | | | | 32 30 32 32 30 36 30 32 31 32 32 36 32 31 30 30 ; 2022060212262100
015b: | | | | | | 30 30 30 34 30 31 33 33 31 30 32 42 ; 00040133102B
| | | | | | ; "202206021226210000040133102B"
0167: | | | | | 30 82 01 22 ; SEQUENCE (122 バイト)
016b: | | | | | | 30 0d ; SEQUENCE (d バイト)
016d: | | | | | | | 06 09 ; OBJECT_ID (9 バイト)
016f: | | | | | | | | 2a 86 48 86 f7 0d 01 01 01
| | | | | | | | ; 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
0178: | | | | | | | 05 00 ; NULL (0 バイト)
017a: | | | | | | 03 82 01 0f ; BIT_STRING (10f バイト)
017e: | | | | | | 00
017f: | | | | | | 30 82 01 0a ; SEQUENCE (10a バイト)
0183: | | | | | | 02 82 01 01 ; INTEGER (101 バイト)
0187: | | | | | | | 00
0188: | | | | | | | a5 bf 97 0e 7e b9 ff b7 79 3d aa a2 7d 43 c5 d2
0198: | | | | | | | 46 22 bf bb 70 8f 1c 56 68 88 ae e0 e1 8e 0d 6b
01a8: | | | | | | | 86 bb 60 94 48 08 f9 1e 75 70 42 07 7b d0 47 16
01b8: | | | | | | | 05 b4 f5 52 70 35 43 22 d1 c3 52 99 cd 75 8c fd
01c8: | | | | | | | ff c6 5c 11 fa 2f b5 93 2b ed 6c c8 e2 7b 3b 17
01d8: | | | | | | | e5 e4 3c 6e 27 3a 2c 28 12 83 65 25 d4 6e 5f 4a
01e8: | | | | | | | af bf a3 3c 68 82 29 04 6f 0a c8 b0 6b 31 14 6b
01f8: | | | | | | | 7c 18 23 86 24 c6 0f 3d 05 3a a0 91 8a 99 f9 49
0208: | | | | | | | e1 15 c3 ab 12 23 aa a3 fb de 2f 2e 79 a4 cf 7f
0218: | | | | | | | e4 25 95 57 31 16 f3 59 ec 4a aa 82 ef 90 2d 08
0228: | | | | | | | 13 f4 00 9f 3a 80 76 bf d5 2f 2a bd f7 67 b6 e7
0238: | | | | | | | 7b aa fd e7 eb 92 86 44 49 03 c0 6f 3e 05 22 8e
0248: | | | | | | | 8b 64 aa 28 e4 43 d8 2e 5f a0 e7 01 26 c5 a3 af
0258: | | | | | | | 97 a6 1b 6f f5 91 d3 b4 3a 2a ed fe e8 97 5c 36
0268: | | | | | | | 97 65 95 12 c6 54 93 8e 51 f3 e5 40 8d b8 5f c2
0278: | | | | | | | 71 ae b5 51 e1 d1 4b 50 c5 ee 53 94 06 d2 9c b3
0288: | | | | | | 02 03 ; INTEGER (3 バイト)
028a: | | | | | | 01 00 01
028d: | | | | | a3 82 03 b3 ; OPTIONAL[3] (3b3 バイト)
0291: | | | | | 30 82 03 af ; SEQUENCE (3af バイト)
0295: | | | | | 30 0e ; SEQUENCE (e バイト)
0297: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0299: | | | | | | | 55 1d 0f
| | | | | | | ; 2.5.29.15 キー使用法
029c: | | | | | | 01 01 ; BOOL (1 バイト)
029e: | | | | | | | ff
029f: | | | | | | 04 04 ; OCTET_STRING (4 バイト)
02a1: | | | | | | 03 02 ; BIT_STRING (2 バイト)
02a3: | | | | | | 06
02a4: | | | | | | c0
02a5: | | | | | 30 82 01 13 ; SEQUENCE (113 バイト)
02a9: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
02ab: | | | | | | | 55 1d 11
| | | | | | | ; 2.5.29.17 サブジェクト代替名
02ae: | | | | | | 04 82 01 0a ; OCTET_STRING (10a バイト)
02b2: | | | | | | 30 82 01 06 ; SEQUENCE (106 バイト)
02b6: | | | | | | a0 1f ; OPTIONAL[0] (1f バイト)
02b8: | | | | | | | 06 0a ; OBJECT_ID (a バイト)
02ba: | | | | | | | | 2a 83 08 8c 9b 55 08 05 05 01
| | | | | | | | ; 1.2.392.200149.8.5.5.1
02c4: | | | | | | | a0 11 ; OPTIONAL[0] (11 バイト)
02c6: | | | | | | | 0c 0f ; UTF8_STRING (f バイト)
02c8: | | | | | | | e6 a1 91 e5 b1 b1 e3 80 80 e9 9b 85 e8 a1 8c ; ...............
| | | | | | | ; "桑山 雅行"
02d7: | | | | | | a0 19 ; OPTIONAL[0] (19 バイト)
02d9: | | | | | | | 06 0a ; OBJECT_ID (a バイト)
02db: | | | | | | | | 2a 83 08 8c 9b 55 08 05 05 04
| | | | | | | | ; 1.2.392.200149.8.5.5.4
02e5: | | | | | | | a0 0b ; OPTIONAL[0] (b バイト)
02e7: | | | | | | | 0c 09 ; UTF8_STRING (9 バイト)
02e9: | | | | | | | 33 31 39 xx xx xx xx xx xx ; 319xxxxxx
| | | | | | | ; "319xxxxxx"
02f2: | | | | | | a0 11 ; OPTIONAL[0] (11 バイト)
02f4: | | | | | | | 06 0a ; OBJECT_ID (a バイト)
02f6: | | | | | | | | 2a 83 08 8c 9b 55 08 05 05 03
| | | | | | | | ; 1.2.392.200149.8.5.5.3
0300: | | | | | | | a0 03 ; OPTIONAL[0] (3 バイト)
0302: | | | | | | | 0c 01 ; UTF8_STRING (1 バイト)
0304: | | | | | | | 31 ; 1
| | | | | | | ; "1"
0305: | | | | | | a0 6d ; OPTIONAL[0] (6d バイト)
0307: | | | | | | | 06 0a ; OBJECT_ID (a バイト)
0309: | | | | | | | | 2a 83 08 8c 9b 55 08 05 05 05
| | | | | | | | ; 1.2.392.200149.8.5.5.5
0313: | | | | | | | a0 5f ; OPTIONAL[0] (5f バイト)
0315: | | | | | | | 0c 5d ; UTF8_STRING (5d バイト)
0317: | | | | | | | e7 a6 8f e5 b2 a1 e7 9c 8c e7 a6 8f e5 b2 a1 e5 ; ................
0327: | | | | | | | b8 82 e6 9d b1 e5 8c ba xx xx xx xx xx xx xx xx ; ................
0337: | | | | | | | xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ; ................
0347: | | | | | | | xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ; ................
0357: | | | | | | | xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ; ................
0367: | | | | | | | xx xx xx xx xx xx xx xx xx xx xx xx xx ; .............
| | | | | | | ; "福岡県福岡市東区○○○○○○○○○○○○○○○○○○○○○○○○"
0374: | | | | | | a0 15 ; OPTIONAL[0] (15 バイト)
0376: | | | | | | | 06 0a ; OBJECT_ID (a バイト)
0378: | | | | | | | | 2a 83 08 8c 9b 55 08 05 05 02
| | | | | | | | ; 1.2.392.200149.8.5.5.2
0382: | | | | | | | a0 07 ; OPTIONAL[0] (7 バイト)
0384: | | | | | | | 0c 05 ; UTF8_STRING (5 バイト)
0386: | | | | | | | 30 30 30 30 30 ; 00000
| | | | | | | ; "00000"
038b: | | | | | | a0 2f ; OPTIONAL[0] (2f バイト)
038d: | | | | | | 06 0a ; OBJECT_ID (a バイト)
038f: | | | | | | | 2a 83 08 8c 9b 55 08 05 05 06
| | | | | | | ; 1.2.392.200149.8.5.5.6
0399: | | | | | | a0 21 ; OPTIONAL[0] (21 バイト)
039b: | | | | | | 0c 1f ; UTF8_STRING (1f バイト)
039d: | | | | | | 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ; 0000000000000000
03ad: | | | | | | 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ; 000000000000000
| | | | | | ; "0000000000000000000000000000000"
03bc: | | | | | 30 49 ; SEQUENCE (49 バイト)
03be: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
03c0: | | | | | | | 55 1d 20
| | | | | | | ; 2.5.29.32 証明書ポリシー
03c3: | | | | | | 01 01 ; BOOL (1 バイト)
03c5: | | | | | | | ff
03c6: | | | | | | 04 3f ; OCTET_STRING (3f バイト)
03c8: | | | | | | 30 3d ; SEQUENCE (3d バイト)
03ca: | | | | | | 30 3b ; SEQUENCE (3b バイト)
03cc: | | | | | | 06 0b ; OBJECT_ID (b バイト)
03ce: | | | | | | | 2a 83 08 8c 9b 55 08 05 01 01 14
| | | | | | | ; 1.2.392.200149.8.5.1.1.20
03d9: | | | | | | 30 2c ; SEQUENCE (2c バイト)
03db: | | | | | | 30 2a ; SEQUENCE (2a バイト)
03dd: | | | | | | 06 08 ; OBJECT_ID (8 バイト)
03df: | | | | | | | 2b 06 01 05 05 07 02 01
| | | | | | | ; 1.3.6.1.5.5.7.2.1 CPS
03e7: | | | | | | 16 1e ; IA5_STRING (1e バイト)
03e9: | | | | | | 68 74 74 70 3a 2f 2f 77 77 77 2e 6a 70 6b 69 2e ; http://www.jpki.
03f9: | | | | | | 67 6f 2e 6a 70 2f 63 70 73 2e 68 74 6d 6c ; go.jp/cps.html
| | | | | | ; "http://www.jpki.go.jp/cps.html"
0407: | | | | | 30 81 ae ; SEQUENCE (ae バイト)
040a: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
040c: | | | | | | | 55 1d 12
| | | | | | | ; 2.5.29.18 発行者の別名
040f: | | | | | | 04 81 a6 ; OCTET_STRING (a6 バイト)
0412: | | | | | | 30 81 a3 ; SEQUENCE (a3 バイト)
0415: | | | | | | a4 81 a0 ; OPTIONAL[4] (a0 バイト)
0418: | | | | | | 30 81 9d ; SEQUENCE (9d バイト)
041b: | | | | | | 31 0b ; SET (b バイト)
041d: | | | | | | | 30 09 ; SEQUENCE (9 バイト)
041f: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0421: | | | | | | | | 55 04 06
| | | | | | | | ; 2.5.4.6 国/地域コード (C)
0424: | | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
0426: | | | | | | | 4a 50 ; JP
| | | | | | | ; "JP"
0428: | | | | | | 31 27 ; SET (27 バイト)
042a: | | | | | | | 30 25 ; SEQUENCE (25 バイト)
042c: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
042e: | | | | | | | | 55 04 0a
| | | | | | | | ; 2.5.4.10 組織 (O)
0431: | | | | | | | 0c 1e ; UTF8_STRING (1e バイト)
0433: | | | | | | | e5 85 ac e7 9a 84 e5 80 8b e4 ba ba e8 aa 8d e8 ; ................
0443: | | | | | | | a8 bc e3 82 b5 e3 83 bc e3 83 93 e3 82 b9 ; ..............
| | | | | | | ; "公的個人認証サービス"
0451: | | | | | | 31 30 ; SET (30 バイト)
0453: | | | | | | | 30 2e ; SEQUENCE (2e バイト)
0455: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0457: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
045a: | | | | | | | 0c 27 ; UTF8_STRING (27 バイト)
045c: | | | | | | | e5 85 ac e7 9a 84 e5 80 8b e4 ba ba e8 aa 8d e8 ; ................
046c: | | | | | | | a8 bc e3 82 b5 e3 83 bc e3 83 93 e3 82 b9 e7 bd ; ................
047c: | | | | | | | b2 e5 90 8d e7 94 a8 ; .......
| | | | | | | ; "公的個人認証サービス署名用"
0483: | | | | | | 31 33 ; SET (33 バイト)
0485: | | | | | | 30 31 ; SEQUENCE (31 バイト)
0487: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0489: | | | | | | | 55 04 0b
| | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
048c: | | | | | | 0c 2a ; UTF8_STRING (2a バイト)
048e: | | | | | | e5 9c b0 e6 96 b9 e5 85 ac e5 85 b1 e5 9b a3 e4 ; ................
049e: | | | | | | bd 93 e6 83 85 e5 a0 b1 e3 82 b7 e3 82 b9 e3 83 ; ................
04ae: | | | | | | 86 e3 83 a0 e6 a9 9f e6 a7 8b ; ..........
| | | | | | ; "地方公共団体情報システム機構"
04b8: | | | | | 30 81 b7 ; SEQUENCE (b7 バイト)
04bb: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
04bd: | | | | | | | 55 1d 1f
| | | | | | | ; 2.5.29.31 CRL 配布ポイント
04c0: | | | | | | 04 81 af ; OCTET_STRING (af バイト)
04c3: | | | | | | 30 81 ac ; SEQUENCE (ac バイト)
04c6: | | | | | | 30 81 a9 ; SEQUENCE (a9 バイト)
04c9: | | | | | | a0 81 a6 ; OPTIONAL[0] (a6 バイト)
04cc: | | | | | | a0 81 a3 ; OPTIONAL[0] (a3 バイト)
04cf: | | | | | | a4 81 a0 ; OPTIONAL[4] (a0 バイト)
04d2: | | | | | | 30 81 9d ; SEQUENCE (9d バイト)
04d5: | | | | | | 31 0b ; SET (b バイト)
04d7: | | | | | | | 30 09 ; SEQUENCE (9 バイト)
04d9: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
04db: | | | | | | | | 55 04 06
| | | | | | | | ; 2.5.4.6 国/地域コード (C)
04de: | | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
04e0: | | | | | | | 4a 50 ; JP
| | | | | | | ; "JP"
04e2: | | | | | | 31 0d ; SET (d バイト)
04e4: | | | | | | | 30 0b ; SEQUENCE (b バイト)
04e6: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
04e8: | | | | | | | | 55 04 0a
| | | | | | | | ; 2.5.4.10 組織 (O)
04eb: | | | | | | | 0c 04 ; UTF8_STRING (4 バイト)
04ed: | | | | | | | 4a 50 4b 49 ; JPKI
| | | | | | | ; "JPKI"
04f1: | | | | | | 31 23 ; SET (23 バイト)
04f3: | | | | | | | 30 21 ; SEQUENCE (21 バイト)
04f5: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
04f7: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
04fa: | | | | | | | 0c 1a ; UTF8_STRING (1a バイト)
04fc: | | | | | | | 4a 50 4b 49 20 66 6f 72 20 64 69 67 69 74 61 6c ; JPKI for digital
050c: | | | | | | | 20 73 69 67 6e 61 74 75 72 65 ; signature
| | | | | | | ; "JPKI for digital signature"
0516: | | | | | | 31 20 ; SET (20 バイト)
0518: | | | | | | | 30 1e ; SEQUENCE (1e バイト)
051a: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
051c: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
051f: | | | | | | | 0c 17 ; UTF8_STRING (17 バイト)
0521: | | | | | | | 43 52 4c 20 44 69 73 74 72 69 62 75 74 69 6f 6e ; CRL Distribution
0531: | | | | | | | 20 50 6f 69 6e 74 73 ; Points
| | | | | | | ; "CRL Distribution Points"
0538: | | | | | | 31 14 ; SET (14 バイト)
053a: | | | | | | | 30 12 ; SEQUENCE (12 バイト)
053c: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
053e: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
0541: | | | | | | | 0c 0b ; UTF8_STRING (b バイト)
0543: | | | | | | | 46 75 6b 75 6f 6b 61 2d 6b 65 6e ; Fukuoka-ken
| | | | | | | ; "Fukuoka-ken"
054e: | | | | | | 31 22 ; SET (22 バイト)
0550: | | | | | | 30 20 ; SEQUENCE (20 バイト)
0552: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0554: | | | | | | | 55 04 03
| | | | | | | ; 2.5.4.3 共通名 (CN)
0557: | | | | | | 0c 19 ; UTF8_STRING (19 バイト)
0559: | | | | | | 46 75 6b 75 6f 6b 61 2d 73 68 69 2d 43 68 75 6f ; Fukuoka-shi-Chuo
0569: | | | | | | 2d 6b 75 20 43 52 4c 44 50 ; -ku CRLDP
| | | | | | ; "Fukuoka-shi-Chuo-ku CRLDP"
0572: | | | | | 30 81 b0 ; SEQUENCE (b0 バイト)
0575: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
0577: | | | | | | | 55 1d 23
| | | | | | | ; 2.5.29.35 機関キー識別子
057a: | | | | | | 04 81 a8 ; OCTET_STRING (a8 バイト)
057d: | | | | | | 30 81 a5 ; SEQUENCE (a5 バイト)
0580: | | | | | | 80 14 ; CONTEXT_SPECIFIC[0] (14 バイト)
0582: | | | | | | | 4d e0 17 de 4b 7f 47 3d cd 86 7a 62 d3 8b 13 4a ; M...K.G=..zb...J
0592: | | | | | | | ce 83 55 8a ; ..U.
0596: | | | | | | a1 81 86 ; OPTIONAL[1] (86 バイト)
0599: | | | | | | | a4 81 83 ; OPTIONAL[4] (83 バイト)
059c: | | | | | | | 30 81 80 ; SEQUENCE (80 バイト)
059f: | | | | | | | 31 0b ; SET (b バイト)
05a1: | | | | | | | | 30 09 ; SEQUENCE (9 バイト)
05a3: | | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
05a5: | | | | | | | | | 55 04 06
| | | | | | | | | ; 2.5.4.6 国/地域コード (C)
05a8: | | | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
05aa: | | | | | | | | 4a 50 ; JP
| | | | | | | | ; "JP"
05ac: | | | | | | | 31 0d ; SET (d バイト)
05ae: | | | | | | | | 30 0b ; SEQUENCE (b バイト)
05b0: | | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
05b2: | | | | | | | | | 55 04 0a
| | | | | | | | | ; 2.5.4.10 組織 (O)
05b5: | | | | | | | | 0c 04 ; UTF8_STRING (4 バイト)
05b7: | | | | | | | | 4a 50 4b 49 ; JPKI
| | | | | | | | ; "JPKI"
05bb: | | | | | | | 31 23 ; SET (23 バイト)
05bd: | | | | | | | | 30 21 ; SEQUENCE (21 バイト)
05bf: | | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
05c1: | | | | | | | | | 55 04 0b
| | | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
05c4: | | | | | | | | 0c 1a ; UTF8_STRING (1a バイト)
05c6: | | | | | | | | 4a 50 4b 49 20 66 6f 72 20 64 69 67 69 74 61 6c ; JPKI for digital
05d6: | | | | | | | | 20 73 69 67 6e 61 74 75 72 65 ; signature
| | | | | | | | ; "JPKI for digital signature"
05e0: | | | | | | | 31 3d ; SET (3d バイト)
05e2: | | | | | | | 30 3b ; SEQUENCE (3b バイト)
05e4: | | | | | | | 06 03 ; OBJECT_ID (3 バイト)
05e6: | | | | | | | | 55 04 0b
| | | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
05e9: | | | | | | | 0c 34 ; UTF8_STRING (34 バイト)
05eb: | | | | | | | 4a 61 70 61 6e 20 41 67 65 6e 63 79 20 66 6f 72 ; Japan Agency for
05fb: | | | | | | | 20 4c 6f 63 61 6c 20 41 75 74 68 6f 72 69 74 79 ; Local Authority
060b: | | | | | | | 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 53 79 73 ; Information Sys
061b: | | | | | | | 74 65 6d 73 ; tems
| | | | | | | ; "Japan Agency for Local Authority Information Systems"
061f: | | | | | | 82 04 ; CONTEXT_SPECIFIC[2] (4 バイト)
0621: | | | | | | 01 32 c4 ab ; .2..
0625: | | | | | 30 1d ; SEQUENCE (1d バイト)
0627: | | | | | 06 03 ; OBJECT_ID (3 バイト)
0629: | | | | | | 55 1d 0e
| | | | | | ; 2.5.29.14 サブジェクト キー識別子
062c: | | | | | 04 16 ; OCTET_STRING (16 バイト)
062e: | | | | | 04 14 ; OCTET_STRING (14 バイト)
0630: | | | | | a0 8d e4 67 1b 25 91 24 fb b4 28 c1 ae b7 7a 0d ; ...g.%.$..(...z.
0640: | | | | | 0a 04 b9 23 ; ...#
0644: | | | | 30 0d ; SEQUENCE (d バイト)
0646: | | | | | 06 09 ; OBJECT_ID (9 バイト)
0648: | | | | | | 2a 86 48 86 f7 0d 01 01 0b
| | | | | | ; 1.2.840.113549.1.1.11 sha256RSA
0651: | | | | | 05 00 ; NULL (0 バイト)
0653: | | | | 03 82 01 01 ; BIT_STRING (101 バイト)
0657: | | | | 00
0658: | | | | 72 9c d3 92 42 b6 d5 c2 3f fa 03 97 70 61 fb 6c
0668: | | | | 43 b1 83 d4 d7 bf 69 23 22 13 be 77 2f 76 9f 8f
0678: | | | | cb 87 a2 36 c4 e0 b9 66 c6 f1 2a f2 c1 9c 5a db
0688: | | | | 55 d5 56 6b b7 1c 2a 09 af 57 c6 2b f0 5b 8c 47
0698: | | | | a9 2a 80 fd 10 1c 95 d3 3d 5a 48 70 ea 62 5e 26
06a8: | | | | 4b c9 fa c7 75 56 d1 10 29 6e 1e 0e b3 bb d8 2a
06b8: | | | | d8 ba 73 4e 6a d3 88 47 fc 83 43 c5 59 38 49 1f
06c8: | | | | 6c aa 5b 00 dd 0d 3d a2 93 0b 97 2c e5 d3 97 97
06d8: | | | | 7a 55 54 9a c5 bf b3 94 cf 42 80 d1 b9 75 cf f2
06e8: | | | | aa d5 9a 2f d8 b6 73 bf 1d e4 7b f8 78 db 19 c7
06f8: | | | | c7 ba ff 06 90 1e 43 c7 41 1d 52 47 0e fb 4b b7
0708: | | | | 53 e6 5b f3 e8 88 c2 79 2d cd 03 67 fe fe c8 11
0718: | | | | 6e 3c 8b 73 f0 90 42 d8 4a cf 10 e5 6c 0b ca 73
0728: | | | | 4f 56 de 4c 71 84 86 2c 78 73 54 18 d8 b4 15 1e
0738: | | | | 78 c4 d6 0e 64 30 af 87 c9 f7 b8 0b f8 0d db d1
0748: | | | | 5a 92 27 2c 4a ed 61 15 c7 ca 0c 42 62 60 db 80
0758: | | | 31 82 02 8f ; SET (28f バイト)
075c: | | | 30 82 02 8b ; SEQUENCE (28b バイト)
0760: | | | 02 01 ; INTEGER (1 バイト)
0762: | | | | 01
0763: | | | 30 81 89 ; SEQUENCE (89 バイト)
0766: | | | | 30 81 80 ; SEQUENCE (80 バイト)
0769: | | | | | 31 0b ; SET (b バイト)
076b: | | | | | | 30 09 ; SEQUENCE (9 バイト)
076d: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
076f: | | | | | | | 55 04 06
| | | | | | | ; 2.5.4.6 国/地域コード (C)
0772: | | | | | | 13 02 ; PRINTABLE_STRING (2 バイト)
0774: | | | | | | 4a 50 ; JP
| | | | | | ; "JP"
0776: | | | | | 31 0d ; SET (d バイト)
0778: | | | | | | 30 0b ; SEQUENCE (b バイト)
077a: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
077c: | | | | | | | 55 04 0a
| | | | | | | ; 2.5.4.10 組織 (O)
077f: | | | | | | 0c 04 ; UTF8_STRING (4 バイト)
0781: | | | | | | 4a 50 4b 49 ; JPKI
| | | | | | ; "JPKI"
0785: | | | | | 31 23 ; SET (23 バイト)
0787: | | | | | | 30 21 ; SEQUENCE (21 バイト)
0789: | | | | | | 06 03 ; OBJECT_ID (3 バイト)
078b: | | | | | | | 55 04 0b
| | | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
078e: | | | | | | 0c 1a ; UTF8_STRING (1a バイト)
0790: | | | | | | 4a 50 4b 49 20 66 6f 72 20 64 69 67 69 74 61 6c ; JPKI for digital
07a0: | | | | | | 20 73 69 67 6e 61 74 75 72 65 ; signature
| | | | | | ; "JPKI for digital signature"
07aa: | | | | | 31 3d ; SET (3d バイト)
07ac: | | | | | 30 3b ; SEQUENCE (3b バイト)
07ae: | | | | | 06 03 ; OBJECT_ID (3 バイト)
07b0: | | | | | | 55 04 0b
| | | | | | ; 2.5.4.11 組織単位 (OU) (OU)
07b3: | | | | | 0c 34 ; UTF8_STRING (34 バイト)
07b5: | | | | | 4a 61 70 61 6e 20 41 67 65 6e 63 79 20 66 6f 72 ; Japan Agency for
07c5: | | | | | 20 4c 6f 63 61 6c 20 41 75 74 68 6f 72 69 74 79 ; Local Authority
07d5: | | | | | 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 53 79 73 ; Information Sys
07e5: | | | | | 74 65 6d 73 ; tems
| | | | | ; "Japan Agency for Local Authority Information Systems"
07e9: | | | | 02 04 ; INTEGER (4 バイト)
07eb: | | | | 04 0c b8 9d
07ef: | | | 30 0d ; SEQUENCE (d バイト)
07f1: | | | | 06 09 ; OBJECT_ID (9 バイト)
07f3: | | | | | 60 86 48 01 65 03 04 02 01
| | | | | ; 2.16.840.1.101.3.4.2.1 sha256 (sha256NoSign)
07fc: | | | | 05 00 ; NULL (0 バイト)
07fe: | | | a0 81 d7 ; OPTIONAL[0] (d7 バイト)
0801: | | | | 30 18 ; SEQUENCE (18 バイト)
0803: | | | | | 06 09 ; OBJECT_ID (9 バイト)
0805: | | | | | | 2a 86 48 86 f7 0d 01 09 03
| | | | | | ; 1.2.840.113549.1.9.3 内容の種類
080e: | | | | | 31 0b ; SET (b バイト)
0810: | | | | | 06 09 ; OBJECT_ID (9 バイト)
0812: | | | | | 2a 86 48 86 f7 0d 01 07 01
| | | | | ; 1.2.840.113549.1.7.1 PKCS 7 データ
081b: | | | | 30 1c ; SEQUENCE (1c バイト)
081d: | | | | | 06 09 ; OBJECT_ID (9 バイト)
081f: | | | | | | 2a 86 48 86 f7 0d 01 09 05
| | | | | | ; 1.2.840.113549.1.9.5 署名時刻
0828: | | | | | 31 0f ; SET (f バイト)
082a: | | | | | 17 0d ; UTC_TIME (d バイト)
082c: | | | | | 32 33 30 37 30 32 31 39 35 30 33 34 5a ; 230702195034Z
| | | | | ; 2023/07/03 4:50
0839: | | | | 30 2f ; SEQUENCE (2f バイト)
083b: | | | | | 06 09 ; OBJECT_ID (9 バイト)
083d: | | | | | | 2a 86 48 86 f7 0d 01 09 04
| | | | | | ; 1.2.840.113549.1.9.4 メッセージ ダイジェスト
0846: | | | | | 31 22 ; SET (22 バイト)
0848: | | | | | 04 20 ; OCTET_STRING (20 バイト)
084a: | | | | | ef 71 b9 ca b1 0d cc 37 fc 82 ce b1 fc ff ca b6 ; .q.....7........
085a: | | | | | ae 33 e9 1c cc 08 25 c3 07 f8 5b fe 56 e6 0b 02 ; .3....%...[.V...
086a: | | | | 30 6c ; SEQUENCE (6c バイト)
086c: | | | | 06 09 ; OBJECT_ID (9 バイト)
086e: | | | | | 2a 86 48 86 f7 0d 01 09 0f
| | | | | ; 1.2.840.113549.1.9.15 SMIME 機能
0877: | | | | 31 5f ; SET (5f バイト)
0879: | | | | 30 5d ; SEQUENCE (5d バイト)
087b: | | | | 30 0b ; SEQUENCE (b バイト)
087d: | | | | | 06 09 ; OBJECT_ID (9 バイト)
087f: | | | | | 60 86 48 01 65 03 04 01 2a
| | | | | ; 2.16.840.1.101.3.4.1.42 aes256
0888: | | | | 30 0b ; SEQUENCE (b バイト)
088a: | | | | | 06 09 ; OBJECT_ID (9 バイト)
088c: | | | | | 60 86 48 01 65 03 04 01 02
| | | | | ; 2.16.840.1.101.3.4.1.2 aes128
0895: | | | | 30 0a ; SEQUENCE (a バイト)
0897: | | | | | 06 08 ; OBJECT_ID (8 バイト)
0899: | | | | | 2a 86 48 86 f7 0d 03 07
| | | | | ; 1.2.840.113549.3.7 3des
08a1: | | | | 30 0e ; SEQUENCE (e バイト)
08a3: | | | | | 06 08 ; OBJECT_ID (8 バイト)
08a5: | | | | | | 2a 86 48 86 f7 0d 03 02
| | | | | | ; 1.2.840.113549.3.2 rc2
08ad: | | | | | 02 02 ; INTEGER (2 バイト)
08af: | | | | | 00
08b0: | | | | | 80
08b1: | | | | 30 0d ; SEQUENCE (d バイト)
08b3: | | | | | 06 08 ; OBJECT_ID (8 バイト)
08b5: | | | | | | 2a 86 48 86 f7 0d 03 02
| | | | | | ; 1.2.840.113549.3.2 rc2
08bd: | | | | | 02 01 ; INTEGER (1 バイト)
08bf: | | | | | 40
08c0: | | | | 30 07 ; SEQUENCE (7 バイト)
08c2: | | | | | 06 05 ; OBJECT_ID (5 バイト)
08c4: | | | | | 2b 0e 03 02 07
| | | | | ; 1.3.14.3.2.7 des
08c9: | | | | 30 0d ; SEQUENCE (d バイト)
08cb: | | | | 06 08 ; OBJECT_ID (8 バイト)
08cd: | | | | | 2a 86 48 86 f7 0d 03 02
| | | | | ; 1.2.840.113549.3.2 rc2
08d5: | | | | 02 01 ; INTEGER (1 バイト)
08d7: | | | | 28
08d8: | | | 30 0d ; SEQUENCE (d バイト)
08da: | | | | 06 09 ; OBJECT_ID (9 バイト)
08dc: | | | | | 2a 86 48 86 f7 0d 01 01 01
| | | | | ; 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
08e5: | | | | 05 00 ; NULL (0 バイト)
08e7: | | | 04 82 01 00 ; OCTET_STRING (100 バイト)
08eb: | | | 6e f7 03 6f 7f 4d 3b 05 29 a1 3d 23 c8 3f 67 c5 ; n..o.M;.).=#.?g.
08fb: | | | b5 c9 85 79 47 50 f5 0c cd 40 e2 08 31 92 92 89 ; ...yGP...@..1...
090b: | | | 54 8a b5 e8 21 a8 f0 c2 f4 bd 66 d2 ef bd 6b 87 ; T...!.....f...k.
091b: | | | 95 30 2d 19 ac a6 97 87 65 b0 8b 6a 76 67 e1 92 ; .0-.....e..jvg..
092b: | | | 2d 52 22 8d 9c cb c4 18 7f d1 df 35 e0 30 5a 6c ; -R"........5.0Zl
093b: | | | b7 fc 82 a5 3e a7 ca 0b 80 db 34 8a 8b 1a ba cf ; ....>.....4.....
094b: | | | 44 a1 4c 2e dc f8 61 24 d6 b2 a5 f7 5a b2 dd 7c ; D.L...a$....Z..|
095b: | | | 44 7b e9 84 2c 50 28 36 58 de 76 1a 30 25 20 7a ; D{..,P(6X.v.0% z
096b: | | | 1a d0 18 44 93 02 ac 9e 48 8d d7 57 7e 73 8d 5f ; ...D....H..W~s._
097b: | | | 81 17 d0 ab 37 7b 0e 8b 02 f3 d2 58 ee 77 97 40 ; ....7{.....X.w.@
098b: | | | c5 cb 54 e3 7d ea 33 92 e4 12 94 98 ae b4 41 b4 ; ..T.}.3.......A.
099b: | | | 69 9c 01 88 ad 27 81 2a 3e 34 44 75 c7 35 7b 77 ; i....'.*>4Du.5{w
09ab: | | | ef 9b 2b de 7d 4f 56 93 22 7c db 92 28 bc ea ce ; ..+.}OV."|..(...
09bb: | | | ae 59 0c 2e b1 a9 11 d7 8a 5e 9d 64 e4 6f 53 52 ; .Y.......^.d.oSR
09cb: | | | ab 96 05 18 19 e8 a1 34 36 d0 ec eb bb 0e 0b 03 ; .......46.......
09db: | | | 84 03 7a a7 76 f5 63 e4 e7 6d 96 5a 2c 0e 4f 05 ; ..z.v.c..m.Z,.O.
09eb: | | | 00 00 ; 不確定長 (@000f)
09ed: | | 00 00 ; 不確定長 (@000d)
09ef: | 00 00 ; 不確定長 (@0000)
CertUtil: -asn コマンドは正常に完了しました。
Windows以外の、LinuxやMacOSなどのOSであれば、OpenSSLコマンドを用いるのがよいでしょう。
asn1parseサブコマンドで確認できます。
openssl asn1parse -in sign.txt -i
とすると、上のWindowsでのCertUtilコマンドと似た感じの出力が得られます。
また、openssl cmsサブコマンドを用いて、
openssl cms -verify -in signed-mail.txt -CAfile JPKIfordigitalsignature.crt
とすることで、
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
これはテストメールです。
電子署名はきちんと付くかな?
CMS Verification successful
のように、電子署名の検証を行うことができます。
メール受信側の設定
概要
メールを受信する側の設定としては、
- 認証局証明書の登録
- CRLやOCSPの設定
となります。
認証局証明書の登録
認証局証明書の登録としては、認証局証明書を入手し、登録するという手順となります。
電子メール送信側の設定では、Thunderbirdの証明書マネージャーに登録しましたが、これは、ThunderbirdはWindowsの証明書ストアを利用せず、独自に電子証明書を管理しているためです。
ここでは、電子メール受信側はOutlookを利用している前提なので、認証局証明書は、Windowsの証明書ストアに登録することとします。
入手した認証局証明書は、JPKIforditigalsignature.crtという名前のファイル(前の方の項で、マイナンバーカードから取り出したものです。)であるとします。
やり方はいくつかあると思いますが、ここでは、以下の方法で行いました。
- エクスプローラー上で、JPKIforditigalsignature.crtをダブルクリックします。
- 証明書が表示されるので、「証明書のインストール」をクリックします。
- 証明書のインポートウィザードが起動します。
- 保存場所として、「現在のユーザー」または「ローカルコンピューター」を選択し、「次へ」をクリックします。(ここでは、「現在のユーザー」を選択しましたが、実運用では、ローカルコンピューターを選択することもあるでしょう。)
- 証明書ストアについては、特にこだわりがなければ「証明書の種類に基づいて、自動的に証明書ストアを選択する」を選んでおけば問題ないと思います。
- 指定した内容を確認し、問題がなければ「完了」をクリックします。
CRLやOCSPの設定
証明書の検証を厳密に行うためには、CRLやOCSPを用いた検証が必要ですが、筆者が調べた範囲では、その具体的な方法を見つけきれませんでした。
電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律第17条第1項に規定する署名検証者又は同条第5項に規定する団体署名検証者として認定されると必要な情報が提示されるようなので、そちらを参照してください。
認定の基準については、マイナンバーカードを活用したオンライン取引等の可能性についての26ページ以降に記載がありますが、規程類の整備や入退場管理に必要な措置などかなり面倒です。
より具体的な内容については、公的個人認証サービスによる電子証明書(民間事業者向け)に記載のある公的個人認証サービス利用のための民間事業者向けガイドライン1.3版等をご確認ください。
なお、CRLを用いた執行情報の情報提供手数料は恒久的に無料に、OCSPを用いた場合は2025年12月31日までは無料となっています。
まとめ
マイナンバーカードに搭載されている署名用電子証明書を用いて、Thunderbirdで、S/MIMEにより電子署名付きの電子メールを用いた電子申請を行う方法を説明しました。
注意
上に記載した方法を個人対個人でのメールの送受信に用いることは、技術的には可能でしょうが、公的個人認証サービス 署名用認証局 運用規の1.4.1. 適切な証明書の利用用途には、署名用CAの発行する署名用電子証明書の用途として、
・ 行政機関等及び裁判所で行うオンライン申請・届出等の手続に係る電子署名
・ 民間企業による電子商取引に係る電子申請
の2項目しか記載されていないため、これらの用途以外では用いてはいけません。
(そもそも、相手に、自分の氏名、住所等を開示することになるので、使えたとしても使う場面は限定されそう。)
おまけ
2023年8月11日に、CA/BROWSER FORUMから、Baseline Requirements for the Issuance and Management of Publicly‐Trusted S/MIME Certificates Version 1.0.1が公開されました。
長いのでまだ全部は読めていないのですが、Overviewのところに
An S/MIME Certificate for the purposes of this document can be identified by the existence of an
Extended Key Usage (EKU) for id-kp-emailProtection (OID: 1.3.6.1.5.5.7.3.4) and the inclusion
of a rfc822Name or an otherName of type id-on-SmtpUTF8Mailbox in the subjectAltName
extension.
という記載があり、rfc822NameやotherName of type id-on-SmtpUTF8Mailbox(要はメールアドレス)は、マイナンバーカードの証明書には含まれていないので、このBaseline Requirementsに適合していないなぁと思ったのでした。
そこから、国が国民にメールアドレスを付与することをチラッと妄想してみたりなどしたのでした。
Discussion