この記事は過去のUPKIイニシアティブに掲載されていたものです

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-odcert:37] CentOSのリネゴシエーション不具合について



西村です。

年度末調査システムでクライアントFirefox⇒CentOS上Apacheでの
処理に以下のような不具合が報告されましたが、調査の結果CentOSの
不具合である可能性が高いと思われましたので報告します。
Q7.3 年度末調査(機関 責任者・登録担当者用)にて、入力後[入力を確認する]ボタンをクリックすると真っ白なページが表示されます。
https://upki-portal.nii.ac.jp/docs/faq/1/7#firefoxrenego

条件:
・CentOS 5上Apacheにて(おそらくRed Hat Enterprise Linuxも)
  httpd-2.2.3-31.el5.centos.4およびそれ以前
・クライアントはFirefox(一部条件でOperaも)
  Firefox 3.0-3.7a4で確認
・Apacheの設定で一部ディレクトリでクライアント証明書認証を行っている。
  例:
  SSLVerifyClient none
  <Location /certauth>
      SSLVerifyClient require
  </Location>
・証明書認証のあるページに対してある程度の量のデータをPOSTメソッドで
  submitする。
  (実験では5000バイト前後)
※先日のTLSリネゴシエーション脆弱性(CVE-2009-3555)とは無関係です。

現象:
submit後に空白のページが表示される。
サーバログには403(forbidden)が記録される。
また以下のように記録される。
[info] Awaiting re-negotiation handshake
[debug] ssl_engine_kernel.c(1747): OpenSSL: Handshake: start
[debug] ssl_engine_kernel.c(1755): OpenSSL: Loop: before accept initialization
[debug] ssl_engine_io.c(1821): OpenSSL: I/O error, 5 bytes expected to read on BIO#855bd40 [mem: 8484000]
[debug] ssl_engine_kernel.c(1784): OpenSSL: Exit: error in SSLv3 read client hello B
[error] Re-negotiation handshake failed: Not accepted by client!?

回避策:
・再現性は100%ではなく、何度か繰り返していると成功することもあります。
・mod_ssl.soをApache 2.2.15のものと入れ替えると不具合が解消されます。

-- 
西村健
国立情報学研究所 TEL:03-4212-2720