Successfully reported this slideshow.

Whats wrong oauth_authn

1,441 views

Published on

Whats wrong oauth_authn

  1. 1. ここがダメだよOAuth認証 @nov
  2. 2. よ り 情 に 事 よ び 人 の お大 愛 ま す 部 割 い 一 れ て 換 さ 置
  3. 3. @nov - Nov MatakeOpenID Foundation Japan EvangelistIdcon Organizer ID厨OAuth.jp OAuthおにーさんRubyist GREE Power Lunch 2013.03
  4. 4. 外部IDを受け入れるセキュリティ上の利点・欠点 GREE Power Lunch 2013.03
  5. 5. Passwords Leak GREE Power Lunch 2013.03
  6. 6. Twitter、25万人のパスワードを含む個人情報漏えいの可能性 (ITMedia, 2013.02.02)使い回しパスワードは特に注意、米Yahoo!でアカウント情報流出 (@IT, 2012.07.13)LinkedIn、侵入および「一部」ユーザーのパスワード漏洩を認める (TechCrunch, 2012.06.07)Facebookのパスワードが1万件以上流出の恐れ、真偽は未確認 (ITPro, 2011.10.20) GREE Power Lunch 2013.03
  7. 7. 池田信夫、自らのメールアカウントを乗っ取られ今日も見事な醜態を晒す GREE Power Lunch 2013.03
  8. 8. GREE Power Lunch 2013.03
  9. 9. GREE Power Lunch 2013.03
  10. 10. いやー、馬鹿って本当に面白いですね。 GREE Power Lunch 2013.03
  11. 11. Same password onTwitter and Facebook? GREE Power Lunch 2013.03
  12. 12. How many sitesare you using? GREE Power Lunch 2013.03
  13. 13. 1 LeakAll Hacked GREE Power Lunch 2013.03
  14. 14. リスクは分散すべきものリソースは集中すべきもの GREE Power Lunch 2013.03
  15. 15. パスワードは使い分けるもの できないならID連携 GREE Power Lunch 2013.03
  16. 16. 100 sites 100 different password100 sites 1 password + 99 OpenID GREE Power Lunch 2013.03
  17. 17. GREE Power Lunch 2013.03
  18. 18. GREE Power Lunch 2013.03
  19. 19. OAuth認証「アクセス権限付与 + UserIDを返すAPI」アクセス権限付与のプロトコル (= OAuth) は標準化UserID取得APIは各API Providerごとにバラバラ GREE Power Lunch 2013.03
  20. 20. OAuth使って認証するための RFCなど無い。 GREE Power Lunch 2013.03
  21. 21. 単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる GREE Power Lunch 2013.03
  22. 22. Demo GREE Power Lunch 2013.03
  23. 23. Your ServerGET /meUser Info
  24. 24. Your Server Token Replace GET /me User InfoDifferent User Data :
  25. 25. OAuthの仕様を理解して FB APIの仕様も理解してドキュメント通りに実装したら アカウント乗っ取られる。 GREE Power Lunch 2013.03
  26. 26. 割 愛 よ り 情 に の 事大 人
  27. 27. Weak Point Token Replace GET /me User InfoDifferent User Data :
  28. 28. OAuth + 認証どうすればセキュアに...? GREE Power Lunch 2013.03
  29. 29. それ、OpenID Connect でできるよ。
  30. 30. ♥ OpenID Connect~ OpenID based on OAuth 2.0 ~
  31. 31. 12
  32. 32. Access Token + ID TokenEnd User Relying Party OpenID Provider Initiate Request Authorization Authenticate & Authorize Authorization Grant Authorization Grant Access Token + ID Token
  33. 33. ID Token• JWT token representing logged-in session• Claims: • iss – Issuer • sub – Identifier for user • aud – Audience for ID Token • iat, exp - issued at & expiry
  34. 34. JSON Web Token• JSON + Signature (+ Encryption) • XML Signature for JSON
  35. 35. 誰が (issuer) 誰を (subject)誰のために (audience) 認証したのか
  36. 36. Signed usingFB private key Your Server Verified using FB public key
  37. 37. 最後に
  38. 38. ****よりFB / Googleの方がセキュアだし 外部IDは受け入れた方がよい。 「1password使えや」とかユーザーに言えるの 空気読めない楽⃝社長くらい
  39. 39. ただし「OAuth認証」は仕様通り (とDeveloperが思ってる通り)に実装すると穴ができるので注意。 たぶん既に穴何カ所かある気がする...
  40. 40. ****がOpenID Connect Providerに なるのは大変そうだけどID Tokenだけ発行するならあり。 Backend API Call無いと認証できないとか けっこうつらくない?
  41. 41. twitter.com/novslideshare.net/matakegithub.com/nov

×