2021/04/23
マイナンバーカード読んでみた
連日の雨ですっかり桜の花は散ってしまいましたが、
コロナのせいでお花見の予定もなかったのでノープロブレムでした。
今回は弊社の吉津が「マイナンバーカード読んでみた」というテーマで話しました。
この間、メルペイがスマホ決済サービスとして初となるマイナンバーカードの公的個人認証サービス(JPKI)を利用した本人確認に対応というニュースを見かけました。
これまでこのような本人確認では、免許証の写真などを撮影して送り、それを人力で確認するという流れが普通だったと思うのですが、このサービスを利用すればオンラインで即座に本人確認を完了することができるそうです。
どういう仕組みでそれが可能なのか気になったのですが、今後マイナンバーカードが普及していくにあたって、そのようにサービスが増えていくと思います。
持ってはいるけど知らないことも多いので、この機会にマイナンバーカードについて調べてみました。
などの情報が入っています。
上から3つはカードを見てもらえば書いてあるのでわかりますが、
2つの電子証明書と4つのアプリとは一体なんのことでしょうか。
証明書には期限があって、それを過ぎてしまったり、住所・氏名・性別が変更されると無効化されます。
そうすると再発行が必要です。
主な用途はデータ送信。
例えば、e-Tax などで書類を送る時、内容が改竄されていないかを証明するために使われています。
元の書類データと書類データに署名したデータ、さらに公開鍵と証明書が合わせてサービス側に送信されると、証明書が有効かどうかを確認する機関がそれをチェック、サービスのバックエンドはその機関に問い合わせを行うことで、送られてきた証明書が正しいものかどうかを確認することができるという仕組みです。
この際、カードだけでなく、自分で登録した署名証明書用のパスワード(6~16桁の英数字)が必要になります。
カードと記憶、両方の認証が本人確認の担保になるということみたいです。
なので引っ越したりしても有効なままです。ただし、死亡すると勝手に無効化されます。
証明書にはマイナンバーと紐づいた識別子が入っており、それを使ってある個人を特定することができます。
後ほどもう少し詳しく説明します。
アプリと言っても、コマンドを送れば結果が返ってくるぐらいの簡易なものです。
券面AP
カードの表面と裏面の画像データが取得できるアプリです。
対面で画像を確認する時に使われます。
券面事項入力補助AP
券面APと似ているのですが、マイナンバーとそれに入力されている4情報のテキストを取得するアプリです。
住基AP
住基ネットのコードを取得するアプリになります。
JPKI-AP
公的個人認証サービスに使われるアプリです。
詳しくは次の項で説明します。
アプリについてもっと知りたいという方はこちらのリンクをご覧になってみてください。
冒頭でメルペイの例について少し触れましたが、それも含めどのような使い道があるのか見てみましょう。
というのが公的個人認証サービスらしいです。
要約すると、JPKI を使えばオンラインで本人確認ができて、それには先ほど話した2つの電子証明書が必要になるという話です。
原則、マイナンバーは法律で決められた人しか扱うことができません。
そのため、公的個人認証の利用も公的機関などに初めは限られていたのですが、法律の改正によって2018年頃から段階的に電子証明書を用いた公的個人認証の活用が民間業者に向けても開放されるようになりました。
電子証明書にはマイナンバーの記載がないので、民間業者はマイナンバーを知ることなく電子証明書のみを扱うことができ、さらに国側にマイナンバーに紐づいたそれらの利用履歴や情報を一切提供する必要がないため、サービス側の情報はサービス側だけで保持されるようになっています。その逆も然りです。
なので、よくあるマイナンバーに紐づいた個人情報が国に筒抜けになるというようなことはありません。ということらしいです。
ざっと調べた感じ、今のところ民間業者での利用はまだなさそうなのですが、総務省が説明しているPDFの中では OAuth のような形での利用者証明書を使ってのログインがユースケースとして紹介されていました。
さらに進んだ話では、スマホの SIM に利用者証明書をダウンロードしておけば、スマホをかざすだけで施設などへの入場をチケットレスで可能にするというユースケースも紹介されています。SIM にそんな情報を載せてしまって大丈夫なのか気になるところです…。
総務省の想定では、利用者証明書から取得できる個人の識別子(シリアル番号)をIDとして用いるようなのですが、証明書が変更されると識別子も新しいものに変わってしまうそうです。
なので、サービスを作る側としては、ログイン時に送られてきた識別子が登録されていないものだった場合、新旧識別子を紐付けして管理している国のシステムにそれを投げます。
すると一つ前の識別子が返ってきます。そういう仕様らしいです。
返ってきた一つ前の識別子をサービス内で検索、それを何度も繰り返し、一致しない時は新規登録だと判断して扱うという実装になるのかなと思います。めんどくさいですね。
保険証の情報とマイナンバーカードを紐付けておくことで、保険証の代わりにマイナンバーカードでも健康保険が適用されます。
e-Tax
e-Taxとは、様々な税金の申告や法定調書の提出、届出、申請などの各種手続をインターネットを通じて行うことができるサービスです。使っている人もいるのではないでしょうか。
スマホでマイナンバーカードを読み取って、4桁の利用者証明書のパスワードを入力すれば e-Tax にログインできます。
通常、16桁の利用者識別番号を入力しないといけないのですが、その手間が省ける。さらに、e-Taxを利用するために必要だった電子証明書の登録が不要になりますが、その代わり署名用の電子証明書で署名しなければいけません。
こちらに詳しいことがまとめてあったので、興味のある方はご覧ください。
他にもたくさんのユースケースが紹介されています。
参考:
公的個人認証サービス利用のための民間事業者向けガイドライン
マイナンバーカード・公的個人認証サービス等の利活用推進について
公的個人認証サービス及びマイナンバーカードを巡る最新の動向
スマホにマイナンバーカードを当てた状態でアプリを起動、ピンコードの残り試行回数を見ようとすると、下のように取得できます。
続いて、わざと間違ったパスワードを入力してから残り回数を見た場合です。
間違えると残り回数が減っていますね。
残り回数は連続なので、一度成功するとリセットされます。
ちなみに、アプリごとにリセット回数は管理されているみたいです。
TRETJapanNFCReader で実装されているのはマイナンバーカードに搭載されている機能の一部のみなので、足りない機能は myna を移植することで実現出来そうです。興味のある方は遊んでみてください。
今回の話は以上になります。
セキュリティ的にどうなんだろうという部分がまだまだあるように感じますが、とはいえマイナンバーカードをうまく利用できるようになれば色々と便利にはなりそうです。
今後の発展に期待しながら、続報を待とうと思います。
コロナのせいでお花見の予定もなかったのでノープロブレムでした。
今回は弊社の吉津が「マイナンバーカード読んでみた」というテーマで話しました。
この間、メルペイがスマホ決済サービスとして初となるマイナンバーカードの公的個人認証サービス(JPKI)を利用した本人確認に対応というニュースを見かけました。
これまでこのような本人確認では、免許証の写真などを撮影して送り、それを人力で確認するという流れが普通だったと思うのですが、このサービスを利用すればオンラインで即座に本人確認を完了することができるそうです。
どういう仕組みでそれが可能なのか気になったのですが、今後マイナンバーカードが普及していくにあたって、そのようにサービスが増えていくと思います。
持ってはいるけど知らないことも多いので、この機会にマイナンバーカードについて調べてみました。
マイナンバーカードとは
マイナンバー通知カードを持って役所に行けばもらえる顔写真入りの身分証明書です。- マイナンバー
- 氏名・住所・年齢・生年月日
- 顔写真
- 2つの電子証明書
- 4つのアプリ
などの情報が入っています。
上から3つはカードを見てもらえば書いてあるのでわかりますが、
2つの電子証明書と4つのアプリとは一体なんのことでしょうか。
2つの電子証明書
マイナンバーカードの IC チップに入っているもので、一つが利用者証明用、もう一つが署名用の証明書です。署名用
氏名・住所・年齢・生年月日の4情報が含まれた証明書です。証明書には期限があって、それを過ぎてしまったり、住所・氏名・性別が変更されると無効化されます。
そうすると再発行が必要です。
主な用途はデータ送信。
例えば、e-Tax などで書類を送る時、内容が改竄されていないかを証明するために使われています。
元の書類データと書類データに署名したデータ、さらに公開鍵と証明書が合わせてサービス側に送信されると、証明書が有効かどうかを確認する機関がそれをチェック、サービスのバックエンドはその機関に問い合わせを行うことで、送られてきた証明書が正しいものかどうかを確認することができるという仕組みです。
この際、カードだけでなく、自分で登録した署名証明書用のパスワード(6~16桁の英数字)が必要になります。
カードと記憶、両方の認証が本人確認の担保になるということみたいです。
利用者証明用
こちらには4情報が入っていません。なので引っ越したりしても有効なままです。ただし、死亡すると勝手に無効化されます。
証明書にはマイナンバーと紐づいた識別子が入っており、それを使ってある個人を特定することができます。
後ほどもう少し詳しく説明します。
4 つのアプリ
マイナンバーカードの IC チップには4つのアプリが搭載されています。アプリと言っても、コマンドを送れば結果が返ってくるぐらいの簡易なものです。
券面AP
カードの表面と裏面の画像データが取得できるアプリです。
対面で画像を確認する時に使われます。
券面事項入力補助AP
券面APと似ているのですが、マイナンバーとそれに入力されている4情報のテキストを取得するアプリです。
住基AP
住基ネットのコードを取得するアプリになります。
JPKI-AP
公的個人認証サービスに使われるアプリです。
詳しくは次の項で説明します。
アプリについてもっと知りたいという方はこちらのリンクをご覧になってみてください。
マイナンバーカードの使い道
今紹介した2つの電子証明書と4つのアプリを使って色々なことができるそうです。冒頭でメルペイの例について少し触れましたが、それも含めどのような使い道があるのか見てみましょう。
公的個人認証サービス(JPKI)
総務省によると、
公的個人認証サービスとは、オンラインで(=インターネットを通じて)申請や届出といった行政手続などやインターネットサイトにログインを行う際に、他人による「なりすまし」やデータの改ざんを防ぐために用いられる本人確認の手段です。 「電子証明書」と呼ばれるデータを外部から読み取られるおそれのないマイナンバーカード等のICカードに記録することで利用が可能となります。
というのが公的個人認証サービスらしいです。
要約すると、JPKI を使えばオンラインで本人確認ができて、それには先ほど話した2つの電子証明書が必要になるという話です。
原則、マイナンバーは法律で決められた人しか扱うことができません。
そのため、公的個人認証の利用も公的機関などに初めは限られていたのですが、法律の改正によって2018年頃から段階的に電子証明書を用いた公的個人認証の活用が民間業者に向けても開放されるようになりました。
電子証明書にはマイナンバーの記載がないので、民間業者はマイナンバーを知ることなく電子証明書のみを扱うことができ、さらに国側にマイナンバーに紐づいたそれらの利用履歴や情報を一切提供する必要がないため、サービス側の情報はサービス側だけで保持されるようになっています。その逆も然りです。
なので、よくあるマイナンバーに紐づいた個人情報が国に筒抜けになるというようなことはありません。ということらしいです。
利用者証明書を使ってのログイン
現状ではマイナポータルへのログインなどに使われています。ざっと調べた感じ、今のところ民間業者での利用はまだなさそうなのですが、総務省が説明しているPDFの中では OAuth のような形での利用者証明書を使ってのログインがユースケースとして紹介されていました。
さらに進んだ話では、スマホの SIM に利用者証明書をダウンロードしておけば、スマホをかざすだけで施設などへの入場をチケットレスで可能にするというユースケースも紹介されています。SIM にそんな情報を載せてしまって大丈夫なのか気になるところです…。
総務省の想定では、利用者証明書から取得できる個人の識別子(シリアル番号)をIDとして用いるようなのですが、証明書が変更されると識別子も新しいものに変わってしまうそうです。
なので、サービスを作る側としては、ログイン時に送られてきた識別子が登録されていないものだった場合、新旧識別子を紐付けして管理している国のシステムにそれを投げます。
すると一つ前の識別子が返ってきます。そういう仕様らしいです。
返ってきた一つ前の識別子をサービス内で検索、それを何度も繰り返し、一致しない時は新規登録だと判断して扱うという実装になるのかなと思います。めんどくさいですね。
保険証との紐付け
既に利用されているサービスみたいです。保険証の情報とマイナンバーカードを紐付けておくことで、保険証の代わりにマイナンバーカードでも健康保険が適用されます。
e-Tax
e-Taxとは、様々な税金の申告や法定調書の提出、届出、申請などの各種手続をインターネットを通じて行うことができるサービスです。使っている人もいるのではないでしょうか。スマホでマイナンバーカードを読み取って、4桁の利用者証明書のパスワードを入力すれば e-Tax にログインできます。
通常、16桁の利用者識別番号を入力しないといけないのですが、その手間が省ける。さらに、e-Taxを利用するために必要だった電子証明書の登録が不要になりますが、その代わり署名用の電子証明書で署名しなければいけません。
こちらに詳しいことがまとめてあったので、興味のある方はご覧ください。
他にもたくさんのユースケースが紹介されています。
参考:
公的個人認証サービス利用のための民間事業者向けガイドライン
マイナンバーカード・公的個人認証サービス等の利活用推進について
公的個人認証サービス及びマイナンバーカードを巡る最新の動向
券面事項入力補助APで遊んでみる
TRETJapanNFCReader を下地に簡単なアプリを作り、券面事項入力補助APからマイナンバー情報を文字列で読み出すということをやってみました。スマホにマイナンバーカードを当てた状態でアプリを起動、ピンコードの残り試行回数を見ようとすると、下のように取得できます。
続いて、わざと間違ったパスワードを入力してから残り回数を見た場合です。
間違えると残り回数が減っていますね。
残り回数は連続なので、一度成功するとリセットされます。
ちなみに、アプリごとにリセット回数は管理されているみたいです。
TRETJapanNFCReader で実装されているのはマイナンバーカードに搭載されている機能の一部のみなので、足りない機能は myna を移植することで実現出来そうです。興味のある方は遊んでみてください。
今回の話は以上になります。
セキュリティ的にどうなんだろうという部分がまだまだあるように感じますが、とはいえマイナンバーカードをうまく利用できるようになれば色々と便利にはなりそうです。
今後の発展に期待しながら、続報を待とうと思います。