Mais conteúdo relacionado
Semelhante a Webプラットフォームのセキュリティ (20)
Mais de Muneaki Nishimura (15)
Webプラットフォームのセキュリティ
- 19. Passive MITM
• 誰が盗聴するのか
某国家の諜報機関(電気通信事業者と共謀)
企業の情報システム部門、Wi-Fi APの提供事業者など
• Pervasive Surveillance (Mass Surveillance)
膨大な計算能力を有する諜報機関による広範囲なMITM
海底ケーブルを盗聴して大量のデータを取得するなど
暗号化データを盗聴するための研究開発が行われていた事実も
https://en.wikipedia.org/wiki/Dual_EC_DRBG
実際に攻撃が行われていたことが2013年に明らかとなり、
通信路を暗号化する取り組みが加速し始めた
https://tools.ietf.org/html/rfc7258
- 20. Passive MITM
• 平文で流れるデータは意外と多い
HTTP, FTP, SMTP, POP, Telnet…
HTTPSでも接続先のホスト名は平文で送信される
TCP/IPのレイヤは暗号化されていない
TLS拡張のSNI(Server Name Indication)も平文
• HTTPSを使えば防げるけれど
サーバのパフォーマンス低下
証明書を定期的に更新する手間
サイトに接続できない端末の発生
プリインストールされているルート証明書の有効期限切れ
古いTLS規格や弱い暗号スイートのみをサポートする端末
- 21. ブラウザのPassive MITM対策
• あの手この手でHTTPSの利用を促進
Let's Encrypt
https://letsencrypt.org/howitworks/technology/
Opportunistic Security for HTTP (日和見暗号)
https://tools.ietf.org/html/draft-ietf-httpbis-http2-encryption-02
Prefer Secure Origins For Powerful New Features
https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features
• Let's Encrypt
HTTPSを手軽に利用することを目的に作られた無料の認証局
2つのシェルコマンドで証明書の発行から運用まで
https://letsencrypt.readthedocs.org/en/latest/intro.html#about-the-let-s-encrypt-client
- 22. ブラウザのPassive MITM対策
• Opportunistic Security for HTTP (日和見暗号)
サーバ認証をせずにTLSでhttp:80の通信を暗号化
オレオレ証明書ベースのTLSでも平文よりは安全
http/2の拡張仕様として仕様策定中
https://tools.ietf.org/html/draft-nottingham-http2-encryption-03
• Prefer Secure Origins For Powerful New Features
HTTPS接続時でなければ使えない機能を増やしていく
https://w3ctag.github.io/web-https/
https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/
Service WorkersやPush APIには既に適用されている
http://www.w3.org/TR/service-workers/
http://www.w3.org/TR/push-api/
- 28. ブラウザのActive MITM対策
• Mixed Content
HTTPSで配信されたページからHTTPのリソースの取得を禁止
http://www.w3.org/TR/mixed-content/
JavaScriptやCSSが改ざんされると、HTTPSで保護されたページの
情報が盗まれたり改ざんされたりするため
リソースを2種類に分類して段階的に制限を適用
Blockable Content
JavaScript, CSS, plugins, XMLHttpRequest
Optionally Blockable Content
image, audio, video, prefetch
- 30. PKI Attacks (with Active MITM)
• 不正に発行されたサーバ証明書を悪用したMITM
認証局への侵入やオペレーションミス、暗号の危殆化などに
より不正な証明書が発行される
不正に発行された証明書は正規の証明書と区別できない
従来のPKIの仕組みでは対処できない問題
https://example.jp/ 証明書を不正発行
HTTPS接続HTTPS接続
- 31. PKI Attacks (with Active MITM)
• 過去に起きた証明書の不正発行(の一部)
2008年 RapidSSL MD5署名に対するハッシュ衝突攻撃
2008年 Thawte ドメイン名の所有確認手順の不備
2008年 StartCom Webサイトに対する攻撃
2008年 Comodo ドメイン名の所有確認手順の不備
2011年 Comodo ドメイン名の所有確認手順の不備
2011年 DigiNotar 認証局(登録局)に対する侵入
2012年 TURKTRUST 中間CA証明書の誤発行
2013年 ANSSI 中間CA証明書の誤発行
2015年 Comodo ドメイン名の所有確認手順の不備
- 38. 問題
• ブラウザにはSame Origin Policy(SOP)と呼ばれる
コンテンツ分離の概念がある
SOPとは何か?
Origin(生成元)が用いられる理由は何故か?
SOPの適用例にはどのようなものがあるか?
- 39. Origin
• URLの構成要素のうち、scheme + host + port を
組み合わせたもの(RFC6454)
https://tools.ietf.org/html/rfc6454
http://example.jpと同じOrigin
http://example.jp:80/
http://example.jp/path/file
http://example.jpと異なるOrigin
http://example.jp:8080/
http://www.example. jp/
https://example. jp:80/
http://example.com/
- 40. Same Origin Policy (SOP)
• WebコンテンツをOriginに基づいて分離する仕組み
同じOriginのコンテンツは信頼できるという前提に基づいた
セキュリティモデル
URLやパス単位に信頼の境界を定義する試みも過去にはあったが、
ブラウザの実装や運用が煩雑になりうまくいかなかった
https://tools.ietf.org/html/rfc6454#section-8
何故ホスト名(host)のみでコンテンツを分離しないのか?
同じhostでもhttp:とhttps:で信頼のレベルを分けたいから
https://tools.ietf.org/html/rfc6454#section-3.2
SOPは全てのユースケースを満たすものではない
例:異なる学生のページが同一Originに存在する大学のサイト
http://example.edu/~student/
- 46. data: URLのOrigin
a [href]
window.open
iframe 30x Redirect Refresh
アドレスバー
手入力
お気に入り
Internet
Explorer
11
(遷移不可) (遷移不可) (遷移不可) (遷移不可) (遷移不可) (遷移不可)
Microsoft
Edge
20.10240
(遷移不可)
独自の
Origin
(遷移不可) (遷移不可) (遷移不可) (遷移不可)
Firefox
39
ナビゲーション
元のOrigin
ナビゲーション
元のOrigin
独自の
Origin
独自の
Origin
独自の
Origin
ナビゲーション
対象Windowの
Origin
Safari
8
独自の
Origin
独自の
Origin
独自の
Origin
(ただしバグ有り)
独自の
Origin
独自の
Origin
独自の
Origin
Chrome
43
独自の
Origin
独自の
Origin
(遷移不可)
独自の
Origin
独自の
Origin
独自の
Origin