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