SectigoのAddTrustルート証明書は2020年5月30日に期限切れとなり、OpenSSL 1.0.xおよびGnuTLSクライアントで問題が発生しました



Sectigo Certification Authority(Comodo)、ストレージに新しいUSERTrustルート証明書を持たないレガシーデバイスとの互換性を確保するために、クロスサインに使用されAddTrustルート証明書の有効期限が切れるにユーザーに警告しました。

AddTrustは、2020年5月20日10:48:38 UTCに有効期限が切れました。残念ながら、問題は古いブラウザーだけでなく、OpenSSL 1.0.x、LibreSSL、およびGnuTLSに基づく非ブラウザークライアントでも発生しましたたとえば、Rokuセットトップボックス(2020年5月30日付けのテクニカルサポートの回答を参照)、Heroku、フォーティネット、Chargifyアプリケーション、Linuxおよびその他の多くの .NET Core 2.0プラットフォーム

図に示すように、最近のブラウザーは2番目のUSERTRustルート証明書を使用できるため、問題はレガシーシステム(Android 2.3、W​​indows XP、Mac OS X 10.11、iOS 9など)にのみ影響すると想定されていました。


証明書チェーン

しかし、2020年5月30日、実際には、無料のOpenSSL 1.0.xおよびGnuTLSライブラリを使用する数百のWebサービスでクラッシュが発生しました。証明書の陳腐化エラーにより、安全な接続が確立されなくなりました。OpenSSLバグトラッカー

の対応するチケット(ユーザー名とパスワード:guest)は、バージョンOpenSSL 1.1.0についてのみ2020年2月25日に閉鎖されました。

エラーが発生する理由


クライアントが接続すると、TLSサーバーはクライアントに証明書を送信します。クライアントは、サーバー証明書からクライアントが信頼するルート証明書への証明書のチェーンを構築する必要があります。クライアントがこのチェーンを構築するのを助けるために、サーバーは独自の証明書とともに1つ以上の追加の中間証明書を送信します。



たとえば、Webサイトは次の2つの証明書を送信します。

1。
件名= * .habr.com
発行元= Sectigo ECCドメイン検証セキュアサーバーCA
アクションの開始= 2020年5月30日土曜日 3:00:00
有効期限= 2021年12月3日金曜日 2:59:59

2。
件名= Sectigo ECCドメイン検証セキュアサーバーCA
発行者= USERTrust ECC証明機関
アクションの開始= 2018年11月2日金曜日 3:00:00
アクションの終了= 2031年1月1日水曜日 2:59:59

最初の証明書はサーバーに属し、Sectigo認証局によって発行されます。 2番目は、USERTrust ECC証明機関によって発行され、ルート証明書です。これら2つの証明書は、信頼されたルートへの完全なチェーンを形成します。

ただし、USERTrust証明機関は比較的新しいルートです。それは2010年に作成され、すべてのクライアントがそれを信頼するのに何年もかかりました。昨年、個人のお客様はこのルートを信用していないという報告がありました。したがって、サーバーによっては、AddTrust外部CAルートによって発行された追加のUSERTrust ECC証明機関中間証明書をクライアントに送信します。この証明書は2000年に生成され、2020年5月30日に期限切れになった彼の証明書でした。

最新のブラウザーを含む有能な証明書バリデーターの場合、USERTrustの前に信頼チェーンを構築できるため、これは問題を引き起こしませんでしたが、OpenSSL 1.0.xまたはGnuTLSを使用するクライアントに問題がありました。これらのクライアントがUSERTrustルート証明機関を信頼していて、それへのチェーンを構築したい場合でも、クライアントはAddTrust外部CAルートへのチェーンになり、証明書の検証が失敗します。

Sectigoは、2028年まで有効な代替の相互署名付き中間証明書AAA Certificate Servicesを提供しています

サービスの確認


サーバーハンドラーおよびクライアントアプリケーションのオペレーターは、証明書チェーンで古いAddTrustルート証明書を確認することをお勧めします。

基本的に、信頼チェーンからAddTrust External CA Rootを削除するだけです。

サーバーオペレーターには、「チェーン証明書とは」というサービスがあります、このチェックを実行し、必要なすべての中間証明書を持つ新しい信頼チェーンを生成するのに役立ちます。すべてのクライアントがストアにすでに持っているため、このチェーンにルート証明書を含める必要はありません。さらに、SSLハンドシェイクのサイズが大きくなるため、チェーンに含めることは単に非効率的です。

クライアントアプリケーションオペレーターは、最新のTLSライブラリにアップグレードすることをお勧めします。これが不可能な場合は、ストレージからAddTrust外部CAルート証明書を削除する必要があります。リポジトリにない場合は、新しいルート証明書USERTrust RSA証明機関に対して正しい信頼チェーンが構築されるため、TLSチェックが正しく通過します。

AddTrust外部CAルートを削除するには、以下を実行する必要があります

  1. 編集/etc/ca-certificates.confとコメントmozilla/AddTrust_External_Root.crt
  2. 走る update-ca-certificates

この問題を修正するために、FedoraとRHEL AddTrust証明書をブラックリストに追加することを推奨しています:

 trust dump --filter "pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert" \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract

ただし、この方法はGnuTLSでは機能しません。

参照
: 「2020年5月30日後のSectigo証明書に問題と解決方法 Habr企業ブログ上の」





企業向けのPKIソリューション。お問い合わせ+7(499)678 2210、sales-ru @ globalsign.com。

All Articles