web-dev-qa-db-ja.com

Windowsが信頼されたルートCA証明書の一部を "非表示"にしているのはどのくらい問題ですか?

情報に基づいて このページ 、Windowsは実際に、ユーザーがcertmgr.mscを起動してTrusted Root Certification Authorities > Certificatesに移動したときに表示されるものよりもはるかに多くのルートCA証明書を信頼します。

記事によると、実際の信頼されたルートCA証明書は、certmgr.mscでユーザーに表示されるものだけでなく、ローカルマシンのWindowsによって維持される証明書信頼リストにあるすべてのものです。

私のWindows 7マシンでは、「CTLInfo.exe」ツール(その記事の作成者が提供)が343のルートCA証明書の出力をリストしていました。これは間違いなく、現在自分のユーザーアカウントでTrusted Root Certification Authoritiesストアにある36をはるかに超えています。

これらのいくつかを以下に示します。

output from CTLInfo.exe

さらに詳しく調べてから、以下の手順(上記の記事のコメントから抜粋)に従って、Windows Updateサーバーから信頼されたルートCA証明書を含むSST(Microsoftシリアル化された証明書ストア)ファイルを生成しました。

  1. windowsコマンドプロンプトを起動し、SSTファイルを生成するフォルダーを参照します。
  2. 実行:certutil -generateSSTFromWU roots.sst
  3. 生成されたroots.sstファイルをダブルクリックすると、certmgr.mscで開くはずです。または、.sst拡張子がマシン上の他のソフトウェアによって開かれるように構成されている場合は、同じコマンドプロンプトで次を実行できます:start Explorer.exe roots.sst

上記の手順で取得したSSTファイルには、343のルートCA証明書も含まれています。その一部を以下に示します。

some root CAs provided by Microsoft

作成者ツールを使用して証明書を確認するか、または2番目の方法を使用して別のリストに証明書を生成するかどうかは、おそらくそれほど重要ではありません(ただし、後者のオプションは、証明書を操作するための柔軟性を提供します)。

更新1:答えの1つは、ローカルマシンアカウントの下に、300か所欠けている大量の証明書が表示されるはずであると述べています。

そこで、次の手順を使用して、コンピューターのローカルコンピューターアカウントにある証明書の量を確認しました。

  1. [スタート]をクリックし、実行プロンプトにmmcと入力します。これにより、空のMicrosoft Management Consoleが表示されます。
  2. FileメニューからAdd/Remove Snap-Inを選択します。
  3. Available snap-insCertificatesを選択し、Addをクリックします。
  4. Computer Accountを選択します。
  5. Local Computerを選択します。
  6. Finishをクリックします。

結果を見ると、ローカルコンピュータの下に表示される信頼されたルートCA証明書の数は37です。今日これはたまたま、ユーザーアカウントの下にリストされている量とまったく同じです。この質問を投稿しました。

実際、[ローカルコンピューター]に表示されている信頼されたルートCA証明書は、[ユーザーアカウント]に表示されているものと同じようです。しかし、そうでなかったとしても、これら2つのグループの合計は74にすぎません。 343証明書の大部分はまだ表示されていません。

結論としては、343の証明書の無駄な過半数は、この方法でも表示されないということです。

更新の終了1

とにかく、マイクロソフトが信頼する343のルートCA証明書を見ると、それらのほとんどは、ここ米国では私にも適用されないようです。

または、チュニジアや中国などのサーバーへの暗号化された接続が必要な場合は、それらが適用される可能性があります。一方、IEを使用してそのようなサーバーへの暗号化された接続を作成する場合、必要なルートCAが既に私のマシンのCTLにあるため、ブラウザーはおそらくそれほど文句を言わないでしょう。

更新2:SSTファイル内のすべての信頼できるCAを、ローカルコンピューターまたは現在のユーザーの下に表示される証明書とは別にすると、明示的に禁止するのが難しくなると思いましたそれらのいずれか。たとえば、Googleが受け入れを停止することを計画しているルートCA(言及 ここ )は、上記の手順で生成されたSSTでMicrosoftからまだ提供されているようです。

ただし、開いたSSTファイルでルートCA証明書を表示するだけで、certmgrに表示されるTrusted Root Certification Authoritiesグループにすぐに追加されることに気付きました。したがって、certmgrを更新した後、新しいルートCAをUntrusted Certificatesグループにドラッグできます。

ただし、これは、表示される証明書ごとに個別に行う必要があります。

更新終了2

だから私がこれについて尋ねたかった質問は:

  1. 将来的にそれらを使用する可能性がある場合(私のWebブラウジングのニーズに応じて)、Windowsはすべての343ルートCA証明書を表示しないのはなぜですか?
  2. Windowsがcertmgr.mscを介してすべての信頼されたルートCA証明書を表示しないという事実から、潜在的なセキュリティ問題はありますか?
21
  1. 将来的にそれらを使用する可能性がある場合(私のWebブラウジングのニーズに応じて)、Windowsはすべての343ルートCA証明書を表示しないのはなぜですか?

これは、Windowsが証明書をグループ化してcertmgrに表示するために使用する論理証明書ストアと物理証明書ストアの副作用である可能性があります。 certmgrのノードの1つを右クリックして[表示]> [オプション...]を選択すると、デフォルトの[論理証明書ストア]ではなく、[証明書の目的]でグループ化された証明書の表示に切り替えることができます。これにより、より多くの証明書が表示されますが、信頼されていない証明書を確認するのはより困難です。

  1. Windowsがcertmgr.exeを介してすべての信頼されたルートCA証明書を表示しないという事実から、潜在的なセキュリティ問題はありますか?

信頼できない証明書がUntrusted Certificatesにリストされていることを確認するためにより多くの努力を払わなければならないこと。たとえば e-Guven証明書に関するこのMozillaブログ を読んでいて、Windowsでuntrustedに設定されていることを確認したいとします。その場合は、最初にそれをcertmgr(またはローカルマシンの証明書)に表示してから、信頼できないグループに移動する必要があります。

6
coderworks

更新2016-01-06:結局のところ、CertMgmt.mscとCertLM.mscの合計ではありません。完全にパッチを当てている場合でも同様です。

この答えを出すとき、私はCERTLMと書いた[...]これが300の組み込みのルートが表示される場所です。

これは明らかに間違っていたことが判明しました。ごめんなさい。

私は、Windowsのルート証明書メカニズムの「オンラインにする」部分は、長い間、定期的な更新を行わなかった場合にのみ実際に機能するものだと想定していました。

うーん、ダメ。

それは私の完全にパッチされたWin10マシンでも同じです。ローカルでは82の証明書のみ。しかし、340何かがオンラインです。ええと。

古くて間違った元の投稿は以下に保存されています。


CERTLMがありません

Windowsは、以下のルートの合計を使用します

  • CERMGR、現在のユーザーの証明書と
  • CERTLM、[〜#〜] l [〜#〜] ocal [〜#〜] m [〜#〜]マシンの証明書。ここに300の組み込みルートが表示されます。

更新1

  1. 将来的にそれらを使用する可能性がある場合(私のWebブラウジングのニーズに応じて)、Windowsはすべての343ルートCA証明書を表示しないのはなぜですか?

私はそれを推測することができるだけです。奇妙なデザインの決定だと思います。

  1. Windowsがcertmgr.exeを介してすべての信頼されたルートCA証明書を表示しないという事実から、潜在的なセキュリティ問題はありますか?

はい。それは不必要に複雑であり、セキュリティにとって決して良いことではありません。

1
StackzOfZtuff