理論上,是的。實際上,也許。
我們常說,「https安全」,或者「http不安全」。但我們真正的意思是,「https更難以竊聽,難以進行中間人攻擊」,或者「電腦小白都能偷聽http通訊」。
然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常用實現中發現可利用的缺陷(想想openssl和心臟滴血),https就會在該實現被修正之前都被當成入侵的門道。
http和https是ietf(網際網路工程任務組) rfc 7230-7237和2828中定義的協議。https被設計成http的安全版本,但說https安全而http不安全,卻隱藏了重要的例外情況。
虛擬機器(vm)和容器的定義沒那麼嚴格,也沒有被特意設計成誰比誰更安全。因此,這裡面的安全問題就更加隱晦了。
為什麼虛擬機器比容器更安全
分治法,在戰爭和軟體界都是制勝法寶。架構師將單一複雜安全問題分解為更簡單的多個問題時,大多數情況下,結果都會比包攬所有問題的單個解決方案更安全。
容器,就是乙個將分治法水平鋪開到多個應用中的例子。通過將每個應用限制在自己的範圍裡,單個應用中的弱點便不能影響到其他容器中的應用。vm同樣採用分治思想,但它們的隔離又更進了一步。
被隔離應用中的漏洞不能直接影響到其他應用,但被隔離應用會破壞與其他容器共享的作業系統(os),進而影響到所有容器。共享作業系統的情況下,應用、容器和os實現棧中任意一點上的缺陷,都可以令整個堆疊的安全性失效,侵害到物理機器。
虛擬化之類的分層架構,則將每個應用的執行棧從上到下從軟體到硬體地隔離開,清除掉共享os造成應用間相互影響的可能性。另外,每個應用棧與硬體之間的介面都有定義,從而限制了濫用可能。這給各應用間獨善其身創造了格外堅實的邊界。
虛擬機器管理程式控制著客戶os與硬體間的互動,vm就是通過該管理程式隔離開了控制使用者活動的os。vm客戶os控制著使用者活動,但不參與硬體互動。某應用或客戶os中的漏洞,不可能影響到物理硬體或其他vm。vm客戶os和支援容器的os相同的時候(這種情況很常見),os上會破壞所有其他容器的漏洞,卻不會危害到其他vm。由此,vm不僅水平分隔應用,也縱向隔離了os和底層硬體。
vm開銷
vm提供的額外安全性是有代價的。計算系統中,控制轉移往往開銷巨大,從處理器週期和其他資源耗用上都可以呈現出來。執行棧需要儲存和重置,外部操作可能不得不掛起或允許繼續完成,諸如此類。
客戶os和虛擬機器管理程式間的切換開銷很大,且經常發生。即便處理器晶元中燒錄進特殊控制指令,控制轉移開銷也降低了vm的整體效率。這種降低很巨大嗎?難說。可以通過管理控制轉移,來調整應用,減低開銷;大多數伺服器處理器如今也設計成了簡化控制轉移的型別。換句話說,效率降低大不大,取決於應用和伺服器,但「開銷不可能被完全清除」這一點是毫無爭議的。
虛擬機器管理程式漏洞
更糟糕的是,vm架構中的分隔層還引發了另乙個潛藏的幽靈:虛擬機器管理器漏洞。虛擬機器管理程式被破壞,可能導致牽一髮而動全身的巨大後果,尤其是在公共雲環境中。可以想見,僅僅乙個漏洞利用,就可以讓一名黑客,在控制著其他公共雲消費者應用的vm上執行**,掌控公共雲的一部分。
再堅如磐石的架構,也會有可大幅削弱系統的實現缺陷。虛擬機器管理器被黑事件常常被大言不慚的宣告搪塞過去:理由是虛擬機器管理程式太簡單了,而且寫得很完美,也經過了超仔細的審查,所以永遠不會出故障,不會被黑。虛擬機器管理程式漏洞利用的破壞性堪比wannacry,但也不用太擔心這一點。不過,心臟滴血確實發生了,而openssl的**行數也遠遠不及虛擬機器管理程式多。
目前為止還沒出現什麼重大虛擬機器管理程式安全事件。但稍微瞄一眼通用漏洞與暴露(cve)資料庫,就可以知道研究人員們確實找到了可以利用的虛擬機器管理程式漏洞。虛擬機器管理程式開發者和廠商的補丁速度倒是也不算慢。2023年3月,微軟發布安全公告 ms17-008,記錄了7個已打補丁的hyper-v虛擬機器管理程式漏洞——全部被認定為關鍵級別漏洞。
vm比容器的安全性更高,但我們也必須仔細審查vm系統的安全。而且,容器和vm往往**在一起,需要注意的點還很多。
虛擬機器比容器更安全?
本文講的是虛擬機器比容器更安全?理論上,是的。實際上,也許。我們常說,https安全 或者 http不安全 但我們真正的意思是,https更難以竊聽,難以進行中間人攻擊 或者 電腦小白都能偷聽http通訊 然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常...
虛擬機器比容器更安全?
理論上,是的。實際上,也許。我們常說,https安全 或者 http不安全 但我們真正的意思是,https更難以竊聽,難以進行中間人攻擊 或者 電腦小白都能偷聽http通訊 然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常用實現中發現可利用的缺陷 想想o...
家庭電腦使用虛擬機器更安全方便
如果你還沒有習慣於用虛擬機器,那麼可以開始考慮了。於是我建議除了玩大型遊戲外,其它都用客戶端的虛擬機器,第乙個和第二個需求可以合併成乙個,因為兩種只有聯網和不聯網的區別,在虛擬機器中很容易處理。先製作乙個基本的虛擬機器,然後根據需求複製若干,以後如果有乙個環境出問題,就用那個基本的再複製乙個,把原來...