福華先進(jìn)FS88x6加密芯片解決嵌入式應(yīng)用安全難題
在半導(dǎo)體行業(yè)中,嵌入式系統(tǒng)應(yīng)用有著舉足輕重的份量,不管是行業(yè)內(nèi)的嵌入式應(yīng)用還是風(fēng)頭日盛的消費(fèi)類嵌入式應(yīng)用。例如,在消費(fèi)類市場中,PC正日益面臨著其他消費(fèi)類電子設(shè)備的競爭,早期的PDA和今天的黑莓(Black Berry)手機(jī)取代了收發(fā)電子郵件的功能,MP3/MP4播放器取代了音視頻多媒體欣賞功能,PS2/Wii將游戲帶到了世界各個(gè)角落的各種人群,iPod/iPhone的影響就更不用說了。
不過,對于嵌入式行業(yè)而言,無論是從產(chǎn)業(yè)鏈的最高端IP提供商,還是生產(chǎn)各種產(chǎn)品的OEM,都無法給這個(gè)產(chǎn)業(yè)擬定一個(gè)標(biāo)準(zhǔn),也就是說,這個(gè)行業(yè)是相對來說更開放、更具潛力。這個(gè)市場的機(jī)會很多,只要你擁有足夠吸引人的“殺手級”應(yīng)用產(chǎn)品。但問題往往出現(xiàn)在這里,機(jī)會多了,就會有人想盡辦法地去破解別人的產(chǎn)品,偷竊別人的勞動成果。從長遠(yuǎn)來說,這樣必定會危害整個(gè)行業(yè)的發(fā)展。為促進(jìn)整個(gè)市場的健康發(fā)展,我們應(yīng)該盡可能地阻止這種“盜版”現(xiàn)象的發(fā)生,為你的產(chǎn)品加上一把“鎖”。
當(dāng)前市場上存在的加密產(chǎn)品可分為幾大類:
第一類是所謂的加密存儲產(chǎn)品。這類產(chǎn)品的大致原理是將普通的EEPROM進(jìn)行某種算法的加密,以保護(hù)存儲在其中的資料。但是通常這類產(chǎn)品的加密算法都是不公開的,是沒有得到國際公認(rèn)的算法,因此其加密等級也是沒有任何標(biāo)準(zhǔn)的。且這種產(chǎn)品與系統(tǒng)中主MCU的H/W接口(Interface)是獨(dú)立的,這也就意味著,如果你的系統(tǒng)中有相同接口的其他器件,那么這些器件是不能與這種加密芯片同時(shí)存在的。
另一類則具有更簡單算法和更簡單H/W接口,通常是通過一個(gè)根線纜與主MCU進(jìn)行通訊。這樣存在的問題的,若系統(tǒng)需要加密的數(shù)據(jù)量較大時(shí),則加密數(shù)據(jù)的速率會比較低。且這種通訊協(xié)議是不常用的,也是不能與其他器件共用的。
還有一些其他的加密方法,例如用戶自己使用一些單片機(jī),并開發(fā)一些簡單算法,以達(dá)到與主CPU通訊時(shí)數(shù)據(jù)加密的效果。采用這種方法用戶可以完全掌握技術(shù)細(xì)節(jié),但是需要花費(fèi)較大的精力和財(cái)力才能完成。
FS88x6是福華先進(jìn)微電子有限公司推出的系列加密芯片,包括FS8806、FS8816、FS8826三種型號。FS88x6系列加密芯片在很大程度上解決了上述各種問題。
首先在H/W接口上:FS88x6采用I2C (圖1)或SPI(圖2)的通訊方式,這兩種都是很常用的協(xié)議,開發(fā)起來非常簡單方便,用戶可以根據(jù)自己系統(tǒng)的特點(diǎn)選擇使用I2C還是SPI的通訊方式,且不論是使用系統(tǒng)硬件上的I2C/SPI模塊,或是使用GPIO模擬I2C/SPI協(xié)議,都可以與FS88x6進(jìn)行通訊。加密等級:FS88x6采用國際公認(rèn)的3DES加密算法,密鑰的長度為192位。加密方式:FS88x6可以加密幾乎嵌入式系統(tǒng)中的任何數(shù)據(jù),包括存儲在系統(tǒng)FLASH中的Firmware。加密過程中:在I2C/SPI總線上的數(shù)據(jù),每次都是加密的,且加入了隨機(jī)數(shù),也就是說,對于同樣的數(shù)據(jù),在不同時(shí)間去測量,會有不同的結(jié)果。
圖1:I2C通訊方式
圖2:SPI通訊方式
用戶使用FS88x6芯片的流程如下:
1. 選擇I2C或SPI通訊方式,與FS88x6進(jìn)行通訊,將硬件上的簡單通訊調(diào)試通過。
2. 為客戶提供定制的FS88x6 library。該library的作用在于提供給用戶可以在其使用的平臺上運(yùn)行的、并且與FS88x6加密芯片相對應(yīng)的軟件算法。該library可支持幾乎所有嵌入式平臺。目前支持比較多的平臺及編譯器在表1中列出。
3. 使用Code Generator工具(由福華公司提供),讓用戶將其原始bin文件或其他格式二進(jìn)制文件轉(zhuǎn)換成加密后的二進(jìn)制文件Concerto bin。將此加密后的二進(jìn)制文件燒錄至用戶系統(tǒng)中。
所有步驟完成后,系統(tǒng)架構(gòu)如圖3所示,其中Concerto SW組成如圖4所示。
圖3:采用FS88x6系列加密芯片的系統(tǒng)架構(gòu)圖
圖4:Concerto SW組成框圖
當(dāng)系統(tǒng)程序受到外部非法修改時(shí)(哪怕是修改1位),該方案也能自動識別并做出相應(yīng)的處理,這就保證了整個(gè)系統(tǒng)代碼的完整性。在系統(tǒng)的代碼區(qū)域?qū)嶋H包含3部分內(nèi)容:用戶嵌入式應(yīng)用軟件ESW、FS88x6Lib以及通過Code Generator加密目標(biāo)文件時(shí)產(chǎn)生的加密信息Digest,Digest是ESW經(jīng)過Hash運(yùn)算的結(jié)果,即ESW和Digest是一一對應(yīng)的,如果ESW中有1位code被修改,而Digest沒有發(fā)生對應(yīng)的改變,則FS88x6將會檢測出問題并報(bào)錯(cuò)。
目前FS88x6已成功應(yīng)用于各種嵌入式系統(tǒng)中,包括機(jī)頂盒、PMP、游戲機(jī)、藍(lán)牙耳機(jī)、PDA、網(wǎng)絡(luò)應(yīng)用及IP攝像頭等。
表1:FS88x6加密芯片可支持的嵌入式平臺及編譯器