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.7k
OSC大阪 パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
2023/01/28 オープンソースカンファレンス大阪で発表したスライドです。
目次
1部 パスワード認証の課題
2部 ソーシャルログインのすすめ
3部 IDaaSのすすめ
Auth屋
January 29, 2023
Tweet
Share
More Decks by Auth屋
See All by Auth屋
15分でサクッとパスキー入門
authyasan
7
760
仕様が読めるようになるOAuth2.0、OpenID Connect 入門
authyasan
33
10k
Serverless Frontend Meetup パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
authyasan
2
350
技術書界隈を盛り上げる会#4 なぜ技術同人サークルをつづけるのか?
authyasan
0
190
30分で「OAuth2.0完全に理解した」(freee API編)
authyasan
1
1.2k
【技術書典7】非公式!開催直前宣伝LT会 9/19
authyasan
1
160
技術書典に出した雰囲気OAuth本の紹介と10分でわかった気になるOAuth2.0
authyasan
2
970
ターゲットに届けるためにやったこと #技術同人誌再販Night★#4
authyasan
1
580
Other Decks in Programming
See All in Programming
XP, Testing and ninja testing ZOZ5
m_seki
2
280
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3k
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
490
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
12k
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
450
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.3k
dynamic!
moro
9
6.4k
Swift Concurrency - 状態監視の罠
objectiveaudio
2
450
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
380
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osk2025-duckdb
takahashiikki
1
240
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
920
Featured
See All Featured
Writing Fast Ruby
sferik
629
62k
We Have a Design System, Now What?
morganepeng
53
7.8k
Docker and Python
trallard
46
3.6k
BBQ
matthewcrist
89
9.8k
Designing for humans not robots
tammielis
254
25k
Mobile First: as difficult as doing things right
swwweet
224
10k
Bash Introduction
62gerente
615
210k
Side Projects
sachag
455
43k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Producing Creativity
orderedlist
PRO
347
40k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Visualization
eitanlees
148
16k
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