鮮為人知的閃存特性保護(hù)數(shù)據(jù)和知識(shí)產(chǎn)權(quán)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
從存儲(chǔ)塊鎖保護(hù)機(jī)制,到加密密碼訪問,閃存保護(hù)特性發(fā)揮重要作用,防止意外損壞、惡意破壞或克隆。
你設(shè)計(jì)出一個(gè)系統(tǒng),卻被人給搞壞了。損壞有時(shí)不是故意的。例如,一個(gè)服務(wù)提供商在你的設(shè)備上安裝軟件,可能會(huì)損壞原來的代碼。另一方面,黑客和IP(知識(shí)產(chǎn)權(quán))剽竊者故意覆蓋、復(fù)制或克隆你在系統(tǒng)中保存的數(shù)據(jù)。不管是什么原因,最終的損壞或剽竊都不是一個(gè)小問題。設(shè)計(jì)人員需要一個(gè)方法來保護(hù)系統(tǒng)完整性,這個(gè)要求一點(diǎn)也不令人驚奇。然而,令人驚奇的是,在位元和存儲(chǔ)塊內(nèi),閃存是保護(hù)固件甚至硬件設(shè)計(jì)的關(guān)鍵。
閃存具有多種數(shù)據(jù)保護(hù)機(jī)制,每一種機(jī)制在讀、寫和擦除保護(hù)方面各有優(yōu)點(diǎn)。安全特性可提高安全級(jí)別,阻止黑客和代碼剽竊者,防止用戶意外修改代碼。雖然最強(qiáng)的安全閃存比標(biāo)準(zhǔn)閃存的成本高,但是,有些閃存的安全特性甚至不會(huì)增加最終設(shè)計(jì)的成本。與非閃存式加密引擎、隱藏操作、用戶驗(yàn)證操作或軟件加密應(yīng)用相比,安全閃存的成本要經(jīng)濟(jì)很多。
因?yàn)閺S商不同,產(chǎn)品特性也不盡相同,甚至同一廠商的不同產(chǎn)品的特性也不相同。在考慮內(nèi)置安全應(yīng)用選項(xiàng)、性能、密度、尺寸和成本等若干個(gè)因素后,設(shè)計(jì)人員必須為最終應(yīng)用選擇正確的閃存。
發(fā)現(xiàn)正確的解決辦法
在評(píng)估安全選項(xiàng)之前,先清楚你要解決的問題是什么。技術(shù)特性具有特定的功能,某些特性還會(huì)增加成本。 首先,確定在位元、數(shù)據(jù)和代碼之中必須保護(hù)什么。例如,你可能需要保護(hù)電子系統(tǒng)序列號(hào)、安全密鑰、引導(dǎo)代碼或服務(wù)接入(如付費(fèi)電視)所需的財(cái)務(wù)信息。一旦知道你需要保護(hù)的對(duì)象,就可以確定是軟件入侵或物理破壞是否會(huì)影響這些位元、數(shù)據(jù)或代碼。例如,軟件入侵可能是來自互聯(lián)網(wǎng)或系統(tǒng)應(yīng)用程序;物理入侵可能涉及從印刷電路板()直接拆除一個(gè)閃存。
最后,查清入侵威脅是故意的還是意外的。例如,軟件缺陷引起的意外修改通常比較容易預(yù)防,因?yàn)槿毕莸脑虿浑y查找或不會(huì)長期存在。如果入侵是黑客或盜竊者的發(fā)起的,就需要量化黑客愿意發(fā)起多大的攻擊。黑客愿意花費(fèi)的時(shí)間和金錢使設(shè)計(jì)需要多少安全功能。從數(shù)據(jù)的角度看,確定哪些安全特性可提供正確的保護(hù)級(jí)別,防止攻擊源和攻擊企圖。例如,你想保護(hù)產(chǎn)品設(shè)計(jì),防止來自互聯(lián)網(wǎng)的入侵破壞數(shù)據(jù),那么,存儲(chǔ)塊保護(hù)可提供中等保護(hù)級(jí)別,OTP(一次性可編程)塊可提供最佳的保護(hù)功能(如圖1所示)。如果一個(gè)IP盜竊者大膽地從設(shè)計(jì)下手,拆除閃存并試圖用(可編程只讀存儲(chǔ)器)燒錄器讀取數(shù)據(jù),保護(hù)設(shè)計(jì)可能需要投入更多的資金,為閃存增加數(shù)據(jù)加密特性(圖2所示)。
圖1的安全特性針對(duì)物理入侵和因故意或意外修改數(shù)據(jù)而引起的軟件破壞提供了不同的保護(hù)級(jí)別。
注意:增加加密密碼訪問、驗(yàn)證操作、隱藏操作、軟件加密應(yīng)用和硬件加密引擎等特性會(huì)增加系統(tǒng)成本。
圖2:各種閃存安全特性可以防止克隆和知識(shí)產(chǎn)權(quán)剽竊。
注意:增加這些特性可能提高系統(tǒng)成本。
特性詳述
從存儲(chǔ)塊鎖保護(hù)機(jī)制,到先進(jìn)的加密密碼訪問,你可以針對(duì)預(yù)想入侵攻擊類型和攻擊源,選擇一個(gè)成本對(duì)設(shè)計(jì)的影響可以接受的特性。
密碼訪問就是一個(gè)這樣的特性。有些閃存提供不同的密碼訪問特性。這些閃存通過設(shè)置障礙,可以有效地阻止盜竊者,避免設(shè)計(jì)成為理想的復(fù)制或克隆對(duì)象。知識(shí)產(chǎn)權(quán)盜竊者必須快速、輕松地復(fù)制系統(tǒng)數(shù)據(jù)。密碼訪問機(jī)制增加了低開銷的克隆操作的時(shí)間、成本和工作量。密碼訪問特性禁止讀寫或擦除整個(gè)陣列或主陣列內(nèi)的被選擇的塊,具體功能取決于閃存。你可以把每個(gè)塊設(shè)置成所需的保護(hù)級(jí)別。在系統(tǒng)出廠交付終端用戶前,設(shè)備制造商必須把密碼保存在閃存的密碼存儲(chǔ)區(qū)內(nèi),并在系統(tǒng)微控制器或其它的隱藏存儲(chǔ)器內(nèi)寫入一個(gè)64位的機(jī)器密碼。
當(dāng)系統(tǒng)接收到一個(gè)命令,要讀取、修改或擦除被保護(hù)塊內(nèi)的數(shù)據(jù)時(shí),系統(tǒng)處理器將會(huì)驗(yàn)證微控制器內(nèi)的密碼與閃存內(nèi)的密碼匹配。如果輸入的密碼與微控制器和閃存內(nèi)的密碼都不匹配,黑客將無法讀取或修改數(shù)據(jù)。如果系統(tǒng)檢測(cè)到匹配的密碼,用戶可以逐個(gè)讀取或修改每個(gè)塊。設(shè)計(jì)人員可以選擇各種保護(hù)模式,包括禁止讀取、禁止修改和禁止,具體模式視所選用的閃存芯片。
密碼保護(hù)是防止服務(wù)盜用和知識(shí)產(chǎn)權(quán)復(fù)制或克隆的有力措施。被克隆的閃存芯片能夠?yàn)槲粗Ц斗?wù)費(fèi)的用戶提供高價(jià)值的服務(wù),這對(duì)于服務(wù)提供商而言是一項(xiàng)巨大的收入損失。采用密碼的讀保護(hù)機(jī)制是一個(gè)簡單的成本低廉的防盜版方法,可扼止盜用高價(jià)值服務(wù)的盜版閃存芯片在市場(chǎng)上流通。如果設(shè)計(jì)人員在閃存上使用密碼保護(hù)技術(shù),他留給盜版者的只是一個(gè)不可用的芯片。當(dāng)一個(gè)服務(wù)盜用者企圖讀取閃存上的數(shù)據(jù)時(shí),閃存就會(huì)驗(yàn)證64位密碼。如果盜版者沒有密碼,閃存只返回幾個(gè)零值,使被復(fù)制的芯片無法工作。即使盜版者破解了密碼,并從芯片復(fù)制了數(shù)據(jù),當(dāng)他把盜版芯片插入系統(tǒng)時(shí),因?yàn)楸I版芯片上的64位密碼與微控制器內(nèi)的密碼不匹配,結(jié)果盜版芯片仍然無法正常工作。
在克隆情況中,知識(shí)產(chǎn)權(quán)盜竊者必須復(fù)制一個(gè)設(shè)計(jì),直到原設(shè)計(jì)的升級(jí)版淘汰克隆設(shè)計(jì)為止。閃存密碼保護(hù)可以延長克隆者的破解時(shí)間,使其不得不另尋求一個(gè)更多容易克隆的對(duì)象,因?yàn)槊艽a保護(hù)閃存可以保護(hù)系統(tǒng)硬件簽名。 內(nèi)置64位密碼的閃存可以限制訪問合法源代碼。在沒有密碼的情況下,知識(shí)產(chǎn)權(quán)盜版者使用燒錄器讀取閃存芯片時(shí)只能讀取零值。
雖然克隆者可以利用總線偵測(cè)法破解密碼,但是作為預(yù)防服務(wù)盜用的有力武器,密碼保護(hù)可增加克隆者的破解時(shí)間、成本和工作量。這可以讓合法廠商在市場(chǎng)上運(yùn)作更長的時(shí)間,直到克隆版充斥市場(chǎng)與正版爭奪利潤空間為止。
一個(gè)有力的防盜版武器可以為正版廠商爭取足夠長的時(shí)間,使其能夠在克隆者有機(jī)會(huì)制造一個(gè)可用產(chǎn)品之前更新設(shè)計(jì)。這種內(nèi)置閃存特性為降低知識(shí)產(chǎn)權(quán)損失對(duì)收入的影響提供了一個(gè)具有成本效益的解決辦法。
加改密碼訪問是第二種知識(shí)產(chǎn)權(quán)保護(hù)方法,主要用于更高級(jí)別的知識(shí)產(chǎn)權(quán)保護(hù)。一個(gè)64位密碼可以阻止一個(gè)克隆者或一個(gè)服務(wù)盜用者,而一個(gè)加密密碼可以大幅度提高數(shù)據(jù)安全保護(hù)級(jí)別。通過在芯片上實(shí)現(xiàn)一個(gè)加密算法,有幾家廠商推出了具有加密密碼特性的閃存產(chǎn)品。廠商把從閃存和微控制器送到處理器的密碼進(jìn)行加
密,然后處理器使用該算法對(duì)加密密碼進(jìn)行解密,并確認(rèn)密碼是否匹配。另一方面,總線偵測(cè)器只能讀取加密密碼,但不能解密。如果沒有不加密的密碼,盜竊者仍然無法讀取閃存,知識(shí)產(chǎn)權(quán)還是處于保護(hù)狀態(tài)。有加密密碼特性的閃存通常比無此特性的閃存的成本高一些,因?yàn)閺S商需在芯片上實(shí)現(xiàn)加密算法,這會(huì)增加元器件的成本。不過,與服務(wù)盜用造成的利潤損失相比,閃存芯片增加的成本簡直是微不足道。對(duì)于更新周期較長的產(chǎn)品,加密密碼是防止克隆產(chǎn)品在廠商更新正版產(chǎn)品之前進(jìn)入市場(chǎng)的重要工具。
OTP閃存
某些閃存包含有一個(gè)系統(tǒng)級(jí)OTP存儲(chǔ)區(qū),在這個(gè)一次性可編程區(qū)內(nèi)寫入代碼后,你可以永久地鎖保護(hù)這些位。一旦位被鎖保護(hù)后,黑客就無法寫入或擦除被映射位的存儲(chǔ)塊。OTP含有一個(gè)工廠編程區(qū),里面放有一個(gè)唯一的不可更改的序列號(hào)。另一個(gè)分區(qū)是空白的,供設(shè)計(jì)人員編程用。具有OTP特性的閃存芯片通常提供不同的分區(qū)配置,最大分區(qū)高達(dá)2112位。
有幾款閃存芯片含有一個(gè)附加的OTP特性,讓設(shè)計(jì)人員可以永久地鎖保護(hù)正常存儲(chǔ)陣列內(nèi)的塊。這種實(shí)現(xiàn)OTP特性的閃存可防止那些破壞系統(tǒng)完整性的修改操作。例如,在出廠后,服務(wù)提供商通常在內(nèi)增加自己的代碼。設(shè)計(jì)人員不知道服務(wù)提供商的代碼對(duì)系統(tǒng)有何影響。為防止引導(dǎo)代碼被擦除或修改,設(shè)計(jì)人員可以把引導(dǎo)代碼保存在OTP塊內(nèi),并將其設(shè)置成永久鎖保護(hù)。于是,服務(wù)提供商的代碼就無法寫入或擦除被保護(hù)的塊,從而防止那些很不容易解答的客戶技術(shù)咨詢電話。
大多數(shù)閃存含有一種硬件寫保護(hù)功能,可以防止寫入或擦除存儲(chǔ)塊或整個(gè)閃存。硬件保護(hù)的工作原理是通過硬連線或者轉(zhuǎn)換處理器的一個(gè)I/O引腳發(fā)出的位,把一個(gè)引腳設(shè)成某一個(gè)電壓。在執(zhí)行一個(gè)修改命令前,閃存檢查寫入/擦除保護(hù)對(duì)應(yīng)的引腳。如果該引腳不是正確的修改電壓,芯片則不會(huì)執(zhí)行修改命令,代碼和數(shù)據(jù)也就不會(huì)被更改。
當(dāng)寫入電源電壓中有一個(gè)有效電壓時(shí),可以修改主陣列內(nèi)的塊。如果把寫入電源電壓接地,則不能寫入或擦除塊。當(dāng)寫入電源電壓接地時(shí),寫入或擦除的嘗試都會(huì)失敗,接地使相關(guān)的狀態(tài)寄存器的失敗位置位。
另一種硬件寫保護(hù)可以防止對(duì)最高或最低優(yōu)先級(jí)的存儲(chǔ)塊進(jìn)行寫入和擦除操作。保護(hù)最高或最低優(yōu)先級(jí)的存儲(chǔ)塊,須設(shè)置VPP/WP5VIL的值,其中VPP 是寫入電源電壓,WP是寫保護(hù),而VIL 是輸入低電平的電壓。在這種情況下,存儲(chǔ)塊處于鎖保護(hù)模式,你無法修改存儲(chǔ)塊。刪除鎖保護(hù)模式,須設(shè)置VPP/WP5VIH值,其中VIH 是輸入高電平電壓。在這種情況下,可以鎖保護(hù)存儲(chǔ)塊或解除鎖保護(hù)。
硬件保護(hù)
基于硬件的保護(hù)方法提供了一個(gè)成本低廉的保護(hù)層,可以防止通過互聯(lián)網(wǎng)傳播的惡意代碼。除非先將引腳電壓重置,否則惡意代碼無法修改或擦除存放在硬件層的數(shù)據(jù)。
例如,當(dāng)一個(gè)黑客想繞過路由器時(shí),惡意代碼將先到達(dá)閃存,閃存將檢查存放引導(dǎo)代碼的存儲(chǔ)塊對(duì)應(yīng)的引腳的電壓。在發(fā)現(xiàn)引腳電壓是不準(zhǔn)許修改的電壓時(shí),芯片將不會(huì)執(zhí)行惡意代碼,路由器將會(huì)繼續(xù)工作。易失性和非易失性鎖保護(hù)特性用軟件命令給存儲(chǔ)塊施加鎖保護(hù)或解除鎖保護(hù),防止數(shù)據(jù)被意外修改。在易失性存儲(chǔ)塊鎖保護(hù)模式中,易失性存儲(chǔ)陣列內(nèi)的保護(hù)位被映射到主存陣列塊內(nèi)。你可以對(duì)這些易失性存儲(chǔ)保護(hù)位進(jìn)行單獨(dú)的修改、置位和清零操作。不過,這些保護(hù)位只能保護(hù)那些沒有使用非易失性存儲(chǔ)陣列位鎖保護(hù)的存儲(chǔ)塊。在重新開機(jī)或硬件復(fù)位后,易失性存儲(chǔ)保護(hù)位就會(huì)返回到初始的鎖保護(hù)或解鎖狀態(tài)。
即使在重新開機(jī)或復(fù)位后,非易失性存儲(chǔ)塊鎖保護(hù)特仍能按照設(shè)計(jì)人員的設(shè)置,使存儲(chǔ)塊處于鎖保護(hù)或解鎖狀態(tài)。一個(gè)非易失性保護(hù)位被映
射到每個(gè)存儲(chǔ)塊,可以單獨(dú)保護(hù)每個(gè)存儲(chǔ)塊。通過清零命令或擦除命令,可以將非易失性保護(hù)位清零。你可以利用非易失性存儲(chǔ)塊鎖保護(hù)機(jī)制確保塊保持鎖保護(hù)狀態(tài),甚至在意外重新開機(jī)或復(fù)位后,防止存儲(chǔ)器內(nèi)容被意外覆蓋。
因?yàn)閺S商和產(chǎn)品不同,閃存安全特性也千差萬別。除存儲(chǔ)密度外,你還應(yīng)考慮性能、技術(shù)、光刻、成本、尺寸和封裝,這些因素在一起才能完成一項(xiàng)設(shè)計(jì),你可以用這些特性保護(hù)設(shè)計(jì)的性能以及市場(chǎng)地位,閃存安全特性為保護(hù)知識(shí)產(chǎn)權(quán)、內(nèi)容、數(shù)據(jù)或系統(tǒng)完整性提供了一個(gè)成本低廉、安全有效的方法。