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

Rust でマイナンバーカードを操作するスマホアプリを作りたい話

Rust でマイナンバーカードを操作するスマホアプリを作りたい話

Developers Boost 2021 登壇資料.
https://event.shoeisha.jp/devboost/20211211/session/3555/

Naoki Ikeguchi

December 11, 2021
Tweet

More Decks by Naoki Ikeguchi

Other Decks in Programming

Transcript

  1. B-3
    Rust でマイナンバーカードを操作する
    スマホアプリを作りたい話
    Naoki Ikeguchi @siketyan
    YUMEMI Inc.
    Keywords: Rust, FFI, JPKI, マイナンバー, X.509, NFC, APDU, Android, NDK

    View Slide

  2. 2
    提 供

    View Slide

  3. 3
    ぱくぱくスタディ制度
    制度紹介 ①
    • 社内の勉強会でのお菓子・飲み物を補助する
    • 1 人 1 回あたり 1,500 JPY まで会社が負担

    View Slide

  4. $ whoami
    池口 直希 (いけぐち なおき)
    • 国立豊田高専を 3 年次で中退
    • 今年 4 月,株式会社ゆめみに新卒で入社
    • サーバサイドエンジニア
    • PHP, TypeScript, C#, Go, Rust
    • AWS, Terraform, Docker
    4
    @s6n_jp

    View Slide

  5. 5
    副業し放題制度
    制度紹介 ②
    • ゆめみの営業時間内の副業を可能とする
    • ゆめみが副業として社内発注を行うこともある
    • 他社の副業についての質問・相談を業務時間中にゆめみ Slack
    で行うことができる

    View Slide

  6. マイナンバーカードとは
    6

    View Slide

  7. 7
    内閣府,総務省 (2021) 『こんなとき、あってよかった!マイナンバーカード』
    https://www.cao.go.jp/bangouseido/pdf/leaf20210531_yokatta_a3.pdf,2021/11/26 閲覧.

    View Slide

  8. マイナンバーカード
    • NFC Type-B (ISO/IEC 14443) に準拠
    • カード OS の上に 4 つの AP (アプリケーション) を搭載
    • 公的個人認証 AP (JPKI AP)
    • 券面事項確認 AP
    • 券面事項入力補助 AP
    • 住基 AP
    西村,小野津,志賀 (2017) 『マイナンバーカードの技術仕様と利活用方式』 富士通株式会社,
    https://www.fujitsu.com/jp/documents/about/resources/publications/magazine/backnumber/vol68-
    4/paper10.pdf, 2021/11/26 閲覧.
    8

    View Slide

  9. JPKI (Japanese Public Key Infrastructure)
    9
    署名用
    認証局
    署名
    GPKI
    署名
    署名用
    証明書
    利用者証明用
    認証局
    署名
    利用者証明用
    証明書
    マイナンバーカード 地方公共団体情報システム機構『認証局の運営』
    https://www.jpki.go.jp/ca/index.html,2021/12/02 閲覧.

    View Slide

  10. つくりたいもの
    10

    View Slide

  11. 11

    View Slide

  12. 12
    10 %ルール
    制度紹介 ③
    • 業務時間の 10 %を研究開発や OSS 貢献に利用できる
    • 複数のメンバーで行うことも可能

    View Slide

  13. アーキテクチャ
    13
    NFC APDU 委譲
    Android アプリ
    他環境
    Rust Library
    FFI
    FFI

    View Slide

  14. 実装
    14

    View Slide

  15. Available on GitHub ❤
    siketyan/jpki-rs
    コアの Rust 実装部分と Android とのアダプタ部分
    https://github.com/siketyan/jpki-rs
    siketyan/easy-jpki
    Android アプリとしての Kotlin 実装部分
    https://github.com/siketyan/easy-jpki
    15

    View Slide

  16. 16

    View Slide

  17. 17

    View Slide

  18. デモ
    18

    View Slide

  19. 19

    View Slide

  20. まとめ
    20

    View Slide

  21. 21

    View Slide

  22. 22
    edunham (2016) 『Plushie Rustacean Pattern』,
    http://edunham.net/2016/04/11/plushie_rustacean_
    pattern.html,
    2021/12/03 閲覧.
    Licenced under CC-BY-NC

    View Slide

  23. 23
    We are hiring!
    https://www.yumemi.co.jp/

    View Slide

  24. Thank you
    24

    View Slide