NetBSD Security Advisory 2003-005 ================================= トピック: OpenSSL コードに対する RSA タイミング攻撃 (RSA timing attack in OpenSSL code) バージョン: NetBSD-current: 2003 年 3 月 19 日より前のソース NetBSD-1.6: 影響あり (NetBSD-1.6.1 は修正ずみ) NetBSD-1.5.3: 影響あり NetBSD-1.5.2: 影響あり NetBSD-1.5.1: 影響あり NetBSD-1.5: 影響あり NetBSD-1.4*: 影響なし pkgsrc: openssl-0.9.6gnb2 より前のものは影響あり 影響範囲: リモートから暗号鍵が不正使用される可能性がある。 (Cryptographic keys can be compromised remotely.) 修正日: NetBSD-current: 2003 年 3 月 19 日 NetBSD-1.6 ブランチ: 2003 年 3 月 21 日 (1.6.1 は修正ずみ) NetBSD-1.5 ブランチ: 2003 年 3 月 21 日 pkgsrc: openssl-0.9.6gnb2 で修正 概要 - Abstract =============== OpenSSL に有効なタイミング攻撃方法が発見されました。ローカルホストや LAN 上のホストなど、サーバーまでのアクセス遅延が小さいホストから、 この方法で攻撃することで、リモートから秘密鍵を復元することができる 可能性があります。 研究者は、約 100 万の問い合わせ接続を利用して、1024 ビットの RSA 鍵が 抽出可能であることを示しています。これは、OpenSSL の RSA 計算部分を 利用している、すべてのプログラムに影響します。 注: 2 日間のうちに、2 個の独立した OpenSSL セキュリティー勧告が公開されています。 この勧告で扱っている修正パッチは libcrypto に、2003-007 で扱った修正パッチは libssl に影響するものです。問題は 2 種類あり、それぞれの修正パッチは 異なる問題に対するものであるということに注意してください。 技術的な詳細 - Technical Details ================================ http://crypto.stanford.edu/~dabo/abstracts/ssl-timing.html 回避方法と解決策 - Solutions and Workarounds ============================================ 次に示す手順は、ソースツリーを更新して再構築し、新しいバージョンの libcrypto をインストールすることで、libcrypto バイナリーをアップグレード する方法を説明したものです。 アップグレード後には、実行中の libcrypto ライブラリーを使うプログラムを 再起動するのを忘れないようにしてください。 もし、弱点を持った libcrypto と静的にリンクされたバイナリーがある場合は、 それらを再構築する必要があります。 * NetBSD-current: 2003 年 3 月 19 日より前の NetBSD-current は、 2003 年 3 月 19 日、もしくはそれ以降の NetBSD-current に アップグレードする必要があります。 CVS ブランチ netbsd-current (別名 HEAD) において 更新が必要なファイルは、次のとおりです。 crypto/dist/openssl/crypto/rsa CVS を使ってファイルを更新し、libcrypto を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P crypto/dist/openssl/crypto/rsa # cd lib/libcrypto # make USETOOLS=no cleandir dependall # make USETOOLS=no install * NetBSD 1.6: NetBSD 1.6 のバイナリー配布物には、このセキュリティー上の弱点が 含まれています。 2003 年 3 月 20 日より前の NetBSD-1-6 ブランチのソースを 使っているシステムは、2003 年 3 月 21 日、もしくはそれ以降の NetBSD-1-6 ブランチのソースにアップグレードする必要があります。 CVS ブランチ netbsd-1-6 において 更新が必要なファイルは、次のとおりです。 crypto/dist/openssl/crypto/rsa CVS を使ってファイルを更新し、libcrypto を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P -r netbsd-1-6 crypto/dist/openssl/crypto/rsa # cd lib/libcrypto # make USETOOLS=no cleandir dependall # make USETOOLS=no install * NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3: NetBSD 1.5.3 のバイナリー配布物には、このセキュリティー上の弱点が 含まれています。 2003 年 3 月 20 日より前の NetBSD-1.5.x ブランチのソースを 使っているシステムは、2003 年 3 月 21 日、もしくはそれ以降の NetBSD-1.5 ブランチのソースにアップグレードする必要があります。 CVS ブランチ netbsd-1-5 において 更新が必要なファイルは、次のとおりです。 crypto/dist/openssl/crypto/rsa CVS を使ってファイルを更新し、libcrypto を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P -r netbsd-1-5 crypto/dist/openssl/crypto/rsa # cd lib/libcrypto # make cleandir dependall # make install * NetBSD 1.4, 1.4.1, 1.4.2, 1.4.3: NetBSD-1.4.* のベースシステムには、OpenSSL が含まれていません。 pkgsrc からインストールしている場合は、pkgsrc 用の手順に 従ってください。 * pkgsrc: セキュリティー上の弱点は、バージョン 0.9.6gnb2 より前の openssl (pkgsrc/security/openssl) に含まれています。 openssl-0.9.6gnb2 か、もしくはそれ以降のものにアップグレード してください。この勧告の執筆時点では、0.9.6gnb2 が pkgsrc に 含まれています。 openssl に依存するパッケージは、'pkg_info openssl' を実行することで 調べることができます。pkgsrc パッケージを更新する方法にもよりますが、 それで表示されるパッケージのいくつかは、パッケージシステムによって 再構築されるかも知れません。試験的に用意されている 'make replace' ターゲットを使って更新する場合は、libcrypto.a と静的リンクされた バイナリーを構築するすべてのパッケージを手動で更新する必要があります。 pkgsrc に静的にリンクされたバイナリーがある場合は、再構築しなければ なりません。静的リンクされたバイナリーは、次のコマンドを使って 調べることができます (注: もし LOCALBASE をデフォルトの /usr/pkg から 変更している場合は、pkgsrc バイナリーをインストールしたディレクトリーを 指定に含めるのを忘れないでください)。 file /usr/pkg/{bin,sbin,libexec}/* | grep static 謝辞 - Thanks To ================ Bugtraq および OpenSSL チーム。 改訂履歴 - Revision History =========================== 2003-03-26 初版公開 2003-03-26 pkgsrc 最新版のバージョン番号を修正 2003-03-29 1-5 ブランチを CVS を使って更新する場合の コマンドを修正 詳細と参考資料 - More Information ================================= PGP 署名されたこの勧告の最新版は、次の場所から入手できます。 ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-005.txt.asc NetBSD および、NetBSD のセキュリティーに関する情報は、次の場所から入手できます。 http://www.NetBSD.ORG/ http://www.NetBSD.ORG/Security/ Copyright 2003, The NetBSD Foundation, Inc. All Rights Reserved. $NetBSD: NetBSD-SA2003-005.txt.asc,v 1.4 2003/04/05 01:08:35 yyamano Exp $ $Id: NetBSD-SA2003-005.txt.asc,v 1.4 2003/04/05 01:08:35 yyamano Exp $