none
Internet Explorer 11における署名ハッシュアルゴリズムSHA-2への対応について RRS feed

  • 質問

  • ※Microsoftコミュニティから移動してきました。

    Windows7 Enterprise 32bit ServicePack1、Internet Explorer 11の環境です。

    FAQ: SHA-1 廃止/SHA-2 移行に関するマイクロソフトのポリシー

    https://blogs.technet.microsoft.com/jpsecurity/2015/11/02/faq-sha-1-sha-2/

    署名ハッシュアルゴリズムSHA-2の対応状況を調査しています。

    上記サイトの説明では「KB2949927」もしくは「KB3033929」の適用に
    よって対応とあります。


    当方の環境では何れのセキュリティパッチも未適用です。

    しかしSymantec社のSHA-2テストサイトにアクセスしてみると正常に

    通信できているとの診断結果が表示されております。

    SHA-2のSSLサーバ証明書のテストサイト - Symantec

    https://ssltest-sha2int.jp.websecurity.symantec.com/

    質問としては

    1. OSもしくはブラウザが標準で対応している?
    2. KB2949927・KB3033929以外にもSHA-2へ対応させるパッチが
      存在するのか?
    3. SHA-2の対応可否をネットワーク接続無しにローカルで確認する
      方法があるか?

    以上となります。

    2016年11月22日 0:23

回答

  • ご提示頂いた資料 を流し読みしてみましたが、第2章を見た限りでは、影響を受ける範囲として記載されているのは TLS サーバー証明書の扱いのみのように見えました。この変更計画では、下記の 3 フェーズが存在するそうです。

    1. アドレスバーに鍵アイコンが表示される
    2. アドレスバーに鍵アイコンが表時されない
    3. 証明書が無効になる

    上記の鍵アイコンの有無については、IE で SHA-1 なサイトを開いてみることで、アドレスバーで判断できそうです。SHA-1 な証明書を使っているサイトが残っていれば、ですけれども。

    この変更が適用されるパッチ:

    Web サーバー側ではなくクライアント側として見た場合には、TLS を必要とするアプリケーションが導入されているかどうか、という点に注目することになると思います。これについては、導入しているサードパーティ製品各社などに確認していく事になるとは思いますが、自社開発の製品で検討するような場合、たとえば .NET Framework の HttpWebRequest クラスについて、このような情報がありました。

    .NET Framework で TLS1.1 および 1.2 を有効化する方法

    最初の質問にあった KB3033929 については、下記のように記載されていますね。まずは鍵アイコンを外して、信頼されているサイトから除外した上で、さらに 2017年2月以降はブロックされる仕組みとするようです。

    Q. アドバイザリ 3033929 を適用した場合、SHA-1 が無効となり、認証が取れなくなるのでしょうか?

    A. いいえ。以下の SHA-2 ハッシュ アルゴリズム署名および検証のサポートを追加しただけです。

    マイクロソフトのルート証明機関に所属していないもの(組織内のプレイベート証明機関など)については、今回の廃止措置の対象外とのことですが、"マイクロソフトのルート証明機関" へのリンクが切れていたので、詳細は調べていません。

    一方、SHA-2 対応の方については、Windows 7 の初期インストール時点では、SHA-2 のルート証明書は含まれておらず、KB2949927 および KB3033929 で提供と記載されています。Windows 7 Service Pack 1 については、これらのパッチが提供されるよりも前(2011年2月)なので、SP1 も含めて「初期インストール時点」にあたると思います。

    2016年11月22日 5:15
  • チャブーンです。

    横からすみませんが、この件ですが、質問者さんが「Webページの閲覧」と「アプリケーション(ファイル)への署名と検証」を混同されておられるのが、理解を阻む遠因なのかもしれません。

    単に「Webページの閲覧」ができること、のレベルであればWindows Server 2008/Vista以降は標準的に対応しています。

    https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=SO19176

    Windows上の対象コンポーネントはしたの資料からCrypt32.dllとWcrypt32.dllが対象になるようですが、Windows Server 2003のように「そもそもは未対応」であれば、修正プログラムによる差し替えが必要ですが、それ以降のOSは標準装備のため、コンポーネントのバージョンやレジストリの確認は全く不要です。

    https://support.microsoft.com/en-us/kb/968730

    魔界の仮面弁士さんのコメントにもありますが、ルート証明書の署名アルゴリズムがSHA1なのにSHA2ができている、という意味ですが、これは結局クライアントが直接アクセスするWebサーバの「サーバ証明書」がSHA2であれば、SHA2で通信するから、ということのはずです(サーバ側の秘密鍵を使うはずなので)。ただし、SHA1のルート証明書は「過去に発行された別物」の証明書扱いになると思いますので、なんらかのアラートが出る可能性があると思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。




    2016年11月24日 4:04

すべての返信

  • 専門外の分野なので、あまり自信は無いですが:

    > https://blogs.technet.microsoft.com/jpsecurity/2015/11/02/faq-sha-1-sha-2/

    『今回の措置の対象は、ルート証明書プログラムに参加している CA から発行された証明書が対象です』と記載があります。

    > https://ssltest-sha2int.jp.websecurity.symantec.com/

    このテストサイトのサーバー証明書および中間証明書(Symantecのもの)は SHA-2 のようですが、ルート証明書(Verisign のもの)は SHA-1 のようです。

    たとえば下記のサイトは、証明書チェーンすべてが SHA-2 のようです。こちらも問題なく表示することができていますか?
    https://knowledge.geotrust.com/
    (手元の Win7 で systeminfo.exe コマンドを実行したところ、既に KB3033929 が導入済みだったため、未適用の環境でどのように表示されるのかは自信がありません)

    > SHA-2の対応可否
    何をもって対応と看做すことができるのが、具体的な情報を持ち合わせていないのですが、SHA256 なルート証明書の一覧を取得することだけで良ければ、下記で行えます。(PowerShell)

    gci Cert:\CurrentUser\Root | where { $_.SignatureAlgorithm.FriendlyName -eq "sha256RSA" }

    なお、自分の PC で、証明書ストアの[信頼されたルート証明期間]タブで、VeriSign のものを確認したところ、下記の 4 つが存在していました。今回ご提示頂いたテストサイトで使われていたのは b のようですが、この中で SHA-2 なのは d だけです。a,b は SHA-1、c は MD2。

    [a]VeriSign Class 3 Public Primary Certification Authority - G3
    [b]VeriSign Class 3 Public Primary Certification Authority - G5
    [c]VeriSign Commercial Software Publishers CA(期限切れ)
    [d]VeriSign Universal Root Certification Authority

    このあたりにも情報がありました。
    https://www.jp.websecurity.symantec.com/developer/step01.html

    2016年11月22日 2:54
  • 魔界の仮面弁士さん、ご情報提供頂きありがとうございます。

    早速、こちらの環境で「https://knowledge.geotrust.com/」へ
    アクセス可能か確認したところ、問題なく閲覧できました。

    証明書の詳細は以下の通りです。
     署名アルゴリズム:sha256RSA
     署名ハッシュ アルゴリズム:sha256
    ※SymantecのSHA-2テストサイトも同様でした。

    またPowerShellでVeriSignの証明書を確認したところ
    >[d]VeriSign Universal Root Certification Authority
    がインストール済みでした。

    SHA-2には対応できているようですが、このまま「KB3033929」を
    適用せずにSHA-2を利用できるなら問題ありませんが、それで良い
    のか判断材料が欲しいですね。

    2016年11月22日 3:30
  • ご提示頂いた資料 を流し読みしてみましたが、第2章を見た限りでは、影響を受ける範囲として記載されているのは TLS サーバー証明書の扱いのみのように見えました。この変更計画では、下記の 3 フェーズが存在するそうです。

    1. アドレスバーに鍵アイコンが表示される
    2. アドレスバーに鍵アイコンが表時されない
    3. 証明書が無効になる

    上記の鍵アイコンの有無については、IE で SHA-1 なサイトを開いてみることで、アドレスバーで判断できそうです。SHA-1 な証明書を使っているサイトが残っていれば、ですけれども。

    この変更が適用されるパッチ:

    Web サーバー側ではなくクライアント側として見た場合には、TLS を必要とするアプリケーションが導入されているかどうか、という点に注目することになると思います。これについては、導入しているサードパーティ製品各社などに確認していく事になるとは思いますが、自社開発の製品で検討するような場合、たとえば .NET Framework の HttpWebRequest クラスについて、このような情報がありました。

    .NET Framework で TLS1.1 および 1.2 を有効化する方法

    最初の質問にあった KB3033929 については、下記のように記載されていますね。まずは鍵アイコンを外して、信頼されているサイトから除外した上で、さらに 2017年2月以降はブロックされる仕組みとするようです。

    Q. アドバイザリ 3033929 を適用した場合、SHA-1 が無効となり、認証が取れなくなるのでしょうか?

    A. いいえ。以下の SHA-2 ハッシュ アルゴリズム署名および検証のサポートを追加しただけです。

    マイクロソフトのルート証明機関に所属していないもの(組織内のプレイベート証明機関など)については、今回の廃止措置の対象外とのことですが、"マイクロソフトのルート証明機関" へのリンクが切れていたので、詳細は調べていません。

    一方、SHA-2 対応の方については、Windows 7 の初期インストール時点では、SHA-2 のルート証明書は含まれておらず、KB2949927 および KB3033929 で提供と記載されています。Windows 7 Service Pack 1 については、これらのパッチが提供されるよりも前(2011年2月)なので、SP1 も含めて「初期インストール時点」にあたると思います。

    2016年11月22日 5:15
  • 魔界の仮面弁士さん、返信遅れまして申し訳ございませんでした。

    仰られております通りSHA-2への対応はKB2949927 または KB3033929の適用が必要と認識しておりますが、現時点で未適用にも関わらずSHA-2を利用できている状態です。
    もう少し自分で何をもってしてクライアントがSHA-2に対応しているのか、いないのかを判断する方法を調べてみます。

    2016年11月24日 2:54
  • チャブーンです。

    横からすみませんが、この件ですが、質問者さんが「Webページの閲覧」と「アプリケーション(ファイル)への署名と検証」を混同されておられるのが、理解を阻む遠因なのかもしれません。

    単に「Webページの閲覧」ができること、のレベルであればWindows Server 2008/Vista以降は標準的に対応しています。

    https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=SO19176

    Windows上の対象コンポーネントはしたの資料からCrypt32.dllとWcrypt32.dllが対象になるようですが、Windows Server 2003のように「そもそもは未対応」であれば、修正プログラムによる差し替えが必要ですが、それ以降のOSは標準装備のため、コンポーネントのバージョンやレジストリの確認は全く不要です。

    https://support.microsoft.com/en-us/kb/968730

    魔界の仮面弁士さんのコメントにもありますが、ルート証明書の署名アルゴリズムがSHA1なのにSHA2ができている、という意味ですが、これは結局クライアントが直接アクセスするWebサーバの「サーバ証明書」がSHA2であれば、SHA2で通信するから、ということのはずです(サーバ側の秘密鍵を使うはずなので)。ただし、SHA1のルート証明書は「過去に発行された別物」の証明書扱いになると思いますので、なんらかのアラートが出る可能性があると思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。




    2016年11月24日 4:04
  • チャブーン様、ご回答ありがとうございます。
    質問文が曖昧ですみませんでした。

    >単に「Webページの閲覧」ができること
    >https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=SO19176

    このページでWindows7がSHA-2にもとより対応していることが確認できました。
    ありがとうございました。

    2016年11月24日 9:18