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
2.9k
9
Share
OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
2023/01/28 オープンソースカンファレンス大阪で発表したスライドです。
目次
1部 パスワード認証の課題
2部 ソーシャルログインのすすめ
3部 IDaaSのすすめ
Auth屋
January 29, 2023
More Decks by Auth屋
See All by Auth屋
15分でサクッとパスキー入門
authyasan
7
930
仕様が読めるようになるOAuth2.0、OpenID Connect 入門
authyasan
33
11k
Serverless Frontend Meetup パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
authyasan
2
380
技術書界隈を盛り上げる会#4 なぜ技術同人サークルをつづけるのか?
authyasan
0
210
30分で「OAuth2.0完全に理解した」(freee API編)
authyasan
1
1.3k
【技術書典7】非公式!開催直前宣伝LT会 9/19
authyasan
1
180
技術書典に出した雰囲気OAuth本の紹介と10分でわかった気になるOAuth2.0
authyasan
2
1k
ターゲットに届けるためにやったこと #技術同人誌再販Night★#4
authyasan
1
610
Other Decks in Programming
See All in Programming
dRuby over BLE
makicamel
2
290
今さら聞けないCancellationToken
htkym
0
210
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
500
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
1.9k
AIとRubyの静的型付け
ukin0k0
0
520
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
Swiftのレキシカルスコープ管理
kntkymt
0
210
RTSPクライアントを自作してみた話
simotin13
0
430
CSC307 Lecture 17
javiergs
PRO
0
310
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Are puppies a ranking factor?
jonoalderson
1
3.5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
4 Signs Your Business is Dying
shpigford
187
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
590
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
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