Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

安全な"○○でログイン"の作り方 @ NDS in Niigata #1

2,237 views

Published on

NDS in Niigata #1での発表資料です。
https://github.com/NagaokaDevelopersStudy/Studies/blob/master/NDSMeetUp%231.md

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

安全な"○○でログイン"の作り方 @ NDS in Niigata #1

  1. 1. 安全な"○○でログイン“の作り方 @ritou NDS in Niigata #1 2014/7/13 1
  2. 2. 自己紹介  @ritou “秋田の猫”  新潟市在住、渋谷区の会社にリモート勤務  Evangelist at OpenID Foundation Japan  #idcon 運営  CPAN Author  OAuth::Lite2,OIDC::Lite NDS in Niigata #1 2014/7/13 2
  3. 3. 今日の内容  “○○でログイン”とは  実装するときに考えること  気をつけてほしいこと NDS in Niigata #1 2014/7/13 3
  4. 4. “○○でログイン”とは  ソーシャルログイン  ID連携, Identity Federation  Twitter, Facebookなどの外部サービスのア カウントを自サービスのアカウントに連携 する  ログイン、新規登録のハードルを下げる  OpenIDとかOAuthとか NDS in Niigata #1 2014/7/13 4
  5. 5. NDS in Niigata #1 2014/7/13 5
  6. 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. 7. NDS in Niigata #1 2014/7/13 7 引用 : http://www.atmarkit.co.jp/fsecurity/rensai/digid01/02.html
  8. 8. NDS in Niigata #1 2014/7/13 8 Webサービスの場合  Client Secretを安全に管理できる
  9. 9. NDS in Niigata #1 2014/7/13 9 引用: http://www.slideshare.net/matake/ayaka
  10. 10. NDS in Niigata #1 2014/7/13 10 モバイルアプリ、JSで動作するア プリケーションの場合  Client Secretを安全に管理できない
  11. 11. NDS in Niigata #1 2014/7/13 11 引用: http://www.slideshare.net/matake/ayaka
  12. 12. NDS in Niigata #1 2014/7/13 12 引用: http://www.slideshare.net/matake/ayaka
  13. 13. 実装方法  各SNSのSDK  ライブラリ  フレームワークのプラグイン  OAuth 2.0用  もっと汎用的なやつ  mBaaSを利用  Parse.com NDS in Niigata #1 2014/7/13 13
  14. 14. 実装するときに考えること  ユーザーの識別子は普遍のものを利用する  user_id, idとかで提供されるもので良い  メールアドレスは変わるので注意  新規登録時は属性情報を活用する  プロフィール情報 APIを利用 デフォルト値に利用 or フォーム補完  メールアドレスを有効活用する  登録時の確認機能スキップ  定期的に変更をチェックしても良いかも NDS in Niigata #1 2014/7/13 14
  15. 15. 気をつけてほしいこと  CSRFへの対策  Webサービス  Token置換攻撃への対策  モバイルアプリ + バックエンドサービス NDS in Niigata #1 2014/7/13 15
  16. 16. OAuth 2.0とCSRF  参考  OAuthのセキュリティ強化を目的とする拡張仕様 を導入しました http://alpha.mixi.co.jp/2013/12020/ NDS in Niigata #1 2014/7/13 16
  17. 17. 認可フロー NDS in Niigata #1 2014/7/13 17 引用: http://alpha.mixi.co.jp/2013/12020/
  18. 18. OAuth 2.0の認可要求  response_type(REQUIRED)  client_id(REQUIRED)  redirect_uri(OPTIONAL)  scope(OPTIONAL)  state(RECOMMENDED) NDS in Niigata #1 2014/7/13 18
  19. 19. CSRFが可能なケース NDS in Niigata #1 2014/7/13 19 引用: http://alpha.mixi.co.jp/2013/12020/
  20. 20. stateパラメータを利用しよう  response_type(REQUIRED)  client_id(REQUIRED)  redirect_uri(OPTIONAL)  scope(OPTIONAL)  state(RECOMMENDED) NDS in Niigata #1 2014/7/13 20
  21. 21. CSRF対策トークンとして検証 NDS in Niigata #1 2014/7/13 21 引用: http://alpha.mixi.co.jp/2013/12020/
  22. 22. NDS in Niigata #1 2014/7/13 22 CSRF対策トークンとして検証 引用: http://alpha.mixi.co.jp/2013/12020/
  23. 23. Token置換攻撃  参考  "なんちゃら iOS SDK" でありそうな被害例 http://oauth.jp/blog/2012/02/08/ios-sdk/ NDS in Niigata #1 2014/7/13 23
  24. 24. NDS in Niigata #1 2014/7/13 24 引用: http://www.slideshare.net/matake/ayaka
  25. 25. 攻撃方法  攻撃者  他のOAuth Client向けに発行されたAccess Tokenを所持している ○○占いとか  攻撃手法  バックエンドサーバーへのリクエストを把握  Access Tokenを自らが所持している第3者の Access Tokenに置き換える  得られるもの  第3者のログインセッションなど NDS in Niigata #1 2014/7/13 25
  26. 26. NDS in Niigata #1 2014/7/13 26 参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
  27. 27. NDS in Niigata #1 2014/7/13 27 参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
  28. 28. 対策  バックエンドサーバーは受け取ったAccess Tokenを検証  正しいClient向けに発行されたものであることを 確認  検証用のAPIはサービスごとに異なる…  Access Tokenを送信しないしくみを利用  Android + Googleではいろいろなしくみが用意 されている NDS in Niigata #1 2014/7/13 28
  29. 29. NDS in Niigata #1 2014/7/13 29 このあたりで検証! 引用: http://www.slideshare.net/matake/ayaka
  30. 30. おまけ : 連携キャンセル時の挙動  エラー画面にすべき?  正常系とみなす?  パラメータを判断しよう  error, error_description, error_reasonなど ユーザーにそのまま見せるのは良くない感 NDS in Niigata #1 2014/7/13 30
  31. 31. キャンセル時の挙動例:timeticket.jp NDS in Niigata #1 2014/7/13 31
  32. 32. パラメータをいじると… NDS in Niigata #1 2014/7/13 32
  33. 33. まとめ  “○○でログイン”で最近流行っているのは OAuth 2.0ベースのもの  Webサービス、モバイルアプリのそれぞれ で気をつける点がある NDS in Niigata #1 2014/7/13 33
  34. 34. ありがとうございました NDS in Niigata #1 2014/7/13 34 宣伝: http://yapcasia.org/2014/talk/show/cc57f3ca-01b8-11e4- b7e8-e4a96aeab6a4

×