KB2661254 の適用
2012 年 8 月 14 日に,セキュリティ アドバイザリがリリースされました.
この更新プログラムの適用することで,1024 ビット未満の RSA 公開鍵の証明書はブロックされるようになりました.
マイクロソフト セキュリティ アドバイザリ (2661254): 証明書の鍵長の最小値に関する更新プログラム
そこで,試しに 1024 ビット未満の RSA 公開鍵の証明書をインストールして,どのように表示されるのかを確認してみました.
証明書は mmc で表示させて確認しています.
OS
- Windows 7 Home Premium Service Pack 1
鍵長 512 ビット
少し極端に,鍵長 512 ビットの証明書で試してみます.
KB2661254 適用前
KB2661254 適用後
「この証明書の整合性を保証できません。証明書が壊れているか、または変更されている可能性があります。」というメッセージに変わりました.
この更新プログラムの適用した場合には,該当する証明書は上記のメッセージが表示されるようです.
鍵長 1023 ビット
次に,鍵長 1023 ビットの証明書で試してみます.
1024 ビット未満の鍵長ですので,更新プログラムの適用後は鍵長 512 ビットと同様のメッセージが表示されるはずです.
KB2661254 適用前
KB2661254 適用後
表示されませんでした・・・.
鍵長の確認
念のため,OpenSSL を使用して,鍵長を確認してみます.
$ openssl x509 -noout -text -in ca-1023.pem | grep Public-Key Public-Key: (1023 bit)
次に,Windows にインストールした証明書の公開鍵を確認してみます.
鍵長 1023 ビットのはずなのに,1024 ビットと表示されてしましました.
Windows 上(の表示)では鍵長 1023 ビットの RSA 公開鍵は鍵長 1024 ビットとして認識されてしまい,鍵長 512 ビットの時のようなメッセージは表示されないようです.
メッセージが表示される鍵長
メッセージが表示される鍵長を確認するために,鍵長 1023 ビットから 1 ビットずつ小さくしてみました.
すると,鍵長 1016 ビットの証明書を表示させた場合にメッセージが表示されました.
鍵長 512 ビットの場合と同様のメッセージが表示され,鍵長も 1016 ビットと表示されています.
ちなみに,鍵長 1017 ビットの場合は下記の通り,メッセージは変化せずに,鍵長も 1024 ビットと表示されます.
https 等のアプリケーションでの実際の動作でも同様かは確認していませんが,少なくとも表示上は,鍵長 1016 ビットから更新プログラムによるブロック対象と見なされているようです.
その他
Windows で表示される証明書の公開鍵の鍵長を,実際の鍵長 1008 〜1024 ビットまでの間で確認してみました.
結果は下記の通りです.
- 表示が 1008 ビット
- 実際の鍵長が 1008 ビット(これより下は確認していません)
- 表示が 1016 ビット
- 実際の鍵長が 1009 〜 1016 ビット
- 表示が 1024 ビット
- 実際の鍵長が 1017 〜 1024 ビット
表示される鍵長のビット数は 8 ビット間隔のようです.
まとめ
- KB2661254 を適用すると,「この証明書の整合性を保証できません。証明書が壊れているか、または変更されている可能性があります。」というメッセージが表示される
- このメッセージは鍵長 1016 ビット以下の場合に表示される