iOS アプリ開発に関連するトピックを提供しています。

Swift と CryptoTokenKit を使用してマイナンバーカードのデータを取得する

Swift と CryptoTokenKit で運転免許証のデータを取得 しましたが、IC カードを搭載した公的な身分証明書としてはマイナンバーカードが挙げられます。

運転免許証と同様に、Swift と CryptoTokenKit でマイナンバーカードのデータを取得するサンプルアプリケーションを作成しました。

github.com

環境構築

アプリを使用するためには、Mac に対応したカードリーダーが必要です。 前回同様に NTT コミュニケーションズ の ACR1251CL を使用してマイナンバーカードを読み取ることができました。

NTTコミュニケーションズ ICカードリーダライタ ACR1251CL-NTTCom

NTTコミュニケーションズ ICカードリーダライタ ACR1251CL-NTTCom

アプリケーションの使用方法

github のレポジトリ からソースコードを取得したら、Xcode で開いてビルドします。あとは以下の手順でアプリケーションを操作してください。

  1. ICカードリーダーにマイナンバーカードをセットします
  2. 取得したいデータに対応したボタンを押下すると、IC カードから該当データを取得して画面に表示します

カードリーダーとの通信に成功すると以下の情報が表示されます。

  • マイナンバー (個人番号)
  • 基本項目 (氏名/住所/生年月日/性別)
  • 券面
  • 利用者用電子証明書
  • 署名用電子証明書

データの種類によっては取得の際に暗証番号を必要とします。暗証番号の入力に複数回失敗するとアクセスすることができなくなります。 その場合は市役所等での復旧手続きが必要となりますので、ご注意ください。

サンプルアプリケーション

アプリケーションの主目的は Swift と CryptoTokenKit のサンプルコードを示すことなので、マイナンバーカードからのデータ取得については必要最低限の実装になっています。そのため、証明書の内容確認や記載事項の Data を文字列に変更する処理などは実装していません。 Security Framework運転免許証のサンプルアプリケーション を参考にして頂ければ実装できると思います。

謝辞

マイナンバーカード内のカードアプリケーションに関する詳細な仕様は公開されていないようなので、実装の際には既に解析をされた方々の情報を参考に致しました。深く感謝いたします。