日本のセキュリティチーム
マイクロソフトの最新のセキュリティ情報は、次のリソースで入手することができます。
こんにちは、村木ゆりかです。
本日、セキュリティ アドバイザリ 2949927「Windows 7 および Windows Server 2008 R2 で SHA-2 ハッシュ アルゴリズムを利用可能」にて、SHA-2 サポートを公開しました。
現在マイクロソフトでは、証明書で利用するハッシュ アルゴリズムのうち、SHA-1 を廃止し、SHA-2 を含む、より強固なアルゴリズムに移行することを推奨し利用を促進しています。
今回は、あらためて、SHA-1 ハッシュ アルゴリズムの廃止について、2013 年 11 月に公開したセキュリティ アドバイザリ 2880823「マイクロソフト ルート証明書プログラムでの SHA-1 ハッシュ アルゴリズムの廃止」を中心にご案内したいと思います。
SHA-1 とは?
SHA-1 とは、米国の国立標準技術研究所 (National Institute of Standards and Technology, NIST) によって1995 年に制定されたハッシュを生成するためのアルゴリズムのひとつです。ハッシュとは、全体のデータを一定の規則 (ハッシュ関数) に従って抽出した値 (ハッシュ値) のことです。ハッシュ値は主に、内容に改ざんがない (完全性) ことの確認を行うために利用され、以下の特性を持って、安全性を担保しています。
1. ハッシュ値からは、元データを算出する事はできない (不可逆性)
2. 異なる元データからは、異なるハッシュ値が算出される (衝突困難性)
たとえば、証明書では、ハッシュを暗号化したものであるデジタル署名を利用することで、証明書の改ざん、なりすましを防止する役割があります。
なぜ SHA-1 を廃止するのか?
ハッシュ アルゴリズムには、異なる元データであるにも関わらず、同じハッシュ値が算出されてしまう、という問題 (衝突の問題) が発生する可能性があります。この問題が発生してしまうと、元データが改ざんされていても、ハッシュ値が同じため、なりすましやデータの改ざんが可能となってしまいます。衝突の問題は、研究が進むにつれて発見される新たなアルゴリズムや、ハッシュが安全性の担保として利用している数学や計算がコンピューターの計算速度の進化により、短時間で実現可能になっていることが要因で発生します。
同じハッシュ アルゴリズムの MD5 は、すでに、改ざんされた証明書が利用可能となる問題が現実に発生可能となり、利用が制限されています。詳細は、「ルート証明書プログラムにおける MD5ハッシュの利用制限」を参照してください。
SHA-1 においても、衝突の問題は、クラウド リソースを利用した攻撃の可能性が研究されるなど (Marc Stevens, Cryptanalysis of MD5 & SHA-1 )、現実の脅威として改ざんされた証明書が発生してもおかしくはない状況になってきています。すでに、公的機関などでは、SHA-1 の利用を停止し、より安全なアルゴリズムへ移行することが呼びかけられています。たとえば、米国国立標準技術研究所 (NIST) では、2013 年末までに SHA-1 の使用を停止することを勧告しており、日本においても、CRYPTREC では、SHA-1 を互換性維持のための利用に限定しています。(運用監視リスト)
マイクロソフトでの移行促進予定
マイクロソフトでは、より安全な環境の利用を促進し、また、SHA-1 に対して発生する脅威による被害を未然に防ぐためにも、SHA-1 ハッシュ アルゴリズムを段階的に廃止するための措置を実施しています。
まずは、マイクロソフト セキュリティ アドバイザリ 2880823 を公開し、ルート証明書更新プログラムに参加している証明機関から発行されている証明書においては、SHA-1 の利用を廃止し、SHA-2 に移行することを推奨しています。
対象となる証明書:
以下の両方の条件を満たす証明書が、今回の措置の対象となります。
(1) マイクロソフト ルート証明書更新プログラムに参加している証明機関 (CA) から発行されている証明書
ルート証明書プログラムは、マイクロソフトと、証明機関が連携して行っている証明書基盤づくりの取り組みです。このルート証明書プログラムでは、証明機関と連携を行い、それぞれの証明機関が、信用できるものなのか、マイクロソフトが皆さんに代わって確認を行い、信頼できる CA 証明書を配信し、Windows 端末に自動でインストールが行われます。詳細は、「マイクロソフトが提供する信頼できる証明書利用基盤 ~ルート証明書更新プログラムと更新ツール ~」も参考にしてください。
対象となるルート証明機関のリストは「Windows and Windows Phone 8 SSL Root Certificate Program (Member CAs)」から確認できます。
補足:ルート証明書更新プログラムに参加していないルート証明機関、たとえば、社内で利用しているプライベートルート証明機関 (例: Windows Server で証明書サービスをインストールして独自に構築しているルート証明機関など) は、今回の措置の対象ではありません。
(2) SSL 証明書、あるいは、コード署名証明書
証明書は、利用用途によってさまざまなタイプがあります。今回対象となるのは SSL 証明書、コード署名証明書です。その他の証明書 (たとえば、SMIME 証明書など) は今回の措置の対象ではありません。
補足: 該当する SSL 証明書、コード署名証明書を発行している中間証明機関がある場合は、その中間証明機関の証明書も対象になります。
補足: その他の証明書 (たとえば、SMIME 証明書など) は今回の措置の対象ではありませんが、SHA-1 を利用している場合はより安全なハッシュ関数を利用するよう移行を推奨しています。
予定タイムラインと発生する可能性のある影響
2016 年 1 月 1 日以降
ルート証明書プログラムに参加している証明機関は、SHA-1 を利用した SSL 証明書およびコード署名証明書の新規発行ができなくなります。SSL 証明書およびコード署名証明書以外の証明書に関しても、できる限り、SHA-1 を利用した証明書を新規発行しないことを推奨します。
ポリシーに従っていない場合は、ルート証明書プログラムメンバーから証明機関としての登録を除外するなどの措置をとる可能性があります。
コード署名証明書に関しては、2016 年 1 月 1 日以降のタイムスタンプで署名された証明書およびコードはWindows上で利用できなくなります。2015 年 12 月 31 日以前に署名された証明書およびコードは、SHA-1 の脅威状況に応じて利用不可の措置を実施する可能性があります。
ポリシーに従っていない場合は、署名された証明書およびコードやアプリケーションは、信頼しない証明書・コードとみなされます。その結果、実行時にエラーになり、実行できない可能性があります。
2017 年 1 月 1 日以降
SSL 証明書に関しては、2017 年 1 月 1 日以降 SHA-1 を利用した証明書はWindows上で利用できなくなります。
ポリシーに従っていない場合は、信頼できない証明書とみなされます。その結果、実行時に SSL 接続が失敗し、エラーになる可能性があります。
補足:中間見直しを予定しています
2015 年 7 月に、措置の予定を見直し、SHA-1 証明書の移行状況、SHA-1 アルゴリズムに対する攻撃や驚異の状況に応じて、措置を改変する予定があります。
検証と移行をぜひ検討してください
システム管理者の方:
1. 運用しているシステムにて利用している証明書を確認し、措置に該当する証明書であるかを確認してください。SSL サーバー証明書は、ウェブ サイトでの HTTPS のために利用されることが多く、コード証明書は、アプリケーションやドライバー、コードなどの署名のために利用されています。
2. 発行元の証明機関が、マイクロソフト ルート証明書プログラムに参加している場合は、利用している証明機関に連絡をし、移行方法について確認してください。
特に SSL サーバー証明書は、インターネットに公開しているウェブ サーバーで利用されており、コード署名証明書は、広く配布しているアプリケーションやActiveX などウェブ サイト上で動くモジュールに利用されている場合が多くあります。
3. 対応状況の確認、切り替えを行った際に、新しいアルゴリズムが利用できるか確認をする
切り替えを行った証明書を利用した場合、業務や利用しているアプリケーションなどの動作に問題がないか確認してください。ログ機能を利用して、証明書の利用が行われていないかログに記録することもできます。詳細は TechNet サイト Protecting Against Weak Cryptographic Algorithmsを参照してください。
Windows 端末を利用している方:
Windows Server 2003 Service Pack 2 では、SHA-2 対応を行うためには、追加の修正モジュール (KB968730 および KB938397) をインストールする必要があります。その他のサポートされる OS には、基本的な利用シナリオでは SHA-2 の証明書は利用可能です。追加の利用シナリオについては、本日公開したセキュリティ アドバイザリ 2949927 のように、随時セキュリティ アドバイザリなどで公開され、自動更新で配信・インストールされます。
これからも信頼できる PKI を実現するために
証明書は、現在の IT 環境に、絶大な安心と安全をもたらしています。しかし、その安全を支えているのは、証明書内で利用されているさまざまな暗号やハッシュのアルゴリズムで、それは、技術の進化とともに、より新しいものに変えていく必要があります。証明書は、「どんなものでも使ってさえいれば安全」ではないのです。
そして、証明書を安全に利用して生き続けるためには、証明書を扱うプラット フォームである OS や製品上の対応も必要ですが、証明書を利用している開発者・管理者の皆さんの協力も必須です。日々高まる脅威から守り、その「安全」を守っていくためには、「誰かがやればよい」ものではなく、製品ベンダー、サービス提供者、利用者が一丸となって、それぞれが安全なシステムを提供するよう進めていく必要があるものだと思います。
IT 管理者の方々は作業が増えることから、「禁止」「強制移行」と懸念される方もいるかもしれません。しかしながら、脅威はすぐそこまでやってきています。安全性を高めていくためには、メンテナンスをし、最新の状態を利用するよう進めていくことは大切です。
今後も安心、安全な PKI 環境が利用できるように、ぜひご協力をお願いいたします。
■関連リンク
Windows Root Certificate Program - Technical Requirements (英語情報)
Microsoft PKI Blog SHA1 Deprecation Policy (英語情報)