生成 SSL 認證的 CSR 和密鑰文件的位置是否重要?
我必須為萬用字元 SSL 證書創建 CSR。SSL 提供商的一些常見問題解答說我應該在要安裝證書的機器上生成 CSR 文件?我的理解是,只要稍後將文件移動到正確的位置,我在哪裡生成 CSR 或密鑰文件就無關緊要了。
所以我的問題是:在哪裡生成 SSL 認證的 CSR 和密鑰文件是否重要?
你的理解是正確的。其他一切都一樣,沒關係;但有皺紋。
在有問題的伺服器上生成它們的一個優點是它最大限度地減少了密鑰在傳輸過程中被洩露的機會。只要您使用安全的機器來生成它們,並使用安全的方法(不受 MITM 攻擊)將它們移動到伺服器,您就可以逃脫。不要忘記在生成系統上安全地擦除它們,除非您有意保留副本,並得到相應的保護。
在單獨的機器上生成的一個優點:通常,這將是您的桌面。台式機上的熵池幾乎總是比無人值守的伺服器上的要深,因為台式機通過鍵盤和滑鼠電纜(即您!)連接了一個很大的隨機源。熵不足可能導緻密鑰生成需要很長時間,或者導致它使用
/dev/urandom
PRNG 輸出代替,這取決於生成工具的偏執程度,這可能導緻密鑰較弱;台式機往往沒有這個問題。稍後編輯:根據此處連結的其他地方的討論,提出了兩點。首先,您可以通過在桌面上生成熵
dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat
,例如,將其複製到遠端伺服器,然後直接或通過加深遠端伺服器的熵池將其提供給您的密鑰生成過程,從而實現中途旅行。我還沒有找到一種方法來做前者,而做後者通常需要施加特權,如果你和遠端伺服器之間的通道不安全,這是整個反對的重點 - 也是不安全的。其次,可估計的mjg59引發了硬體安全模組的問題 - 即,您將私鑰放入或在其中創建的設備,然後執行關鍵操作而無需將密鑰洩露出去。這是一個很好的觀點,但超出了這個問題的範圍。
但是執行緒的更普遍的結果——你應該有一個精確的威脅模型,並適當地選擇你的反應——是一個很好的結果。我的威脅模型是我的通信渠道是安全的,但我的端點受到智能攻擊。這意味著我將在本地生成熵強 SSL 密鑰對並分發它們。如果結果證明我的模型不准確並且我的通訊很容易受到攻擊,我會立即知道假設我的所有 SSL 密鑰對都已被洩露。 如果您的威脅模型不同,您應該相應地調整您的做法。