Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
Search
Auth屋
January 29, 2023
Programming
9
2.5k
OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
2023/01/28 オープンソースカンファレンス大阪で発表したスライドです。
目次
1部 パスワード認証の課題
2部 ソーシャルログインのすすめ
3部 IDaaSのすすめ
Auth屋
January 29, 2023
Tweet
Share
More Decks by Auth屋
See All by Auth屋
仕様が読めるようになるOAuth2.0、OpenID Connect 入門
authyasan
33
9.3k
Serverless Frontend Meetup パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
authyasan
2
260
技術書界隈を盛り上げる会#4 なぜ技術同人サークルをつづけるのか?
authyasan
0
160
30分で「OAuth2.0完全に理解した」(freee API編)
authyasan
1
1.1k
【技術書典7】非公式!開催直前宣伝LT会 9/19
authyasan
1
130
技術書典に出した雰囲気OAuth本の紹介と10分でわかった気になるOAuth2.0
authyasan
2
900
ターゲットに届けるためにやったこと #技術同人誌再販Night★#4
authyasan
1
550
Other Decks in Programming
See All in Programming
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
170
みんなでプロポーザルを書いてみた
yuriko1211
0
260
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Better Code Design in PHP
afilina
PRO
0
120
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
880
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
160
Outline View in SwiftUI
1024jp
1
330
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
330
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Designing Experiences People Love
moore
138
23k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Rails Girls Zürich Keynote
gr2m
94
13k
A Tale of Four Properties
chriscoyier
156
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Transcript
人類にパスワード認証は早す る ~IDaaSを使ったソーシャルログインのすすめ~ 2023 年 1 月 28 日 Auth屋
1
本セッションの趣旨 誰向けか ログイン周りを作ることになった認証のプロではないエンジニア 内容 • パスワードログインの課題 • ソーシャルログインのすすめ • 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 #iddance 5
目次 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 Connect Twitter
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
企業システム向けのIDaaS 50
コンシューマーアプリ向けIDaaS 51
コンシューマーアプリ向けIDaaS • Firebase Authentication • Auth0 • AWS Cognito •
Azure Active Directory BtoC 52
留意点 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