Atmel加密認(rèn)證芯片的應(yīng)用實(shí)例
作者 貝能?chē)?guó)際
本文引用地址:http://m.butianyuan.cn/article/201806/382310.htm摘要:介紹了基于Atmel加密認(rèn)證芯片的應(yīng)用實(shí)例。
大概所有工程師最痛恨的莫過(guò)于自己的產(chǎn)品被山寨,自己的代碼無(wú)法被保護(hù),成為網(wǎng)上公開(kāi)資源。也或者服務(wù)器被黑客攻擊,無(wú)法正常運(yùn)營(yíng),造成惡劣影響甚至安全隱患。有沒(méi)有辦法來(lái)阻止上述現(xiàn)象的發(fā)生或者減少類(lèi)似事情發(fā)生呢?
有!從加密學(xué)的角度來(lái)講有三個(gè)層次:數(shù)據(jù)加密、數(shù)據(jù)完整性和身份認(rèn)證。三者之中哪一個(gè)最重要呢?身份認(rèn)證,如果對(duì)方不是我要通訊的目標(biāo),干脆拒絕與之溝通,是不是更安全?
Atmel公司提供的身份加密認(rèn)證分兩種,一種是非對(duì)稱加密算法,如ATECC508A。這一類(lèi)產(chǎn)品功能強(qiáng)大,每個(gè)器件都可以有一對(duì)自己的公私鑰,兩兩不同,適用于做網(wǎng)絡(luò)云端的身份認(rèn)證。另一種是對(duì)稱加密算法,如ATSHA204A, 該器件適合用作產(chǎn)品防拷貝、軟件IP核保護(hù)、或配件防偽,防止贗品的應(yīng)用風(fēng)險(xiǎn)。
1 ATSHA204A功能特點(diǎn)
ATSHA204A具有以下功能特點(diǎn):支持SHA-256算法;內(nèi)置16*32字節(jié)的slot(EEPROM),存儲(chǔ)用戶數(shù)據(jù)和秘鑰;唯一的9字節(jié)序列號(hào);512 bits的OTP區(qū)用于保存固定信息;兩種通信方式支持單總線和I2C;2.0~5.5 V供電;休眠<150 nA;片上主動(dòng)屏蔽層;所有存儲(chǔ)器內(nèi)部加密;內(nèi)部狀態(tài)一致性檢查;電源篡改保護(hù);溫度鎖定;內(nèi)部時(shí)鐘產(chǎn)生;沒(méi)有封裝或晶粒識(shí)別;設(shè)計(jì)目的是防御多種攻擊,如圖1所示。
2 功能簡(jiǎn)介
加密認(rèn)證芯片內(nèi)部有三個(gè)區(qū)域: Configuration、Data和OTP。關(guān)鍵性能如下所示:
1)與芯片的通訊,都是基于“命令”來(lái)進(jìn)行;
2)Configuration和Data區(qū)一旦鎖定,沒(méi)有辦法解鎖,鎖定的方法是通過(guò)lock命令;
3)Configuration區(qū)在未鎖定的時(shí)候,可以使用write 命令來(lái)寫(xiě)操作,但0x00-0x03地址不能寫(xiě),序列號(hào)和版本號(hào)出廠固定。0x15地址不能用write命令來(lái)寫(xiě);
4)在Configuration鎖定前,Data和OTP區(qū)既不能寫(xiě)也不能讀。而在Configuration鎖定后,Data區(qū)鎖定前,Data區(qū)只能寫(xiě)不能讀,在Data區(qū)鎖定后,是否可讀寫(xiě)由Configuration中的配置來(lái)決定。
5)配置區(qū)與秘鑰存儲(chǔ)區(qū)有嚴(yán)格的對(duì)應(yīng)關(guān)系,秘鑰區(qū)的使用需要遵守配置區(qū)的配置參數(shù),不匹配的話會(huì)導(dǎo)致命令執(zhí)行失敗。
3 配置應(yīng)用
配置有兩種方法:一是利用上位機(jī)配置軟件,配合燒寫(xiě)器工具進(jìn)行配置,如圖2所示。
這種方式可視化,界面直觀好理解。同時(shí)提供多種插件驗(yàn)證工具,使用便捷。但需要配合硬件的工具來(lái)實(shí)現(xiàn)。
另一種方法,使用MCU程序配置。優(yōu)點(diǎn)是可以在電路板上操作,不需要額外的工具。相對(duì)繁瑣的是,需要一個(gè)單獨(dú)的配置程序在MCU上運(yùn)行一下,完成配置功能后,才能再燒寫(xiě)用戶的應(yīng)用程序。以上兩種方法各有利弊,需要權(quán)衡使用。不管采用哪種方式,對(duì)秘鑰的保護(hù)是至關(guān)重要的,尤其是對(duì)稱加密認(rèn)證的方式,一旦泄露,防護(hù)功能就會(huì)形同虛設(shè)。
具體到產(chǎn)品應(yīng)用時(shí),可以所有產(chǎn)品都用同一個(gè)秘鑰,這樣秘鑰管理簡(jiǎn)單,但風(fēng)險(xiǎn)相對(duì)較高。也可以每個(gè)產(chǎn)品都用不同的秘鑰,只是秘鑰管理相對(duì)麻煩。也可以巧妙的利用芯片本身的唯一序列號(hào),配合根秘鑰來(lái)派生不同的秘鑰,將這個(gè)派生秘鑰用于產(chǎn)品,這樣既方便管理,又不至于使所有產(chǎn)品都用一個(gè)秘鑰。如圖3所示即為一種典型的利用派生秘鑰做加密認(rèn)證的應(yīng)用。
4 軟件實(shí)現(xiàn)
Microchip公司官方提供開(kāi)源軟件包,版本為Cryptoauthlib-20171117。該軟件包支持ATECC608A。下載時(shí)郵箱注冊(cè)即可。
CryptoAuthLib分三個(gè)部分,它們是庫(kù)的主要接口,分別為atcab、atcah和atcac。
1)atcab是ATCA設(shè)備的主要接口。這部分包含所有的初始化,芯片配置和設(shè)置。
2) atcah提供在ATCA設(shè)備上執(zhí)行的命令,這些命令支持高級(jí)調(diào)試和MCU的模擬。
3)atcac提供對(duì)在軟件中實(shí)現(xiàn)的加密命令的訪問(wèn)。
5 對(duì)稱加密認(rèn)證實(shí)例
對(duì)稱身份驗(yàn)證是一個(gè)挑戰(zhàn)/響應(yīng)過(guò)程,主機(jī)設(shè)備挑戰(zhàn)遠(yuǎn)程設(shè)備,例如附件(如電池)或可消耗設(shè)備(墨盒),以確保真實(shí)可信。被挑戰(zhàn)的設(shè)備對(duì)預(yù)期的結(jié)果作出反應(yīng)。該方法要求主機(jī)和遠(yuǎn)程設(shè)備共享相同的密鑰。開(kāi)發(fā)人員面臨的問(wèn)題是如何安全地將這些秘密嵌入到主機(jī)和遠(yuǎn)程設(shè)備中,解決方案是使用一個(gè)安全的硬件密鑰存儲(chǔ)設(shè)備,來(lái)包含主機(jī)和遠(yuǎn)程設(shè)備中的共享密鑰和惟一序列號(hào)。這個(gè)實(shí)驗(yàn)室我們將使用ATECC508A來(lái)實(shí)現(xiàn),如圖4、圖5和圖6所示。
在本實(shí)驗(yàn)室中,將模擬一個(gè)包含以下內(nèi)容的系統(tǒng):
1)主機(jī)裝置,包含一個(gè)微控制器和一個(gè)安全的硬件加密授權(quán)設(shè)備,ECC508A。
2)遠(yuǎn)程設(shè)備,只包含一個(gè)安全的硬件加密授權(quán)設(shè)備,在ECC508A(無(wú)微控制器)。
主機(jī)和遠(yuǎn)程設(shè)備的ECC508A都需要配置共享密鑰,所有ECC508都包含一個(gè)惟一的序列號(hào)。
配置共享密鑰:
芯片在使用前需要進(jìn)行配置,配置的內(nèi)容包括,對(duì)配置區(qū)進(jìn)行寫(xiě)操作,內(nèi)容是設(shè)置秘鑰槽的使用和訪問(wèn)權(quán)限,之后對(duì)配置區(qū)進(jìn)行鎖定。鎖定配置區(qū)后才可以寫(xiě)數(shù)據(jù)區(qū),對(duì)數(shù)據(jù)區(qū)的操作就是寫(xiě)秘鑰槽,這時(shí)數(shù)據(jù)區(qū)為只讀,通過(guò)返回值判斷寫(xiě)入是否成功。
注意事項(xiàng):
第一步,MCU從主機(jī)端ATECC508讀取序列號(hào),由它生產(chǎn)一個(gè)隨機(jī)數(shù);
第二步,MCU切換到與從機(jī)ATECC508A通訊,讀取序列號(hào),再由從機(jī)ATECC508A利用自己的序列號(hào),剛才生產(chǎn)的隨機(jī)數(shù)和保存在它里面的秘鑰進(jìn)行硬件哈希運(yùn)算,運(yùn)算結(jié)果發(fā)給主機(jī)MCU;
第三步,MCU重新切換回與主機(jī)ATECC508的通訊,把剛剛得到的哈希運(yùn)算結(jié)果,隨機(jī)數(shù)和序列號(hào)給它。由它再根據(jù)自己保存的秘鑰和隨機(jī)數(shù)、序列號(hào)一起來(lái)驗(yàn)證從機(jī)端計(jì)算完的結(jié)果是否和自己計(jì)算的一致,來(lái)最終判定是否驗(yàn)證通過(guò)。
6 結(jié)論
Atmel的加密認(rèn)證芯片本身具有一系列的防護(hù)措施,在增加成本不多的前提下,可以給客戶帶來(lái)極高的安全價(jià)值體驗(yàn)。在配件防偽和防抄板方面表現(xiàn)優(yōu)異,使得產(chǎn)品仿制變得難度更高,可以更好的保護(hù)產(chǎn)品,避免不必要的損失。
本文來(lái)源于《電子產(chǎn)品世界》2018年第7期第79頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評(píng)論