Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOSDC Japan 2026 あらゆる業界のiOSアプリに組み込まれる、本人確認SDKの技術

Avatar for TRUSTDOCK TRUSTDOCK
September 25, 2026
150

iOSDC Japan 2026 あらゆる業界のiOSアプリに組み込まれる、本人確認SDKの技術

Avatar for TRUSTDOCK

TRUSTDOCK

September 25, 2026

Transcript

  1. 業界ごとの法規制|一口に語れない「本人確認」 業界ごとに根拠法が違う 業界 主な法規制 確認する項目 金融 犯罪収益移転防止法 氏名 住所 生年月日

    取引目的・職種 通信 携帯電話不正利用防止法 氏名 住所 生年月日 古物 古物営業法 氏名 住所 職業 年齢 ※ほか、業界・業務ごとの法規制や自主的なルールが多数あります 7
  2. 身分証の変化|一口に語れない「本人確認」 使われる身分証も変わっていく 利用の中心 増え続ける選択肢 国籍・地域 在留期間満了日 在留資格 AB12345678CD マイナンバーカード利用 AB12345678CD

    ? 特定在留カード等、第二世代在留カード等 次期マイナンバーカード...など 対応していない身分証は、そのままユーザー離脱になる 8
  3. 業界 × 身分証 × 方式|一口に語れない「本人確認」 組み合わせの数だけ、実装がある 業界 金融・通信・古物 など... 身分証

    運転免許証 マイナンバーカード など... 方式 撮影・NFC・ ウォレットなど... 求められる本人確認は、組み合わせによって大きく異なる 10
  4. 読み取りの技術|NFCで身分証を読む実装のリアル 運転免許証の中のファイル構造 MasterFile (MF) ルートフォルダ ① SELECT MF 4桁の暗証番号 ②

    VERIFY PIN1 Dedicated File (DF) 用途ごとのフォルダ ③ SELECT DF1 Elementary File (EF) 実データのファイル ④ READ BINARY 14
  5. 読み取りの技術|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
  6. 様々なエラーハンドリング|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
  7. 配布形式|商用iOS SDKを提供する難しさ 配布形式のトレードオフ Dynamic framework Static library Mergeable library 仕組み

    実行時に読み込む ビルド時に取り込む ビルド時に統合 強み 組み込みやすい 起動が速い 両取りできる 注意点 起動が遅くなる ビルド時間が長い 検証コスト大 24
  8. 依存ライブラリとの向き合い方|商用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
  9. まとめ 01 : 要件は、組み合わせで変わる 業界 × 身分証 × 方式 02

    : 実装は、規格だけでは完結しない OS差・エラー処理・実カードでの検証 03 : 複雑さを、組み込みやすいSDKへ 配布・依存・後方互換 32