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

2段階認証実装の勘所

35cfc27e86aefb1a8d59fc8ce0d67bd1?s=47 ころころ
September 22, 2021

 2段階認証実装の勘所

iOSDC Japan 2021 の 9/19(日)に登壇させていただいたLTの資料です。
https://fortee.jp/iosdc-japan-2021/proposal/9d436faa-9d45-4f50-bf33-969240f1dd9e

35cfc27e86aefb1a8d59fc8ce0d67bd1?s=128

ころころ

September 22, 2021
Tweet

Other Decks in Programming

Transcript

  1. ころころ 2段階認証実装の勘所

  2. Safie.Inc @corori_22 cororine22   ころころ

  3. 2段階認証(多要素認証)とは

  4. - ID、パスワードだけの認証に比べて、セキュリティが強化される - 明確な定義はなく「2段階の手法をとる認証」のこと 2段階認証とは  回数 - 秘密の質問 - メールアドレスを用いた

    ワン タイムパスワード etc..  OR 要素 ⬇ 多要素認証
  5. 多要素認証とは  認証の3要素 これら2つ以上含む認証が「多要素認証」! ➡ 一般的に「知識情報」を用いた認証と他の要素の認証を組み合わせたものが2段階認証 知識情報 所持情報 生体情報 例 パスワード

    PINコード 秘密の質問 携帯電話 ハードウェアトークン ICカード 指紋 顔 静脈 リスク ハッキング フィッシング 紛失 盗難 センサーのハッキング事 故や怪我
  6. iPhoneでは生体認証を多要素認証として利用できる?

  7. https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/authentication/ 生体認証を多要素認証として使うことは難しい  - iPhoneは知識情報(パスコード)に加えて生体情報 (Touch ID, Face ID)を設定することができる ※ ただし、生体情報が利用できない場合は多くの場合で、

      知識情報のみの認証にフォールバックされる! ☆Human Interface Guideline ユーザが生体情報を無効にした場合や失敗した場合に パスコード認証などのフォールバック手段を提供する必要あり
  8. 多要素認証としての2段階認証  知識情報 モバイルサービスで利用できる所持情報 - パスワード生成機 ✖ 別の端末が必要 - 電話番号(SMS) ✖

    運用コストが高い - TOTP
  9. TOTPとは

  10. TOTP  RFC6238に「TOTP: Time-Based One-Time Password Algorithm」として定 義、公開されている https://github.com/google/google-authenticator - サーバーと共有する秘密鍵と時間を変数として特定の桁

    数の値を生成する - 秘密鍵が保存された端末でしか認証できないため、 擬 似的に端末を「所持情報」と見なすことができる 利用できるトークンソフトウェア    例)Google Authenticator, 1password, Authy, IIJ SmartKey
  11. モバイルにおけるTOTPの実装と注意点

  12. ネイティブアプリ上でのTOTPの実装の概要  ネイティブアプリが実装するのは大まかに以下の2つです 認証設定 ログイン

  13. 認証設定 

  14. https://github.com/google/google-authenticator 注意点:URLスキームでのトークンソフトウェアへの遷移 - URLのフォーマットが決められている ※ Google Authenticator、Authy、iij、1passwordは同じフォーマット ※ Google Authenticatorであれば“googleauthenticator://”でも起動は可能

    共通のURL Schemeのフォーマットのため遷移先がコントロールできない! otpauth://totp/LABEL?PARAMETERS Universal Linkが利用できないため、偽アプリに遷移してしまう可能性!
  15. ログインについて 

  16. 注意点:TOTPユーザーかどうかの判定 ①ID, パスワードが一致時のみTOTP認証を要求   ②ID一致時にTOTP認証を要求し、最後にID, パスワード、TOTPの検証を行う ログイン前にTOTP設定済みユーザかどうかの判断する必要がある! ログインの中間状態が発生 ログインの中間状態がない、パスワードに対するアタックに強い

  17. ご清聴ありがとうございました!