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