英特爾這樣的老牌公司為什麼會出現晶片級漏洞?
這不是一個低級錯誤
現在看到問題時候還沒有寫任何信息,結合熱點我假設「晶片級低級錯誤」 指的是最近的 Meltdown and Spectre bugs。
首先這應該不算是晶片級別的低級錯誤。。。
這一次起碼不是功能不能使用,或者返回結果不正確,而是容易遭受旁路攻擊的安全性漏洞。
立項之初會制定指標,比如這次這個架構/晶元要求時鐘多快,支持什麼指令集,die面積多小,功耗等等指標。而安全性指標相對而言比較難制定,因為誰也不知道以後別人會用什麼樣的方式來攻擊。比如發現了漏洞A,B,C,那麼設計下一個晶元的時候解決漏洞A,B,C自然會被列在指標裡面,但如果其實還有漏洞D,而安全人員沒有發現這個漏洞,以前也沒有人發現/利用這個,那麼設計之初也就不會有人去考慮到D。
另外一點,是安全性與速度有時是在對立面。舉個例子,假設一個函數被用來對比密碼是否正確,而對比的方式是從頭開始對比存儲的密碼和輸入的文字,而這個函數對比一個字元的耗時是5ms。
我輸入了ABCDEF,15ms後返還結果輸入密碼不正確,那麼我就知道了前面的ABC是正確的,只需要按照同樣的方式猜測後面是什麼,也就大大縮減了破解這個密碼的耗時。
這種情況也就需要函數返還結果的時間隨機,或者無論第幾位發現錯誤,都在一樣的時間返還結果。 這樣的結果是安全性提高,但是效率也就大大的下降了。
另外一點,這個Meltdown and Spectre 不止是intel會受到影響,AMD與ARM的也有影響,只是現在intel家的漏洞利用成本低。 應該說這個安全性考慮不周到是業界/學術界低估了搞安全的人的猥瑣程度。
當然了, Intel家過去比較低級的bug也沒少出,例如
在1994年6月,Intel的工程師在Pentium處理器的浮點運算部分發現一個瑕疵,只要以一個特定的浮點數字進行除法運算,就會在低比特處造成錯誤,而這個浮點運算的錯誤會造成之後運算數值的誤差越來越大,而迫於壓力,intel 最終召回產品。
最近的例如 TSX 指令集bug,導致直接禁用這個指令集。
底層≠低級
如果你指的是Meltdown Spectre漏洞的話,首先它不是晶片級的「錯誤」,其次它一點也不「低級」。事實上,在人們意識到可以利用這個特性進行攻擊之後,它才成為了漏洞。
類似的「漏洞」在我們的安全系統中肯定還存在很多,因為絕大多數的設備都沒有被形式化地證明是安全的。
先問是不是……
這不是低級錯誤。
這是寫進教材的,教科書式的設計。不過是被人發現了這樣的設計存在可以利用的漏洞。
ARM、Intel和AMD都受此影響。
你能說這低級?
這個領域多年來沒人意識到這個問題,不低級。
推薦閱讀:
※如何看待谷歌在nexus 6上強制開啟全盤加密(FDE)導致其I/O性能低下?
※怎麼徹底沒有後患地銷毀電腦數據?
※Surface Pro3真的不需要任何安全防護軟體支撐嗎?
※為什麼有些網站可以核實用戶的身份證?數據哪裡來的?
※設計一個跨平台比價功能的APP算侵權么?