單片機的加密手段之三(反擊篇)

單片機的加密手段之三(反擊篇)

寫第一篇《一種常用的單片機加密手段》的時候,我沒想到會寫到第三篇,源自於和很多朋友之間的交流和疑問,以及工程師們對破解的痛恨,因此這一篇我來教大家一種常用的簡單的反擊思路。

首先再來強調一下,任何一種加密手段,都不是絕對加密,都是相對加密,我們要做的加密手段是讓破解者付出一定的代價,當這個代價大到他花費破解的精力和金錢,已經遠遠不如直接購買你的產品或者你的方案,或者自己獨立開發出來更划算的時候,他自然而然就不會對你的產品進行破解了。那下面我介紹一種特定條件下,可以實施的一種反擊手段。

第一篇我們介紹了一種加密手段,利用的是主芯片的唯一ID,但是現在市面一款主流的32位的MCU的system區域的唯一ID照樣被調試工具改寫。第二篇我們還介紹了一個自己做的虛假唯一ID,用來欺騙。那如果破解者進行芯片的全面複製,我們這兩種辦法還都是無能為力的,他把唯一ID和虛假唯一ID全部複製到他的新芯片內,我們還是做不到加密的功能,這個時候,我們可以採取上一篇介紹的加密芯片或者冷門單片機單獨加密的方法。

那如果有一個特定條件,比如我們的產品是一個本身可以上網,連接到網絡上的設備,那麼我們就可以在我們的程序中留一定的後門,通過我們的服務器來監控我們產品的ID情況,既然可以監控,那麼也就可以控制。

我們可以讓我們的產品,每隔一段時間,這個時間可以是一天,可以是一個星期,可以是一個月的特定時間,跟我們的雲端總服務器通信一次,來彙報一下他的ID信息,當我們監控到出現某一個ID被複制,產生了很多個相同ID的產品,或者出現和我們系統的ID不同的產品出現,那下面的工作你的程序想怎麼辦就怎麼辦了。

簡單來說,可以直接讓設備不工作。但是破解者有可能想出辦法來再次破解。

複雜點來,就讓設備工作不正常,並且沒有規律,最好是不同的設備產生隨機數,根據隨機數的情況來讓產品工作不正常,這樣多個產品不正常的規律不一樣,並且最好不要太頻繁。工作不正常的方式也可以採取一些比較詭異的手法,這樣破解者難以分辨是硬件器件問題,還是軟件代碼問題,讓破解者難以找到問題,而且事件一旦觸發,你的產品在不接入網絡的情況下,依然隔一段事件會不正常。

這樣做會讓破解者付出慘痛的代價,有可能做出很多產品,付出很多成本,到最後產品都不工作。這樣是不是殘忍點了?對我們無比殘忍的破解者,我們這點手段不算什麼的。

加密和解密,是一個永不止步的工作,一種新的破解手段出現,我們就要能夠再次研究出新的加密手段。

關於加密手段的內容,到此為止,下節課我們將會提供新內容。也歡迎大家討論,提出想了解的技術話題,我會選取合適的話題給大家講解。


分享到:


相關文章: