Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ID連携基礎 / ID Federation Basis

ID連携基礎 / ID Federation Basis

HAYASHI, Tatsuya ( @lef )

August 17, 2016
Tweet

More Decks by HAYASHI, Tatsuya ( @lef )

Other Decks in Technology

Transcript

  1. https://lepidum.co.jp/ Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.

    ID連携基礎 / ID Federation Basis (修正公開版) セキュリティキャンプ2016 全国大会 (2016/8/12) 株式会社レピダム 林 達也 (@lef ) HAYASHI, Tatsuya / Lepidum Co. Ltd. YAuth.jp 真武信和 ( @nov ) Nov Matake / YAuth.jp
  2. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    講義内容 計算機と寄り添うように使われてきたIDとパスワードによる"認証"は、既に社会においても個人の生活から社会システムにおいてまで日々利 用されている、重要な基礎技術です。 一方で、古典的な攻撃手法であるパスワードクラック等を始め、攻撃の基本ともいえる領域ともなっており、計算機の歴史においては常に 重要な要素技術として常に磨かれ、進化してきました。 もちろん、社会にこれほど普及したものである以上、完璧ということはなく既に数々の課題が存在します。 多くの課題がある中、最近ではfacebookやtwitterなどによる、いわゆるソーシャルログインのようなID連携(ID Federation)がどんどん普及して います。 そもそも"認証"(Authentication)というのはどういう行為を指しているのでしょうか?多くの人は、あまり意識せずに認証を行っていますが、 認証の概念は、デジタルの世界で必須となる重要な概念で、実は考えるととても奥深く興味深いものです。 この講義では、普段意識もしないようなレベルで使っている認証技術とその現代的な基礎であるID連携について、OAuthやOpenID Connect等 プロトコルを中心にセキュリティの観点から学びます。 HTTPベースのプロトコルを扱うため、WebブラウザやcURLコマンドでも講義を理解できる形とします。もちろん、プログラムが得意な人は 好きなプログラミング言語を使って作業を進めても構いません。 講義では、ID & Passwordで認証してる時の問題点について触れた後、ID連携の実際を知るために実際にID連携についての実習を行います。更 に、ID連携において技術的に注意すべきところ、セキュリティ的な側面で重要なところを知るべく、実際の攻撃例についても学びます。
  3. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    林 達也 (@lef ) 所属  株式会社レピダム 代表取締役  Internet Society Japan Chapter Online Identity WG チェア/ プログラム委員(2013-2016)  OpenID Foundation Japan 理事  Identity Conference ( #idcon ) オーガナイザー  慶應義塾大学大学院メディア デザイン研究科 後期博士課程 (D1)  慶應義塾大学KMD研究所 所員  慶應義塾大学SFC研究所 上級所員 業務領域 応用・実用研究  標準化支援  アイデンティティ、プライバ シー  認証・認可  ソフトウェア&ネットワークセ キュリティ, 脆弱性  ネットワーク技術  プログラミング言語処理系  コンパイラ, インタプリタ, 言語設計  各種コンサルテーション
  4. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    最近は…(1)  CCS Injection脆弱性の発見  HTTP/2(RFC7540)の標準化活動  OAuthやOpenID Connectの普 及活動  Identity, 標準化, プロトコル, etc...  IETFやW3Cで標準化活動  Trust Framework関連
  5. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    最近は…(1)  CCS Injection脆弱性の発見  HTTP/2(RFC7540)の標準化活動  OAuthやOpenID Connectの普 及活動  Identity, 標準化, プロトコル, etc...  IETFやW3Cで標準化活動  Trust Framework関連 通信プロトコルが大好き! ソフトウェアとネットの 力を信じてる
  6. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    最近は…(2)  Keio Cyber Security Research Center  BSafe.network Project  Administrator of the first and seed node of BSafe.network at Keio University.  Blockchain Lab  Keio Research Institute at SFC  Information Bank Consortium
  7. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    最近は…(3)  博士への長い道 / The voyage Ph.D...  慶應義塾大学で 「社会的信頼」 という研究をしてます
  8. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Nov Matake ( @nov )  YAuth.jp 代表  OpenID Foundation Japan 事務局長  OAuth.jp 管理人  idcon.org ( #idcon ) オーガナイザー  Ruby ライブラリいろいろ  セキュリティの人というよりIDの人
  9. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Agenda  知識編  ID連携を構成する要 素を簡単に説明  Password  ID and Identity  認証 / Authentication , 認可 / Authorization  ID連携 / ID Federation  実習編  実際にID連携を試し てみる  更に具体的な攻撃を 試してみる  CSRF  トークン置換  コード置換  再認証回避
  10. https://lepidum.co.jp/ Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved.

    ID連携基礎 / ID Federation Basis 知識編 / Knowledge part
  11. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Question Do you know "ID and Password" ? Do you have "ID and Password" ? How many "ID and Password" ?
  12. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Attack for ID and Password  ID and Passwordのシステムに対する攻撃を 振り返る
  13. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Old style password attack  Brute force(力ずく)  1, 2...9, 10, 11...19, 20...99, 100...  A, B...Z, AA, AB...AZ, AAA, AAB...AAZ, AAAA...  桁数(4桁, 8桁)  PIN, Password, Passphrase, ...  推測  "Password", "1234", etc...  よく使われるパスワード  辞書攻撃
  14. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Old style password attack  Brute force(力ずく)  1, 2...9, 10, 11...19, 20...99, 100...  A, B...Z, AA, AB...AZ, AAA, AAB...AAZ, AAAA...  桁数(4桁, 8桁)  PIN, Password, Passphrase, ...  推測  "Password", "1234", etc...  よく使われるパスワード  辞書攻撃 昨日の講義を 聞いた人もい るかも?
  15. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    パスワードの桁数・文字数  8桁パスワード  SunOS "/etc/passwd"  過去、データは8桁で切り捨てて保存するが、 認証は入力したデータで行うシステムが世の中 にはあった  PINコード  電話機、テンキー  人間の記憶力  文化、教育、etc...
  16. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    いわゆるANA, JAL事件  公式"Web"のパスワードが"数字"で"4桁"  つまり約10,000通りしかない  実際には"1111"などの使えない組み合わせがあるの でもっと少ない!  なぜ?  "電話"と"記憶"  銀行のキャッシュカードとの違いは?  そして最近はこれも…
  17. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    事件の概要  2014/1-3  サイトに不正ログインが相次ぐ  目的はマイレージ  ギフト券などの交換して現金化  JALは約100件の不正アクセスで、約50件、数百万規模の 被害  2014/9  JALは生年月日による認証を追加  ANAはパスワードを英数文字8桁以上16桁以下に変 更
  18. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    ANA/JALのWebサイトのログイン  マイレージ会員番号とパスワードでログイ ン  ANA  数字10桁の会員番号と4桁PIN  JAL  数字7 or 9桁の会員番号と6桁パスワード
  19. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    よくある"情報漏洩"事件  『お客様のパスワードは(暗号化されており) 漏れていません』  …IDは漏れている?  e-mail addressは?  パスワードやクレジットカード番号が漏れてい なければ安全なのか?
  20. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    (いわゆる) リバースブルートフォース攻撃  パスワードを固定して、IDを次々に変えてログインを試 行する攻撃  Alice:"1111", Bob:"1111"...  数字4桁だと10,000通りしかない!  Alica, Alicb, Alicc...でなくてもいい?  IDは隠すものではない  Webをクロールすれば正しそうな情報が山程手に入る  IDのリストがあればより簡単  多くのCaseではIDはメールアドレス  IDは「会員番号」等で長さも固定された数字である場合があ る  ANAマイレージクラブの会員数は公称約2,500万人(当時)  計算上、平均2,500人がひとつのパスワード(PIN)にぶら下がってる  PIN "1111"に対して2,500万回試行すると2,500回成功する
  21. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    影響や怖さ、被害範囲  ANAのCaseは「お客様番号」でのログイン だった  ユーザーが自分の安全を守る方法がない(な かった)  ANA/JALの例は現金化目的だったが、標的型 攻撃(Targeted Attack)だったら…?  航空会社の利用者層を考えると…?
  22. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    ...Crisis !  Passwordによるシステムに致命的な状況に 陥る いわゆるパスワードリスト型攻撃
  23. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    前提条件  大規模漏洩でID and Passwordの情報が漏れ ている  対象でなかった人・アカウントは無関係  Passwordを使いまわしてなければ大丈夫
  24. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    漏洩事故 (Password) List based attack / パスワードリスト型攻撃 認証を行う ユーザ 認証を行う サービスA 漏洩した ID/Password のリスト 認証を行う サービスB 認証を行う サービスC 『覚え切れないから パスワードは一緒で いいや』 攻撃者
  25. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    そもそも… パスワードって何? IDって何? 何のために何を攻撃しているんだっけ?
  26. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    そもそも… パスワードって何? IDって何? 認証って何?
  27. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    『パスワードとはそもそも何か?』  本人のみが知りうる秘密の情報  認証する側"も"知っている「ことも」ある  合言葉、パスワード、パスフレーズ  メリット・デメリット  意識と記憶が正常なら安定して出力可能  概ね人体(=本人)のみで完結  任意の使い分けが可能  記録・複製・伝搬可能(=意志とは別に代行可 能)  変更時は相手との同期が必須
  28. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    合言葉  "Open Sesame!"  呪文、秘密の言葉  「山!」「川!」  連想による検証  双方、ChallengeとResponseを知っている  数学(暗号)と(暗号学的)Hash関数の偉大さ
  29. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Authentication Factor Something You Know • 記憶、知識 • ex) パスワード Something You Have • 所有 • ex) ICカード Something You Are • 本人の特長 • ex) バイオメトリクス from NIST SP800-63 "Digital Authentication Guideline"
  30. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    パスワード認証の終焉  パスワードリスト型攻撃の影響  人類の脳内記憶力は有限  絶対、間違いなく、確実にパスワードは使いま わされる  漏洩被害を抑えることはもう出来ない
  31. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    パスワード認証の終焉  パスワードリスト型攻撃の影響  人類の脳内記憶力は有限  絶対、間違いなく、確実にパスワードは使いま わされる  漏洩被害を抑えることはもう出来ない Password is Dead! パスワード認証終了の お知らせ
  32. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    そもそも… パスワードって何? IDって何? 認証って何?
  33. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    ID?  Identification :識別  Identifier :識別子  Identity: 自己像  Identity Proofing :本人確認
  34. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identify  Identification :識別  対象と他の違いを認識して区別する行為  Identifier :識別子  識別に使う情報  結果的に、ひとつの文脈の中ではユニークであ ることが想定される
  35. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    属性 / Attribute  慶應義塾大学 大学院 メディアデザイン研 究科 教授  Mozilla Japan 理事  WIDE Project  50代半ば  Internetの偉人  陽気でポジティブ  鉄道
  36. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity / 自己像  慶應義塾大学 大学院 メディアデザイン研 究科 教授  Mozilla Japan 理事  WIDE Project  50代半ば  Internetの偉人  陽気でポジティブ  鉄道 Identity = 属性の集合 (ISO/IEC 24760)
  37. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity / 自己像  慶應義塾大学 大学院 メディアデザイン研 究科 教授  Mozilla Japan 理事  WIDE Project  50代半ば  Internetの偉人  陽気でポジティブ  鉄道 Identity = 属性の集合 (ISO/IEC 24760) 人はEntity (実体) を Identity (属性の集合)に よって認識・認知する
  38. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity / 自己像  慶應義塾大学 大学院 メディアデザイン研 究科 教授  Mozilla Japan 理事  WIDE Project  50代半ば  Internetの偉人  陽気でポジティブ  鉄道 Identity = 属性の集合 (ISO/IEC 24760) 人はEntity (実体) を Identity (属性の集合)に よって認識・認知する 1つのEntityに Identityは複数存在
  39. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity / 自己像  慶應義塾大学 大学院 メディアデザイン研 究科 教授  Mozilla Japan 理事  WIDE Project  50代半ば  Internetの偉人  陽気でポジティブ  鉄道 Identity = 属性の集合 (ISO/IEC 24760) 人はEntity (実体) を Identity (属性の集合)に よって認識・認知する 1つのEntityに Identityは複数存在 Identityはコンテキス トに依存する
  40. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    "非技術者のためのデジタル・アイデンティティ入門 / 崎村夏彦氏"より引用
  41. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity Proofing :本人確認  Identityの証明に必要な行為
  42. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Identity Proofing :本人確認  Identityの証明に必要な行為 非常に重要な概念 少し後で もう一度出るかも?
  43. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Discussion 1  自分にはどういうIdentityがあるかを挙げて みてください  Identifier / 識別子の観点で、いま座っている 環境でどういうIdentityがあり得るかを議論 してみてください
  44. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    そもそも… パスワードって何? IDって何? 認証って何?
  45. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    そもそも… IDとパスワードって 何のために必要なん だっけ? 認証
  46. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    パスワード認証  パスワード認証は、情報システムにおける 認証の代表的な例  パスワード認証のプロセスを分解してみる と…
  47. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    (1) パスワード認証の事前登録 1. 認証される側は、識別子とパスワード(と 属性)を認証する側に預ける 2. 認証する側は預けられた情報を検証する  識別子がシステム(コンテキスト)内でユニーク かどうか、メール疎通などの検証をする 3. 最終的に、認証される側がOKする
  48. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    (2) 実際のパスワード認証 1. 認証される側が識別子とパスワードを提出 する 2. 認証する側は、識別子に紐づくIdentityを特 定し、 3. パスワードが正しいかを確認する  "ブラウザの前のEntityがそのIdentityの所有 者だと判断出来る"
  49. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Authentication / 認証  「情報システムに対して, デジタル表現されたユー ザーの Identity の確からしさを確立するプロセス」  Entityが認証する側の持つIdentityと紐づく(bind)する かを確認する行為  ex) ユーザがサービス提供者の持つDB内の情報と同じか を確認  多くの場合、識別が(も)必要になる  確認に必要な情報はひとつとは限らない  ex) 多要素認証
  50. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    認証とはなにか?  EntityとIdentityが紐づくか?  紐づくことで登録者と認証される
  51. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    その他の例  携帯電話の契約  契約する側が携帯ショップのカウンターで「本 人確認書類」を提出する  携帯事業者が提出された情報を登録する  携帯電話が疎通してサービスが利用可能になる
  52. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    Discussion 2  携帯電話(SIM)は認証しているのですが、な ぜIdentityとEntityを紐付けることが出来るの かの手続きを確認してみてください  その他、マイナンバーシステムや学校のシ ステムではどうやって認証出来ているのか を挙げてみてください
  53. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

     Facebook  Twitter  Google  Github  Yahoo! Social Login Instagram, Togetter, ATND, Qiita
  54. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    ID Federation  "一連のネットワークシステム間でIdentity および認証情報の伝搬を行うためのプロセ ス"
  55. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    ID連携・認証連携  ID連携で実現したいのは、認証イベントの 情報とその時の属性情報の伝搬  ID連携と属性交換は別  ID連携は属性交換を包含する  ID連携を伴わない属性交換も存在する
  56. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    属性情報?  例えば、18歳未満かどうか確認する  LINEにおけるモバイルキャリアでの年齢認証
  57. Copyright © 2004-2016 Lepidum Co. Ltd. All rights reserved. https://lepidum.co.jp/

    世の中に存在するID連携のシステム  マイナンバー (公的個人認証/JPKI)  国民であることが証明できる  学認  学生であることを証明できる