《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Kinetis系列MCU的保密和保護特性剖析
Kinetis系列MCU的保密和保護特性剖析
2017年微型機與應用第3期
王玉麗
蘇州工業園區職業技術學院,江蘇 蘇州 215123
摘要: 為應對安全攻擊,Kinetis系列MCU提供了保密和Flash保護特性、UID特性等很多機制,但這些機制較為復雜且必須深度掌握,才能滿足應用的安全設計要求。針對這一問題,文章對其保密和保護特性進行了深入研究,從工作機理、應用場合、配置方法、注意事項等多方面進行了分析和比對,為靈活應用這些機制奠定了基礎。
關鍵詞: kinetis MCU Flash UID
Abstract:
Key words :

  王玉麗

  (蘇州工業園區職業技術學院,江蘇 蘇州 215123)

       摘要:為應對安全攻擊,Kinetis系列MCU提供了保密和Flash保護特性、UID特性等很多機制,但這些機制較為復雜且必須深度掌握,才能滿足應用的安全設計要求。針對這一問題,文章對其保密和保護特性進行了深入研究,從工作機理、應用場合、配置方法、注意事項等多方面進行了分析和比對,為靈活應用這些機制奠定了基礎。

  關鍵詞:Kinetis;MCU;Flash;UID

  中圖分類號:TP3文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.03.008

  引用格式:王玉麗.Kinetis系列MCU的保密和保護特性剖析[J].微型機與應用,2017,36(3):26-28,32.

0引言

  在嵌入式產品領域,有效地應對各種安全攻擊至關重要。安全攻擊主要是指:人為地試圖獲取或者破壞芯片內容而獲取利益,例如復制軟件進而克隆系統、竊取關鍵信息(如數據庫等)、惡意篡改或者重新編程制作“流氓”軟件等。

  目前嵌入式應用中Freescale公司基于ARM CortexM內核的32位Kinetis系列MCU應用非常廣泛,它提供了一系列應對安全攻擊的機制,包括保密特性、Flash保護特性、芯片唯一標識符UID特性等,由于這些機制比較復雜,設置視具體應用而異,靈活多變,并涉及大量寄存器,加上Kinetis產品面世時間短,安全機制方面的中文資料稀缺(尚未有相關論文發表,只在部分書籍/網絡資料中有簡述),給開發者帶來了困擾。因此本文針對Kinetis的保密和保護特性進行了研究,深入剖析了保密特性(包括工作原理、保密等級、整體擦除、后門機制、對外部接口的影響、保密設置方法等),分析了保護特性(原理、保護與解除保護策略等),綜合比對了二者的異同與關聯,為基于Kinetis應用的安全設計奠定了技術基礎。

1Kinetis的保密特性

  1.1保密特性概述

  Kinetis的保密特性使得它可以工作在保密Secure和非保密Unsecure兩種模式下,區別在于是否允許通過外部接口訪問芯片內部存儲器[1]。保密模式下,不能通過外部接口(如JTAG/SWD調試接口、EzPort、FlexBus)對芯片內部存儲器進行任何操作(整體擦除Mass Erase指令除外) [23]。非保密模式則無此限制。

  1.2保密特性工作原理

  Kinetis的保密特性基于Flash保密寄存器FTFL_FSEC和Flash配置區域(Flash Configuration Field,FCF)共同實現。FTFL_FSEC控制著所有與保密相關的位。FCF是位于0x400~0x40F地址區間的一個獨立的16 B配置區域,用來存儲保密/保護及MCU啟動的一些配置信息。FCF結構如圖1所示。

  

001.jpg

  在芯片復位完成前,位于FCF中的保密字節FSEC(地址0x40C)會被自動加載到FTFL_FSEC寄存器中,通過寄存器中的保密狀態位SEC位來設定芯片的保密狀態。這種機制會引發兩個問題:

  (1)在芯片運行過程中,即使修改了FCF中的保密字節FSEC,如果未復位則不會生效。

  (2)在芯片運行過程中,即使通過特定方式臨時解除了保密狀態,如果FCF中的保密字節FSEC未修改,則芯片復位后,Flash依然處于保密狀態。

  1.3保密等級

  FTFL_FSEC寄存器內容將影響保密程度,寄存器結構如表1所示。

003.jpg

  保密狀態下,根據寄存器中KEYEN、MEEN、FSLACC的不同,對應多種保密方案,通常保密等級可分為4級:等級0,禁止KEYEN;等級1,全部啟用;等級2,禁止FSLACC;等級3,禁止FSLACC和MEEN。由于等級3禁用了整體擦除和工廠訪問功能,只能通過后門機制解密,而如果程序中沒有加入后門解密功能,會導致芯片代碼再也無法重新編程或修改,所以使用時務必先確認后門功能完好再啟用保密。

  1.4后門訪問機制原理與注意事項

  后門訪問為開發者提供了一種便利的訪問途徑,使得保密后,使用后門訪問密碼(Backdoor Cccess Key)經驗證后門指令(Verify Backdoor Command)驗證成功,即可通過調試接口再次訪問Flash。其無需整體擦除Flash,常用于固件升級。

  后門機制需要開發者預先將一個8 B的后門密碼燒寫到Flash配置區域FCF中的后門密碼字節處(地址0x400~0x407),并編寫好驗證代碼。在芯片進入保密模式后,用戶通過外部串行口將密碼輸入MCU,然后通過驗證指令進行驗證,驗證一致則MCU解密。使用后門訪問時需要注意以下事項:

  (1)在保密狀態且KEYEN使能情況下,可通過后門密碼暫時解除保密狀態,后門密碼必須在FCF中配置,且不能全0或全1,否則驗證命令會報錯。

  (2)沒有預設機制用于獲取后門密碼并運行驗證,需要自行編碼,接收用戶輸入的密碼來進行驗證。

  (3)驗證失敗,再次驗證需要上電復位。

 ?。?)通過后門只能暫時解除保密狀態,復位后會重回保密狀態,除非更改了FCF中的保密設置。

  1.5保密模式對外部接口及FlexBus的影響

  保密模式下,調試接口JTAG/SWD被禁止調試,是否允許整體擦除通過MEEN位控制,除JTAG掃描和調試寄存器MDMAP外,其他寄存器無法訪問;同樣,Ezport是否允許整體擦除指令通過MEEN位控制,除EzPort狀態寄存器外,其他寄存器無法訪問;保密模式下默認阻塞所有外部訪問FlexBus的操作,但可通過SIM_SOPT2[FBSL]編程控制保密時允許進行哪些操作,可以選擇只允許數據存取,或者同時允許數據和操作碼的訪問,如果都允許,則不管是否保密,FlexBus控制器將同樣運作。

  1.6保密設置方法

  保密模式需要通過修改FCF中的保密字節實現,IAR環境下FCF信息存放在”/工程目錄/src/cpu/”文件夾下的vectors.c和vectors.h文件中。vectors.h文件的末尾部分存放著CONFIG_1~CONFIG_4字段(共計16 B),如下圖2所示。vectors.c中有對應的中斷向量地址信息,修改圖2中fe信息即可完成保密模式的修改,修改完成后可通過查看生成的s19文件確認保密字節是否修改成功。需要特別注意的是IAR6.6之后,其自帶的flashloader默認對0x40C~0x40F段進行了保護,所以會導致修改失效,因此在燒寫前需要首先對flashloader進行配置:打開Flash Loader Configuration在extra parameters部分輸入-enable_config_write,保存設置然后再燒寫即可?!?/p>

002.jpg

2Kinetis的Flash保護機制

  2.1保護概述

  Kinetis提供的保護機制主要用于防止CPU對Flash的誤操作,例如燒寫bootloader、防止誤操作Flash中的配置參數等,用戶可以選定Flash區域進行保護,受保護的區域CPU擁有只讀權限。

  2.2保護原理

  Kinetis提供了3個寄存器分別針對3種類型的存儲空間進行保護:程序Flash(PFlash)、數據Flash(DFlash)和EEPROM[1]。3種類型的Flash保護機制類似,本文以PFlash為例進行闡述。PFlash的保護基于PFlash保護寄存器FTFL_FPROTn和FCF共同實現。在芯片復位完成前會把FCF中的PFlash保護字節(地址0x408~0x40B)加載到Kinetis的4個保護寄存器FTFL_FPROT0~FTFL_FPROT3中,根據位設置進行保護。4個保護寄存器中的32個位將PFlash等分成32個區域進行保護配置,每個位控制1/32區域寫保護,對應位為1則不保護,為0則保護。這種機制使得Flash最小可配置保護單元大小取決于芯片的Flash容量,比如容量512 KB其最小保護單元為512/32=16 KB,32 KB則為32/32=1 KB。系統所支持的最小保護單元為1 KB,容量小于32 KB的,以24 KB為例,32位中的后8位就被忽略掉了,其他情況依次類推。

  2.3保護設置與解除

  保護與保密設置方法類似,可通過修改FCF的保護字節完成,不再贅述。Flash配置區域一旦被保護,就不能通過常規Flash擦寫指令修改,只能通過EzPort執行塊擦除指令(bulk erase)或運用Segger JLink的命令行工具運行“unlock Kinetis”指令來擦除。

3保密與保護特性對比

  保密與保護雖然都是安全機制,但二者差異顯著,綜合比對如下:

  (1)配置字節:二者均駐留在Flash配置域FCF中,分別對應保密和保護字節。

  (2)作用范圍:保密特性針對整個芯片,對Flash本身影響很??;保護特性則只影響選定的部分/全部Flash區域,對處理器的其余部分沒有影響。

  (3)目的與用途:保密旨在防止惡意者通過外部接口非法讀出Flash內容,不影響CPU讀寫Flash。為防止芯片內容被非法讀出后被“暴力”寫入到同類芯片運行,Kinetis還提供了芯片唯一標識符UID可進行唯一性驗證,可配合保密機制阻止非法程序運行[4]。保護旨在防止CPU對內部Flash意外擦除和寫入。

  (4)方向性:保密針對外部接口,保護針對CPU。

  (5)寄存器與讀寫性:保密特性基于FTFL_FSEC,保護特性基于FTFL_FPROTn。FTFL_FSEC寄存器是只讀的,FPROTn寄存器是可讀可寫的,在運行過程中可以更改其內部配置,具體方法與工作模式有關。

4結論

  本文深入分析了Kinetis系列MCU的保密和保護特性,闡述了保密和保護的工作原理、應用場合、配置方法與注意事項等。保密特性禁用外部端口,使得軟件固件被鎖定,免受外部攻擊,保護特性可防止對特定Flash區域進行擦除,免受內部CPU誤操作的影響,二者結合可以應對多種安全問題,保密和保護機制的靈活應用可為基于Kinetis的應用在安全設計方面提供良好的技術基礎。

參考文獻

  [1] 王宜懷,吳瑾,蔣銀珍.嵌入式系統原理與實踐ARMCortexM4Kinetis微控制器[M].北京:電子工業出版社,2012.

  [2] Freescale Semiconductor,Inc..K60 Subfamily reference manual Rev 6[DB/OL]. (2011-11-06)[2016-06-20].http://www.freescale.com.

  [3] Freescale Semiconductor,Inc..Using the Kinetis security and Flash protection features (AN4507)[DB/OL].(2012-01-06)[2016-06-20].http://www.freescale.com. 2012/2016.6.

 ?。?] NXP Semiconductors.How to address the challenge of security/privacy with Kinetis (REV 0) [DB/OL].[2016-06-10].http://www.nxp.com/.2014.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美中文在线视频| 亚洲欧美精品伊人久久| 一区二区三区波多野结衣在线观看| 国产资源精品在线观看| 国产精品久久久一本精品| 欧美理论在线播放| 欧美成人午夜| 欧美xxx成人| 欧美黄色aaaa| 欧美成人国产一区二区| 欧美成人精品一区二区| 免费永久网站黄欧美| 老巨人导航500精品| 久久先锋资源| 母乳一区在线观看| 欧美激情一区二区三区蜜桃视频| 免费黄网站欧美| 欧美成人免费网站| 欧美精品久久久久久久久久| 欧美久久99| 欧美日韩亚洲一区二区三区四区| 欧美三级视频在线观看| 国产精品盗摄一区二区三区| 国产精品国产三级国产| 国产精品制服诱惑| 国户精品久久久久久久久久久不卡| 国产自产高清不卡| 在线成人小视频| 亚洲激情黄色| 一本到12不卡视频在线dvd| 99精品国产高清一区二区| 99在线精品免费视频九九视| 一区二区三区产品免费精品久久75 | 99国产精品99久久久久久| 日韩午夜电影在线观看| 亚洲视频一区二区在线观看| 亚洲免费影视第一页| 久久成人人人人精品欧| 可以看av的网站久久看| 欧美高清视频在线| 国产精品v日韩精品v欧美精品网站| 国产精品免费视频观看| 国产无遮挡一区二区三区毛片日本| 极品少妇一区二区| 日韩午夜在线| 亚洲欧美在线另类| 亚洲精品久久久久久久久久久久久 | 久久久久久久999| 欧美成人亚洲| 国产精品久久精品日日| 国产一区二区av| 亚洲高清一二三区| 亚洲天堂av图片| 亚洲第一精品夜夜躁人人爽| 欧美一区二区三区免费视| 欧美精品亚洲精品| 欧美午夜国产| 激情综合电影网| 在线综合亚洲| 亚洲国产精品一区二区www在线 | 亚洲视频在线观看网站| 久久精品欧洲| 欧美日韩免费在线观看| 国产亚洲精品久久久久动| 亚洲激情成人| 香蕉视频成人在线观看| 99国产精品| 久久久久久穴| 国产精品多人| 亚洲国产成人久久综合| 亚洲综合日韩中文字幕v在线| 亚洲国产综合在线看不卡| 午夜精品成人在线视频| 欧美福利专区| 亚洲高清视频在线观看| 欧美精品精品一区| 国产老肥熟一区二区三区| 亚洲电影有码| 欧美一区二区免费视频| 一区二区三区成人精品| 久久免费视频在线| 国产九色精品成人porny| 亚洲精品免费在线观看| 亚洲第一成人在线| 欧美一区免费视频| 国产精品成人播放| 亚洲裸体视频| 亚洲人成在线免费观看| 久久久久亚洲综合| 国产精品美女主播在线观看纯欲| 亚洲国产精品成人| 久久国产加勒比精品无码| 午夜精品免费在线| 欧美视频在线不卡| 亚洲日本va在线观看| 亚洲国产精品成人一区二区| 欧美一级视频精品观看| 国产精品v一区二区三区 | 欧美一级成年大片在线观看| 这里只有精品丝袜| 欧美福利一区| 亚洲第一黄网| 亚洲激情av| 蜜乳av另类精品一区二区| 国产亚洲成av人在线观看导航| 亚洲午夜精品久久久久久app| 99国产精品私拍| 农村妇女精品| 在线播放日韩欧美| 久久精品国产精品亚洲精品| 欧美主播一区二区三区美女 久久精品人 | 欧美小视频在线| 一二美女精品欧洲| 亚洲午夜在线| 国产精品xnxxcom| 中文精品一区二区三区| 亚洲性感激情| 国产精品成人一区二区三区夜夜夜| 亚洲精品中文字幕有码专区| 亚洲毛片av在线| 欧美国产视频在线观看| 亚洲激情影院| 正在播放日韩| 欧美午夜剧场| 亚洲午夜精品久久久久久浪潮| 亚洲免费在线视频| 国产精品久久久久久妇女6080| 一区二区高清视频在线观看| 亚洲综合日韩在线| 国产精品一区二区在线观看网站 | 欧美日韩国产大片| 夜夜嗨一区二区| 欧美亚洲日本国产| 韩国av一区二区三区四区| 亚洲电影免费观看高清完整版在线| 裸体歌舞表演一区二区| 亚洲国产精品成人va在线观看| 日韩视频第一页| 欧美视频在线视频| 午夜一级在线看亚洲| 久久香蕉国产线看观看av| 亚洲盗摄视频| 亚洲深夜福利视频| 国产伦精品一区二区三区免费 | 亚洲国产一成人久久精品| 免费不卡亚洲欧美| 亚洲精品国产无天堂网2021| 在线亚洲一区| 国产欧美精品一区| 亚洲电影网站| 欧美另类高清视频在线| 亚洲视频一二区| 久久久久久久久久久久久9999| 在线观看视频亚洲| 亚洲一区二区精品| 好看不卡的中文字幕| 99热在这里有精品免费| 国产精品一区二区在线观看不卡| 久久精品二区三区| 欧美日韩免费在线视频| 午夜久久福利| 欧美成在线视频| 亚洲在线视频网站| 欧美va天堂在线| 亚洲一级片在线观看| 麻豆成人精品| 亚洲手机成人高清视频| 久久亚洲一区二区| 这里只有精品视频| 久久综合激情| 一本色道久久综合亚洲精品婷婷| 欧美中文字幕在线| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美一二区视频| 亚洲国产精品尤物yw在线观看| 亚洲欧美不卡| 亚洲第一二三四五区| 性欧美办公室18xxxxhd| 亚洲福利视频在线| 欧美一区二区三区精品| 亚洲高清网站| 欧美一区二区三区四区夜夜大片 | 这里只有精品视频| 精品99视频| 午夜激情综合网| 91久久久久久国产精品| 欧美一区二区在线看| 亚洲精品午夜| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲婷婷在线| 欧美国产一区二区三区激情无套| 午夜精品在线观看| 欧美三级韩国三级日本三斤| 亚洲国产精品一区二区三区| 国产精品手机视频| 在线一区免费观看| 在线日韩av永久免费观看| 欧美在线亚洲综合一区| 99国内精品久久| 欧美顶级少妇做爰|