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.4k
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.1k
Serverless Frontend Meetup パスワード認証は人類には早すぎる ~ IDaaSを使ったソーシャルログインのすすめ ~
authyasan
2
250
技術書界隈を盛り上げる会#4 なぜ技術同人サークルをつづけるのか?
authyasan
0
150
30分で「OAuth2.0完全に理解した」(freee API編)
authyasan
1
1k
【技術書典7】非公式!開催直前宣伝LT会 9/19
authyasan
1
120
技術書典に出した雰囲気OAuth本の紹介と10分でわかった気になるOAuth2.0
authyasan
2
890
ターゲットに届けるためにやったこと #技術同人誌再販Night★#4
authyasan
1
540
Other Decks in Programming
See All in Programming
sqlcを利用してsqlに型付けを
kamiyam
0
230
CSC509 Lecture 01
javiergs
PRO
1
200
Pydantic x Database API:turu-pyの開発
yassun7010
1
500
Делим тесты между QA и разработчиком
mariyasaygina
0
490
GitHub Copilot Workspace で我々のアプリ開発がどう変わるのか?
shuyakinjo
0
860
ポケモンで考えるコミュニケーション / Communication Lessons from Pokémon
mackey0225
4
140
文化が生産性を作る
jimpei
3
510
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
6
240
Subclassing, Composition, Python, and You
hynek
3
110
Compose Multiplatform과 Ktor로 플랫폼의 경계를 넘어보자
kwakeuijin
0
250
Removing Corepack
yosuke_furukawa
PRO
9
1.1k
Beyond the RuboCop Defaults
koic
2
490
Featured
See All Featured
Clear Off the Table
cherdarchuk
91
320k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
Building a Scalable Design System with Sketch
lauravandoore
459
32k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
What the flash - Photography Introduction
edds
67
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
231
130k
Building a Modern Day E-commerce SEO Strategy
aleyda
37
6.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
The Invisible Customer
myddelton
119
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
What's new in Ruby 2.0
geeforr
341
31k
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