Microsoft 預設使用 Dual_EC_DRBG 嗎?
所以,眾所周知,Dual_EC_DRBG 包含一個 NSA 後門。在這一點上,沒有理由稱其為“潛在”甚至是“所謂的”後門;即使對《紐約時報》來說,這種存在也是顯而易見的。
我們也知道,RSA BSAFE 一直預設使用 Dual_EC_DRBG,理由很愚蠢,只能翻譯為“因為 NSA 付錢給我們”。
這個關於 Ars Technica 的評論斷言微軟也使用這個生成器。但我看到了相反的說法。因此我的問題是:
Windows Server 使用什麼 PRNG 為證書籤名請求生成私鑰?
Windows 上的 Internet Explorer 使用什麼 PRNG 來生成會話密鑰?Windows 上的 Chrome 和 Firefox 怎麼樣?
Windows 上的 IIS 使用什麼 PRNG 為 PFS 生成臨時密鑰材料?
我對所有這些產品的最新版本最感興趣,當然也只有那些在 2007 年之後發布的產品。參考資料或至少有權威性是首選。
NIST 發布的 2013 年 9 月補充 ITL 公告引起了人們對 NIST 出版物 SP 800-90A,使用確定性隨機數生成的隨機數生成的關注;特別是雙橢圓曲線確定性隨機比特生成器(Dual EC DRBG)算法的可信度。因此,NIST 強烈反對使用 Dual EC DRBG,直到在 SP 800-90A 的未來修訂版中解決了對它的擔憂。
Windows CNG 加密基礎結構提供了 DUAL_EC_DRBG 應用程序可以使用的實現。Windows Crypto 開發團隊審查了受支持的 Windows 版本,並確定 Windows 中包含的任何功能或組件都沒有專門使用 Dual EC DRBG。
Windows 有一種機制來配置系統各個部分使用的預設 RNG 算法。Windows 8.1、Windows Server 2012R2、Windows 8、Windows Server 2012、Windows 7 和 Windows Server 2008R2 的預設配置不使用 Dual EC DRBG 作為預設隨機數生成器算法。這些 Windows 版本的預設隨機數生成器算法是 SP800-90a 中的 AES_CTR_DRBG。
DRBG 依靠熵來提供安全的隨機數生成。好的熵通常取決於硬體和其他因素來確保其隨機性。大多數應用程序都依賴該平台來提供安全的隨機數。我希望 Chrome 和 Firefox 會使用 BCryptGenRandom 在 Windows 上生成安全隨機數;但是,每個各自的開發團隊在他們的瀏覽器在 Windows 平台上執行時如何生成隨機數方面都更加權威。
Mike Stephens Windows 項目經理,密碼學