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
パスキーでE2E暗号化 in Android Apps (PRF Extension)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Walnuts
March 06, 2026
Technology
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
パスキーでE2E暗号化 in Android Apps (PRF Extension)
2025/03/06に開催されたMobile Act OSAKA 18での発表資料です。
Walnuts
March 06, 2026
More Decks by Walnuts
See All by Walnuts
Cloud Native 技術をフル活用!壊して学ぶ自宅サーバーのバックアップ戦略!
walnuts1018
1
130
プログラミングサークルの新歓を支える技術
walnuts1018
1
600
Go言語でLINE Botをつくろう!
walnuts1018
0
1.2k
ESP32と赤外線LEDを用いて エアコンを遠隔操作する
walnuts1018
0
440
Other Decks in Technology
See All in Technology
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
0
800
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
420
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
310
2026 AI Memory Architecture
nagatsu
0
170
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
200
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
110
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
10
1.6k
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
180
GitHub Copilot app最速の発信の裏側
tomokusaba
1
260
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
770
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Are puppies a ranking factor?
jonoalderson
1
3.6k
Being A Developer After 40
akosma
91
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Building an army of robots
kneath
306
46k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Transcript
パスキーでE2E暗号化 in Android Apps (PRF Extension) 2025/03/06 Mobile Act OSAKA
18 walnuts1018
名名 : 俵 俵俵俵俵俵俵 俵俵俵俵俵 名名 : 俵俵俵俵 俵俵俵 俵俵俵俵俵俵俵
4俵俵 俵俵俵俵俵俵俵 俵俵俵俵俵 名名 : 俵 Kubernetes 俵 Go 俵 OpenTelemetry 俵 React 俵 Android 自己紹介 https://walnuts.dev @walnuts1018 @walnuts1018 id:walnuts1018 1 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
2 パスワードによるリモート認証 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 Credential 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 俵俵 1.
俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 2. 俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵 0123 検証 パスワードの送信
3 FIDO認証 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 名名名名名名名名名名名名名名名名名 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 Challenge 俵
俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • Credential 俵 = 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 Credential 俵俵俵俵 俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵 abcdef 署名検証 YWJjZGVmCg 署名生成
4 FIDO認証 on Android • Android 俵俵 Credential Manager 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵
val credentialManager = CredentialManager.create(context) // サーバーからChallengeなどを受け取る val publicKeyJson = Json.parseToJsonElement( apiClient.getVerificationAssertion(userId) ).jsonObject["publicKey"]!!.toString() // Credential Manager APIを呼び出して署名を得る val result = credentialManager.getCredential( context = activityContext, request = GetCredentialRequest( credentialOptions = listOf(GetPublicKeyCredentialOption(requestJson = publicKeyJson)), ), ) // サーバーに署名を送信して検証 val response = apiClient.verifyWebAuthnAssertion((result.credential as PublicKeyCredential).authenticationResponseJson) 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
5 クライアントサイド暗号化におけるパスワード • FIDO 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵俵俵俵俵 • 俵俵俵俵
名名名名名名名名名名名名名名名名名名名 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
6 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 •
俵俵俵俵 名名名名名名名名名名名名名名名名名名名名名名名名名名 俵俵俵俵俵俵 俵俵俵俵 俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 +Salt 俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵俵俵俵俵俵 クライアントサイド暗号化におけるパスワード 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
7 WebAuthn Pseudo-random function (prf) extension • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 FIDO 俵俵俵俵俵俵俵俵俵俵俵俵俵
• 俵俵俵俵 Credential 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 Challenge/Response 俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵 /俵俵俵俵俵俵俵 Credential 俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵 … • 俵俵俵俵 WebAuthn PRF Extension 俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵 RPID 俵 俵 俵俵俵俵俵俵 Salt 俵俵俵俵俵俵 俵俵俵俵俵俵俵俵俵俵 • = 俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 https://w3c.github.io/webauthn/#prf-extension 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵 RPID: example.walnuts.dev Salt: d2FsbnV0czEwMTgK uCgogICAgICAgRm9 ybWVyIE1haW50YWl
8 PRF Extension on Android • Credential Manager 俵俵俵 Passkey
俵俵俵俵俵俵俵俵 PRF Extension 俵俵俵俵俵俵俵 • "WebAuthn "俵俵俵俵俵 ... • Android 俵俵俵俵俵 Android Keystore 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵 PRF Extension 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 Google Password Manager 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵 Web俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 /俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
PRF Extension on Android 俵俵 : • Pixel 8 Pro
(Android16) / Pixel 9 Pro (Android16) • 俵俵俵 : Google Password Manager • 俵俵俵俵 : https://prfexample.walnuts.dev/ 俵俵 : 1. 俵俵俵俵俵俵俵俵俵俵俵俵 with PRF Extension 俵 2. 俵俵俵俵俵俵俵俵俵俵俵俵俵俵 PRF Extension 俵俵俵俵俵 俵俵俵俵俵俵俵俵 3. 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 4. 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 PRF Extension 俵俵俵俵俵 俵俵俵俵俵俵俵 9 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵
10 より実用的にするには • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • Google 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • Please, please,
please stop using passkeys for encrypting user data · Timbits • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵 HMAC 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵 PRF Key generated by Passkey 1 PRF Key generated by Passkey 2 Shared Key encrypted by PRF Key1 Data encrypted by Shared Key Shared Key encrypted by PRF Key2 Shared Key Saved on Server Saved on Authenticator Restored when needed
11 まとめ • (WebAuthn ) PRF Extension 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵俵 •
Android 俵 Credential Manager 俵俵俵俵俵俵俵俵俵俵俵俵俵俵 PRF Extension 俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 • 俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵俵 俵俵俵俵 > FIDO 俵俵 > 俵俵俵俵俵俵俵俵俵俵俵俵 > PRF Extension 俵俵 > 俵俵 > 俵俵俵