「えっ! Windows 7ってまだSHA-2に対応していなかったの?」「そんなばかな!」その知識、ホントに正しい? Windowsにまつわる都市伝説(132)

2019年2月中旬に「3月12日にSHA-2署名をサポートするための重要な更新プログラムがWindows 7およびWindows Server 2008 R2向けにリリース」というニュースを見た人は多いと思います。安全性に問題があるSHA-1は使用せず、SHA-2に移行すべきです。しかし、Windows 7やWindows Server 2008 R2がSHA-2をこれまでサポートしていなかったのかというと、それは全くの誤解です。

» 2019年03月26日 05時00分 公開
[山市良テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

Windows 7におけるSHA-2署名のサポートは2014年10月からスタート

 SHA-1SHA-2は、SSL/TLS、PGP、SSH、S/MIME、IPsec、デジタル署名(コード署名)など、さまざまなアプリケーションやプロトコルで、暗号化やデータの完全性(改ざんされていない)の検証に利用されているハッシュアルゴリズム関数です。

 SHA-1は160bit(ハッシュ値の長さ)、SHA-2はbit長の違いなど、幾つかのバリエーションの総称(その一つがSHA-256)です。SHA-2の初版は2001年に登場しており、決して新しい標準ではありません。

 2009年にリリースされたWindows 7には、OSレベルでSHA-2のサポート(一部制限あり)が最初から組み込まれています。そのことが記された、2010年に書かれた古いブログ記事を見つけました。

 2005年にSHA-1に対する攻撃手法が発見されて以降、その安全性が問題視され、SHA-2への移行が推奨(後に要請)されました。MicrosoftはSHA-1の廃止とSHA-2への移行をさまざまな領域で進めていますが、その対象の一つにWindows UpdateおよびWindows Server Update Services(WSUS)における更新プログラムのコード署名の扱いがあります。

 そして今回、以下のサポート情報が大幅に更新されたことを受け、「SHA-2署名をサポートするための重要な更新プログラム」のニュースになりました。

Windows UpdateとWSUSでは、2019年7月からSHA-1署名を廃止

 現在、Windows UpdateおよびWSUSで提供される更新プログラムは、SHA-1とSHA-2の2つのハッシュアルゴリズムを用いて、二重に署名されています。Windowsは署名を検証することで、更新プログラムが本物であることを信頼します(画面1)。

画面1 画面1 Microsoftの更新プログラムは、SHA-1(sha1)とSHA-2(sha256)の2つのハッシュアルゴリズムで二重に署名されている。Windows 7は適切に更新されていれば、既にSHA-2の署名を検証可能

 2019年7月以降、更新プログラムのコード署名はSHA-2に一本化されます。上記のサポート情報は、このSHA-1の廃止とSHA-2への完全移行が、2019年3月以降に提供される更新プログラムから段階的に行われることを知らせるものです。

 このサポート情報は2019年2月に初めて公開されたものではなく、少なくとも2018年11月には存在していました。SHA-1廃止の件は本連載の年末特集でも紹介しましたが、その時よりも詳細なスケジュールに更新されたのが2019年2月のことです。

 現在、サポートされているWindowsの中で、Windows 7、Windows Server 2008、Windows Server 2008 R2は、リリース当初、SHA-2のコード署名および検証をサポートしていませんでした(画面2)。

画面2 画面2 Windows 7 Service Pack(SP)1の新規インストール直後は、SHA-2の署名と検証をサポートしていないため、更新プログラムのSHA-1の署名しか見えない。Windowsがこの状態の場合、SHA-2の署名のみの更新プログラムは検証できないことに

 しかし、SHA-2のコード署名のサポートは、2014年10月に初めて更新プログラムとして提供され(ただし、この最初の更新プログラムには問題がありました)、その後も何度か更新版に置き換えられています(画面3)。

画面3 画面3 SHA-2コード署名のサポートを追加する更新プログラムをインストールすると、SHA-2の署名の参照と検証が可能に

 これらのセキュリティアドバイザリに対応する更新プログラムは、Windows Server 2008 Service Pack(SP)2向けには提供されていません。ただし、別の更新プログラム(KB2763674、KB4056448、KB4039648など)によって、SHA-2コード署名の参照と検証は可能になっています(未確認情報ですが、カーネルモードドライバについては、現状、SHA-1署名のみのサポートかもしれません)。

 また、3つ目のセキュリティアドバイザリのタイトルにあるように、Microsoftは当初(2013年11月に発表)、2016年1月からSHA-1を廃止し、SHA-2に移行する予定でした。2019年3月、4月に提供される更新プログラムは、2019年7月の完全移行に取りこぼしがないようにするため、あらためて更新版を提供するという意味合いがあるのかもしれません(あくまでも筆者の想像です)。

2019年7月以降の新規インストール後の更新はどうなっちゃうの?

 そして2019年3月、Windows 7 SP1、Windows Server 2008 R2、WSUS 3.0 SP2向けにリリースされたのが以下の更新プログラムです(画面4)。この更新プログラムは、2019年7月16日(米国時間)より前までにインストールしておく必要があります。2019年4月9日(米国時間)には、Windows Server 2008 SP2向けに同様の更新プログラムが予定されています。

画面4 画面4 2019年3月13日にWindows 7に配布されたWindows UpdateでSHA-2コード署名をサポートするための更新プログラム(KB4474419)とサービススタック更新プログラム(KB4490628)。後者は3月13日の更新プログラムによる再起動後のWindows Updateでインストールされた

 SHA-1コード署名の廃止は、2019年7月16日(米国時間)以降にリリースされる新しい更新プログラムに対して行われます。既に提供済みで、Windows UpdateやMicrosoft Updateカタログで利用可能な古い更新プログラムには影響しないと思います。当然のことながら、2019年7月16日(米国時間)より前に、Microsoft Updateカタログからダウンロード済みの更新プログラムには関係ありません。

 Windows UpdateやWSUSのサービスへの接続のためにSHA-2が要求されることはなく、古い更新プログラムは引き続き利用可能であると思います(あくまでも筆者の想像です)。もしそうでなければ、Windows 7を新規インストールしたときに、Windows UpdateやWSUSから更新プログラムを受け取れる状態にするまで、大変な労力が必要になることでしょう(画面5)。

画面5 画面5 Windows 7 SP1を新規インストール後に(SHA-2コード署名未対応の状態)、最初にWindows Updateを実行したところ(この前にWindows Update自身の更新プログラムのインストールが要求される)。2019年2月末の時点ではこうだが、2019年7月以降はどうなるか?

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2018/7/1)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。