この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 16849|答える: 0

不完全なSSL証明書チェーン:中間証明書は確かに穴です

[リンクをコピー]
掲載地 2017/08/15 21:08:39 | | |
この穴を踏んだことがある。 練習の方法は忘れてしまいましたが、この原則は今でも覚えています。 大まかに説明すると:


ブラウザのインストールパッケージは、信頼するルート証明書(公開鍵)の一部を保存しています。

セキュリティのため、証明書発行者は通常、これらのルート証明書に対応する秘密鍵を完全に切り離されたボールトに保管します。 これらのルート秘密鍵はボールト内で「中間」証明書の発行に使われ、これらの中間証明書の秘密鍵は次のレベルの証明書を発行する権限を持っています。 これらの中間秘密鍵はオンラインサーバーにインストールされ、ウェブサイトの証明書を発行して収益を得ます。 これらのサーバーがハッキングされると、パブリッシャーは物理的に隔離されたルート証明書の秘密鍵を使って、これらの中間証明書の信頼を解除し、パブリッシャーのルート証明書を完全に信用しなくなることなく、取り消し命令を発行できます。 新しい中間発行証明書に署名すれば、あなたはお金を稼げる良い人間になれるでしょう。

ここで質問が出てきます。

ブラウザはルート証明書のみを認識します。 中間証明書の認定については、ウェブサイトが独自の証明書を発行する必要があります。

適切に設定されたHTTPSウェブサイトは、証明書に完全な証明書チェーンを含めるべきです。
例えば、openssl s_client -connect www.wosign.com:443 コマンドを使って、Wosignのウェブサイト設定を閲覧できます。
その他の内容は無視しても構いません。証明書のチェーン段落を見てください:
---
証明書チェーン
0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Private 組織/シリアルナンバー=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com
   i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA
1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA
   i:/C=CN/O=WoSign CA Limited/CN=WoSignの認証機関
2 s:/C=CN/O=WoSign CA Limited/CN=WoSignの認証機関
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom認証機関
---

0、1、2は証明書チェーン内の各レベルの証明書のシリアル番号です。 0はウェブサイトが認証に使用する証明書です。 そのCNはウェブサイトのドメイン名に対応しているはずです。
各シリアル番号の後には、sで始まる行が証明書、iで始まる行が証明書の発行者を示します。

0のCNには疑われる中国のドメイン名と英語のドメイン www.wosign.com が含まれていることがわかります。 これはWoSign CA Limited/CN=WoSign Class 4 EV Server CAによって発行されています。

証明書が1なら発行者が0です。 1自体は別の証明書、WoSignの認証機関によって発行されます。
次のレベルを見てみましょう。2. WoSignの認証機関はStartComから発行されていると書かれています(笑、実は下請け業者でした!)。 )

このように見てみると、ブラウザは「2の発行者は知っている」と表示し、インストールパッケージのStartComにも記載されています。 正しい署名と検証、つまり信頼してください。 それなら、2が発行した1と1が発行した0を信頼すべきです。 ですから、このウェブサイトは信頼できます。

--

しかし、ウェブサイトがCRTファイル内に自分自身のみを含み、ブラウザの組み込みデータで検証可能な証明書チェーンを含まない場合、ブラウザによって拒否される可能性があります。 たとえば
OpenSSL s_client -Connect touko.moe:443
---
証明書チェーン
0 s:/CN=touko.moe
   i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Free SSL Certificate G2
---
1つのグループには0人しかいない。 説明 s行のtouko.moeは、i行でWoSign CA Free SSL証明書G2によって発行されています。 行ってしまいました。

この落とし穴で最も驚くべき点は、この時点でブラウザが検証を怠っているかどうかが必ずしも正しいわけではないということです。 状況は2つあります:
A. ブラウザをインストールして以来、こんな現象は一度も見たことがありません。 その後、検証は失敗します。
B. ブラウザが以前にiを見て検証している場合、その認証は成功します。

通常、管理者は証明書発行者のhttpsウェブサイトにアクセスして証明書を購入し、ブラウザがそれを検証し、成功裏に検証された中間証明書をすべてキャッシュして将来の時間を節約します。 管理者が(誤って)ウェブサイトを設定してテストを閲覧しても、全く問題が起きませんでした。 彼のブラウザはすでにこの中間証明書を認識しているからです。

しかし、多くのユーザーはこの中間証明書で発行された他の適切に設定されたウェブサイトを訪れていない可能性があります。 したがって、信頼できる発行者を見つけられないため、検証は失敗します。


これはフォルクスワーゲンのディーゼル車の排気排出制御に相当します。 確認したときは問題ありませんでした。 外に出るとすぐに毒を盛る。


編集:修正方法 ...... おそらくサーバー設定時にSSLCertificateChainFileの設定を追加し、証明書発行者のウェブサイトが提供するバンドルファイル(そのファイルには証明書と高信頼証明書の接続を確立するための中間証明書が多数含まれています)を使うことが目的です。




先の:OpenSSLはPFXフォーマットを.keyファイルや.crtファイルに変換します
次に:Androidブラウザは証明書が信頼されていないことを示しています
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com