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

OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~

Auth屋
January 29, 2023

OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~

2023/01/28 オープンソースカンファレンス大阪で発表したスライドです。
目次
1部 パスワード認証の課題
2部 ソーシャルログインのすすめ
3部 IDaaSのすすめ

Auth屋

January 29, 2023
Tweet

More Decks by Auth屋

Other Decks in Programming

Transcript

  1. 人類にパスワード認証は早す る
    ~IDaaSを使ったソーシャルログインのすすめ~
    2023 年 1 月 28 日
    Auth屋
    1

    View Slide

  2. 本セッションの趣旨
    誰向けか
    ログイン周りを作ることになった認証のプロではないエンジニア
    内容
    ● パスワードログインの課題
    ● ソーシャルログインのすすめ
    ● IDaaSのすすめ
    狙い
    「 IDaaSを使ってソーシャルログインにしよう」と思ってもらいたい
    2

    View Slide

  3. Auth屋 is 誰 ?
    OAuth、OpenID Connectの本を書いてます
    商業誌 同人誌
    Boothで販売中 https://authya.booth.pm/
    Amazon、その他書店で発売中
    3

    View Slide

  4. Auth屋 is 誰 ?
    本セッションはソーシャルログイン本の抜粋(図も本 ら引用)
    商業誌 同人誌
    Boothで販売中 https://authya.booth.pm/
    Amazon、その他書店で発売中
    4

    View Slide

  5. 監修者 いとう りょうさん(@ritou)
    ● OpenID Connect Core1.0の
    コントリビュータ
    ● OpenIDファウンデーション・ジャパン
    のエバンジェリスト
    ● Identity Dance School #iddance
    5

    View Slide

  6. 目次
    1部 パスワード認証の課題
    2部 ソーシャルログインのすすめ
    3部 IDaaSのすすめ
    6

    View Slide

  7. 目次
    1部 パスワード認証の課題
    2部 ソーシャルログインのすすめ
    3部 IDaaSのすすめ
    7

    View Slide

  8. 質問
    自分のアプリにログインをつけるとしたら、
    認証方式は何にしますか?
    8

    View Slide

  9. パスワード認証についての人類の脆弱性
    1. パスワードを忘れる
    2. パスワードを使い回す
    3. 推測しやすいパスワードを使う
    4. フィッシングサイトにパスワードを入力する
    9

    View Slide

  10. 課題1 | パスワードを忘れる
    対策
    ● リカバリー
    ○ 何ら の理由でログインで ない状態を正常な状態に戻すプロセス
    ○ ログインとは別のユーザー認証 + ログイン認証情報の更新
    ● パスワード認証のリカバリー
    ○ メール認証 + パスワード再設定
    実質的にもう一つの認証が必要
    10

    View Slide

  11. 課題2 | パスワードの使い回し
    パスワードリスト攻撃
    流出したユーザー識別子とパスワードによる不正アクセス
    11

    View Slide

  12. 課題3 | 推測しやすいパスワード
    パスワードスプレー攻撃
    ● ユーザー識別子(メールアドレスや電話番号など)をあら じめ取得
    ● パスワードを固定した上でユーザー識別子を えて不正アクセスを試みる
    ○ 「複数回パスワードを間違えたらログイン禁止」では対策で ない
    12

    View Slide

  13. 正規ログインと見分けに する工夫
    検知が難しい
    13

    View Slide

  14. 対策 | 2要素認証
    2要素認証 = 異なる2つの要素を組み合わせた認証
    知識 | ユーザーが記憶している情報
    パスワード、暗証番号
    所有 | ユーザーの所有物
    メールやSMSを受け取れる端末、モバイルアプリ インストールされた端末
    生体 | ユーザーの身体的特徴
    指紋、顔、網膜
    14

    View Slide

  15. 対策 | 2要素認証
    パスワード(知識要素)に加えて、モバイル(所有要素)を利用
    ● モバイルアプリで許可
    ● モバイルアプリでワンタイムパスワード
    ● メール、SMSにワンタイムパスワードを通知
    15

    View Slide

  16. 対策 | 2要素認証
    16

    View Slide

  17. 課題4 | フィッシングサイトへの入力
    17

    View Slide

  18. フィッシング攻撃
    18

    View Slide

  19. フィッシング攻撃
    2要素認証を使えば防げる? 19

    View Slide

  20. フィッシング攻撃 | 2要素認証の場合
    2要素認証でも防げない 20

    View Slide

  21. 対策 | FIDO認証
    FIDO認証とは
    ● Fast IDentity Onlineの略
    ● 脱パスワード認証として提唱
    ● ユーザーとサーバーで秘密の情報を共有しない
    ● 手元の認証器(指紋、顔認識、PIN入力など)にて認証
    21

    View Slide

  22. 対策 | FIDO認証
    22

    View Slide

  23. 対策 | FIDO認証
    23

    View Slide

  24. まとめ | パスワード認証の課題
    課題 攻撃 対策
    パスワードを忘れる - リカバリーの提供
    パスワードの使い回し パスワードリスト攻撃 2要素認証
    推測されやすい
    パスワードの利用
    パスワードスプレー攻撃 2要素認証
    フィッシングアプリへの
    パスワード入力
    フィッシング攻撃 FIDO認証
    24

    View Slide

  25. ログインでそこまで んばる?
    アプリ 本来提供したい価値とは直接関係ない
    25

    View Slide

  26. ログインでそこまで んばる?
    アプリ 本来提供したい価値とは直接関係ない
    ソーシャルログインなら外部サービスに認証をおまかせできる
    26

    View Slide

  27. 目次
    1部 パスワード認証の脆弱性
    2部 ソーシャルログインのすすめ
    3部 IDaaSのすすめ
    27

    View Slide

  28. ソーシャルログインとは
    普段使っているSNSやウェブサービスのユーザー認証を使って、アプリに登録・
    ログインする仕組み
    28

    View Slide

  29. 用語
    Identity Provider ( IdP )
    ソーシャルログインを提供するサービス
    リライングパーティ
    ソーシャルログインを利用するアプリ
    ID連携
    ソーシャルログイン = アイデンティティ(ユーザーの属性情報)を活用する仕組み
    29

    View Slide

  30. IDとは?
    Identity
    ● ユーザーの属性情報
    ● 「IdP」、「ID連携」、「ID管理」
    ● 本資料にでて る「ID」はすべてこちら
    Identifier
    ● 識別子
    ● 「ユーザーID」、「クライアントID」
    ● 本資料では「ユーザー識別子」として表記
    30

    View Slide

  31. ソーシャルログインの仕組み
    31

    View Slide

  32. ユーザー視点のメリット
    ● 新しいパスワード 必要ない
    ● 初期登録の手間 少ない
    ○ アプリはユーザーの属性情報をIdP ら取得
    32

    View Slide

  33. 開発者目線のメリット
    ● ユーザー認証を自前で実装する必要 な なる
    ● IdPの高度な認証方式を取り込める
    ● 登録時の離脱率を低減で る
    33

    View Slide

  34. 開発者目線のメリット
    ● ユーザー認証を自前で実装する必要 な なる
    ● IdPの高度な認証方式を取り込める
    ● 登録時の離脱率を低減で る
    パスワード認証の課題はIdP側におまかせできる
    34

    View Slide

  35. 留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要
    35

    View Slide

  36. 留意点1 | IdPごとに仕組み 微妙に異なる
    IdP 仕組み
    Google OpenID Connect
    Twitter OAuth1.0a / OAuth2.0 ベースの独自仕様
    FaceBook OAuth2.0 ベースの独自仕様
    Apple OpenID Connect(独自拡張あり)
    36

    View Slide

  37. 留意点2 | リカバリーの実装 必要
    ソーシャルログインでログインできなくなるケース
    ● IdP側の不具合
    ● SNSユーザーの利用停止
    ソーシャルログインのリカバリー
    ● 例: 「メール認証」 + 「別のIdPとの連携」
    37

    View Slide

  38. ソーシャルログインのリカバリーの例
    38

    View Slide

  39. ソーシャルログインのリカバリーの例
    認証が必要
    39

    View Slide

  40. 留意点3 | ID管理の各種機能の実装 必要
    40

    View Slide

  41. ID管理機能
    41

    View Slide

  42. ID管理機能
    42

    View Slide

  43. ID管理機能
    43

    View Slide

  44. ID管理機能
    44

    View Slide

  45. 留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要
    45

    View Slide

  46. まとめ | ソーシャルログインのすすめ
    ユーザーのメリット
    1. 新しいパスワード 必要ない
    2. 初期登録の手間 少ない
    開発者のメリット
    1. ユーザー認証を自前で実装する必要 な なる
    2. IdPの高度な認証方式を取り込める
    3. 登録時の離脱率を低減で る
    留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要 46

    View Slide

  47. まとめ | ソーシャルログインのすすめ
    ユーザーのメリット
    1. 新しいパスワード 必要ない
    2. 初期登録の手間 少ない
    開発者のメリット
    1. ユーザー認証を自前で実装する必要 な なる
    2. IdPの高度な認証方式を取り込める
    3. 登録時の離脱率を低減で る
    留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要
    IDaaSで対応
    47

    View Slide

  48. 目次
    1部 パスワード認証の脆弱性
    2部 ソーシャルログインのすすめ
    3部 IDaaSのすすめ
    48

    View Slide

  49. IDaaSとは
    何の略
    ● Identity as a Serviceの略
    以下の機能を提供するクラウドサービス
    ● ログイン機能
    ● ID管理機能
    ● 外部サービスとのID連携機能
    ● ユーザーの権限・状態に応じたアクセス制御
    49

    View Slide

  50. 企業システム向けのIDaaS
    50

    View Slide

  51. コンシューマーアプリ向けIDaaS
    51

    View Slide

  52. コンシューマーアプリ向けIDaaS
    ● Firebase Authentication
    ● Auth0
    ● AWS Cognito
    ● Azure Active Directory BtoC
    52

    View Slide

  53. 留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要
    53

    View Slide

  54. 留意点
    1. IdPごとに仕組み 微妙に異なる
    2. リカバリーの実装 必要
    3. ID管理の各種機能の実装 必要
    IDaaSで対応
    54

    View Slide

  55. 留意点1 | IdPごとに仕組み 異なる
    55

    View Slide

  56. 留意点2 | リカバリーの実装 必要
    56

    View Slide

  57. 留意2 | リカバリーの実装 必要
    認証機能や複数のIdPとの連
    携機能はIDaaSが提供
    57

    View Slide

  58. 留意点3 | ID管理機能の実装
    58

    View Slide

  59. 留意点3 | ID管理機能の実装
    IDaaSが提供してくれる
    59

    View Slide

  60. Firebase Authentication すすめ
    おすすめする理由
    ● Googleアカウント あれば使い始められる
    ● 無料プランの制限 ほぼない
    ○ 電話認証月1万回まで
    ● Firebase Authentication 単体でも使える
    60

    View Slide

  61. まとめ | IDaaSのすすめ
    ソーシャルログインの仕組みの違い
    ● IdPとやり取りするのはIDaaS
    ● アプリはIDaaSのAPIを呼び出すだけ
    リカバリーのための認証
    ● IDaaSは各種の認証機能を提供
    ID管理の機能
    ● IDaaS ID管理機能を提供
    61

    View Slide

  62. 全体まとめ
    パスワード認証はつらい
    ● パスワードリスト・スプレー攻撃対策としての2要素認証
    ● フィッシングのことまで考えるとFIDO認証
    ● リカバリーも必要
    ソーシャルログインのすすめ
    ● ユーザー認証をIdPに ま せで る
    IDaaSのすすめ
    ● ソーシャルログインの仕組みの違いを吸収
    ● リカバリーのための認証を提供
    ● ID管理機能を提供 62

    View Slide

  63. 宣伝 | ソーシャルログイン本
    内容
    ● 今回の発表内容
    ● Firebase Authenticationでサンプルアプリを作
    りな らソーシャルログイン、ID管理を学ぶ
    ● Firebase Authentication 単体での使い方
    63

    View Slide

  64. 宣伝 | ソーシャルログイン本
    64

    View Slide

  65. 宣伝 | 同人誌
    Boothで販売中 https://authya.booth.pm/
    雰囲気OAuth本 OIDC本 攻撃本
    65

    View Slide

  66. ご清聴あり とうございました
    66

    View Slide