在目前物聯(lián)網(wǎng)和智能設(shè)備發(fā)展膨脹的時(shí)代,相信很多創(chuàng)業(yè)者或者開(kāi)發(fā)者都希望能在這個(gè)領(lǐng)域能大展宏圖,確實(shí)很多產(chǎn)品idea確實(shí)非常有價(jià)值。但是,同時(shí)也會(huì)擔(dān)心這些創(chuàng)新產(chǎn)品或者商業(yè)模式是否一夜之間被抄得體無(wú)完膚,最終給別人做嫁衣。在國(guó)內(nèi)的目前知識(shí)產(chǎn)權(quán)的現(xiàn)狀來(lái)看,通過(guò)法律手段去爭(zhēng)取權(quán)益往往是無(wú)功而返。筆者(今日頭條號(hào):物聯(lián)網(wǎng)那些事)來(lái)專業(yè)分析下如何解決這些問(wèn)題。
首先必須承認(rèn),物聯(lián)網(wǎng)(iot)設(shè)備,智能電子設(shè)備等數(shù)字安全現(xiàn)在是電子設(shè)計(jì)領(lǐng)域最熱門的話題之一,不過(guò)對(duì)于許多企業(yè)或者產(chǎn)品人員,當(dāng)提到安全性時(shí),腦海中閃現(xiàn)出的第一個(gè)詞可能就是加密??赡苤挥袠O少數(shù)人會(huì)想到安全認(rèn)證。但是,真正的設(shè)備和身份安全不僅僅是單純的加密,安全認(rèn)證和保護(hù)在設(shè)備安全中氣到了非常重要的作用。
通俗的講:物聯(lián)網(wǎng)身份認(rèn)證,防抄板,固件保護(hù)等一系列功能都離不開(kāi)安全認(rèn)證。想通過(guò)其他方式,不存在的!
為什么要用安全認(rèn)證?
安全認(rèn)證是電子設(shè)備參與安全交互和使用的基礎(chǔ)功能。特別是在物聯(lián)網(wǎng)(iot)領(lǐng)域,安全認(rèn)證非常重要:不可信的終端可能會(huì)將整個(gè)基礎(chǔ)設(shè)施置于危險(xiǎn)之中。據(jù)一個(gè)簡(jiǎn)單例子,我們現(xiàn)在越來(lái)越多的使用帶互聯(lián)網(wǎng)接入功能的電子設(shè)備,比如說(shuō)智能攝像頭,智能電飯煲,智能音箱等設(shè)智能家居設(shè)備,還有共享單車等需要認(rèn)證使用的設(shè)備,如果沒(méi)有安全認(rèn)證功能,任何一個(gè)節(jié)點(diǎn)的入侵都會(huì)造成用戶或者廠商的巨大損失。另外的一個(gè)點(diǎn)是對(duì)于共享設(shè)備或者具備有唯一性產(chǎn)權(quán)的設(shè)備,必須用安全芯片來(lái)保證設(shè)備不被抄襲使用,即我們理解的防抄板。
比較優(yōu)秀的安全芯片一般會(huì)有兩個(gè)功能:
1. 保護(hù)電子設(shè)備不被抄襲或者入侵,確保設(shè)備本體不被抄襲。
2.接入物聯(lián)網(wǎng)可執(zhí)行身份認(rèn)證核心功能,確保商業(yè)盈利模式不被盜用。
安全認(rèn)證芯片方案比較
現(xiàn)在我們已經(jīng)理解了安全認(rèn)證的重要性,接下來(lái)我們討論如何實(shí)施。最簡(jiǎn)單的安全認(rèn)證方法是使用密碼。但是由于攻擊者很容易監(jiān)聽(tīng)通信、記錄密碼,然后用其來(lái)對(duì)非真實(shí)的設(shè)備進(jìn)行安全認(rèn)證。所以,我們認(rèn)為基于密碼的安全認(rèn)證方法比較薄弱。
電子領(lǐng)域執(zhí)行安全認(rèn)證的更好方法是握手應(yīng)答方法。我們來(lái)看看兩種方式的握手應(yīng)答方法:
一種基于對(duì)稱加密,另一種基于非對(duì)稱加密。
對(duì)稱加密安全認(rèn)證依賴于共享密鑰。主機(jī)和被認(rèn)證設(shè)備持有相同的密鑰。主機(jī)向設(shè)備發(fā)送一個(gè)隨機(jī)數(shù),即質(zhì)詢。設(shè)備計(jì)算一個(gè)數(shù)字簽名,該簽名是密鑰和質(zhì)詢的函數(shù),并發(fā)送回主機(jī)。主機(jī)執(zhí)行相同的運(yùn)算并對(duì)結(jié)果進(jìn)行比較。如果兩項(xiàng)計(jì)算結(jié)果一致,則設(shè)備通過(guò)安全認(rèn)證(如下圖)。為了確保結(jié)果不被模仿,必須使用數(shù)學(xué)屬性足夠的函數(shù);例如必須保證不可能通過(guò)計(jì)算結(jié)果獲得密鑰。SHA-256等安全散列函數(shù)滿足這些要求。對(duì)于握手應(yīng)答方法,設(shè)備在不泄露密鑰的情況下證明自己知道密鑰。即使攻擊者攔截通信,也無(wú)法接觸到密鑰。
1. 基于對(duì)稱算法加密的安全認(rèn)證依賴于主機(jī)和設(shè)備之間的共享密鑰。如下圖所示:
對(duì)稱算法體系認(rèn)證架構(gòu)
非對(duì)稱密鑰安全認(rèn)證依賴于公鑰和私鑰。
基于非對(duì)稱加密的安全認(rèn)證依賴于兩個(gè)密鑰:私鑰和公鑰。只有被認(rèn)證的設(shè)備知道私鑰,而公鑰可透露給希望對(duì)設(shè)備進(jìn)行安全認(rèn)證的任何一方。與上文中討論的方法一樣,主機(jī)向設(shè)備發(fā)送質(zhì)詢。設(shè)備根據(jù)質(zhì)詢和私鑰計(jì)算數(shù)字簽名,并將其發(fā)送給主機(jī)(如下圖)。但此時(shí),主機(jī)使用公鑰對(duì)數(shù)字簽名進(jìn)行驗(yàn)證。用于計(jì)算數(shù)字簽名的函數(shù)擁有特定數(shù)學(xué)屬性至關(guān)重要。非對(duì)稱方法中最常用的函數(shù)是RSA和ECDSA。同樣,設(shè)備也在不泄露密鑰情況下提交了自己知道密鑰的證明,即私鑰。
非對(duì)稱算法體系認(rèn)證架構(gòu)
為什么安全芯片有益于安全認(rèn)證
握手應(yīng)答安全認(rèn)證始終要求被認(rèn)證的對(duì)象持有密鑰。對(duì)稱加密方法中,該密鑰為主機(jī)和設(shè)備之間的共享密鑰;對(duì)于非對(duì)稱加密方法,該密鑰為私鑰。無(wú)論哪種情況,一旦密碼泄露,質(zhì)詢-應(yīng)答式安全認(rèn)證就失效了。安全I(xiàn)C有助于防范這種情況。安全芯片的一項(xiàng)基本特性是為密鑰和密碼提供強(qiáng)保護(hù)功能。
在安全芯片認(rèn)證體系中,有三種支持安全認(rèn)證的解決方案。
安全認(rèn)證芯片:芯片是可配置但固定功能的器件,為實(shí)施質(zhì)詢-應(yīng)答安全認(rèn)證提供最經(jīng)濟(jì)的途徑,并且具有基本的加密操作。
安全微控制器:在支持握手應(yīng)答安全認(rèn)證的基礎(chǔ)上,提供全面的密碼學(xué)功能,包括加密關(guān)鍵數(shù)據(jù)存儲(chǔ),身份認(rèn)證等。
安全認(rèn)證芯片中,基于SHA-256的產(chǎn)品支持基于共享密鑰的安全認(rèn)證(圖3),而基于ECDSA或者RSA的安全芯片使用私鑰/公鑰對(duì)(圖4)。除了具備專用的加密算法引擎外,這些產(chǎn)品擁有板載EEPROM存儲(chǔ)器。該存儲(chǔ)器是可配置的,可用于儲(chǔ)存經(jīng)過(guò)安全認(rèn)證的用戶數(shù)據(jù),比如安全配置,安全密鑰,認(rèn)證證書等等??梢詫?shí)現(xiàn)具備pki認(rèn)證體系的一系列功能。
圖3 sha256密鑰安全認(rèn)證架構(gòu)
圖4. 基于ECDSA的安全認(rèn)證算法依賴于私鑰/公鑰對(duì)。
安全認(rèn)證是一個(gè)前期產(chǎn)品方案設(shè)計(jì)時(shí)就需要重點(diǎn)考慮的問(wèn)題,很關(guān)鍵也很重要。當(dāng)然,如果需要討論相關(guān)技術(shù)與方案可以私信本頭條號(hào)或者留言。