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
20k
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
73
Actual of Japanese Internet
siketyan
3
3.1k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
300
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
290
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
340
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
360
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
440
さらば,APIコントローラ / OthloTech#45 年度末LTパーティー
siketyan
0
52
部活システム制作のすすめ / 高専カンファレンス × 学生LT in 名古屋
siketyan
0
230
Other Decks in Programming
See All in Programming
How to start contributing to Kubernetes Projects
ydfu
0
150
それ全部エラーメッセージに書いてあるよ!〜独学でPHPプログラミングが上達するたった一つの方法〜
77web
1
160
Computer Vision Seminar 1/コンピュータビジョンセミナーvol.1 OpenCV活用
fixstars
0
170
ふんわり理解するcontext
rukiadia
1
180
Introduction to Property-Based Testing @ COSCUP 2022
cybai
1
150
Git Rebase
bkuhlmann
7
1.1k
Carp言語さわってみた 〜鯉を取り戻せ編〜
tsin45
0
110
料理の注文メニューの3D化への挑戦
hideg
0
300
Google I/O 2022 Android関連概要 / Google I/O 2022 Android summary
phicdy
1
410
kintoneでランダム取得を作ってみた(imoniCamp 2022-07-27)
shokun1108
0
150
「困りごと」から始める個人開発
ikumatadokoro
4
270
Recap CDN, Edge, WebAssembly | ワインと鍋.js#1
sadnessojisan
2
1.2k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
6
2.5k
The Power of CSS Pseudo Elements
geoffreycrofte
47
4k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
316
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
25
15k
Fireside Chat
paigeccino
13
1.4k
GraphQLの誤解/rethinking-graphql
sonatard
31
6.8k
Support Driven Design
roundedbygravity
87
8.6k
Happy Clients
brianwarren
89
5.6k
It's Worth the Effort
3n
172
26k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
6k
Designing for humans not robots
tammielis
242
24k
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