投稿

6月, 2021の投稿を表示しています

Java版Bouncy Castleを利用して署名用電子証明書から基本4情報を取り出す

本記事では、Java版 Bouncy Castle ライブラリを利用して、マイナンバーカードに格納されている(公的個人認証サービスの)署名用電子証明書から基本4情報を取り出すサンプルを作ってみます。 【目次】 [1]はじめに [2]参考情報 [3]基本4情報を抽出するサンプルプログラム [1]はじめに 以前の記事『 マイナンバーカードの電子証明書(公的個人認証サービス)にJava APIでアクセスする 』において、個人認証サービス AP(公的個人認証サービスのJavaライブラリ)を利用して、署名用電子証明書に記載されている基本4情報(氏名、性別、生年月日、住所)を取り出す方法を見ました。 本記事では、公的個人認証サービスのライブラリに依存しない方法で、署名用電子証明書から基本4情報を取り出す方法を見ていきます。 電子証明書を解析する方法はいろいろありますが、Java続きという事で、今回はJava版の Bouncy Castle ライブラリを利用することにします。 [2]参考情報 ここはさらりと流して頂いて構わないのですが、今回のコードに関する参考情報をメモしておきます。 ガッツリ理解するなら、電子証明書の基礎から理解する必要があります。 Request for Comments: 5280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile https://datatracker.ietf.org/doc/html/rfc5280 日本語訳:インターネットX.509 PKI: 証明書と CRL のプロファイル https://www.ipa.go.jp/security/rfc/RFC5280-00JA.html この内容に加えて、実際の証明書のバイナリファイルを理解しようとすると、構文規則のASN.1と、その符号化規則(BER、DER)の知識も必要となります。 (Wikipedia)Abstract Syntax Notation One(ASN.1) その他、PKIX関連の内容などを含めて、深く理解するのはかなりハードルが高いと思いますが、与えられた証明書から必要な情報を抽出するプログラムを作る、ということ