Secured Authentication Method for Managing Consumer-Generated Information in Web-Services

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Secured Authentication Method for Managing Consumer-Generated Information in Web-Services - Presentation Transcript

    1. 利⽤者が発信する情報を扱う Webサービスにおける 認証⽅式の実装 2008/1/24 1
    2. 1. はじめに 2008/1/24 2
    3. 背景 ►インターネットを取り巻く環境の変化 ネットワークの普及と利⽤者の増⼤ オープンソースの発展によるコスト低下 ►Webの利⽤形態の変化、 いわゆる「Web2.0」 利⽤者発信情報 (ブログ, SNS) Webサービス, WebAPI化 2008/1/24 3
    4. 利⽤者発信情報とは? ►情報取得から情報発信へ 従来: 情報を「⾒る」 近年: 情報を「発信」(利⽤者発信情報) 写真 ⽂書 Webアプリ 利⽤者発信情報 2008/1/24 4
    5. Webサービスとは? ► Webアプリ同⼠が情報を交換 SOAP, REST マッシュアップ WebアプリA (Provider) 利⽤者 (Webブラウザ) XML Webサービス HTML WebアプリB (Consumer) 加⼯ 2008/1/24 5
    6. 利⽤者発信情報とWebサービス ► 利⽤者発信情報をWebサービスで登録 第三者のWebアプリを経由 Provider 利⽤者 (ブログ) Webサービス 写真 写真 Consumer (写真共有サイト) 写真 2008/1/24 6
    7. 現状の問題点 ►利⽤者のパスワードを使って認証 パスワードを悪⽤される危険性 Provider ID パスワード 利⽤者 ID, パスワード ID, パスワード Consumer 2008/1/24 7
    8. モチベーション ►対象 利⽤者発信情報を扱うWebサービス ►⽬的 第三者経由での利⽤者発信情報の操作 利⽤者のパスワードを第三者に渡さない 2008/1/24 8
    9. トークンを⽤いた認証⽅式 ► Webサービスの認証にトークンを⽤いる Webサービスのサーバは利⽤者をパスワードで認証 ► 普及しているとは⾔いがたい サービスごとに個々に実装されている (1) ID, パスワード Provider 利⽤者 (3) トークン [Webサービス] トークン (2) Consumer 2008/1/24 9
    10. 2. 提案⽅式 2008/1/24 10
    11. コンセプト ► 従来の問題点 パスワード⽅式: 秘密情報が第三者へ トークン⽅式: サービス個々に実装 ► 実装コストが普及の妨げではないか ► 提案⽅式 (CSS2007で発表) 安全性の向上と実装規模の削減 SSOを拡張してトークン発⾏を実現 ► 実装: OpenIDを採⽤ 2008/1/24 11
    12. OpenIDの概要 (1) ►OpenID Auth 2.0 (2007.12) インターネットでのシングルサインオン URLがID (複数ドメインでの利⽤) ►多数のプレイヤー AOL, livedoor, はてな, Sun Microsystems Yahoo!, Yahoo Japan! (2008.2~) 2008/1/24 12
    13. OpenIDの概要 (2) ド) ワ ー Provider Provider ス (パ u est ) (OpenID Provider) (OpenID Provider) 認証 Re q 者 の nI D n se) e o 利⽤ Op e sp (5) ( R 要求 e nI D (2) Discovery 利⽤者 認証 ( Op (4) 応答 (3) 鍵共有 認証 (6) (7) 認証応答の検証 (1) ID Consumer Consumer (URL) の提⽰ (Relying Party) (Relying Party) 2008/1/24 OpenID Authentication 2.0, Chapter 3. Protocol Overview 13 http://openid.net/specs/openid-authentication-2_0.html
    14. OpenID拡張を⽤いたトークン発⾏ ►OpenID拡張領域 Provider Provider トークン要求 OpenIDレスポンス + トークン応答 トークン応答 ►メッセージ⽣成 利用者 利用者 はOpenIDに依存 OpenIDリクエスト + トークン要求 Consumer Consumer 2008/1/24 14
    15. トークンの要求 (Consumer) ►OpenIDリクエストの拡張領域 ►要求するトークンの種類を指定 operation 操作種別 Provider Provider 「⽣成」「取得」 OpenIDレスポンス 「更新」「削除」 + トークン応答 times 操作回数 利用者 利用者 「n回」「無制限」 OpenIDリクエスト + トークン要求 Consumer Consumer 2008/1/24 15
    16. トークンの発⾏ (Provider) ►利⽤者へトークンの発⾏可否を確認 ►⽣成したトークンをDBへ保存 token 予測不可能性を持つ Provider Provider 乱数 user_id 利⽤者のID OpenIDレスポンス + トークン応答 realm ConsumerのURL 利用者 利用者 operation 操作種別 OpenIDリクエスト times 操作回数 + トークン要求 expire 有効期限 Consumer Consumer 2008/1/24 16
    17. トークンの応答 (Provider) ►OpenIDレスポンスの拡張領域に付与 ►⽣成したトークンの値を返す token ⽣成した乱数 Provider Provider OpenIDレスポンス + トークン応答 ►メッセージの改竄防⽌ 利用者 利用者 HMACとnonceを付与 OpenIDリクエスト + トークン要求 ※ OpenIDの仕様 Consumer Consumer 2008/1/24 17
    18. 利⽤者発信情報の操作 (Consumer) ►Webサービスで利⽤者発信情報を操作 具体的なプロトコルは実装依存 ►リクエストにトークンを付加する token 取得した乱数 nonce 要求ごとにインクリメントする値 signature token+nonceへのHMAC値 2008/1/24 18
    19. 3. 実装 2008/1/24 19
    20. ソフトウェア構成 ► OpenIDライブラリ (ruby-openid) を拡張 ► Ruby on Railsのコントローラから利⽤ コントローラ Provider (Consumer/Provider) コントローラ Ruby on Rails トークン拡張 OpenIDトークン拡張 use OpenIDライブラリ ruby-openid 2.0.0 Consumer コントローラ Ruby on Rails 2.0.1 Ruby on Rails Ruby 1.8.5 OS (Ubuntu) 2008/1/24 20
    21. OpenIDトークン拡張 ►ruby-openidのExtensionクラスを継承 ►トークン要求/応答のメッセージを定義 OpenIDライブラリ OpenID::Extension OpenID::Token::Message OpenID::Token::Request OpenID::Token::Response 2008/1/24 21
    22. コントローラ (Consumer/Provider) ►OpenIDライブラリを使う ►Consumer, Provider双⽅に実装 Consumerコントローラ Providerコントローラ begin トークン要求を index トークン⽣成可否 ⽣成する を利⽤者に確認 complete トークン応答を decision トークン応答を⽣ 受信する 成する 2008/1/24 22
    23. 4. 評価 2008/1/24 23
    24. 評価の観点 ► 実装規模がどれくらい削減できるか 【提案⽅式】SSOを拡張する場合 すべて個別に実装する場合 トークン拡張 実装規模 既存のOpenID の差 ??? ライブラリ SSOを拡張 個別に実装 2008/1/24 24
    25. ⽐較対象 (OAuth) ►トークン発⾏の実装の1つ ►2007年12⽉にリリース ►認証⽅式に依存しない仕様 提案⽅式 OAuth (SSOを拡張) (個別に実装) 認証 OpenID 依存しない トークン発⾏ OpenIDの拡張領域 独⾃に定めた仕様 を使⽤する 2008/1/24 25
    26. 機能の⽐較 ►トークン発⾏と取得はどちらも可能 提案⽅式 OAuth (SSOを拡張) (個別に実装) トークンの ○ ○ 発⾏と取得 メッセージの ○ ○ 改ざん防⽌ (MAC, nonce) (MAC, nonce) ⽤途に応じた 仕様を拡張する トークン発⾏ ○ ことで実現可 (操作種別、回数) 2008/1/24 26
    27. 実装規模 (LOC) での⽐較 ►トークン発⾏の実装規模はおよそ1:13 メッセージやMAC⽣成に既存機能を利⽤ 800 700 600 500 トークン発⾏ 400 Consumer 300 Provider 200 100 0 2008/1/24 SSOを拡張(提案⽅式) 個別に実装(OAuth) 27
    28. 5. 考察 2008/1/24 28
    29. まとめ ►従来の問題点 パスワード⽅式: 秘密情報が第三者へ トークン⽅式: サービス個々に実装 ►提案⽅式 OpenIDを拡張してトークンを発⾏ Ruby上で実装 独⾃実装との⽐較で1/10以下の規模 2008/1/24 29
    30. ご清聴ありがとうございました 2008/1/24 30
    31. 利⽤例 2008/1/24 31
    32. ToDoリストの取得 ►Consumerはトークンを使って Provider上のToDoリストを取得する ToDo管理サービス ToDo管理サービス (Provider) (Provider) ン ク 利⽤者 ト ー トークン ToDoリスト ToDo取得サービス ToDo取得サービス (Consumer) (Consumer) 2008/1/24 32
    33. サンプル (Consumer) 2008/1/24 33
    34. 2008/1/24 34
    35. 2008/1/24 35

    + Kohei MATSUOKAKohei MATSUOKA, 2 years ago

    custom

    1597 views, 0 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1597
      • 1439 on SlideShare
      • 158 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds
    • 157 views on http://www.machu.jp
    • 1 views on http://209.85.175.104

    more

    All embeds
    • 157 views on http://www.machu.jp
    • 1 views on http://209.85.175.104

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags