wolfSSL の RFC準拠に関する3件の変更:OCSP レスポンダ認可、TLS 1.3 アラート、シリアル番号検証

証明書検証とアラート送出について、RFC準拠に関する変更を wolfSSL に3件加えました。

  • OCSP レスポンダの認可条件を RFC 6960 に沿って厳格化しました
  • TLS 1.3 で SNI が欠けている場合に missing_extension アラートを送出するようにしました
  • 自己署名ルート CA 証明書に限り、シリアル番号 0 を受け入れるようにしました

OCSP レスポンダ認可を RFC 6960 準拠に厳格化

バージョン 5.9.2 で CheckOcspResponderChain() を削除しました。この関数は、対象証明書の発行者の祖先にあたる CA が発行したレスポンダ証明書であれば、どれでも認可してしまう非準拠のチェーン探索を行っていました。RFC 6960 §4.2.2.2 は、OCSP レスポンスに署名できるのは対象証明書を発行した CA 自身、またはその CA が指名した委任レスポンダに限ると定めています。

あわせて、使われなくなった vp パラメータと WOLFSSL_NO_OCSP_ISSUER_CHAIN_CHECK マクロも削除しました。OCSP のテスト証明書とスクリプトを更新して RFC 準拠の2つの経路をいずれも検証するようにし、祖先の CA が発行したレスポンスが拒否されることを確認する否定テストを追加しました。

影響を受ける構成

OCSP による失効確認(--enable-ocsp や OCSP ステープリング)を利用している場合、特に、直接の発行者ではない祖先の CA が OCSP レスポンスに署名できていた多階層 CA 構成の PKI 環境では、この強化の取り込みをご検討いただくとよいかもしれません。アップグレードする場合は、非準拠のレスポンダ証明書の再発行が必要になります。発行元の CA が直接署名しているか、正しく委任されたレスポンダが署名している一般的な構成のほとんどでは、動作は変わりません。

TLS 1.3 で SNI 欠落時のアラートを missing_extension に変更

TLS 1.3 サーバーが SNI(Server Name Indication)拡張を必須としているにもかかわらず、クライアントが ClientHello にそれを含めてこなかった場合について、正しいアラートを送出するよう変更しました。従来は汎用的な handshake_failure アラートを送っていましたが、今回、RFC 8446 がまさにこのケース向けに定めている missing_extension アラートを送るようにしました。TLS 1.2 以前は従来どおり handshake_failure のままです。

正しいアラートを使うことで RFC 8446 への準拠性が向上し、障害の切り分けも容易になります。クライアント側は、漠然としたハンドシェイク失敗をパケットキャプチャで後から追わなくても、ClientHello に必須の拡張が欠けていたことをその場で把握できます。

この変更は、SNI を有効にして(--enable-sni または HAVE_SNI)ビルドし、かつ SNI を必須に設定したサーバーに適用されます。PR #10332 として取り込み、Issue #10318 を解決しました。次回の wolfSSL リリースに含まれます。

自己署名ルート CA 証明書に限りシリアル番号 0 を許容

実際に使われているトラストストアをより適切に扱えるよう、X.509 のシリアル番号検証を見直しました。従来はシリアル番号が 0 の証明書をすべて拒否していました。RFC 5280 は CA に対して正の値のシリアル番号で証明書を発行するよう求めていますが、古くから使われている自己署名ルート CA 証明書の中にはシリアル番号 0 で作られたものがあり、これを拒否すると本来は正当な証明書チェーンまで読み込めなくなっていました。

今回の変更では、自己署名ルート CA 証明書についてシリアル番号 0 を受け入れるようにし、それ以外のすべての証明書は従来どおり拒否します。エンドエンティティ証明書や、自己署名であっても CA ではない証明書もこれに含まれます。CA が実際に発行した証明書という最も重要な箇所では RFC 5280 の厳格なチェックを維持したまま、トラストストアが実運用上すでに受け入れている旧来のルート証明書に対応できます。

この変更は PR #9567 として取り込み、Issue #8615 を解決しました。次回の wolfSSL リリースに含まれます。

もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。

原文:https://www.wolfssl.com/tightening-ocsp-responder-authorization-for-rfc-6960-compliance/

原文:https://www.wolfssl.com/wolfssl-improves-tls-1-3-alert-compliance-for-missing-sni/

原文:https://www.wolfssl.com/wolfssl-relaxes-serial-number-validation-for-root-ca-certificates/