Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOSDC Japan 2026 あらゆる業界のiOSアプリに組み込まれる、本人確認SDKの技術
Search
TRUSTDOCK
September 25, 2026
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSDC Japan 2026 あらゆる業界のiOSアプリに組み込まれる、本人確認SDKの技術
TRUSTDOCK
September 25, 2026
More Decks by TRUSTDOCK
See All by TRUSTDOCK
エンジニア向け採用資料
trustdock
0
58k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Navigating Team Friction
lara
192
16k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
The Cost Of JavaScript in 2023
addyosmani
55
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
iOSDC Japan 2026 / Sep.12.2026 あらゆる業界のiOSアプリに組み込まれる 本人確認SDKの技術 130社超の導入現場と、NFCで身分証を読む実装のリアル 株式会社TRUSTDOCK CTO
Kazuya Shono 1
自己紹介 荘野和也 株式会社TRUSTDOCK CTO 創業メンバーとして参画、2019年より現職 Webバックエンド出身 GitHub: miniturbo 2
会社・プロダクト紹介 デジタル社会の インフラをつくる OUR PURPOSE 3
会社・プロダクト紹介 あらゆる、 業界・サービスに、 本人確認を届ける iOSアプリ・サービス向けには、 本人確認サービスSDKを提供 4
本日のテーマ 01 : 一口に語れない「本人確認」 02 : NFCで身分証を読む実装のリアル 03 : 商用iOS
SDKを提供する難しさ 5
01 一口に語れない「本人確認」 6
業界ごとの法規制|一口に語れない「本人確認」 業界ごとに根拠法が違う 業界 主な法規制 確認する項目 金融 犯罪収益移転防止法 氏名 住所 生年月日
取引目的・職種 通信 携帯電話不正利用防止法 氏名 住所 生年月日 古物 古物営業法 氏名 住所 職業 年齢 ※ほか、業界・業務ごとの法規制や自主的なルールが多数あります 7
身分証の変化|一口に語れない「本人確認」 使われる身分証も変わっていく 利用の中心 増え続ける選択肢 国籍・地域 在留期間満了日 在留資格 AB12345678CD マイナンバーカード利用 AB12345678CD
? 特定在留カード等、第二世代在留カード等 次期マイナンバーカード...など 対応していない身分証は、そのままユーザー離脱になる 8
確認方式|一口に語れない「本人確認」 本人確認方式も様々 方式 どう確認するか 撮影 身分証と顔を撮影して送信 NFC 身分証のICチップを、端末で読み取る ウォレット スマホに入った身分証を、端末で受け取る
※撮影方式は、犯収法では2027年4月に廃止予定、携帯法では2026年4月に廃止済み 9
業界 × 身分証 × 方式|一口に語れない「本人確認」 組み合わせの数だけ、実装がある 業界 金融・通信・古物 など... 身分証
運転免許証 マイナンバーカード など... 方式 撮影・NFC・ ウォレットなど... 求められる本人確認は、組み合わせによって大きく異なる 10
まとめ|一口に語れない「本人確認」 方式は撮影からNFC・ウォレットへ ネイティブ領域の 比重が上がっている 11
02 NFCで身分証を読む実装のリアル 12
読み取りの技術|NFCで身分証を読む実装のリアル NFC読み取りを支える3つの要素 NFC Type B 電波でカードとつながる ISO-DEP カードと通信するルール APDU メッセージの中身
物理接続 → 通信ルール → メッセージ内容 の3層で成り立つ 13
読み取りの技術|NFCで身分証を読む実装のリアル 運転免許証の中のファイル構造 MasterFile (MF) ルートフォルダ ① SELECT MF 4桁の暗証番号 ②
VERIFY PIN1 Dedicated File (DF) 用途ごとのフォルダ ③ SELECT DF1 Elementary File (EF) 実データのファイル ④ READ BINARY 14
読み取りの技術|NFCで身分証を読む実装のリアル CoreNFCでAPDUを送る 1 let session = NFCTagReaderSession(pollingOption: .iso14443, delegate: self)
2 session.begin() 3 4 // ① SELECT MF ― 一番上のフォルダを選ぶ 5 let apdu = NFCISO7816APDU( 6 instructionClass: 0x00, 7 instructionCode: 0xA4, // SELECT FILE 8 p1Parameter: 0x00, // ファイルIDで選択 9 p2Parameter: 0x00, // MF 10 data: Data(), 11 expectedResponseLength: -1 12 ) 13 14 // tag はタグ検出時のデリゲートから受け取ったもの 15 let (payload, sw1, sw2) = try await tag.sendCommand(apdu: apdu) 16 // sw1, sw2 が 90 00 なら成功 ※タグ検出・接続処理などは省略 15
様々なエラーハンドリング|NFCで身分証を読む実装のリアル NFCの成功・読み取り失敗・キャンセル 1 // タグ検出時 2 do { 3 try
await session.connect(to: firstTag) 4 let name = try await readName(from: tag, pin1: pin1) // 成功 5 session.invalidate() 6 } catch { 7 session.invalidate(errorMessage: message(for: error)) 8 } 9 10 // didInvalidateWithError 11 if error.code == .readerSessionInvalidationErrorUserCanceled { // キャンセル扱い 12 return 13 } ※タグ検出・接続処理などは省略 16
キャンセル直後の再スキャン|NFCで身分証を読む実装のリアル キャンセル後にスキャンシートが出ない スキャンの準備ができ ました セッション終了 begin() 1s メッセージが入るメッセージが入るメッセー ジが入るメッセージが入る キャンセル
再開可能 シートが開かない... セッション終了直後は、次のセッションを開始できない 17
キャンセル直後の再スキャン|NFCで身分証を読む実装のリアル キャンセル後にスキャンシートが出ない 再開可能 begin() スキャンの準備ができ ました メッセージが入るメッセージが入るメッセー ジが入るメッセージが入る シートが開く!! キャンセル
仕様書だけではなく、実機とログでわかることもある 18
テスト環境の確保|NFCで身分証を読む実装のリアル テストが困難... マイナンバーカード 在留カード等 運転免許証 AB12345678CD J-LISから借りる ※ただしパターンは限定される 出入国在留管理庁へ ※持ち出しができない
実カードで確認する ※テストカードが存在しない 19
まとめ|NFCで身分証を読む実装のリアル 規格どおりに書いても読めない 最後は実カードでしか 埋まらない 20
03 商用iOS SDKを提供する難しさ 21
SDKという提供形態|商用iOS SDKを提供する難しさ 社超 のサービスで動く 130 導入企業のサービスに、 組み込まれるSDKを提供している 当社SDK A社サービス B社サービス
C社サービス D社サービス E社サービス F社サービス G社サービス H社サービス 130社超の サービス 22
通常アプリ開発との違い|商用iOS SDKを提供する難しさ 通常アプリ開発では考えないこと 配布形式 どうSDKを配るか 依存ライブラリ 何に依存するか 後方互換性 どう維持するか 配布形式・依存・後方互換
の3つが論点になる 23
配布形式|商用iOS SDKを提供する難しさ 配布形式のトレードオフ Dynamic framework Static library Mergeable library 仕組み
実行時に読み込む ビルド時に取り込む ビルド時に統合 強み 組み込みやすい 起動が速い 両取りできる 注意点 起動が遅くなる ビルド時間が長い 検証コスト大 24
配布形式|商用iOS SDKを提供する難しさ 選んだのは、組み込みやすさ いまは Dynamic framework └ 組み込みやすさを優先している 次は Mergeable
library └ 一部対応済み、全体へ展開中 25
依存ライブラリとの向き合い方|商用iOS SDKを提供する難しさ 使いたい。でも、衝突する 当社SDK ライブラリA ライブラリB v2.0.x ライブラリC v3.0.x v3.0.x
ライブラリD v1.0.x 導入先アプリ 競合 ライブラリA v1.0.x ライブラリB ライブラリD v2.0.x ライブラリC v3.0.x v1.0.x 調整コストは、導入企業側に発生する 26
依存ライブラリとの向き合い方|商用iOS SDKを提供する難しさ 依存を減らしOS標準へ寄せる 依存ライブラリ サプライチェーン 攻撃の恐れ OS標準ライブラリ・API 27
後方互換性|商用iOS SDKを提供する難しさ 更新は早めに取り込んでほしい。が... SDKアップデート 互換 更新できる 非互換 導入アプリ側で 改修が必要 法改正
セキュリティ修正 機能修正 28
後方互換性|商用iOS SDKを提供する難しさ 業界×身分証×方式が増え続けても └ 後方互換性を維持する 非互換なアップデート └ 事前に告知し、メジャーアップデートで 29
後方互換性|商用iOS SDKを提供する難しさ 導入企業のアプリの中で動く以上、 インターフェースを 変えないことが機能になる 30
まとめ SDKを使うのは、エンジニア └ 組み込みも運用も、手を動かしてもらう OSSを配る側と、同じ制約 └ 配布・依存・後方互換 31
まとめ 01 : 要件は、組み合わせで変わる 業界 × 身分証 × 方式 02
: 実装は、規格だけでは完結しない OS差・エラー処理・実カードでの検証 03 : 複雑さを、組み込みやすいSDKへ 配布・依存・後方互換 32
まとめ エンジニアにも、 この会場のみなさんにも、喜ばれる。 SDKを、つくり続けたい。 33
まとめ あらゆる確認業務のペインを解消し、 本人確認を デジタル社会のインフラに 34
本人確認を支えるプロダクトを 一緒に つくりましょう! 今日お話しした内容はこちら 緑のTシャツを目印に 気軽にお声がけください! https://zenn.dev/trustdock/articles/1a77f02fc36091 35