24小時(shí)聯(lián)系電話:18217114652、13661815404
中文
技術(shù)專題
用于PIC微控制器代碼保護(hù)的關(guān)鍵序列號(hào)芯片
用于PIC微控制器代碼保護(hù)的關(guān)鍵序列號(hào)芯片
對(duì)于我們這些設(shè)計(jì)和開(kāi)發(fā)PCB來(lái)保護(hù)固件免受黑客攻擊的人來(lái)說(shuō),這似乎是一場(chǎng)捉迷藏的游戲。固件或微控制器代碼保護(hù)對(duì)于保持產(chǎn)品的保真度以及保護(hù)產(chǎn)品設(shè)計(jì)開(kāi)發(fā)中的時(shí)間和資本支出的投資至關(guān)重要。有幾種很好的微控制器代碼保護(hù)方法,可以使您的固件免受大多數(shù)黑客的攻擊。但是,一些黑客決心通過(guò)以較低的價(jià)格充斥復(fù)制品或假裝您制造的劣質(zhì)產(chǎn)品來(lái)竊取您的辛勤工作和您的利潤(rùn)。對(duì)于這些黑客來(lái)說(shuō),鎖上序列號(hào)芯片是微控制器代碼保護(hù)的有效隱藏策略。
數(shù)萬(wàn):PIC單片機(jī)代碼保護(hù)
通常,通過(guò)將機(jī)器代碼下載到本地存儲(chǔ)器中來(lái)對(duì)處理器進(jìn)行編程。這可能是通過(guò)閃爍執(zhí)行的,其中的代碼是可擦除的,并且處理器可以重新編程或硬連線(刻錄)到內(nèi)存中,以后無(wú)法進(jìn)行任何更改。在這些情況下,即使沒(méi)有經(jīng)驗(yàn)的黑客也知道程序代碼的位置,這使其非常不安全。
PIC微控制器是最流行的控制器之一,它們具有廣泛的體系結(jié)構(gòu)和不同的功能。不管方差如何,這些處理器的控制器代碼結(jié)構(gòu)都是相似的。大多數(shù)固件開(kāi)發(fā)都是通過(guò)使用開(kāi)發(fā)板來(lái)完成的,這對(duì)于調(diào)試代碼是無(wú)價(jià)的。但是,這些板可通過(guò)串行電纜輕松訪問(wèn)控制器內(nèi)存。
隱藏和尋求代碼安全
序列號(hào)密鑰的使用是一種加密形式,類似于用于密碼保護(hù)的加密形式。每個(gè)制造的微控制器都分配有唯一的代碼,范圍從8位到80位或更長(zhǎng)。這個(gè)想法是防止訪問(wèn)控制器代碼,除非代碼與訪問(wèn)設(shè)備或程序匹配。這樣可以防止窺視程序代碼。與密碼保護(hù)一樣,黑客也開(kāi)發(fā)了密鑰生成器,這些密鑰生成器試圖創(chuàng)建適當(dāng)?shù)拇a以進(jìn)行訪問(wèn)。如果有足夠的時(shí)間,這些代碼將非常有效地得出正確的代碼。為了阻止這種情況,我建議您將密鑰存儲(chǔ)在黑客無(wú)法訪問(wèn)或可能不知道可以進(jìn)入的位置。
唯一密鑰必須位于可以在執(zhí)行程序之前讀取的位置。盡管這聽(tīng)起來(lái)可能有局限性,但是有很多選擇。例如:
閃存:這是用于存儲(chǔ)程序代碼和可能被擦除和重寫(xiě)的鍵的最佳位置。它用于調(diào)試過(guò)程以及測(cè)試和開(kāi)發(fā)。
程序存儲(chǔ)器:這通常是為程序保留的專用內(nèi)存塊。這也是隱藏密鑰的好地方。除非知道密鑰的加密方法,否則很難將實(shí)際程序代碼與密鑰代碼分開(kāi)。
微處理器存儲(chǔ)器(EEPROM):密鑰已硬連線或刻錄到ROM設(shè)備中,無(wú)法更改。這取決于系統(tǒng)阻止入侵者進(jìn)行讀取訪問(wèn)的能力。通常在制造過(guò)程中或剛好在運(yùn)輸之前完成。
Mikroe PIC單片機(jī)框圖
如上所示,在幾個(gè)存儲(chǔ)位置中,密鑰可以存儲(chǔ)在微控制器中,并且不能由外部讀取設(shè)備直接訪問(wèn)。此外,可以將外部安全存儲(chǔ)組件添加到PCB,微控制器可以通過(guò)專用端口位置直接訪問(wèn)該組件。
您可以通過(guò)在PCB上實(shí)施專用的安全存儲(chǔ)設(shè)備來(lái)創(chuàng)建外部存儲(chǔ)單元,以用作微控制器無(wú)法訪問(wèn)的存儲(chǔ)單元。由于大多數(shù)PCB包含許多連接到微控制器的設(shè)備,因此潛在的黑客可能不會(huì)檢測(cè)到這種模棱兩可的設(shè)備。而是假定它是系統(tǒng)關(guān)鍵組件。