Serverless Frontend Meetup パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
by
Auth屋
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
人類にパスワード認証は早すぎる ~IDaaSを使ったソーシャルログインのすすめ~ 2023 年 6 月 14 日 Auth屋 1
Slide 2
Slide 2 text
本セッションの趣旨 誰向けか ログイン周りを作ることになった認証のプロではないエンジニア 内容 ● パスワードログインの課題 ● ソーシャルログインのすすめ ● IDaaSのすすめ 狙い 「 IDaaSを使ってソーシャルログインにしよう」と思ってもらいたい 2
Slide 3
Slide 3 text
Auth屋 is 誰 ? OAuth、OpenID Connectの本を書いてます 商業誌 同人誌 Boothで販売中 https://authya.booth.pm/ Amazon、その他書店で発売中 3
Slide 4
Slide 4 text
Auth屋 is 誰 ? 本セッションはソーシャルログイン本の抜粋(図も本から引用) 商業誌 同人誌 Boothで販売中 https://authya.booth.pm/ Amazon、その他書店で発売中 4
Slide 5
Slide 5 text
監修者 いとう りょうさん(@ritou) ● OpenID Connect Core1.0の コントリビュータ ● OpenIDファウンデーション・ジャパン のエバンジェリスト ● Identity Dance School #iddance 5
Slide 6
Slide 6 text
目次 1部 パスワード認証の課題 2部 ソーシャルログインのすすめ 3部 IDaaSのすすめ 6
Slide 7
Slide 7 text
目次 1部 パスワード認証の課題 2部 ソーシャルログインのすすめ 3部 IDaaSのすすめ 7
Slide 8
Slide 8 text
質問 自分のアプリにログインをつけるとしたら、 認証方式は何にしますか? 8
Slide 9
Slide 9 text
質問 自分のアプリにログインをつけるとしたら、 認証方式は何にしますか? 「とりあえず、パスワード認証かな」 9
Slide 10
Slide 10 text
質問 自分のアプリにログインをつけるとしたら、 認証方式は何にしますか? 「とりあえず、パスワード認証かな」 パスワード認証のつらみを紹介します 10
Slide 11
Slide 11 text
パスワード認証についての人類の脆弱性 1. パスワードを忘れる 2. パスワードを使い回す 3. 推測しやすいパスワードを使う 4. フィッシングサイトにパスワードを入力する 11
Slide 12
Slide 12 text
課題1 | パスワードを忘れる 対策 ● リカバリー ○ 何らかの理由でログインできない状態を正常な状態に戻すプロセス ○ ログインとは別のユーザー認証 + ログイン認証情報の更新 ● パスワード認証のリカバリー ○ メール認証 + パスワード再設定 実質的にもう一つの認証が必要 12
Slide 13
Slide 13 text
課題2 | パスワードの使い回し パスワードリスト攻撃 流出したユーザー識別子とパスワードによる不正アクセス 13
Slide 14
Slide 14 text
課題3 | 推測しやすいパスワード パスワードスプレー攻撃 ● ユーザー識別子(メールアドレスや電話番号など)をあらかじめ取得 ● パスワードを固定した上でユーザー識別子をかえて不正アクセスを試みる ○ 「複数回パスワードを間違えたらログイン禁止」では対策できない 14
Slide 15
Slide 15 text
正規ログインと見分けにくくする工夫 検知が難しい 15
Slide 16
Slide 16 text
対策 | 2要素認証 2要素認証 = 異なる2つの要素を組み合わせた認証 知識 | ユーザーが記憶している情報 パスワード、暗証番号 所有 | ユーザーの所有物 メールやSMSを受け取れる端末、モバイルアプリがインストールされた端末 生体 | ユーザーの身体的特徴 指紋、顔、網膜 16
Slide 17
Slide 17 text
対策 | 2要素認証 パスワード(知識要素)に加えて、モバイル(所有要素)を利用 ● モバイルアプリで許可 ● モバイルアプリでワンタイムパスワード ● メール、SMSにワンタイムパスワードを通知 17
Slide 18
Slide 18 text
対策 | 2要素認証 18
Slide 19
Slide 19 text
課題4 | フィッシングサイトへの入力 19
Slide 20
Slide 20 text
フィッシング攻撃 20
Slide 21
Slide 21 text
フィッシング攻撃 2要素認証を使えば防げる? 21
Slide 22
Slide 22 text
フィッシング攻撃 | 2要素認証の場合 2要素認証でも防げない 22
Slide 23
Slide 23 text
対策 | FIDO認証 FIDO認証とは ● Fast IDentity Onlineの略 ● 脱パスワード認証として提唱 ● ユーザーとサーバーで秘密の情報を共有しない ● 手元の認証器(指紋、顔認識、PIN入力など)にて認証 23
Slide 24
Slide 24 text
対策 | FIDO認証 24
Slide 25
Slide 25 text
対策 | FIDO認証 25
Slide 26
Slide 26 text
まとめ | パスワード認証の課題 課題 攻撃 対策 パスワードを忘れる - リカバリーの提供 パスワードの使い回し パスワードリスト攻撃 2要素認証 推測されやすい パスワードの利用 パスワードスプレー攻撃 2要素認証 フィッシングアプリへの パスワード入力 フィッシング攻撃 FIDO認証 26
Slide 27
Slide 27 text
ログインでそこまでがんばる? アプリが本来提供したい価値とは直接関係ない 27
Slide 28
Slide 28 text
ログインでそこまでがんばる? アプリが本来提供したい価値とは直接関係ない ソーシャルログインなら外部サービスに認証をおまかせできる 28
Slide 29
Slide 29 text
目次 1部 パスワード認証の脆弱性 2部 ソーシャルログインのすすめ 3部 IDaaSのすすめ 29
Slide 30
Slide 30 text
ソーシャルログインとは 普段使っているSNSやウェブサービスのユー ザー認証を使って、アプリに登録・ログイン する仕組み 30
Slide 31
Slide 31 text
用語 Identity Provider ( IdP ) ソーシャルログインを提供するサービス リライングパーティ( RP ) ソーシャルログインを利用するアプリ ID連携 ソーシャルログイン = アイデンティティ(ユーザーの属性情報)を活用する仕組み 31
Slide 32
Slide 32 text
ソーシャルログインの仕組み 32
Slide 33
Slide 33 text
ユーザー視点のメリット ● 新しいパスワードが必要ない ● 初期登録の手間が少ない ○ アプリはユーザーの属性情報をIdPから取得 33
Slide 34
Slide 34 text
開発者目線のメリット ● ユーザー認証を自前で実装する必要がなくなる ● IdPの高度な認証方式を取り込める ● 登録時の離脱率を低減できる 34
Slide 35
Slide 35 text
開発者目線のメリット ● ユーザー認証を自前で実装する必要がなくなる ● IdPの高度な認証方式を取り込める ● 登録時の離脱率を低減できる パスワード認証の課題はIdP側におまかせできる 35
Slide 36
Slide 36 text
留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 36
Slide 37
Slide 37 text
留意点1 | IdPごとに仕組みが微妙に異なる IdP 仕組み Google OpenID Connect Twitter OAuth1.0a / OAuth2.0 ベースの独自仕様 FaceBook OAuth2.0 ベースの独自仕様 Apple OpenID Connect(独自拡張あり) 37
Slide 38
Slide 38 text
留意点2 | リカバリーの実装が必要 ソーシャルログインでログインできなくなるケース ● IdP側の不具合 ● SNSユーザーの利用停止 ソーシャルログインのリカバリー ● 例: 「メール認証」 + 「別のIdPとの連携」 38
Slide 39
Slide 39 text
ソーシャルログインのリカバリーの例 39
Slide 40
Slide 40 text
ソーシャルログインのリカバリーの例 認証が必要 40
Slide 41
Slide 41 text
留意点3 | ID管理の各種機能の実装が必要 41
Slide 42
Slide 42 text
留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 42
Slide 43
Slide 43 text
留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 IDaaSで対応 43
Slide 44
Slide 44 text
目次 1部 パスワード認証の脆弱性 2部 ソーシャルログインのすすめ 3部 IDaaSのすすめ 44
Slide 45
Slide 45 text
IDaaSとは 何の略 ● Identity as a Serviceの略 以下の機能を提供するクラウドサービス ● ログイン機能 ● ID管理機能 ● 外部サービスとのID連携機能 ● ユーザーの権限・状態に応じたアクセス制御 45
Slide 46
Slide 46 text
2種類のIDaaS ● コンシューマーアプリ向け ○ Firebase Authentication ○ Auth0 ○ AWS Cognito ○ Azure Active Directory BtoC ● 企業システム向け ○ Okta ○ OneLogin ○ Azure Active Directory 46
Slide 47
Slide 47 text
2種類のIDaaS ● コンシューマー向け ○ Firebase Authentication ○ Auth0 ○ AWS Cognito ○ Azure Active Directory BtoC ● 企業システム向け ○ Okta ○ OneLogin ○ Azure Active Directory 47
Slide 48
Slide 48 text
コンシューマーアプリ向けIDaaS 48
Slide 49
Slide 49 text
留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 49
Slide 50
Slide 50 text
留意点1 | IdPごとに仕組みが異なる 50
Slide 51
Slide 51 text
留意点2 | リカバリーの実装が必要 51
Slide 52
Slide 52 text
留意2 | リカバリーの実装が必要 認証機能や複数のIdPとの連 携機能はIDaaSが提供 52
Slide 53
Slide 53 text
留意点3 | ID管理機能の実装 53
Slide 54
Slide 54 text
留意点3 | ID管理機能の実装 IDaaSが提供してくれる 54
Slide 55
Slide 55 text
Firebase Authenticationがおすすめ おすすめする理由 ● Googleアカウントがあれば使い始められる ● 無料プランの制限がほぼない ○ 電話認証 月1万回まで ● Firebase Authentication 単体でも使える 55
Slide 56
Slide 56 text
全体まとめ パスワード認証はつらい ● パスワードリスト・スプレー攻撃対策としての2要素認証 ● フィッシングのことまで考えるとFIDO認証 ● リカバリーも必要 ソーシャルログインのすすめ ● ユーザー認証をIdPにおまかせできる IDaaSのすすめ ● ソーシャルログインの仕組みの違いを吸収 ● リカバリーのための認証を提供 ● ID管理機能を提供 56
Slide 57
Slide 57 text
宣伝 | ソーシャルログイン本 内容 ● 今回の発表内容 ● Firebase Authenticationでサンプルアプリを作 りながらソーシャルログイン、ID管理を学ぶ ● Firebase Authentication 単体での使い方 57
Slide 58
Slide 58 text
宣伝 | ソーシャルログイン本 58
Slide 59
Slide 59 text
宣伝 | 同人誌 Boothで販売中 https://authya.booth.pm/ 雰囲気OAuth本 OIDC本 攻撃本 59
Slide 60
Slide 60 text
ご清聴ありがとうございました 60
Slide 61
Slide 61 text
資料 61
Slide 62
Slide 62 text
まとめ | ソーシャルログインのすすめ ユーザーのメリット 1. 新しいパスワードが必要ない 2. 初期登録の手間が少ない 開発者のメリット 1. ユーザー認証を自前で実装する必要がなくなる 2. IdPの高度な認証方式を取り込める 3. 登録時の離脱率を低減できる 留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 62
Slide 63
Slide 63 text
まとめ | ソーシャルログインのすすめ ユーザーのメリット 1. 新しいパスワードが必要ない 2. 初期登録の手間が少ない 開発者のメリット 1. ユーザー認証を自前で実装する必要がなくなる 2. IdPの高度な認証方式を取り込める 3. 登録時の離脱率を低減できる 留意点 1. IdPごとに仕組みが微妙に異なる 2. リカバリーの実装が必要 3. ID管理の各種機能の実装が必要 IDaaSで対応 63
Slide 64
Slide 64 text
用語 Identity Provider ( IdP ) ソーシャルログインを提供するサービス リライングパーティ( RP ) ソーシャルログインを利用するアプリ ID連携 ソーシャルログイン = アイデンティティ(ユーザーの属性情報)を活用する仕組み 64
Slide 65
Slide 65 text
まとめ | IDaaSのすすめ ソーシャルログインの仕組みの違い ● IdPとやり取りするのはIDaaS ● アプリはIDaaSのAPIを呼び出すだけ リカバリーのための認証 ● IDaaSは各種の認証機能を提供 ID管理の機能 ● IDaaSがID管理機能を提供 65
Slide 66
Slide 66 text
IDとは? Identity ● ユーザーの属性情報 ● 「IdP」、「ID連携」、「ID管理」 ● 本資料にでてくる「ID」はすべてこちら Identifier ● 識別子 ● 「ユーザーID」、「クライアントID」 ● 本資料では「ユーザー識別子」として表記 66
Slide 67
Slide 67 text
ID管理機能 67
Slide 68
Slide 68 text
ID管理機能 68
Slide 69
Slide 69 text
ID管理機能 69
Slide 70
Slide 70 text
ID管理機能 70
Slide 71
Slide 71 text
IDaaSを使ったリカバリー ● ベストプラクティスは確立されていない ● メール認証、複数のIdPとの連携機能はIDaaSで提供 一般化 ログインとは別の認証 ログイン認証情報の変更 パスワードログイン メール認証 パスワードの更新 ソーシャルログイン メール認証 別のIdPとの連携 71
Slide 72
Slide 72 text
企業システム向けのIDaaS 72
Slide 73
Slide 73 text
コンシューマーアプリ向けIDaaS ● Firebase Authentication ● Auth0 ● AWS Cognito ● Azure Active Directory BtoC 73
Slide 74
Slide 74 text
74