2005-06-09 [長年日記]

同じSubjectの複数の証明書

証明書の期限が切れると同じSubjectで別の証明書を追加することになりますが、このときに期限切れの証明書を削除せずに残しておく、もしくは残ってしまう場合があります。証明書の検証を行うときには検証したい証明書のIssureをSubjectとして持つ証明書を探して証明書チェーンを作成しますが、OpenSSLではこのときに期限の切れた証明書を無視してくれないため、古い証明書がストアに残っているとそちらが使われてしまうことがあります。ちなみにこのときにはソートした上でSubjectをキーとしてbsearchで検索しているので、そもそもSubjectが同じ証明書がリストに含まれていたときの動作は未定なのです。

QMAIL3でもシステムのストアやca.pemから証明書を追加するときには全ての証明書を追加しているため、運が悪いとうまく検証できなくなってしまうのでした。追加するときに有効期限をチェックすれば大抵の場合は防げるのでしょうが、有効期限が重なっている場合や、起動中に有効期限に入ったり過ぎたりした場合にはやっぱり問題が起きてしまいます。かといって検証するたびに証明書をロードするのもパフォーマンス的に問題がありそうです。

自前のX509_LOOKUP_METHODを定義しておいて、必要に応じてその場で探しにいくようにするのがスマートなのかもしれません。システムのストアからあらかじめロードしておく必要もなくなりますし。

同じSubjectの複数の証明書 (2)

とりあえずロードするときにその時点で有効でない証明書は無視するようにしました。

ちゃんとした方策はまた考えます。証明書や鍵周りでは、S/MIMEを使うときの証明書周りの設定もWindowsの証明書ストアを使えるようにしたいですし。

本日のツッコミ(全2件) [ツッコミを入れる]
# Azol (2005-06-09 19:07)

I think that there is a funny bug in QMail (WM2003 version at least): you receive e-mail, open it (encoding is wrong), chose encoding manually, message becomes readable, then you press REPLY button - and nothing really happens!

# snak (2005-06-09 19:29)

Fix at rev:2105. Please try nightly build tomorrow. Thank you for reporting.

[]