找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 4109|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

MSP430加密問(wèn)題詳解 PROTECTION

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:372924 發(fā)表于 2018-7-16 22:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1> 為什么要加密,如何加密?

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

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

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

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

3> BSL的驗(yàn)證密碼是怎么回事?

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

4> 為什么要使用高級(jí)加密?

32字節(jié)的密碼看似幾乎完全沒(méi)可能使用窮舉法來(lái)實(shí)現(xiàn)破解,但是各位別忘了,msp430的16個(gè)中斷向量未必每一個(gè)都用到了,沒(méi)用到的中斷向量為0xffff,如果您的程序只用到
了復(fù)位向量,那么破解者只需嘗試最多32768次(中斷向量為偶數(shù),所以除以2)就能將其破解,另外,如果芯片本身Flash容量較小,比如4K字節(jié),那么破解者只需嘗試最多2K次
就能將其破解。這對(duì)自動(dòng)操作的計(jì)算機(jī)來(lái)說(shuō)幾乎是一瞬間的事情。那么如果用到的中斷向量越多,就越難破解,最好的辦法就是將所有未用到的中斷向量全部填充為隨機(jī)數(shù)據(jù),這就是“高級(jí)加密”。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:372924 發(fā)表于 2018-7-16 22:53 | 只看該作者
GOOD JOB!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表