$30 off During Our Annual Pro Sale. View Details »

マイナンバーカードの暗号技術とセキュリティ

Mako
September 11, 2023

 マイナンバーカードの暗号技術とセキュリティ

Mako

September 11, 2023
Tweet

More Decks by Mako

Other Decks in Technology

Transcript

  1. マイナンバーカードの
    暗号技術とセキュリティ
    @tex2e
    セキュリティ・ミニキャンプ新潟 2023

    View Slide

  2. 自己紹介
    ● @tex2e
    ● 得意分野
    ○ 暗号技術、プロトコル、セキュリティ
    ● 活動
    ○ セキュリティ・キャンプ2018 TLS 1.3/暗号ゼミ(参加者)
    ○ セキュリティ・キャンプ2019〜2021(チュータ)
    ○ セキュリティ・キャンプ2022〜2023(講師)
    ○ Hardening Project 2021〜2022(競技者)

    View Slide

  3. 今日の目的
    ● 暗号技術で社会インフラをより良くする方法を学ぶ
    ○ 本人確認

    View Slide

  4. 今日の目標
    ● マイナンバー制度について知る(0.5h)
    ○ マイナンバー、情報連携
    ● マイナンバーカードの仕組みを理解する(> 1.0h)
    ○ 2種類の証明書、APDUコマンド
    ● デジタル本人確認について知る(< 1.0h)
    ○ 犯収法、身元確認と本人認証の違い

    View Slide

  5. サンプルプログラム
    ● 講義中に使用するプログラムはGitHubで公開しています。
    ● 事前に各自でダウンロードしてください
      https://github.com/tex2e/secminicamp2023-mynumber/

    View Slide

  6. Overview of Number System
    マイナンバー制度の概要

    View Slide

  7. マイナンバー制度の目的
    ● 行政を効率化する
    ○ 情報照会・転記・入力に要する時間を削減する
    ● 国民の利便性を高める
    ○ 行政手続きに必要な添付書類を削減する
    ○ 行政機関からのお知らせを受け取る
    ● 公平・公正な社会を実現する
    ○ 所得や他の行政サービスの受給状況を把握し、
    脱税や不正受給を防止する

    View Slide

  8. マイナンバー制度
    ● 住民票コードからマイナンバーへの変換は一方向性である
    ○ 行政手続における特定の個人を識別するための番号の利用等に関する法律(平成二十五年法律
    第二十七号)第八条
    ● 制度改正前:住民票コード (11桁の数字) のみで管理
    ○ 民間企業では利用禁止
    ● 制度改正後:マイナンバー (12桁の数字) でも管理
    ○ 民間企業でも社会保障・税・災害の分野で利用可

    View Slide

  9. 余談:マイナンバーの検査用数字
    ● マイナンバーの12桁目はチェックデジット ※実質11桁
    最下位の桁を1桁目としたときのn桁目
    ● 行政手続における特定の個人を識別するための番号の利用等に関する法律に規定する個人番号、個人番号
    カード、特定個人情報の提供等に関する命令(平成二十六年総務省令第八十五号)第五条
    ※11で除算した余りが1のときは
     0とする

    View Slide

  10. マイナンバー付番の流れ
    マイナンバーの付番の流れ(参考資料2) ― 法務省の資料 https://www.moj.go.jp/content/001154671.pdf

    View Slide

  11. 住民基本台帳
    ● 住民票
    ○ 氏名、生年月日、住所、性別などが記載された情報
    ● 住民基本台帳
    ○ 様々な人の住民票をまとめた台帳
    住民票とは/札幌市 
    https://www.city.sapporo.jp/shimin/koseki/shomei/what_juminhyo.html

    View Slide

  12. 住民票コード
    ● 法律で定められた行政機関の申請や届出に利用する
    ○ 転入届、パスポート申請、年金の裁定請求など
    ● 住基ネットを経由して自治体間で連携できる (2002〜)
    住民票とは/札幌市 
    https://www.city.sapporo.jp/shimin/koseki/shomei/what_juminhyo.html

    View Slide

  13. 住基ネット
    住基ネットの回線構成図 ― 総務省の資料 https://www.soumu.go.jp/main_content/000767707.pdf

    View Slide

  14. 住基ネット
    ● 住基ネットで照会できる情報は本人確認情報のみ
    ⇒ 本人確認情報だけでは社会保障制度に関する手続きができない
    ● 社会保障制度に関する各種手続きは、
    様々な行政機関が発行する証明書の提出が必要になる
    ○ 例)住民票、課税証明書、生活保護受給証明書、障害者手帳 など

    View Slide

  15. 消えた年金問題 (2007)
    ● 年金手帳などに記載されている基礎年金番号に統合されていない記
    録(持ち主不明の年金記録)約5095万件の存在が明らかに
    ● 紙台帳で管理していた年金記録を電子化する際に不正確な転記
    年金記録問題とは?
    ― 日本年金機構 https://www.nenkin.go.jp/service/nenkinkiroku/torikumi/sonota/kini-cam/20150601-05.html

    View Slide

  16. 消えた年金問題への対策
    ● 地方自治体、日本年金機構、事業主のそれぞれが共通番号で個人を
    特定・管理すれば、転職・結婚などの異動があっても年金情報の整合
    性を保てる
    ⇒ 社会保障番号制度の導入

    View Slide

  17. 社会保障・税番号制度の導入
    ● 民主党政権マニフェストに登場 (2009)
    ● 共通番号(後にマイナンバー)で個人を識別
    ● 税や社会保障分野の個人情報は情報連携基盤
    (情報提供ネットワークシステム)を経由して連携
    ● 住民票コードとは異なり共通番号は民間でも広く利用可
    ● マイナンバー法案が可決、成立 (2013)

    View Slide

  18. マイナンバー制度の重点3項目
    ● マイナンバー
    ○ 行政手続き等で特定の個人を識別するための番号
    ● マイナンバーカード
    ○ 本人確認書類、証明書のコンビニ交付、健康保険証(運転免許証)
    ● マイナポータル
    ○ 電子申請(ぴったりサービス、引越し手続きオンラインサービス)

    View Slide

  19. マイナンバー
    ● 住民票を持つ日本国内の全住民に付番される12桁の番号
    ● 社会保障、税、災害対策に関する法律で定められた手続きで使用
    マイナンバー(日本国内のID)
    団体内統合宛名番号(市町村内の
    ID)
    宛名番号(行政システム内のID)

    View Slide

  20. マイナンバーカード
    ● 公的な身分証明書として利用できる写真付き本人確認書類
    ● ICチップに電子証明書が格納され、公的個人認証サービスで利用
    ・電子証明書の取り出し
    ・データへの署名作成

    View Slide

  21. マイナンバーカード
    ● 取得も返納も自由
    ○ カードの有無に関係なく住民には住民票コード及びマイナンバーが割り当てら
    れているため管理上の影響はない
    ● 未取得・返納によるデメリット
    ○ 行政手続きなどの本人確認作業に時間がかかる
    ○ 情報連携(行政機関間の個人情報提供)の記録をマイナポータル上でチェック
    できない

    View Slide

  22. マイナポータル
    ● 子育てや介護などの行政手続のオンライン申請がワンストップででき
    るサイト
    ● 行政からのお知らせを受け取れるサイト

    View Slide

  23. マイナンバー制度Q&A
    ● デジタル庁へのご意見・ご要望の一部を要約して紹介
    https://www.digital.go.jp/policies/mynumber/faq-insurance-card/
    マイナンバー制度は安全と言えるの?

    View Slide

  24. マイナンバーの疑問1
    ● Q. マイナンバーを人に見られても大丈夫ですか?
    ● A. マイナンバーを使う行政手続きでは顔写真で本人確認することが義
    務化されているため、直ちに悪用できない
    行政職員が不正行為を
    したらどうする?

    View Slide

  25. マイナンバーの疑問2
    ● Q. マイナンバーカードから、マイナンバーに紐付けられた自分の個人
    情報が流出することはないのですか?
    ● A. 行政手続きを行う職員だけが、業務に関する個人情報だけを、情報
    連携で取得できるように制限されています。
    業務上、行政機関間で情報連携が発生した場合は、マイナポータルで
    そのやり取りの内容を全て確認できるのでご安心ください。

    View Slide

  26. 情報連携
    ● 行政機関同士がLGWAN上でマイナンバーから生成された符号を元
    に、行政手続きに必要な情報をやり取りする(2017〜)
    3-3 番号制度の導入に向けて(総務省)
    https://www.soumu.go.jp/main_content/000567415.pdf

    View Slide

  27. 情報連携
    住民が必要な添付資料
    を窓口に持参する必要
    がなくなる
    マイナンバー制度における情報連携について(総務省)
    https://www.soumu.go.jp/main_content/000429540.pdf

    View Slide

  28. 情報連携
    ● 法律で定められている情報照会者と
    情報提供者機関の間だけで情報連携ができる
    マイナンバー制度における情報連携について(総務省)
    https://www.soumu.go.jp/main_content/000429540.pdf
    例)日本年金機構が「国民年金保険料の免除
    を勧奨する手続」で必要な課税証明書と住民
    票の写しを市町村に照会する例

    View Slide

  29. 情報連携(自治体中間サーバ)
    マイナンバー制度における情報連携について(総務省)
    https://www.soumu.go.jp/main_content/000429540.pdf
    (1) 市町村が正本を持つ
    (2) 中間サーバに副本を
    登録する

    View Slide

  30. 情報連携の全体の流れ
    (総務省)https://www.soumu.go.jp/main_content/000691748.pdf
    (1) 付番
    (2) 符号生成
    (3) 情報提供・照会

    View Slide

  31. 情報連携のメリット
    ● 各行政機関は、社会保障と税の手続き処理を効率化できる
    ● 住民は、必要書類の添付などの負担が減る
    今日の本題はマイナンバーカードで
    できること

    View Slide

  32. 理解度チェック
    ● 住民に付番されたIDのそれぞれの用途は何か?
    ○ 住民票コード
    ○ マイナンバー
    ● マイナンバー制度を導入した目的は何か?

    View Slide

  33. Individual Number Card System
    マイナンバーカードの仕組み

    View Slide

  34. マイナンバーカード
    ● 住民からの申請で発行されるICカード
    ● 表面には顔写真があり、本人確認書類として利用できる
    ● 裏面には12桁のマイナンバーが記載されている
    マイナンバーカード(総務省)
    https://www.soumu.go.jp/kojinbango_card/03.html
    QRコードからマイナンバー
    を読み取れる点に注意

    View Slide

  35. 次期マイナンバーカード
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program
    ● 券面から性別やマイナンバーなどの表記がなくなるかも? (2026〜)

    View Slide

  36. マイナンバーカード
    ● ICカードから証明書(公開鍵)を取り出すことができる
    ● ICカードは秘密鍵で署名する機能を持つ
    公開鍵と秘密鍵を格納、
    アクセスするには暗証番号が必要

    View Slide

  37. マイナンバーカード
    ● マイナンバーは社会保障・税・災害対策にしか使えない
    ● マイナンバーカードの電子証明書は民間でも利用できる
    マイナンバーカード
    マイナンバー
    (個人番号)
    電子証明書
    マイナンバーを使わなくても
    本人確認に使える

    View Slide

  38. 暗証番号
    ● ICチップ内のデータにアクセスするには暗証番号が必要
    ● 暗証番号を3回(署名用は5回)間違えるとロックされる
    解除するには住民票のある市町村の窓口で再設定が必要
    マイナンバーカードの安全性(デジタル庁)
    https://www.digital.go.jp/policies/mynumber/pros-and-safety/

    View Slide

  39. 耐タンパ性
    ● ICチップは偽造などの不正行為に対する耐タンパ性を有する
    ※タンパー (tamper):勝手にいじる の意味
    マイナンバーカードの安全性(デジタル庁)
    https://www.digital.go.jp/policies/mynumber/pros-and-safety/
    ICチップ内の秘密鍵は取
    り出せない

    View Slide

  40. ICチップ内のアプリ構成
    ● 公的個人認証 (JPKI) AP
    ○ 2種類の電子証明書とその秘密鍵を扱う
    ● 券面AP
    ○ 券面記載事項(顔写真含む)を扱う
    ● 券面事項入力補助AP
    ○ 基本4情報(氏名、住所、生年月日、氏名)を扱う
    ● 住基AP
    ○ 住民票コードを扱う

    View Slide

  41. ICチップ内のアプリ構成
    マイナンバーカードについて②(総務省)
    https://www.soumu.go.jp/main_content/000528384.pdf

    View Slide

  42. マイナンバーカードでできる処理
    処理 出力
    認証用証明書の取得 DER形式のデータ
    認証用秘密鍵による署名 データに対する署名
    署名用証明書の取得 DER形式のデータ
    署名用秘密鍵による署名 データに対する署名
    個人番号の取得 文字列
    基本4情報の取得 UTF-8文字列

    View Slide

  43. 署名と認証
    ● オンライン手続きにおける脅威
    ○ なりすまし(他人のフリをして申請される)
    ○ 改ざん(申請後に申請内容を変更される)
    ○ 否認(実際には申請済みなのに、その事実を否認される)
    ● 電子署名
    ○ 署名を検証することで電子データの作成者を認証する
    ○ なりすまし、改ざん、否認の全ての対策になる
    ● 認証
    ○ なりすましに対する対策になる

    View Slide

  44. 電子署名(身元確認)
    (総務省)公的個人認証認証サービス利用のための民間事業者向けガイドライン
    https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  45. 認証(当人認証)
    (総務省)公的個人認証認証サービス利用のための民間事業者向けガイドライン
    https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  46. 認証用証明書・署名用証明書
    J-LIS
    地方公共団体情報システム機構
    署名は RSA-SHA256

    View Slide

  47. 署名用証明書
    基本4情報
    (氏名、生年月日、
    性別、住所)

    View Slide

  48. 秘密鍵による署名
    ● マイナンバーカードから秘密鍵を取り出すことはできない
    ● 署名対象データをAPDUプロトコルでICカードに渡すことで、
    その署名データを取得できる
    80 2A 00 80 33 (...署名対象データ ...) 00
    (...署名データ...) 90 00
    COMPUTE DIGITAL SIGNATURE

    View Slide

  49. 【演習1】証明書と秘密鍵
    ● ICカード内には認証用と署名用の証明書(公開鍵)と秘密鍵がある
    ● 【演習】
    ○ opensslコマンドで自己署名証明書を作ろう
    $ openssl genrsa -out private.key
    $ openssl req -new -key private.key -out server.csr -subj
    "/C=JP/ST=Niigata/L=Niigata/O=SecurityMiniCamp/CN=example.com"
    $ openssl x509 -req -days 365 -signkey private.key -in server.csr
    -out server.crt
    $ openssl rsa -in private.key -text
    $ openssl req -in server.csr -text
    $ openssl x509 -in server.crt -text

    View Slide

  50. 【演習2】証明書と秘密鍵
    ● ICカード内には認証用と署名用の証明書(公開鍵)と秘密鍵がある
    ● 【演習】
    ○ opensslで証明書から公開鍵を取り出そう
    $ openssl x509 -pubkey -in server.crt -noout > server.pub
    $ openssl asn1parse -inform PEM -in server.crt
    $ openssl asn1parse -inform PEM -in server.pub

    View Slide

  51. 【演習3】証明書と秘密鍵
    ● ICカード内には秘密鍵で署名する機能がある
    ● 【演習】
    ○ opensslで秘密鍵でmsg.txtを署名しよう
    ○ opensslで公開鍵でmsg.txt.sigを検証しよう
    $ openssl dgst -sha256 -sign private.key msg.txt > msg.txt.sig
    $ openssl dgst -sha256 -verify server.pub -signature msg.txt.sig
    msg.txt
    Verified OKと出力されたら検証成功

    View Slide

  52. 証明書の失効確認
    ● 署名用電子証明書は異動(氏名や住所の変更)時などに失効する
    ● 一般的な失効確認方法:
    ○ 証明書失効リスト(CRL; Certificate Revocation List)
    ○ OCSP(Online Certificate Status Protocol)
    ○ OCSP Stapling
    ● 実際は公的個人認証サービス(J-LIS)などと通信して確認する

    View Slide

  53. CRL
    ● 失効した証明書一覧を配布する
    ● リストのサイズが大きくなると負荷が高くなる
    Client CA
    CRL

    View Slide

  54. OCSP
    ● 特定の証明書の有効性だけを確認する
    ● 通信サイズが小さくなるので負荷が小さくなる
    Client
    OCSP
    Responder
    CRL
    CA
    OCSP Request
    OCSP Response

    View Slide

  55. 公的個人認証サービス利用の流れ
    公的個人認証サービス利用のための民間事業者向けガイドライン
    1.2版(総務省)https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  56. 公的個人認証サービス
    ● 電子証明書の失効情報を確認して、本人確認を行うサービス
    ○ 地方公共団体情報システム機構(
    J-LIS)により運営
    ● 行政機関だけでなく民間事業者の各種サービスにも導入できる
    ○ 主務大臣認定を受けて自社が認定事業者になる。または、
    ○ 認定事業者に署名検証業務を委託する形で利用する。
    ● 公的個人認証法
    (電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律)

    View Slide

  57. 【演習4】証明書の失効確認
    ● 証明書の失効状態を確認してから、その公開鍵を利用すること
    ● 【演習】
    ○ opensslコマンドでOCSPによる証明書検証をしよう
    $ openssl s_client -connect google.com:443 -showcerts -servername
    google.com < /dev/null
    $ # 証明書チェーンの0番目をTARGET.crt(サーバ証明書)に保存
    $ # 証明書チェーンの1番目をINTERMEDIATE.crt(中間証明書)に保存
    $ openssl x509 -in TARGET.crt -text -noout | grep OCSP
    $ # OCSPリクエストの送信先URLを確認
    $ openssl ocsp -issuer INTERMEDIATE.crt -cert TARGET.crt -url URL -text
    $ # Response verify OKと表示されたら検証成功

    View Slide

  58. 理解度チェック
    ● マイナンバーカードではどのような処理ができるか?
    ○ 公的個人認証AP
    ○ 券面AP、券面事項入力補助AP
    ● マイナンバーカードから秘密鍵は取り出せないが、
    実際にはどのように署名しているのか?

    View Slide

  59. Individual Number Card and Digital Signing
    マイナンバーカードと署名

    View Slide

  60. APDUプロトコル
    ● ISO 7816-4 + ベンダー独自仕様のICカード向け通信プロトコル
    https://www.blackhat.com/presentations/bh-usa-08/Buetler/BH_US_08_Buetler_SmartCard_APDU_Analysis_V1_0_2.pdf

    View Slide

  61. ICカードの論理データ構造
    MF
    DF
    EF
    IEF
    DF 専用ファイル
    基礎ファイル
    内部基礎ファイル
    (鍵情報)
    マスターファイル ※カードを起動した直後は
     MFがカレントになる

    View Slide

  62. マイナンバーカードのデータ構造
    ● AID(アプリケーションID)で識別
    DF AID
    公的個人認証AP D3 92 F0 00 26 01 00 00 00 01
    券面入力補助AP D3 92 10 00 31 00 01 01 04 08
    MF
    公的個人認証AP 券面AP 券面入力補助AP 住基AP

    View Slide

  63. マイナンバーカードのデータ構造
    IEF001B
    署名用PIN
    MF
    公的個人認証AP 券面AP 券面入力補助AP 住基AP
    IEF001A
    署名用鍵
    EF0001
    署名証明書
    EF000A
    認証証明書
    EF0002
    署名用CA
    EF000B
    認証用CA
    IEF0017
    認証用鍵
    IEF0018
    認証用PIN
    EF0002
    基本4情報
    IEF0011
    入力補助用PIN
    EF0001
    個人番号
    (1) 暗証番号入力
    (2) アクセス

    View Slide

  64. APDUプロトコル
    APDU (Application Protocol Data Unit) プロトコル
    (Smart Card Guy)
    https://smartcardguy.hatenablog.jp/entry/2018/08/11
    /153334
    コマンド構造 コマンド例
    Case 1 CLA INS P1 P2 —
    Case 2 CLA INS P1 P2 Le READ BINARY
    Case 3 CLA INS P1 P2 Lc data SELECT FILE
    Case 4 CLA INS P1 P2 Lc data Le COMPUTE DIGITAL SIGNATURE
    Le : 期待する返信データ長
    Lc : 送信するデータ長
    data : 送信するデータ
    data : 返信データ

    View Slide

  65. APDUプロトコル
    ● SELECT FILE
    ○ APを選択したり、証明書やロック解除用の
    PINにアクセスする
    ● パラメータ
    ○ 命令クラス : 00、命令コード : A4
    ○ 引数1 : 04 (DF名で選択) または 02 (現在のDF直下のEF名で選択)
    ○ 引数2 : 00 (最初のレコード)
    ○ ファイル名:00 1B
    > 00 A4 02 0C 02 00 1B
    < 90 00

    View Slide

  66. APDUプロトコル
    ● VERIFY
    ○ 入力した暗証番号と比較して、内部のステータスを更新する
    > 00 20 00 80 04 31 32 33 34
    < 90 00
    ● パラメータ
    ○ 命令クラス : 00、命令コード : 20
    ○ 引数1 : 00
    ○ 引数2 : 80 (特定のDF/EFのパスワード)
    ○ パスワード:31 32 33 34

    View Slide

  67. APDUプロトコル
    ● READ BINARY
    ○ 選択したファイルのバイナリデータを読み取る
    ● パラメータ
    ○ 命令クラス : 00、命令コード : B0
    ○ 引数1〜2 : オフセット値(先頭から読み取るときは00 00を指定)
    ○ Leフィールド : 読み取るバイト数
    > 00 B0 00 00 04
    < 30 82 06 1F 90 00

    View Slide

  68. APDUプロトコル
    ● COMPUTE DIGITAL SIGNATURE
    ○ ハッシュ値を入力して、署名を生成する
    ● パラメータ
    ○ 命令クラス : 80、命令コード : 2A、引数1〜2 : 00 80
    ○ Lcフィールド : 署名対象データ長、Data : 署名対象データ
    ○ Leフィールド : 署名結果データ長(00は無制限?)
    > 80 2A 00 80 33 ...対象データ... 00
    < ...署名結果... 90 00

    View Slide

  69. APDUプロトコル通信例
    > 00 A4 04 0C 0A D3 92 F0 00 26 01 00 00 00 01 # SELECT FILE: 公的個人認証AP
    < 90 00
    > 00 A4 02 0C 02 00 18 # SELECT FILE: 認証用PIN
    < 90 00
    > 00 20 00 80 04 31 32 33 34 # VERIFY: 暗証番号入力
    < 90 00
    > 00 A4 02 0C 02 00 17 # SELECT FILE: 認証用秘密鍵
    < 90 00
    > 80 2A 00 80 33 ...対象データ... 00 # COMPUTE DIGITAL SIGNATURE
    < ...署名結果... 90 00

    View Slide

  70. 【演習5】カードとお話ししよう
    ● 【演習】
    ○ マイナンバーカードから証明書を取り出してみよう
    ○ 発展:証明書に記載されている内容を確認しよう
    $ cd secminicamp2023-mynumber
    $ cp secrets.sample.conf secrets.conf
    $ vi secrets.conf
    [secrets]
    password1=4桁の数字
    password2=6桁以上の英数字
    $ # __main__のcardreader.get_cert()のコメントアウトを外して実行
    $ python mynumber.py

    View Slide

  71. 署名対象データ(DigestInfo)
    ● マイナンバーカードに署名させるデータを送るためのデータ構造
    ● RFC 2315 (PKCS #7: Cryptographic Message Syntax Version 1.5)

    View Slide

  72. 署名対象データ(DigestInfo)
    ● RFC 5280 (Internet X.509 Public Key Infrastructure Certificate and Certificate
    Revocation List (CRL) Profile)

    View Slide

  73. 署名対象データ(DigestInfo)
    ● RFC 2315とRFC 5280をまとめると
    DigestInfo ::= SEQUENCE {
    SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL
    }
    digest OCTET STRING
    }

    View Slide

  74. ASN.1とSHA256 OID
    ● algorithm:SHA256ハッシュ関数のObject ID(RFC 5754)
    DigestInfo ::= SEQUENCE {
    SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL
    }
    digest OCTET STRING
    }
    ● OID:数字とドットだけで世の中にある物事を識別するための符号

    View Slide

  75. OIDからバイト列への変換
    ● algorithm:SHA256ハッシュ関数のObject ID(RFC 5754)
    ASN.1 でのオブジェクトID (OID) とバイト列の表記 | 晴耕雨読 https://tex2e.github.io/blog/protocol/oids

    View Slide

  76. ASN.1とSHA256 OID
    ● parameters:ハッシュ関数のパラメータ。一般的にはNULL
    DigestInfo ::= SEQUENCE {
    SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL
    }
    digest OCTET STRING
    }
    05 00 ⇐ タグがNULL(0x05)、長さが0x00、データはなし(ASN.1参照)

    View Slide

  77. ASN.1とSHA256 OID
    ● digest:文書(ファイル)のハッシュ値
    DigestInfo ::= SEQUENCE {
    SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL
    }
    digest OCTET STRING
    }
    digest ← SHA256(input file)

    View Slide

  78. DERエンコード
    ● DERエンコードしたDigestInfo:
    30 31 30 0B 06 09 60 86 48 01 65 03 04 02 01 05
    00 04 20 22 D6 28 B5 3B C6 B3 56 F5 91 3E 98 C5
    A3 BC 8A E1 A5 BE 91 C2 91 68 02 35 8E 0E C2 BC
    FE 71 E7
    30 31
    30 0B
    06 09 608648016503040201
    05 00
    04 20 22D628B53BC6B356F5913E98C5A3BC8AE1A5BE91C2916802…
    ● 読みやすさ重視:
    [ASN.1 タグ早見表]
    0x30 : SEQUENCE型
    0x06 : OID型
    0x05 : NULL型
    0x04 : OCTET STRING型

    View Slide

  79. 【演習6】カードとお話ししよう
    ● 【演習】
    ○ マイナンバーカードで署名データを作成しよう
    ○ 発展:署名データを検証して正しいことを確認しよう
    $ cd secminicamp2023-mynumber
    $ cp secrets.sample.conf secrets.conf
    $ vi secrets.conf
    [secrets]
    password1=4桁の数字
    password2=6桁以上の英数字
    $ # __main__のcardreader.get_sign()のコメントアウトを外して実行
    $ python mynumber.py

    View Slide

  80. 理解度チェック
    ● 2種類の証明書はどう使い分けるか?
    ○ 利用者証明用電子証明書
    ○ 署名用電子証明書
    ● 基本4情報の取得方法はどう使い分けるか?
    ○ 公的個人認証APで取得できる署名用電子証明書の基本
    4情報
    ○ 券面事項入力補助APで取得できる基本4情報

    View Slide

  81. Usage Example of Individual Number Card
    マイナンバーカードの利用例

    View Slide

  82. Know Your Customer
    ● KYC
    ○ 顧客を知る(反社チェック。サービスが犯罪に使われないように)
    ○ 本人確認をするための方法の1つ
    ○ 行政手続き、金融機関、携帯電話の手続きなど
    ● eKYC
    ○ electronic KYC
    ○ オンラインによるKYC(便利だが不正を防ぐための技術が必要)

    View Slide

  83. 犯罪収益移転防止法(犯収法)
    ● マネーロンダリング(資金洗浄)
    ○ 犯罪による収益の出所や帰属を隠そうとする行為
    ● 2018年の改正
    ○ 今までリモートの時は本人確認書類の郵送が必要だったが、
    ○ eKYCの手法が認められた
    (ソフトウェアを使った本人確認ができるようになった)
    ○ 特定事業者と特定取引で、本人特定事項などの
    取引時確認が必要
    ○ ⇒ 犯罪による収益の移転を防ぐ

    View Slide

  84. 犯罪収益移転防止法(犯収法)
    ● 犯収法規則 6条1項1号
    ○ イ、ロ、ハ、ニ、...、ワ、カ までの14種類の本人確認方法が規定
    ● 犯収法規則 6条1項1号ワ方式
    ○ マイナンバーカードのICチップに保存された基本4情報が記載された電子
    証明書と、電子署名された申請情報を利用者が送信する。
    ⇒ 対面相当の最高の保証レベルの身元確認が可能

    View Slide

  85. 犯罪収益移転防止法(犯収法)
    ● 犯収法規則 6条1項1号ホ方式
    ○ 顔写真付き本人確認書類の画像+容貌の撮影(顔写真)
    ⇒ 写真撮影の手間がかかる & 不正防止チェックに時間がかかる
    ● 犯収法規則 6条1項1号ヘ方式
    ○ 顔写真付き本人確認書類のICチップ読み取り+容貌の撮影
    ⇒ 写真撮影の手間が少しかかる
    ⇒ ICチップ読み取りは券面APや券面事項入力補助APに対応

    View Slide

  86. 本人確認に関する法令
    ● 犯罪収益移転防止法
    ○ マネーロンダリングの防止
    ● 携帯電話不正利用防止法
    ○ 携帯電話を利用した特殊詐欺の防止
    ● 古物営業法
    ○ 盗品の売買の防止
    いずれも非対面でオンラインによる本人確認手法が認められている

    View Slide

  87. 本人確認の拡大
    民間事業者向けデジタル本人確認ガイドライン
    第1.0版 – p.13 背景②

    View Slide

  88. 本人確認
    ● 身元確認と当人確認の組み合わせ
    ● 当人認証 (Authentication)
    ○ 事前に登録された情報と照合して本人の当人性を確認
    ○ 知識要素、所有情報、生体情報を使う
    ○ ログイン時
    ● 身元確認 (Identity Proofing)
    ○ 提出された書類などから本人の実在性を確認
    ○ ユーザ登録時

    View Slide

  89. NISTガイドライン
    ● NIST SP 800-63-3
    ○ NISTが作成した米国政府向けのユーザ認証に関するガイドライン
    文書名 概要
    NIST SP 800-63-3 デジタルサービスでのユーザ認証について
    NIST SP 800-63A IALに基づいて要求されるユーザ身元確認方法
    NIST SP 800-63B AALに基づいて要求されるユーザ認証方法
    NIST SP 800-63C FALに基づいて要求されるアカウント連携方法

    View Slide

  90. 身元確認の保証レベル (IAL)
    ● 身元確認において不正を防ぐ強度 (Identity Assurance Level)
    ● IAL1
    ○ 身元確認のない自己表明。メールアドレスなど
    ● IAL2
    ○ リモートまたは対面での身元確認。個人の基本
    4情報で身元確認
    ● IAL3
    ○ 対面での身元確認。電子署名の検証による身元確認

    View Slide

  91. 身元確認の保証レベル (IAL) の選択
    行政手続におけるオンラインによる本人確認の手法に関するガイドライン(デジタル庁)
    図A-10 NIST SP 800-63-3 IALの選択概要図

    View Slide

  92. 当人認証の保証レベル (AAL)
    ● 当人認証において不正を防ぐ強度 (Authentication Assurance Level)
    ● AAL1
    ○ 単一の認証要素。パスワードだけ
    ● AAL2
    ○ 複数の認証要素。多要素認証
    ● AAL3
    ○ 耐タンパ性が確保されたハードウェアトークンも使用する

    View Slide

  93. 当人認証の保証レベル (AAL) の選択
    行政手続におけるオンラインによる本人確認の手法に関するガイドライ(デジタル庁)
    図A-12 NIST SP 800-63-3 AALの選択概要図

    View Slide

  94. リスクの評価
    ● 選択概要図の「デジタルサービスを提供するリスクは何ですか?」
    1. 利用者に不便・苦痛を与える、機関が信頼を失う
    ○ 短期的〜長期的
    ○ 当惑する〜地位や評判に影響がある
    2. 利用者に金銭的被害を与える、機関に賠償責任が生じる
    ○ 軽微〜壊滅的
    3. 機関の活動計画や公共の利益に対して影響を与える
    ○ 若干〜深刻

    View Slide

  95. リスクの評価
    ● 選択概要図の「デジタルサービスを提供するリスクは何ですか?」
    4. 利用者の個人情報が漏洩するリスク
    ○ 限定的〜致命的または壊滅的な機密性損失
    5. 利用者の身の安全に影響を与えるリスク
    ○ 軽傷〜深刻な負傷または死亡
    6. 法律に違反するリスク
    ○ 法執行の対象にならない〜対象になる
    ⇒ 過剰対応すると負担が増えるため、リスクを適切に見極めること

    View Slide

  96. マイナンバーカードによる本人確認
    ● 電子証明書による公的個人認証を利用する方法
    ○ 保証レベルはIAL3(最も強力)
    ○ 行政手続きや犯収法などの法令に定める手法として利用可
    ○ 公的個人認証サービスによる証明書の有効性検証にコストがかかる
    ● 券面を撮影またはICチップ内の券面情報を送信する方法
    ○ 保証レベルはIAL2相当
    ○ 自撮り写真(本人容貌撮影)と共に申請して、犯収法の法令に定める手法とし
    て利用可

    View Slide

  97. 理解度チェック
    ● 本人確認はどのような場面で使うか?
    ○ 身元確認
    ○ 当人認証
    ● IALやAALのレベルはどのように決めるか?
    ● マイナンバーカードによる本人確認は常に採用すべきか?

    View Slide

  98. Government Services
    行政サービスの例

    View Slide

  99. マイナポータル
    マイナポータル https://myna.go.jp/
    ● 行政機関への各種申請や行政機関からのお知らせ

    View Slide

  100. マイナポータル
    情報連携
    ぴったりサービス
    情報連携 情報連携の
    記録確認
    e-Tax、
    年金ネットなど

    View Slide

  101. ぴったりサービス(電子申請)
    https://myna.go.jp/SCK1501_02_001/SCK1501_02_001_Init.form

    View Slide

  102. マイナポータル申請管理
    マイナポータル(ぴったりサービス)の取組について(総務省)
    https://www.digital.go.jp/policies/mynumber/pros-and-safety/

    View Slide

  103. 引越し手続きオンラインサービス
    https://myna.go.jp/SCK1501_02_001/SCK1501_02_001_Init.form

    View Slide

  104. 引越し手続きオンラインサービス
    住民記録システム標準仕様書 の改定について(総務省)
    https://www.soumu.go.jp/main_content/000754596.pdf

    View Slide

  105. コンビニ交付
    コンビニ交付導入のメリットと参加要件(
    J-LIS)https://www.j-lis.go.jp/rdd/card/convinikoufu/cms_93099520.html
    カード内の情報に基づき
    住所地のシステムと接続
    公的個人認証方式
    住民票の写しなど

    View Slide

  106. 確定申告 (e-Tax)
    ● 税務署に行かなくても所得税申告ができる
    (国税庁)https://www.nta.go.jp/taxes/tetsuzuki/mynumberinfo/pdf/mynapo_gaiyo.pdf

    View Slide

  107. Private Services
    民間サービスの例

    View Slide

  108. 金融機関での口座開設・取引
    マイナンバーカードを活用したオンライン取引等の可能性について(総務省)
    https://www.soumu.go.jp/main_content/000805608.pdf

    View Slide

  109. 手続きや取引での本人確認
    マイナンバーカードと公的個人認証制度の概要について
    資料3(総務省) https://www.soumu.go.jp/main_content/000528384.pdf

    View Slide

  110. 顧客情報の異動の把握
    公的個人認証サービス利用のための民間事業者向けガイドライン
    1.2版(総務省) https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  111. 顧客情報の異動の把握
    公的個人認証サービス利用のための民間事業者向けガイドライン
    1.2版(総務省) https://www.soumu.go.jp/main_content/000883568.pdf
    住民都合による住基異動
    のときは異動事由を「軽微
    な修正」で送信するため証
    明書は失効しない
    (例:外字の変更)

    View Slide

  112. 顧客情報の異動の把握
    公的個人認証サービス利用のための民間事業者向けガイドライン
    1.2版(総務省) https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  113. 最新の基本4情報提供サービス
    公的個人認証サービス(
    JPKI)(デジタル庁) https://www.digital.go.jp/policies/mynumber/private-business/jpki-introduction
    ● 公的個人認証サービスにおける本人同意に基づく最新の住所情報な
    どの提供を開始

    View Slide

  114. 委託による個人情報の取り扱い
    アドバイザリーボードからの提言(個人情報の取り扱いについて)(
    TRUSTDOCK) https://biz.trustdock.io/advisory-board/20211214_first-summary

    View Slide

  115. API連携(OpenID Connect)
    ⼈間事業者向けデジタル本
    ⼈確認ガイドライン第1.0版(OpenID Japan) https://www.openid.or.jp/news/kyc_guideline_v1.0.pdf

    View Slide

  116. マイナンバーカード機能のスマホ搭載
    (OpenID Japan)⼈間事業者向けデジタル本
    ⼈確認ガイドライン第1.0版 https://www.openid.or.jp/news/kyc_guideline_v1.0.pdf
    (総務省)第2次とりまとめ 〜デジタル社会の新たな基盤の構築に向けて〜
    https://www.soumu.go.jp/main_content/000809835.pdf
    ● スマホの生体認証で2つの電子証明書を利用できる

    View Slide

  117. 民間サービスにおける利用イメージ
    (総務省)第2次とりまとめ 〜デジタル社会の新たな基盤の構築に向けて〜
    https://www.soumu.go.jp/main_content/000809835.pdf

    View Slide

  118. Future Development
    今後の展開

    View Slide

  119. デジタル庁の重点計画
    ● 2023年6月にデジタル社会の実現に向けた重点計画が閣議決定
    ○ デジタル社会を実現する内閣の意思決定
    ● 資料
    https://www.digital.go.jp/policies/priority-policy-program
    ● 本講座に関連する部分や個人的に注目している部分だけ抜粋して紹
    介します

    View Slide

  120. 本人確認、年齢確認
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program

    View Slide

  121. 本人確認手法の一本化
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program
    ● 犯収法や携帯電話不正利用防止法における複数の本人確認手法が
    「犯収法規則 6条1項1号ワ方式」に統一されるかも

    View Slide

  122. 資格情報のデジタル化
    ● 国が提供する身分や資格証明サービスが開始される(2025〜)
    ○ 情報連携による資格取得・更新手続の添付資料の省略
    ○ 2023年成立の「マイナンバー法等の一部改正法」で範囲拡大

    View Slide

  123. カード更新のオンライン化
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program
    ● マイナンバーカードの更新がオンライン化されるかも

    View Slide

  124. 暗証番号を入力しない利用方法
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program
    ● リスクの低い手続きでは暗証番号なしで本人確認するようになるか?

    View Slide

  125. プッシュ型行政
    デジタル社会の実現に向けた重点計画(デジタル庁) 
    https://www.digital.go.jp/policies/priority-policy-program
    ● 地方自治体側からプッシュ型で、対象者に受けるべき行政サービスを
    通知する仕組みができるかも(申請主義からプッシュ型へ)
    ● そうなればマイナポータルを使いたくなるので、自然とマイナンバー
    カードは普及するはず!

    View Slide

  126. Summary
    まとめ

    View Slide

  127. デジタル社会の実現を後押しする
    ● セキュリティを実現するための暗号技術
    ● 暗号技術がデジタル本人確認の実現を後押しする
    ● 日本の社会や経済を便利に安全で信頼性のあるものに!

    View Slide

  128. 参考文献
    ● 行政手続におけるオンラインによる本人確認の手法に関するガイドラ
    イン (2019)
    https://www.digital.go.jp/assets/contents/node/basic_page/field_re
    f_resources/e2a06143-ed29-4f1d-9c31-0f06fca67afc/f1be078e/20
    220422_resources_standard_guidelines_guideline_07.pdf
    ● 公的個人認証サービス利用のための民間事業者向けガイドライン第
    1.2版 (2023)
    https://www.soumu.go.jp/main_content/000883568.pdf

    View Slide

  129. 参考文献
    ● NIST SP 800-63 Digital Identity Guidelines
    https://pages.nist.gov/800-63-3/
    ● 民間事業者向けデジタル本人確認ガイドライン第1.0版 (2023)
    https://www.openid.or.jp/news/kyc_guideline_v1.0.pdf

    View Slide