英特爾這樣的老牌公司為什麼會出現晶片級漏洞?


這不是一個低級錯誤


現在看到問題時候還沒有寫任何信息,結合熱點我假設「晶片級低級錯誤」 指的是最近的 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算侵權么?

TAG:數據安全 | 英特爾Intel | 系統漏洞 |