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
24k
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
810
リモートワークと健康 - ヤフー名古屋 Tech Meeting #2
siketyan
0
210
Actual of Japanese Internet
siketyan
3
4.8k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
480
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
460
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
510
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
540
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
730
部活システム制作のすすめ / 高専カンファレンス × 学生LT in 名古屋
siketyan
0
410
Other Decks in Programming
See All in Programming
Ruby Pattern Matching
bkuhlmann
0
920
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
350
Java 22 Overview
kishida
1
160
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
18
4.8k
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
本格ローグライク制作にEbitengineを選んでみた
nagainaganawa
0
290
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
150
Semantic search with Django and pgvector
pauloxnet
0
230
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
290
OpenTelemetry のサービスという概念について
azukiazusa1
2
1.1k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
71
5.1k
Agile that works and the tools we love
rasmusluckow
323
20k
Embracing the Ebb and Flow
colly
78
4.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
320
20k
We Have a Design System, Now What?
morganepeng
42
6.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
For a Future-Friendly Web
brad_frost
171
8.9k
GitHub's CSS Performance
jonrohan
1023
450k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Typedesign – Prime Four
hannesfritz
36
2k
The Language of Interfaces
destraynor
151
23k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
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