0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MCU的調(diào)試接口——怎么堵住這個后門?

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-31 17:02 ? 次閱讀

安全調(diào)試的前世今生

對于MCU的開發(fā)工程師來說,MCU的調(diào)試接口是必不可少的開發(fā)利器。透過調(diào)試接口,我們可以監(jiān)視MCU的運(yùn)行狀態(tài),查看或修改寄存器的數(shù)值,觀察內(nèi)存中的數(shù)據(jù)變化,通過IDE、調(diào)試器等開發(fā)工具配合,方便地排查各種棘手的問題。

我們需要了解的一切信息,調(diào)試接口都知無不言,言無不盡。

那么問題來了,在產(chǎn)品出廠后,黑客、攻擊者就可以利用強(qiáng)大的調(diào)試接口對設(shè)備進(jìn)行各種攻擊,竊取產(chǎn)品中的敏感信息;黑色產(chǎn)業(yè)鏈也可以通過調(diào)試接口,輕而易舉地讀取出設(shè)備的固件,從而生產(chǎn)制造廉價的“破解版”。

正是由于調(diào)試接口功能強(qiáng)大,這個開發(fā)過程中的利器,也給產(chǎn)品帶來了安全的漏洞和知識產(chǎn)權(quán)泄露的隱患。

針對這個問題,很多高附加值或安全敏感的產(chǎn)品,會選擇在生產(chǎn)過程的最后一步,通過修改OTP Fuse等方式,將調(diào)試接口永久地禁掉。產(chǎn)品出廠后,調(diào)試接口已被封死,簡單粗暴地解決調(diào)試接口帶來的風(fēng)險。

但是,產(chǎn)品的售后、維護(hù)往往不是一帆風(fēng)順的。產(chǎn)品在客戶現(xiàn)場,也許會出現(xiàn)各種各樣奇奇怪怪的問題。此時,由于調(diào)試接口被封掉,留給我們的調(diào)試排查手段捉襟見肘,產(chǎn)品出現(xiàn)問題后,難以定位更難以解決。

有沒有一種方法,只能讓開發(fā)者合法地調(diào)試芯片,而不會被攻擊者利用呢?

Secure Debug安全調(diào)試

傳統(tǒng)的手段,是將調(diào)試接口永遠(yuǎn)的封死,那么Secure Debug就像是給調(diào)試接口加了一把堅固的鎖,只有能打開這把鎖的人才能使用調(diào)試功能。

毫無疑問,“鎖”比“封”要更加靈活。那么,我們應(yīng)該選擇使用一把什么樣的鎖呢?

密碼鎖

這是一種簡單有效的方案,適用于絕大多數(shù)芯片。其大致流程如下所示:

pYYBAGIB12KALeooAAE_8QpSNuI579.png

在產(chǎn)品的生產(chǎn)過程中,“解鎖密碼”提前燒錄至芯片的OTP內(nèi),然后將調(diào)試功能“上鎖”,此時調(diào)試功能是不可用的。

當(dāng)需要調(diào)試芯片時,芯片會通過JTAG接口發(fā)送UUID,這時調(diào)試主機(jī)根據(jù)UUID發(fā)送相應(yīng)的解鎖密碼,若解鎖密碼與芯片中預(yù)存的密碼一致,芯片將會開放調(diào)試功能。

可以看到,按照上圖的機(jī)制,基本可以解決我們上文中提出的問題,這也是目前i.MX RT10xx原生支持的Secure JTAG機(jī)制(詳情請參考應(yīng)用筆記AN12419)。

認(rèn)證鎖(Debug authentication)

MCU功能越來越豐富,越來越多的MCU擁有不止一個內(nèi)核,其中的內(nèi)核有可能還支持Trustzone。例如LPC5500家族的LPC55S69,擁有Core 0和Core 1兩個Cortex M33內(nèi)核,其中Core 0還支持Trustzone技術(shù)。

這同時也對我們的調(diào)試安全提出了更多的需求,我們不僅需要一把調(diào)試鎖控制調(diào)試功能的開與關(guān),還需要這把鎖足夠“聰明”,能夠提供更細(xì)粒度的權(quán)限管理。

例如,我們希望外部攻擊者不能調(diào)試LPC55S69;某些內(nèi)部人員只能調(diào)試LPC55S69的Core 1,不能調(diào)試LPC55S69的Core 0,某些內(nèi)部人員只能夠調(diào)試Core 0的非安全區(qū)域,某些內(nèi)部人員可以調(diào)試整個LPC55S69……

為了滿足靈活的調(diào)試權(quán)限管理需求,LPC5500提供了一種全新的機(jī)制:Debug authentication,利用非對稱加密機(jī)制(RSA2048/RSA4096),通過證書(DC:Debug Credential Certificate)來授予不同的權(quán)限,ODM或設(shè)計部門為不同的人員頒發(fā)不同的證書,證書中將會明確其所擁有的調(diào)試權(quán)限。

在調(diào)試認(rèn)證時,芯片會根據(jù)某一個人員所持有的證書,對其進(jìn)行Challenge-Response驗證,首先將Response(即DAR:Debug AuthenticationResponse)中的DC與芯片中預(yù)置的信息進(jìn)行匹配,當(dāng)驗證DC為合法后,驗證Response中的簽名,若證書與簽名都驗證通過,且請求的調(diào)試權(quán)限符合芯片的設(shè)置,芯片將會開放相應(yīng)的權(quán)限。其大致流程如下所示:

pYYBAGIB12OAG0vnAAIN7XkZULk207.png

可以看出,這種Debug authentication機(jī)制解決了調(diào)試接口的安全問題,也滿足了調(diào)試權(quán)限靈活管理的需求。

小結(jié)

相對來說,Debug authentication需要做的準(zhǔn)備工作比較多,本文簡單描述了Debug authentication的基本機(jī)制,并未提供詳細(xì)的操作步驟。

如何生成DC/DAR、如何對芯片進(jìn)行預(yù)處理、如何完成一次Debug authentication,請參考應(yīng)用筆記AN13037,并且NXP提供了開源的工具,參考應(yīng)用筆記就能夠利用工具完成

來源:恩智浦MCU加油站

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419595
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349325
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150510
收藏 人收藏

    評論

    相關(guān)推薦

    后門密鑰驗證在S32K142中不起作用怎么解決?

    環(huán)境:S32K142、IAR 8.22、多鏈路調(diào)試器 我想在啟用安全鎖之前測試后門密鑰驗證。 我像下面這樣設(shè)置我的程序。 IAR設(shè)置 啟動.s 只讀存儲器文件 (SREC) 調(diào)試器中的內(nèi)存轉(zhuǎn)儲
    發(fā)表于 05-31 08:58

    移植到FPGA上只有一個JTAG接口,進(jìn)行MCU調(diào)試是采用其他擴(kuò)展引腳定位為MCU的JTAG調(diào)試

    移植到FPGA上,只有一個JTAG接口。再進(jìn)行MCU調(diào)試的話,是采用其他擴(kuò)展引腳定位為MCU的JTAG調(diào)試?還是使用FPGA的uart串口
    發(fā)表于 08-11 13:41

    MCU51的串口調(diào)試工具

    MCU51的串口調(diào)試工具:本站會員 gxujjd 及sltian 推薦的Mcu51網(wǎng)站的免費(fèi)串口調(diào)試工具。此版本使用C++Builder編寫.
    發(fā)表于 01-16 11:53 ?126次下載

    Kinetis系列MCU調(diào)試下載程序方法

    目前Kinetis 系列MCU 家族中的Cortex-M0+僅支持SWD 調(diào)試接口,Cortex-M4 支持JTAG、cJTAG 和SWD 調(diào)試接口
    發(fā)表于 09-23 14:33 ?45次下載
    Kinetis系列<b class='flag-5'>MCU</b><b class='flag-5'>調(diào)試</b>下載程序方法

    AN958:自定義設(shè)計的調(diào)試和編程接口

    Silicon Labs MCU和無線入門套件以及Simplicity Studio提供強(qiáng)大的開發(fā)和調(diào)試環(huán)境。 為利用自定義硬件的這些功能和特性,Si I icon Labs建議在自定義硬件設(shè)計中
    發(fā)表于 02-28 15:14 ?2次下載

    調(diào)試接口SWD和JTAG的區(qū)別

    作者 | strongerHuang 微信公眾號 | strongerHuang 作為嵌入式工程師,下載調(diào)試器都應(yīng)該知道,但你真正了解其SWD 和 JTAG接口的含義和區(qū)別嗎? 1 什么是下載調(diào)試
    的頭像 發(fā)表于 10-27 09:29 ?1.7w次閱讀
    <b class='flag-5'>調(diào)試</b><b class='flag-5'>接口</b>SWD和JTAG的區(qū)別

    下載調(diào)試接口SWD和JTAG的區(qū)別

    作為嵌入式工程師,下載調(diào)試器都應(yīng)該知道,但你真正了解其 SWD 和 JTAG 接口的含義和區(qū)別嗎? 1、什么是下載調(diào)試器 簡單來說,下載調(diào)試器是將 PC(例如通過 USB 協(xié)議)發(fā)送的
    的頭像 發(fā)表于 11-28 11:44 ?4426次閱讀

    如何讓MCU調(diào)試接口不會被攻擊者利用?

    安全調(diào)試的前世今生 對于MCU的開發(fā)工程師來說,MCU調(diào)試接口是必不可少的開發(fā)利器。透過調(diào)試
    的頭像 發(fā)表于 12-18 18:06 ?2982次閱讀

    MCU調(diào)試接口——怎么堵住這個后門

    對于MCU的開發(fā)工程師來說,MCU調(diào)試接口是必不可少的開發(fā)利器。透過調(diào)試接口,我們可以監(jiān)視
    發(fā)表于 02-08 15:09 ?0次下載
    <b class='flag-5'>MCU</b>的<b class='flag-5'>調(diào)試</b><b class='flag-5'>接口</b>——怎么<b class='flag-5'>堵住</b><b class='flag-5'>這個</b><b class='flag-5'>后門</b>?

    基于分割后門訓(xùn)練過程的后門防御方法

    后門攻擊的目標(biāo)是通過修改訓(xùn)練數(shù)據(jù)或者控制訓(xùn)練過程等方法使得模型預(yù)測正確干凈樣本,但是對于帶有后門的樣本判斷為目標(biāo)標(biāo)簽。例如,后門攻擊者給圖片增加固定位置的白塊(即中毒圖片)并且修改圖片的標(biāo)簽為目標(biāo)標(biāo)簽。用這些中毒數(shù)據(jù)訓(xùn)練模型過后
    的頭像 發(fā)表于 01-05 09:23 ?797次閱讀

    Verilog代碼封裝后門訪問

    關(guān)于仿真里的后門訪問,之前的文章《三分鐘教會你SpinalHDL仿真中的后門讀寫》中有做過介紹,其針對的都是針對以SpinalHDL中的代碼進(jìn)行的后門訪問。今天來看看當(dāng)封裝了Verilog BlackBox時,在SpinalHD
    的頭像 發(fā)表于 07-15 10:22 ?792次閱讀
    Verilog代碼封裝<b class='flag-5'>后門</b>訪問

    STM32 MCU TrustZone開發(fā)調(diào)試技巧分享

    電子發(fā)燒友網(wǎng)站提供《STM32 MCU TrustZone開發(fā)調(diào)試技巧分享.pdf》資料免費(fèi)下載
    發(fā)表于 07-28 13:35 ?1次下載
    STM32 <b class='flag-5'>MCU</b> TrustZone開發(fā)<b class='flag-5'>調(diào)試</b>技巧分享

    【CVM01系列】| MCU硬件設(shè)計指南:調(diào)試和編程接口

    【CVM01系列】| MCU硬件設(shè)計指南:調(diào)試和編程接口
    的頭像 發(fā)表于 09-18 10:56 ?994次閱讀
    【CVM01系列】| <b class='flag-5'>MCU</b>硬件設(shè)計指南:<b class='flag-5'>調(diào)試</b>和編程<b class='flag-5'>接口</b>

    無線MCU調(diào)試技巧匯總

    無線MCU調(diào)試技巧匯總
    的頭像 發(fā)表于 10-17 14:56 ?594次閱讀
    無線<b class='flag-5'>MCU</b><b class='flag-5'>調(diào)試</b>技巧匯總

    調(diào)試器連接MCU不穩(wěn)定怎么辦?

    有沒有小伙伴遇到使用GDlink或者Jlink調(diào)試GD32 MCU的時候出現(xiàn)不穩(wěn)定的情況,剛要發(fā)現(xiàn)問題時調(diào)試器和MCU斷開連接了,這個時候可
    的頭像 發(fā)表于 02-21 09:44 ?775次閱讀
    <b class='flag-5'>調(diào)試</b>器連接<b class='flag-5'>MCU</b>不穩(wěn)定怎么辦?