因為MCU端的程序很容易被獲取到,所以MCU端的程序和數據都是不安全的。最直接的加密防護,就是提升MCU的安全等級,讓他變得堅不可摧。有些主控廠家意識到這一點,也推出了一些安全主控。但目前市場上的大多數MCU都不會去做安全防護,我們是無法左右MCU原廠的,只能在MCU之外做文章。上期提到的認證方案,之所以不是絕對安全的,就是因為認證成功與否,還是需要MCU端程序自己做判斷,因此這一動作是可以被繞過的。
目前市場上公認的最安全加密方案就是算法移植方案。之所以說他是最安全的,有以下兩個原因;第一,MCU端的程序有一部分被移植走了。比如MCU端存儲了一個圖像優化算法,我們把他移植到另一顆芯片中去運行,當MCU需要調用這個算法時,將參數傳遞過去,并從另一顆芯片取回運算結果,這樣一來,即使MCU端程序被破解了,也不可能拿到所有程序,必須要破解另外一顆芯片,才能拼湊出全部程序,這是方案上的優越性。第二個原因,就是算法移植方案都是基于高安全等級的加密芯片實現的,保證存儲到加密芯片內部的程序算法是不可被讀出的。因為加密芯片都是基于特殊的硬件平臺(比如智能卡平臺)專門針對暴力軟硬件破解做了很多針對性的防護措施,如識別到硬件攻擊則啟動自毀機制等,所以他的破解代價遠遠高于破解MCU,我們移植到加密芯片中的算法是非常安全的。其中凌科芯安的LKT系列加密芯片就是極具代表性的產品。
但是算法移植方案也并不是完美的,畢竟很多用戶產品的實時性要求非常高,從加密芯片中調用一個算法并獲得運算結果,時間往往要比直接在MCU中運行多出很多。這樣一來,算法移植方案就不再適合。此時,我們可以采用參數移植結合對比認證的方案。對比認證上期講過,不再敷述。參數移植就是將MCU中的一部分參數移植到加密芯片中。在MCU程序運行的空閑期內,將關鍵參數從加密芯片端讀回并解密,等待需要的時候再應用。這樣就在犧牲一定安全強度的基礎上,解決了實時性差的短板。同樣也是很好的加密方案