標題: 產(chǎn)品加密之我見 [打印本頁]

作者: 陽仔666    時間: 2021-3-30 15:19
標題: 產(chǎn)品加密之我見
前段時間,有同學(xué)做加密芯片國產(chǎn)化替代,筆者在加密芯片領(lǐng)域摸爬滾打十幾年,積累了一些經(jīng)驗,就此問題做個總結(jié)。
一、功能選型
加密芯片有多種類型,例如邏輯加密、ASIC、CPU卡等。國產(chǎn)加密芯片還多出了商密算法,選型更加復(fù)雜。
舉例:有個客戶做機頂盒條件接收,需求點是用戶身份授權(quán)+數(shù)據(jù)安全傳輸存儲。推薦了國內(nèi)的一家卡片,但其執(zhí)意要選取ATXXX16XX卡去完成。原因是這個客戶有個朋友,公司做燃氣表用的就是ATXXX16XX卡,使用多年很安全,沒有非法充值情況發(fā)生。
燃氣行業(yè)的應(yīng)用特點和使用方式很特別。例如燃氣表有鉛封,一打開就失效,因此沒人拆表分析;遠傳表連接后臺云端,終端表具有篡改行為發(fā)生,會立即報警。有的采用工作人員上門抄表方式,異常充值立即會被發(fā)現(xiàn)。
客戶需求的CPU跟卡片通信傳輸安全,在ATXXXX16XX卡片無法實現(xiàn);而身份認證也只支持明文認證PIN口令。ATXXX16XX安全使用多年,更多的是行業(yè)應(yīng)用方式?jīng)Q定,而非安全性高。表面看客戶需求實現(xiàn),但安全防護效果不佳。為了突出產(chǎn)品賣點認國際大廠品牌,選型比較盲目。舉個例子,多數(shù)機頂盒需要終端與后臺聯(lián)網(wǎng)傳輸授權(quán)信息,這個時候最適合的卡片功能應(yīng)該是具備密鑰安全存儲與數(shù)據(jù)加密的功能,用來對傳輸數(shù)據(jù)進行保護,但ATXXX16XX卻不具備。又比如,ATXXX16XX有設(shè)置熔斷功能,避免設(shè)置被篡改,而這個功能在機頂盒上也用不到,所以我跟人認為這個選型是有一些問題,或者說不太妥當?shù)摹?/div>
反觀推薦的LK系列卡片,身份認證權(quán)限機制健全,數(shù)據(jù)存儲算法優(yōu)越,權(quán)限控制嚴格,安全性明顯好于ATXXX16XX,但客戶不用,也是無可奈何。
二、性能參數(shù)評估
有個項目需求是實現(xiàn)終端數(shù)據(jù)的加密傳輸,同時必須保證密鑰存儲和運算安全。經(jīng)過仔細選型,定了兩款型號,手冊參數(shù)上看,功能相似性能接近?尚行栽u估時理論計算差不多,實際運行則相差甚遠。最終定位在通信速率差異。手冊中加密速度指的是芯片內(nèi)部運行速度,但應(yīng)用中,MCU(或者FPGA、DSP)還要和加密芯片通信,通信速率(uart 和IIC)限制了加密帶寬,看起來低級錯誤,但基本都要踩過坑才知道。
還有的項目對于功耗等有要求,在手冊中看是符合的,實際測試中待機功耗高于預(yù)期,最終也用不上。
三、方案設(shè)計
主流加密方案主要有身份認證、數(shù)據(jù)保密存儲、算法移植這3大類。
身份認證:車載終端、公交刷卡機、門禁系統(tǒng)等場景需要身份認證,其內(nèi)部加密芯片負責存儲密鑰和數(shù)據(jù)加密,與服務(wù)器(或者云端)身份鑒權(quán),成功后登陸平臺并開啟響應(yīng)功能權(quán)限。設(shè)計方案應(yīng)側(cè)重芯片自身的安全性和性能。參與認證的隨機數(shù)應(yīng)是真隨機數(shù)。
數(shù)據(jù)保密存儲:以汽車檢測儀行業(yè)為例,采集分析后匯總的核心數(shù)據(jù),能夠提升產(chǎn)品品質(zhì),作出更符合消費者需求的產(chǎn)品。設(shè)計方案要考慮存儲數(shù)據(jù)安全。默認MCU(或flash、EEPROM存儲)安全性差。常規(guī)做法是存儲在加密芯片中,使用時再加密讀回,MCU解密后使用。MCU與加密芯片傳輸?shù)陌踩钥煽,大大提升產(chǎn)品安全性。配合傳輸前雙向認證,方案更具可靠性。
算法移植方案:安防設(shè)備、工控機具等通常對程序防盜版有很高的要求,前述2種方案相對程序保護效果有限,后誕生了算法移植方案。這是國內(nèi)公司凌科芯安最初提出的方案。流程是將MCU部分程序移植到加密芯片(高安全等級)中存儲運行,芯片具備內(nèi)部程序數(shù)據(jù)區(qū)離散存儲、固有函數(shù)隱蔽性強、客戶獨立設(shè)計方案自由等特點。此時單獨破解MCU無效,而破解加密芯片面臨成本高難度高等棘手問題,投入產(chǎn)出不成正比,以此防盜防抄。以凌科芯安的LKT和LCS系列為代表,在防盜版領(lǐng)域優(yōu)勢相對明顯。  
四、調(diào)試壁壘(調(diào)試難度)
硬件方面,設(shè)計電路過程盡可能按照原廠demo電路進行設(shè)計,上拉電阻、復(fù)位電路器件參數(shù)選取,一般是廠家多年心血總結(jié),比較靠譜,沒必要盡量不改。
電源方面,處理好電源濾波。軟件通信調(diào)試,務(wù)必仔細看廠家提供的通信協(xié)議手冊,避免私有產(chǎn)品協(xié)議導(dǎo)致調(diào)試不通。以前有次通信采用ISO7816接口,默認所有指令按7816規(guī)范開發(fā),卡了好幾天,最終發(fā)現(xiàn)有一條E3開頭命令是私有指令,有別于ISO7816。希望大家引以為鑒。
穩(wěn)定性測試、老化測試必須重視。這是合格產(chǎn)品的必由之路,有些問題開發(fā)環(huán)節(jié)無法浮現(xiàn),必須要經(jīng)過批量測試和老化測試才能暴露。避免正式批量時出現(xiàn)問題。
五、量產(chǎn)發(fā)行(初始化問題,發(fā)行中的密鑰保護問題)
加密芯片除了要求自身安全穩(wěn)定,也要考慮發(fā)行(初始化和應(yīng)用燒錄)條件,手工發(fā)行和機械發(fā)行的效率和成本差別巨大,還有就是找第三方發(fā)行。
第三方代發(fā)行要考慮安全性,這個問題在合作過的芯片廠家中,凌科芯安比較有特色,可根據(jù)需求定制個人化加密發(fā)行方案,保證密鑰和數(shù)據(jù)安全,第三方無法超發(fā)多發(fā)。
綜上所述,加密保護首選方案,對功能和性能具備不同要求,開發(fā)調(diào)試和量產(chǎn)發(fā)行注意細節(jié)和安全,如何快速有效完成生產(chǎn)開發(fā)工作是一門很大的學(xué)問,希望此文有所裨益!


作者: 13872888583    時間: 2021-4-3 18:25
知識產(chǎn)權(quán)的確很重要,我想起,以前學(xué)習(xí)PLC,三菱系列的都有這個功能,不過,破解這個程序盡然成了賺錢的產(chǎn)業(yè),




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1