ATSHA204A加密芯片的使用
????????為了防止自己辛辛苦苦開發了產品被別人抄板仿制,我們使用了ATSHA204A的認證功能。在應用啟動的時候,首先我們要驗證PCBA上焊接的ATSHA204A芯片中存放的密鑰是否匹配,如果不匹配將程序掛起;如果密鑰匹配繼續往下執行。如果沒有ATSHA204A芯片,程序也會掛起。為了增強破解難度,在程序中重要功能調用前也都加入密鑰驗證操作。
????????ATSHA204A芯片里的數據本身是不可復制的,而我們的目標代碼必須配合對應的芯片才能運行。即使“壞人”從存儲器中讀出目標代碼也不能運行,從而達到防抄板仿制目的。
? ? ? ? 通過專用編程器,將16組密鑰寫入ATSHA204A芯片,并配置好相應權限。PCBA貼片前燒錄好芯片,當然你也可以選擇在線燒錄。為了防泄密,最好由專人操作。密鑰一旦設置就不會輕易變動,所以能看到密鑰明文的人越少越安全。我的做法是采用某個目標文件中一段數據,16組密鑰在源文件中不連續放置。這樣即使你用二進制工具打開目標文件,密鑰看起來也會像是某段程序。驗證時只需指定組編號而不用密鑰明文。
也許有人有疑惑,解釋一下:
1、能否在I2C總線上截獲密鑰?
? ?——在I2C總線上并沒有傳送密鑰,而是傳送根據秘鑰和一組隨機數計算出來的digest,因此在總線上截獲密鑰不可實現。
2、在目標代碼中包含密鑰,別人從存儲器中讀取目標文件后是否有可能得到密鑰?
? ?——目標文件中的確實存有密鑰,但是在一個幾十MB的二進制文件中尋找一組32字節的密鑰,豈不是大海撈針?
3、是否有破解的可能?
? ?——對于一些小單片機(51之類的),的確好破,反匯編后,跳過驗證步驟即可。但是對于功能強大的MPU,就算你能反匯編,也得找出驗證步驟在哪里。因此,只要密鑰不泄露,要破解相當困難。
總結
以上是生活随笔為你收集整理的ATSHA204A加密芯片的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flow_from_directory返
- 下一篇: 钟无艳 - 谢安琪