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