Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)

「Shibuya.XSS in セキュリティ・キャンプ・フォーラム 2015」の発表資料です。

HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)

  1. 1. HPKP Supercookies 公開鍵ピンニングによるユーザ追跡 Shibuya.XSS in Security Camp Forum 2015
  2. 2. 西村 宗晃 Sony Digital Network Applications, Inc. Lecturer of Security Camp 2014
  3. 3. http://www.radicalresearch.co.uk/lab/hstssupercookies
  4. 4. HTTP Cookieを使わず HSTSのみでユーザ追跡できることが話題に
  5. 5. 実は2年前に指摘されていた問題 • HSTSではなく、HPKPのドラフト文書に書かれている • SNIを用いれば、HPKPでもユーザを追跡できるらしい
  6. 6. HPKP Supercookies 実際に作ってみた
  7. 7. その前に…HPKPとは • HTTPS通信で使用する証明書の情報をブラウザに記憶 – 証明書のピン留めとか、公開鍵ピンニングと呼ばれる – Public-Key-PinsというHTTP Responseヘッダでサーバがピン留めを指示 • ピン留めされていない証明書によるHTTPSの接続を弾く – 2011年以降相次ぐ、CAによる証明書の誤発行や不正発行を防ぐ – 偽のGoogleの証明書による攻撃を実際に防いできた • 現在の対応ブラウザはChromeとFirefoxのみ
  8. 8. ユーザ追跡の仕組み① example.jp bit 0. bit 1.get. get. 証明書1で運用 証明書2で運用 • 2つの異なる証明書を使ってサブドメインを運用する
  9. 9. ユーザ追跡の仕組み② example.jp bit 0. bit 1.get. get. 証明書2をピン留め • あらかじめ、ユーザを bit0.example.jp に接続させ、 HPKPで証明書2をサブドメインごとピン留めする
  10. 10. ユーザ追跡の仕組み③ example.jp bit 0. bit 1.get. get. • get.bit0.example.jp は証明書1で運用されているため、 ブラウザは違反と見なし、接続を遮断する サブドメインごと証明書2をピン留めピン留めされた証明書2ではないので接続不可 証明書1で接続可能
  11. 11. サブドメインの接続可否で0/1を表現 return new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest(); xhr.onload = function() { resolve( 1 ); } xhr.onerror = function() { resolve( 0 ); } xhr.open('GET', 'https://get.bit' + i + '.example.jp'); xhr.send(); }); 接続不可なら0を返す 接続できたら1を返す
  12. 12. get.bit0.example.jp サーバを複製して2N通りのIDを表現 get.bit1.example.jp get.bit2.example.jp get.bit3.example.jp get.bit4.example.jp get.bit5.example.jp get.bit6.example.jp get.bit7.example.jp 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 N=サーバ設置台数 =182
  13. 13. 動作検証① • 記憶したIDはプライベートモードにも引き継がれる – 逆に、プライベートモードで記憶したIDは通常モードに引き継がれない
  14. 14. 動作検証② • サイト別設定で全てブロックしてもIDは記録される
  15. 15. 動作検証③ • 履歴の消去から「サイトの設定」を消せばIDは消える これを消去
  16. 16. https://supercookie.csrf.jp 注意事項 • Firefox 34以降でアクセスしてください • 以下のCA証明書をFirefoxにインストールしてください ⁃ http://csrf.jp/misc/cacert_supercookie.der • Firefoxのabout:configより以下の設定を変更してください ⁃ security.cert_pinning.enforcement_level : 1  2 ⁃ security.cert_pinning.process_headers_from_non_builtin_roots : false  true • 安全のため、試し終わった後はブラウザの設定を元に戻してください 試してみたい方はこちら

×