「Transport Layer Security」の版間の差分

m
Cite系テンプレートの導入、リンク切れ対応、見出し名称変更など
m (ロボットによる: 細部の編集)
m (Cite系テンプレートの導入、リンク切れ対応、見出し名称変更など)
その後、SSL 2.0にもいくつかの脆弱性が発見され、SSL 3.0において修正された。SSL 2.0の脆弱性のひとつは、ネゴシエーションの情報を改竄すると、提示する選択肢のうち最弱のアルゴリズムを使わせることができ(ダウングレード攻撃)、改竄を受けたことを検出できないというものである。さらに悪いことに、この脆弱性を利用すると、双方がSSL 3.0をサポートしていてもSSL 2.0で接続させることさえ可能になる。
 
SSL 3.0ではSSL 2.0との互換性を提供するにあたり、乱数領域を使った細工を加えることで、このような攻撃を検出する仕組みを組み込んだ。しかしこの細工が無効にされているサーバ環境も存在し、クライアントから見るとSSL 2.0を無効にしない限りこの脆弱性の影響を受ける可能性を否定できない<ref>{{Cite web
SSL 3.0ではSSL 2.0との互換性を提供するにあたり、乱数領域を使った細工を加えることで、このような攻撃を検出する仕組みを組み込んだ。しかし一部の製品においてこの細工の実装に問題があったため、結局のところ無視されていることが多い<ref>[http://www.oiwa.jp/~yutaka/tdiary/20051013.html#p01 <nowiki>[Security]</nowiki> SSL 2.0 version rollback の件のFAQ](おおいわのこめんと (2005-10-13))</ref>。SSL 3.0以降に対応した実装が十分に普及したものとして、[[Internet Explorer|Internet Explorer 7]]や[[Mozilla Firefox|Mozilla Firefox 2]]、[[Opera|Opera 9]]などは、初期状態でSSL 2.0を無効にしている<ref>[http://www.microsoft.com/japan/msdn/ie/expie/ie7_https_imps.aspx Internet Explorer 7 における HTTPS セキュリティーの強化点 (Windows IETechCol)]</ref><ref>[http://www.mozilla-japan.org/kb/solution/2094 Mozilla Japan ナレッジベース - 安全な接続 (SSL) を使用したサイトへアクセスできない]</ref><ref>[http://jp.opera.com/docs/specs/#network Opera 9 でサポートされるウェブ仕様 - CSS : ネットワークプロトコルサポート]</ref>。この決定を受け、SSL 2.0しか対応していなかったサーバでも、SSL 3.0以降へ対応する動きが広まっている<ref>[http://itpro.nikkeibp.co.jp/article/NEWS/20060602/239846/ 「SSL 2.0だけに対応したWebサイトはわずか0.1%」---ネットクラフト]([[日経BP社]] IT pro)</ref>。
|author=大岩 寛
|date=2005-10-13
|url=http://www.oiwa.jp/~yutaka/tdiary/20051013.html#p01
|title=<nowiki>[Security]</nowiki> SSL 2.0 version rollback の件のFAQ
|work=おおいわのこめんと
|accessdate=2010-01-03
}}</ref>。SSL 3.0以降に対応した実装が十分に普及したものとして、[[Internet Explorer|Internet Explorer 7]]や[[Mozilla Firefox|Mozilla Firefox 2]]、[[Opera|Opera 9]]などは、初期状態でSSL 2.0を無効にしている<ref>{{Cite web
|author=Eric Lawrence
|date=2006-01-31
|url=http://www.microsoft.com/japan/msdn/ie/expie/ie7_https_imps.aspx
|title=Internet Explorer 7 における HTTPS セキュリティーの強化点
|publisher=Microsoft Corporation
|accessdate=2010-01-03
}}</ref><ref>{{Cite web
|date=2009-07-06
|url=http://support.mozilla.com/ja/kb/%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8C%E5%8F%A4%E3%81%8F%E3%81%A6%E5%AE%89%E5%85%A8%E3%81%A7%E3%81%AA%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE+SSL+%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%AE%89%E5%85%A8%E3%81%AA%E6%8E%A5%E7%B6%9A%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F
|title=サイトが古くて安全でないバージョンの SSL プロトコルを使用しているため、安全な接続ができませんでした
|work=Firefox サポート
|accessdate=2010-01-03
}}</ref><ref>{{Cite web
|url=http://jp.opera.com/docs/specs/opera9/#network
|title=Opera 9 のサポートするウェブ標準ならびに仕様
|publisher=Opera Software ASA.
|accessdate=2010-01-03
}}</ref>。この決定を受け、SSL 2.0しか対応していなかったサーバでも、SSL 3.0以降へ対応する動きが広まっている<ref>{{Cite web
|author=勝村 幸博
|date=2006-06-02
|url=http://itpro.nikkeibp.co.jp/article/NEWS/20060602/239846/
|title=「SSL 2.0だけに対応したWebサイトはわずか0.1%」---ネットクラフト
|publisher=[[日経BP]] IT pro
|accessdate=2010-01-03
}}</ref>。
 
SSL2.0にはチェーン証明書がない。
SSLで認証を行うためには、認証局の署名に加えて、証明書の発行先を確認する必要がある。確認しない場合、サーバAの管理権限を持たない者がサーバBとして正当な証明書を取得し、その証明書を使ってサーバAを名乗ることができてしまう。SSL用のサーバ証明書には発行先サーバのホスト名が書き込まれており、クライアントは自分が接続しようとしているサーバのホスト名と一致するかどうか確認することができる。
 
現実には「正当な」サーバであっても、これらの検証において「問題がある」と判断される証明書を使って運用されているサーバが少なからず存在する。ある著名なセキュリティ研究者はこのような証明書を、[[振り込め詐欺|オレオレ詐欺]]をもじって「[[オレオレ証明書]]」と呼んで批判している<ref>[http://takagi-hiromitsu.jp/diary/20071117.html#p02{{Cite オレオレ証明書の区分 第三版]([[高木浩光]]@自宅の日記 [[2007年]]11月17日)</ref>。web
|author=高木 浩光
|authorlink=高木浩光
|date=2007-11-17
|url=http://takagi-hiromitsu.jp/diary/20071117.html#p02
|title=オレオレ証明書の区分 第三版
|work=高木浩光@自宅の日記
|accessdate=2010-01-03
}}</ref>。
 
この検証は、システムに指示された接続先のホスト名と実際に接続した先のホスト名が一致することを検証しているのであり、利用者が意図する接続先とは必ずしも一致しないことに注意する必要がある。
# 利用者は、現在システムに指示されている接続先が、自分の知っている正しいホスト名と一致していることを確認できる。
 
2は、[[情報処理推進機構]](IPA)が公開している「安全なウェブサイトの作り方」<ref>[http://www.ipa.go.jp/security/vuln/websecurity.html{{Cite 「安全なウェブサイトの作り方 改訂第2版」の発行について]</ref>という文書の「[[フィッシング (詐欺)|フィッシング]]詐欺を助長しないための対策」に対応する。web
|date=2008-06-11
|url=http://www.ipa.go.jp/security/vuln/websecurity.html
|title=「安全なウェブサイトの作り方 改訂第3版」を公開
|publisher=独立行政法人 [[情報処理推進機構]]
|accessdate=2010-01-03
}}</ref>という文書の「[[フィッシング (詐欺)|フィッシング]]詐欺を助長しないための対策」に対応する。
 
=== 乱数の品質 ===
=== 危険性について関連情報 ===
他の多くの近代暗号と同様に、SSLもまた、暗号としての強度は乱数の品質に依存している。桁数の大きな暗号は推測が難しいという前提が暗号強度の根拠となっている。もし何らかの理由で乱数の出現確率が大きく偏るようなことがあれば、[[総当たり攻撃]]で解読される可能性が上昇する。通常は、これは実装の問題に起因している。
[[Debian]]は[[2008年]][[5月15日]]脆弱性に関する報告<ref>[http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.html OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)]</ref>を発表した。[[OpenSSL]]ライブラリのパッケージメンテナンスの際に誤ったパッチを導入した結果、鍵生成に適切な乱数が使われず僅か65536(=2<sup>16</sup>)通りの予測可能な物が生成されてしまった事を明らかにした<ref>[http://www.securityfocus.com/archive/1/492112/30/0/threaded Debian generated SSH-Keys working exploit May 15 2008 05:54AM]</ref>(なお、この問題はOpenSSLそのものの脆弱性ではない)。この影響を受けるのはDebian sargeより後のバージョンのDebianと、それから派生した[[Damn Small Linux]], [[KNOPPIX]], [[Linspire]], [[Progeny Debian]], [[sidux]], [[Ubuntu]], [[UserLinux]], [[Xandros]]である。脆弱性のあるバージョンのOpenSSLは[[2006年]][[9月17日]]に公開された。安定バージョンがリリースされた[[2007年]][[4月8日]]以降は確実に影響を受ける。脆弱性のあるバージョンのOpenSSLで作られた鍵全て、[[Secure Shell|SSH]] 鍵、[[OpenVPN]] 鍵、[[DNS Security Extensions|DNSSEC]] 鍵、[[X.509]] 証明書を生成するのに使われる鍵データ、および SSL/TLS コネクションに使うセッション鍵等が影響を受ける。これらの鍵は65536通り全てを[[ブルートフォースアタック]]で試すだけでいずれの鍵が使われているか解読可能であり(SSHでは20分間で解読できたと報告されている)、また脆弱な鍵がインストールされたDebianを含むの全てのオペレーティングスシステムにおいて緊急の対応が必要であると専門家が注意を呼びかけている(その対象には[[Microsoft Windows]]など非UNIX系OSも含む)。具体的対応については、Debianの報告の他、[[JPCERT/CC]]の勧告<ref>[http://www.jpcert.or.jp/at/2008/at080008.txt Debian GNU/Linux に含まれる OpenSSL/OpenSSH の脆弱性に関する注意喚起]</ref>等に従うべきである。
 
古い例では、Netscapeの初期の実装における乱数生成の脆弱性がある。[[プロセス識別子|プロセスID]]や時刻から乱数を生成していることが判明し、これらの情報を取得できる場合には総当たり攻撃の所要時間が大幅に短くなるという問題があった<ref>{{Cite web
|author=Ian Goldberg
|coauthors=David Wagner
|date=1996-01-01
|url=http://www.ddj.com/windows/184409807
|title=Randomness and the Netscape Browser
|publisher=Dr. Dobb's
|language=英語
|accessdate=2010-01-03
}}</ref>。
 
[[2008年]][[5月15日]]には[[Debian]]が脆弱性に関する報告<ref>{{Cite web
|date=2008-05-15
|url=http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.html
|title=OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)
|publisher=[[Debian]] JP Project
|accessdate=2010-01-03
}}</ref>を発表した。[[OpenSSL]]ライブラリのパッケージメンテナンスの際に誤ったパッチを導入した結果、鍵生成に適切な乱数が使われず僅か65536(=2<sup>16</sup>)通りの予測可能な物が生成されてしまった事を明らかにした<ref>{{Cite web
|date=2008-05-15
|url=http://www.securityfocus.com/archive/1/492112/30/0/threaded
|title=Debian generated SSH-Keys working exploit
|publisher=SecurityFocus
|accessdate=2010-01-03
[[Debian]]は[[2008年]][[5月15日]]脆弱性に関する報告<ref>[http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.html OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)]</ref>を発表した。[[OpenSSL]]ライブラリのパッケージメンテナンスの際に誤ったパッチを導入した結果、鍵生成に適切な乱数が使われず僅か65536(=2<sup>16</sup>)通りの予測可能な物が生成されてしまった事を明らかにした<ref>[http://www.securityfocus.com/archive/1/492112/30/0/threaded Debian generated SSH-Keys working exploit May 15 2008 05:54AM]}}</ref>(なお、この問題はOpenSSLそのものの脆弱性ではない)。この影響を受けるのはDebian sargeより後のバージョンのDebianと、それから派生した[[Damn Small Linux]], [[KNOPPIX]], [[Linspire]], [[Progeny Debian]], [[sidux]], [[Ubuntu]], [[UserLinux]], [[Xandros]]である。脆弱性のあるバージョンのOpenSSLは[[2006年]][[9月17日]]に公開された。安定バージョンがリリースされた[[2007年]][[4月8日]]以降は確実に影響を受ける。脆弱性のあるバージョンのOpenSSLで作られた鍵全て、[[Secure Shell|SSH]] 鍵、[[OpenVPN]] 鍵、[[DNS Security Extensions|DNSSEC]] 鍵、[[X.509]] 証明書を生成するのに使われる鍵データ、および SSL/TLS コネクションに使うセッション鍵等が影響を受ける。これらの鍵は65536通り全てを[[ブルートフォースアタック]]総当たり攻撃で試すだけでいずれの鍵が使われているか解読可能であり(SSHでは20分間で解読できたと報告されている)、また脆弱な鍵がインストールされたDebianを含むの全てのオペレーティングスシステムにおいて緊急の対応が必要であると専門家が注意を呼びかけている(その対象。生成された鍵問題があるため、Debian GNU/Linuxで生成した鍵を[[Microsoft Windows]]のよう非UNIX系OSシステムに導入しているような場合含む)、この脆弱性の影響を受ける。具体的対応については、Debianの報告の他、[[JPCERT/CC]]の勧告<ref>[http://www.jpcert.or.jp/at/2008/at080008.txt{{Cite Debian GNU/Linux に含まれる OpenSSL/OpenSSH の脆弱性に関する注意喚起]</ref>等に従うべきである。web
|date=2008-05-19
|url=http://www.jpcert.or.jp/at/2008/at080008.txt
|title=Debian GNU/Linux に含まれる OpenSSL/OpenSSH の脆弱性に関する注意喚起
|publisher=[[JPCERT/CC]]
|accessdate=2010-01-03
}}</ref>等に従うべきである。
 
== 参考文献 ==
* {{Cite book|和書
* Eric Rescorla 『マスタリングTCP/IP SSL/TLS編』 齊藤孝道・鬼頭利之・古森貞監訳、オーム社、平成15年([[2003年]])、ISBN 4-274-06542-1。
|author=Eric Rescorla
|others=齊藤孝道・鬼頭利之・古森貞監訳
|title=マスタリングTCP/IP SSL/TLS編
|edition=第1版第1刷
|date=2003-11-28
|publisher=オーム社
|isbn=4-274-06542-1
}}
 
== 脚注 ==
369

回編集