2019年2月中旬に「3月12日にSHA-2署名をサポートするための重要な更新プログラムがWindows 7およびWindows Server 2008 R2向けにリリース」というニュースを見た人は多いと思います。安全性に問題があるSHA-1は使用せず、SHA-2に移行すべきです。しかし、Windows 7やWindows Server 2008 R2がSHA-2をこれまでサポートしていなかったのかというと、それは全くの誤解です。
SHA-1やSHA-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で提供される更新プログラムは、SHA-1とSHA-2の2つのハッシュアルゴリズムを用いて、二重に署名されています。Windowsは署名を検証することで、更新プログラムが本物であることを信頼します(画面1)。
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)。
しかし、SHA-2のコード署名のサポートは、2014年10月に初めて更新プログラムとして提供され(ただし、この最初の更新プログラムには問題がありました)、その後も何度か更新版に置き換えられています(画面3)。
これらのセキュリティアドバイザリに対応する更新プログラムは、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年3月、Windows 7 SP1、Windows Server 2008 R2、WSUS 3.0 SP2向けにリリースされたのが以下の更新プログラムです(画面4)。この更新プログラムは、2019年7月16日(米国時間)より前までにインストールしておく必要があります。2019年4月9日(米国時間)には、Windows Server 2008 SP2向けに同様の更新プログラムが予定されています。
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)。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2018/7/1)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.