Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 提 供

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

マイナンバーカード • 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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

つくりたいもの 10

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

実装 14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

16

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

デモ 18

Slide 19

Slide 19 text

19

Slide 20

Slide 20 text

まとめ 20

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Thank you 24