Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
Search
Naoki Ikeguchi
December 11, 2021
Programming
2
23k
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
防衛的 PHP: 多様性を生き抜くための PHP 入門 / Defensive PHP
siketyan
2
780
リモートワークと健康 - ヤフー名古屋 Tech Meeting #2
siketyan
0
210
Actual of Japanese Internet
siketyan
3
4.7k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
480
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
450
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
500
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
530
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
710
部活システム制作のすすめ / 高専カンファレンス × 学生LT in 名古屋
siketyan
0
410
Other Decks in Programming
See All in Programming
使えるマークダウンライブラリを探した結果 RailsアプリケーションからRustを使うことになった話
fursich
0
150
Running Laravel Apps With FrankenPHP
dunglas
4
1.2k
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
4
970
私がエッジを使う理由
chimame
9
3.6k
プログラミングを楽しもう! / Enjoy Programming
chobishiba
1
700
品質が高いコードって何?Rev2.1
ickx
1
390
C#でのPlaywrightを使ったE2Eテストの実際
tomokusaba
0
210
見せ算をScalaで実装してみた / Scalaわいわい勉強会 #2
arthur1
0
1.1k
BuefyのMaintainerを引き継いだ件
kikuomax
0
410
PHP で読む楽しいコアダンプ
sji
0
220
Static Analysis Automation for Hunting Vulnerable Kernel Drivers
takahiro_haruyama
1
1.4k
iOS / Android ネイティブ 実装アプリの Flutter 化事例
mthiroshi
0
650
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
43
9.6k
A Philosophy of Restraint
colly
195
15k
Designing for Performance
lara
601
67k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
Typedesign – Prime Four
hannesfritz
36
2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
18
1.8k
A better future with KSS
kneath
230
16k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Writing Fast Ruby
sferik
619
59k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
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