Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
Naoki Ikeguchi
December 11, 2021
Programming
2
22k
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
Developers Boost 2021 登壇資料.
https://event.shoeisha.jp/devboost/20211211/session/3555/
Naoki Ikeguchi
December 11, 2021
Tweet
Share
More Decks by Naoki Ikeguchi
See All by Naoki Ikeguchi
リモートワークと健康 - ヤフー名古屋 Tech Meeting #2
siketyan
0
110
Actual of Japanese Internet
siketyan
3
3.6k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
340
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
340
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
390
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
410
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
510
さらば,APIコントローラ / OthloTech#45 年度末LTパーティー
siketyan
0
56
部活システム制作のすすめ / 高専カンファレンス × 学生LT in 名古屋
siketyan
0
290
Other Decks in Programming
See All in Programming
Cloudflare Workersと状態管理
chimame
2
460
Circuit⚡
monaapk
0
200
スタック・オーバーフローに コントリビュートしはじめて良かったこと🐣
takuyakikuchi
1
120
Refactor with using `available` and `deprecated`
417_72ki
3
370
Git Rebase
bkuhlmann
10
1.2k
Milestoner
bkuhlmann
1
240
Swift Concurrency in GoodNotes
inamiy
4
1.3k
【DevFest & ADS JP 22】チームで導入する
[email protected]
おいしい健康
kako351
0
210
なぜRubyコミュニティにコミットするのか?
luccafort
0
290
Hono v3 - Do Everything, Run Anywhere, But Small, And Faster
yusukebe
4
120
Jetpack Compose 完全に理解した
mkeeda
1
430
様々なWebアプリをAzureにデプロイする
tomokusaba
0
110
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
213
7.8k
Building Adaptive Systems
keathley
27
1.3k
How GitHub (no longer) Works
holman
298
140k
It's Worth the Effort
3n
177
26k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
Done Done
chrislema
178
14k
Infographics Made Easy
chrislema
235
17k
Testing 201, or: Great Expectations
jmmastey
25
5.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
63k
We Have a Design System, Now What?
morganepeng
37
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
263
38k
Building Your Own Lightsaber
phodgson
96
4.9k
Transcript
B-3 Rust でマイナンバーカードを操作する スマホアプリを作りたい話 Naoki Ikeguchi @siketyan YUMEMI Inc. Keywords:
Rust, FFI, JPKI, マイナンバー, X.509, NFC, APDU, Android, NDK
2 提 供
3 ぱくぱくスタディ制度 制度紹介 ① • 社内の勉強会でのお菓子・飲み物を補助する • 1 人 1
回あたり 1,500 JPY まで会社が負担
$ whoami 池口 直希 (いけぐち なおき) • 国立豊田高専を 3 年次で中退
• 今年 4 月,株式会社ゆめみに新卒で入社 • サーバサイドエンジニア • PHP, TypeScript, C#, Go, Rust • AWS, Terraform, Docker 4 @s6n_jp
5 副業し放題制度 制度紹介 ② • ゆめみの営業時間内の副業を可能とする • ゆめみが副業として社内発注を行うこともある • 他社の副業についての質問・相談を業務時間中にゆめみ
Slack で行うことができる
マイナンバーカードとは 6
7 内閣府,総務省 (2021) 『こんなとき、あってよかった!マイナンバーカード』 https://www.cao.go.jp/bangouseido/pdf/leaf20210531_yokatta_a3.pdf,2021/11/26 閲覧.
マイナンバーカード • 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
JPKI (Japanese Public Key Infrastructure) 9 署名用 認証局 署名 GPKI
署名 署名用 証明書 利用者証明用 認証局 署名 利用者証明用 証明書 マイナンバーカード 地方公共団体情報システム機構『認証局の運営』 https://www.jpki.go.jp/ca/index.html,2021/12/02 閲覧.
つくりたいもの 10
11
12 10 %ルール 制度紹介 ③ • 業務時間の 10 %を研究開発や OSS
貢献に利用できる • 複数のメンバーで行うことも可能
アーキテクチャ 13 NFC APDU 委譲 Android アプリ 他環境 Rust Library
FFI FFI
実装 14
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
16
17
デモ 18
19
まとめ 20
21
22 edunham (2016) 『Plushie Rustacean Pattern』, http://edunham.net/2016/04/11/plushie_rustacean_ pattern.html, 2021/12/03 閲覧.
Licenced under CC-BY-NC
23 We are hiring! https://www.yumemi.co.jp/
Thank you 24