Weitere ähnliche Inhalte
Ähnlich wie 安全な"○○でログイン"の作り方 @ NDS in Niigata #1 (20)
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
- 2. 自己紹介
@ritou “秋田の猫”
新潟市在住、渋谷区の会社にリモート勤務
Evangelist at OpenID Foundation Japan
#idcon 運営
CPAN Author
OAuth::Lite2,OIDC::Lite
NDS in Niigata #1 2014/7/13
2
- 4. “○○でログイン”とは
ソーシャルログイン
ID連携, Identity Federation
Twitter, Facebookなどの外部サービスのア
カウントを自サービスのアカウントに連携
する
ログイン、新規登録のハードルを下げる
OpenIDとかOAuthとか
NDS in Niigata #1 2014/7/13
4
- 6. ID連携を支える技術
独自仕様
OpenID 2.0
OAuth 1.0 : Twitter
OAuth 2.0 : Facebook, Github, …
署名なし、モバイルアプリからの利用も想定
OpenID Connect : Google, Salesforce
OAuth 2.0のIdentity層を拡張
各サービスは、これらの標準仕様に独自拡張を
入れたりしてなかりカオスな状態
NDS in Niigata #1 2014/7/13
6
- 7. NDS in Niigata #1 2014/7/13
7
引用 :
http://www.atmarkit.co.jp/fsecurity/rensai/digid01/02.html
- 9. NDS in Niigata #1 2014/7/13
9
引用: http://www.slideshare.net/matake/ayaka
- 10. NDS in Niigata #1 2014/7/13
10 モバイルアプリ、JSで動作するア
プリケーションの場合
Client Secretを安全に管理できない
- 11. NDS in Niigata #1 2014/7/13
11
引用: http://www.slideshare.net/matake/ayaka
- 12. NDS in Niigata #1 2014/7/13
12
引用: http://www.slideshare.net/matake/ayaka
- 16. OAuth 2.0とCSRF
参考
OAuthのセキュリティ強化を目的とする拡張仕様
を導入しました
http://alpha.mixi.co.jp/2013/12020/
NDS in Niigata #1 2014/7/13
16
- 22. NDS in Niigata #1 2014/7/13
22 CSRF対策トークンとして検証
引用: http://alpha.mixi.co.jp/2013/12020/
- 23. Token置換攻撃
参考
"なんちゃら iOS SDK" でありそうな被害例
http://oauth.jp/blog/2012/02/08/ios-sdk/
NDS in Niigata #1 2014/7/13
23
- 24. NDS in Niigata #1 2014/7/13
24
引用: http://www.slideshare.net/matake/ayaka
- 25. 攻撃方法
攻撃者
他のOAuth Client向けに発行されたAccess
Tokenを所持している
○○占いとか
攻撃手法
バックエンドサーバーへのリクエストを把握
Access Tokenを自らが所持している第3者の
Access Tokenに置き換える
得られるもの
第3者のログインセッションなど
NDS in Niigata #1 2014/7/13
25
- 26. NDS in Niigata #1 2014/7/13
26
参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
- 27. NDS in Niigata #1 2014/7/13
27
参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
- 29. NDS in Niigata #1 2014/7/13
29
このあたりで検証!
引用: http://www.slideshare.net/matake/ayaka
- 30. おまけ : 連携キャンセル時の挙動
エラー画面にすべき?
正常系とみなす?
パラメータを判断しよう
error, error_description, error_reasonなど
ユーザーにそのまま見せるのは良くない感
NDS in Niigata #1 2014/7/13
30