找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4083|回復: 1
收起左側

MSP430加密問題詳解 PROTECTION

[復制鏈接]
ID:372924 發(fā)表于 2018-7-16 22:53 | 顯示全部樓層 |閱讀模式
1> 為什么要加密,如何加密?

當您的產(chǎn)品推向市場的時候,您的競爭對手就開始盯上它了,如果您的產(chǎn)品硬件很容易被模仿,而且您使用的MSP430單片機沒有被加密的話,
那么您辛辛苦苦的勞動成功就很容易成為您競爭對手的產(chǎn)品了,使用JTAG調(diào)試工具FET雖然可以將程序下載到芯片內(nèi)部,但只有使用專業(yè)編程器能夠防止程序被竊取。

2> JTAG、BSL、BOOTLOADER、熔絲的區(qū)別和關系是什么?

JTAG接口能夠訪問MSP430單片機內(nèi)部所有資源,通過JTAG可以對芯片進行程序下載、代碼調(diào)試、內(nèi)存修改等等,通過JTAG還能燒斷加密熔絲,熔絲一旦被燒斷,
JTAG接口絕大部分功能失效,就再也不能通過它進行編程了。

BSL接口是利用芯片內(nèi)部駐留的bootloader程序?qū)崿F(xiàn)的自編程,通過特定的時序使得CPU進入bootloader代碼斷,然后利用每個MSP430芯片內(nèi)部都有的Timer A構成一個軟件串口
來與上位機通訊,這樣可以將代碼下載到芯片內(nèi)部。實現(xiàn)BSL除了JTAG接口的一些引腳外,還需要用到兩個TA0功能引腳,因此在設計產(chǎn)品時如果需要加密,則應該考慮將這兩個
引腳也連出來。要燒斷熔絲(加密)必須使用JTAG接口;燒斷熔絲后只能通過BSL或者用戶代碼來實現(xiàn)編程更新。

3> BSL的驗證密碼是怎么回事?

BSL也能讀出芯片內(nèi)部的代碼,這樣可以實現(xiàn)編程后的校驗等功能。通過BSL擦除所有Flash信息時不需要驗證密碼,但是要進一步操作,就得輸入32字節(jié)密碼進行驗證。
BSL的協(xié)議規(guī)定這32字節(jié)密碼為芯片F(xiàn)LASH區(qū)域的最高32字節(jié),也就是程序的16個中斷向量,如果您擁有這段程序的最后32字節(jié),就能通過BSL將芯片內(nèi)部所有代碼讀取出來。

4> 為什么要使用高級加密?

32字節(jié)的密碼看似幾乎完全沒可能使用窮舉法來實現(xiàn)破解,但是各位別忘了,msp430的16個中斷向量未必每一個都用到了,沒用到的中斷向量為0xffff,如果您的程序只用到
了復位向量,那么破解者只需嘗試最多32768次(中斷向量為偶數(shù),所以除以2)就能將其破解,另外,如果芯片本身Flash容量較小,比如4K字節(jié),那么破解者只需嘗試最多2K次
就能將其破解。這對自動操作的計算機來說幾乎是一瞬間的事情。那么如果用到的中斷向量越多,就越難破解,最好的辦法就是將所有未用到的中斷向量全部填充為隨機數(shù)據(jù),這就是“高級加密”。
回復

使用道具 舉報

ID:372924 發(fā)表于 2018-7-16 22:53 | 顯示全部樓層
GOOD JOB!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表