升級 SSL 庫不能修復 heartbleed
我剛剛在我的 Ubuntu 12.04 伺服器上升級了 openssl 庫來修復 heartbleed 錯誤。這是我為“openssl version -a”命令得到的輸出:
OpenSSL 1.0.0g 18 Jan 2012 built on: Fri Apr 11 09:20:16 UTC 2014 platform: linux-x86_64 options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,-- noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM OPENSSLDIR: "/usr/local/ssl"
據我了解,“建立”日期應在 2014 年 4 月 7 日之後,這裡似乎就是這種情況。完成這些更改後,我重新啟動了 Apache,但我仍然看到我的網站容易受到 Heartbleed 錯誤的影響。
我在這裡錯過了什麼嗎?
我通過下載最新的原始碼並編譯/安裝來升級了 ssl 庫。
$$ Update $$ 在Stephan下面的評論之後,我直接使用apt-get升級了openssl。我還更新了我的 PATH 以指向新升級的 openssl 庫。
這是我在執行“openssl version -a”時看到的
OpenSSL 1.0.1 14 Mar 2012 built on: Mon Apr 7 20:33:29 UTC 2014 platform: debian-amd64 options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM OPENSSLDIR: "/usr/lib/ssl"
根據“建構”,該庫已更新到最新的 4 月 7 日更新檔。但是,我的網站仍然容易受到心臟出血的影響。
請幫忙!
保護自己免受 Heartbleed 影響的最簡單、最快的方法是從供應商提供的二進制包中更新 OpenSSL。除非您知道自己在做什麼,或者想花更多時間學習,否則不要從原始碼編譯。如果您需要做的只是更新軟體,那麼從原始碼編譯更具挑戰性並且浪費時間。它可以具有教育意義和啟發性。
OpenSSL 1.0.0g 18 Jan 2012 built on: Fri Apr 11 09:20:16 UTC 2014
這有些不對勁。你想要 1.0.1g 而不是 1.0.0g。但 Heartbleed 只是 OpenSSL 1.0.1 和 1.0.2 中的問題。OpenSSL 1.0.0 不易受到攻擊。您是否下載了舊的源文件?請注意,Ubuntu 並不總是準確地報告 OpenSSL 版本,您還需要更新 libssl。
據我了解,“建立”日期應在 2014 年 4 月 7 日之後,這裡似乎就是這種情況
不,再看一遍。您的“建立”日期是“2014 年 4 月 11 日 09:20:16 UTC”。那是你編譯這個源的時候嗎?
請注意,如果您從原始碼建構,則需要應用正確的標誌。閱讀http://www.openssl.org/news/secadv_20140407.txt上的安全通知
受影響的使用者應升級到 OpenSSL 1.0.1g。無法立即升級的使用者也可以使用 -DOPENSSL_NO_HEARTBEATS 重新編譯 OpenSSL。