$30 off During Our Annual Pro Sale. View Details »

2段階認証実装の勘所

ころころ
September 22, 2021

 2段階認証実装の勘所

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

ころころ

September 22, 2021
Tweet

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    多要素認証

    View Slide

  5. 多要素認証とは 
    認証の3要素
    これら2つ以上含む認証が「多要素認証」!
    ➡ 一般的に「知識情報」を用いた認証と他の要素の認証を組み合わせたものが2段階認証
    知識情報 所持情報 生体情報
    例 パスワード
    PINコード
    秘密の質問
    携帯電話
    ハードウェアトークン
    ICカード
    指紋

    静脈
    リスク ハッキング
    フィッシング
    紛失
    盗難
    センサーのハッキング事
    故や怪我

    View Slide

  6. iPhoneでは生体認証を多要素認証として利用できる?

    View Slide

  7. https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/authentication/
    生体認証を多要素認証として使うことは難しい 
    - iPhoneは知識情報(パスコード)に加えて生体情報
    (Touch ID, Face ID)を設定することができる
    ※ ただし、生体情報が利用できない場合は多くの場合で、
      知識情報のみの認証にフォールバックされる!
    ☆Human Interface Guideline
    ユーザが生体情報を無効にした場合や失敗した場合に
    パスコード認証などのフォールバック手段を提供する必要あり

    View Slide

  8. 多要素認証としての2段階認証 
    知識情報 モバイルサービスで利用できる所持情報
    - パスワード生成機
    ✖ 別の端末が必要
    - 電話番号(SMS)
    ✖ 運用コストが高い
    - TOTP

    View Slide

  9. TOTPとは

    View Slide

  10. TOTP 
    RFC6238に「TOTP: Time-Based One-Time Password Algorithm」として定
    義、公開されている
    https://github.com/google/google-authenticator
    - サーバーと共有する秘密鍵と時間を変数として特定の桁
    数の値を生成する
    - 秘密鍵が保存された端末でしか認証できないため、 擬
    似的に端末を「所持情報」と見なすことができる
    利用できるトークンソフトウェア
       例)Google Authenticator, 1password, Authy, IIJ SmartKey

    View Slide

  11. モバイルにおけるTOTPの実装と注意点

    View Slide

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

    View Slide

  13. 認証設定 

    View Slide

  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が利用できないため、偽アプリに遷移してしまう可能性!

    View Slide

  15. ログインについて 

    View Slide

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

    View Slide

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

    View Slide