一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

STM32WB的CKS功能提供在MCU上的密鑰安全存儲和安全使用方法

STM32單片機 ? 來源:STM32 ? 作者:STM32 ? 2021-05-28 15:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們都知道STM32WB是雙核多協(xié)議無線微控制器,即主頻為64 MHz的 ArmCortex‐M4內(nèi)核(應(yīng)用處理器)和主頻為32 MHz的ArmCortex‐M0+內(nèi)核(網(wǎng)絡(luò)處理器),支持Bluetooth 5和IEEE 802.15.4無線標準。雙核的好處是可以優(yōu)化對資源的安全使用,保證和RF協(xié)議棧相關(guān)處理的實時性,并可同時提供電源管理的靈活性。

STM32WB的信息安全是以雙核隔離為基礎(chǔ)的。

STM32WB雙核架構(gòu)和雙核間的隔離機制

調(diào)試端口訪問:

出廠的芯片缺省關(guān)閉CM0+一側(cè)的調(diào)試端口訪問,即使在RDP0的狀態(tài)下也只能調(diào)試CM4內(nèi)核。

Option Byte

OptionByte中包含雙核隔離相關(guān)的安全設(shè)置,例如CM0+才能訪問的Flash區(qū)間等等。這些OptionByte受到保護,無法隨意被修改。缺省出廠芯片已經(jīng)使能CM0+的保護,相關(guān)的一些OptionByte設(shè)置無法通過調(diào)試端口或CM4進行修改。

片上Flash:

Flash的一部分只能由CM0+訪問,CM4無法對該部分Flash進行讀、寫、擦。

片上SRAM

SRAM的一部分只能由CM0+訪問,CM4無法對該部分SRAM進行讀、寫。

CRYPTO硬件資源:如AES,TRNG,PKA

系統(tǒng)上電復(fù)位時,缺省CRYPTO相關(guān)的硬件CM4可以使用。CM0+內(nèi)核可以通過修改SystemConfig相應(yīng)的寄存器使得這些硬件資源只能由CM0+內(nèi)核進行控制,也稱為把這些硬件資源配置成Secure訪問模式。其中當AES1被配置為Secure時,CM4內(nèi)核無法訪問密鑰寄存器,但是依舊可以訪問AES1的其他寄存器使用AES1硬件單元進行加解密操作。

CKS (Customer Key Storage)

AES算法是應(yīng)用程序中經(jīng)常用到的一種保障數(shù)據(jù)機密性和完整性的方法,例如用于隱私數(shù)據(jù)的加密存儲、加密通信等。其中,密鑰作為最敏感的信息也需要受到保護。

STM32WB的CKS功能提供在MCU上的密鑰安全存儲和安全使用方法 :

存儲在片上安全Flash的密鑰無法通過調(diào)試端口獲?。词乖赗DP0條件下)

運行在CM4內(nèi)核的應(yīng)用程序代碼也無法獲得片上安全Flash中存儲的密鑰,避免軟件漏洞帶來的風險

應(yīng)用程序代碼依舊能夠通過CKS和AES1硬件模塊使用存儲的密鑰進行加解密操作

CKS能夠存儲多組密鑰,應(yīng)用程序代碼可以通過密鑰索引來指定AES運算所使用的密鑰

用戶密鑰存儲

用戶密鑰存儲在“安全”Flash區(qū)域,用戶代碼和調(diào)試端口不可訪問

CKS最多可以存儲100個用戶應(yīng)用密鑰(用于AES運算)

允許存儲128位或者256位的AES密鑰

對密鑰的操作只能通過用戶代碼調(diào)用FUS接口完成

把密鑰寫到“安全”Flash區(qū)域,需要安全的操作環(huán)境

44bb6d76-be57-11eb-9e57-12bb97331649.png

用戶密鑰的寫入 (Key Provisioning)

可以通過用戶代碼完成,也可以通過CubeProgrammer的GUI或者命令行完成

寫入應(yīng)用密鑰的明文//simple key,需要安全的操作環(huán)境

寫入應(yīng)用密鑰的密文//encrypted key,無需安全的操作環(huán)境

基于AES-128 GCM

寫入用于解密encrypted key的密鑰的明文//master key,需要安全的操作環(huán)境

該操作在手冊中用“write”或“l(fā)oad”表示

用戶密鑰的寫入通過應(yīng)用代碼實現(xiàn)

參考例程:

STM32Cube_FW_WB_VxxxProjectsP-NUCLEO-WB55.NucleoApplicationsCKS

給CKS_param賦值

typedef PACKED_STRUCT{uint8_t KeyType;uint8_t KeySize;uint8_t KeyData[32 + 12];} SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t;SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t CKS_param;CKS_param.KeyType = …;CKS_param.KeySize = …;memcpy(CKS_param.KeyData, pKeySimple_128, 16

調(diào)用FUS服務(wù):SHCI_C2_FUS_StoreUsrKey

輸入:CKS_param結(jié)構(gòu)體

輸出:芯片為該密鑰分配的索引

SHCI_C2_FUS_StoreUsrKey (&CKS_param, &key_simple_128_idx );

用戶密鑰的寫入使用STM32CubeProgrammer GUI實現(xiàn)

STM32CubeProgrammer 從2.4版本開始支持

芯片切換到系統(tǒng) Bootloader 啟動運行DFU,

STM32CubeProgrammer 以USB方式連接芯片

步驟:選擇KEY文件 ——》 指定KEY類型 ——》 寫入KEY

注意:GUI界面沒有返回為該密鑰分配的索引,需要用戶自己記錄

應(yīng)用密鑰的裝載和使用

Load:AES1的密鑰裝載

SHCI_C2_FUS_LoadUsrKey (key_simple_128_idx)

該操作會把AES1密鑰寄存器配置成Secure

SAES1@SYSCFG_SIPCR

只能由運行在CM0+上的FUS來配置

運行在CM4上的用戶代碼可以讀取其狀態(tài)

安全狀態(tài)和AES1時鐘是否使能沒有關(guān)系

使用步驟

Step1:AES1模塊初始化

初始化結(jié)構(gòu)體的pKey,設(shè)置為空指針即可

使能AES1時鐘

Step2:密鑰裝載

要在AES1模塊disable1的時候 (EN=0)

Step3:使用AES1做加解密

hcryp1.Init.DataType = CRYP_DATATYPE_8B;hcryp1.Init.KeySize = CRYP_KEYSIZE_128B;hcryp1.Init.Algorithm = CRYP_AES_CBC;/* Key will be provided by CKS service */hcryp1.Init.pKey = NULL; hcryp1.Init.pInitVect = AESIV;HAL_CRYP_Init (&hcryp1);SHCI_C2_FUS_LoadUsrKey (key_simple_128_idx);HAL_CRYP_Encrypt(&hcryp1, Plaintext, size, EncryptedBuf, timeout)

應(yīng)用密鑰的使用

Lock:

SHCI_C2_FUS_LockUsrKey (key_simple_128_idx)

對某個key lock之后,將無法再對該key進行Load操作,再次Load該Key時FUS API返回錯誤代碼0xFF;但是不影響已經(jīng)在AES1密鑰寄存器中的key

對該key load的禁止操作,會一直生效直到下次系統(tǒng)復(fù)位

注意事項:關(guān)于后續(xù)更新

為了避免有效密鑰一直存在于AES1密鑰寄存器中,建議使用完畢后Load一個dummy key或者disable AES1

后續(xù)FUS版本(從 STM32CUbeWB1.11開始)會增加API:Unload

早期出廠芯片預(yù)裝的FUS版本較老,在FUS升級的時候,通過CSK存儲在芯片里的用戶key會被擦除

從FUS1.1.1.1或者FUS1.2.0開始,再做FUS升級,不會影響到已經(jīng)存在的用戶key應(yīng)用密鑰的使用

小結(jié)

使用CKS對AES密鑰進行保護,與傳統(tǒng)的直接將AES密鑰存儲在Flash中的做法有明顯的優(yōu)勢:

CKS存儲的密鑰數(shù)據(jù)無法通過調(diào)試端口獲取,已經(jīng)存儲的密鑰數(shù)據(jù),即使在RDP為0的情況下也不能通過調(diào)試端口訪問。

密鑰使用過程中應(yīng)用程序代碼雖然可以使用密鑰進行加解密操作,但是始終無法直接獲取密鑰數(shù)據(jù)本身,降低了軟件漏洞可能帶來的風險。

原文標題:信息安全專題 | 安全存儲(2)STM32WB的用戶密鑰存儲 (CKS)

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

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

    關(guān)注

    13

    文章

    4533

    瀏覽量

    87480

原文標題:信息安全專題 | 安全存儲(2)STM32WB的用戶密鑰存儲 (CKS)

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    根據(jù)Datasheet里cyT2B5L有1024位otp,全部都能用來存儲密鑰嗎?

    1)項目上有要求把密鑰存在安全模塊存儲區(qū)域的要求 2)根據(jù)Datasheet里cyT2B5L有1024位otp,全部都能用來存儲密鑰嗎?還是
    發(fā)表于 07-14 07:17

    凌科芯安國產(chǎn)安全MCU簡介

    安全MCU是指在傳統(tǒng)MCU基礎(chǔ),集成了硬件級安全功能模塊的芯片,專門用于應(yīng)對數(shù)據(jù)泄露、惡意攻擊、固件篡改等
    的頭像 發(fā)表于 06-04 15:28 ?450次閱讀

    MAX36051 DeepCover安全管理器,具有128字節(jié)無痕跡存儲器技術(shù)手冊

    DeepCover 嵌入式安全方案采用多重先進的物理安全機制保護敏感數(shù)據(jù),提供最高等級的密鑰存儲安全
    的頭像 發(fā)表于 05-13 11:15 ?243次閱讀
    MAX36051 DeepCover<b class='flag-5'>安全</b>管理器,具有128字節(jié)無痕跡<b class='flag-5'>存儲</b>器技術(shù)手冊

    凌科芯安推出新一代安全MCU芯片LKT6850

    安全MCU是在傳統(tǒng)MCU基礎(chǔ)增加了多種安全特性的芯片。硬件它集成了專門的
    的頭像 發(fā)表于 03-31 15:58 ?456次閱讀

    國芯科技MCU芯片榮獲ISO 26262 ASIL-D功能安全產(chǎn)品認證

    近日,國芯科技汽車電子CCFC30XX系列MCU芯片功能安全庫(SafetyLib)成功通過SGS通標標準技術(shù)服務(wù)(上海)有限公司(以下簡稱為“SGS”)ISO 26262 ASIL-D功能
    的頭像 發(fā)表于 03-26 17:16 ?750次閱讀

    中科芯CKS32F030K6T6 高性能32位RISC內(nèi)核MCU 程序兼容STM32F030K6T6

    。CKS32F030xx 系列包括三種不同的封裝,從 20 腳到 64 引腳不等的。根據(jù)選擇的器件,包含不同組合的外設(shè)。下面的內(nèi)容包含了這個產(chǎn)品系列所提供的全部外設(shè)的描述。 CKS32F030xx 系列包含
    發(fā)表于 03-05 16:23

    代碼分區(qū)的藝術(shù):雙區(qū)域架構(gòu)下的安全與性能平衡策略

    隔離的內(nèi)存部分的功能,防止未經(jīng)授權(quán)讀取或修改專有代碼。該功能通過將內(nèi)部存儲劃分為兩個獨立區(qū)域(區(qū)域一和區(qū)域二)并分別配置其信息來控制片資源的訪問權(quán)限。每個區(qū)域可設(shè)置獨立的128位解鎖
    的頭像 發(fā)表于 02-19 09:55 ?432次閱讀
    代碼分區(qū)的藝術(shù):雙區(qū)域架構(gòu)下的<b class='flag-5'>安全</b>與性能平衡策略

    電腦私有云存儲怎么用啊,電腦私有云存儲使用方法

    電腦私有云存儲怎么用啊,電腦私有云存儲使用方法 ? ? 在當今數(shù)字化時代,電腦私有云存儲為我們提供了一種
    的頭像 發(fā)表于 01-22 09:58 ?664次閱讀
    電腦私有云<b class='flag-5'>存儲</b>怎么用啊,電腦私有云<b class='flag-5'>存儲</b>的<b class='flag-5'>使用方法</b>

    STM32WB55RG開發(fā)(5)----監(jiān)測STM32WB連接狀態(tài)

    會討論為什么需要監(jiān)測連接狀態(tài),然后介紹STM32WB提供的相關(guān)工具和技術(shù)。隨后,會詳細解釋如何使用這些工具來實時跟蹤和管理連接狀態(tài),以及如何解讀和響應(yīng)不同的連接狀態(tài)事件。通過這些內(nèi)容,能夠更好地理解和利用STM32WB的無線連接
    的頭像 發(fā)表于 12-16 16:22 ?1470次閱讀
    <b class='flag-5'>STM32WB</b>55RG開發(fā)(5)----監(jiān)測<b class='flag-5'>STM32WB</b>連接狀態(tài)

    知行科技《基于仿真方法量化AEB系統(tǒng)功能安全閾值》入選智能網(wǎng)聯(lián)汽車功能安全典型案例

    近日,在第三十一屆中國汽車工程學(xué)會年會暨展覽會(SAECCE 2024),由中國汽車工程學(xué)會智能網(wǎng)聯(lián)汽車安全分會組織的“2024年智能網(wǎng)聯(lián)汽車功能安全應(yīng)用典型案例”評選結(jié)果正式公布。
    的頭像 發(fā)表于 11-28 17:52 ?1728次閱讀

    藍牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全

    標準,主要用于保護電子數(shù)據(jù)的安全。AES 支持128、192、和256位密鑰長度,其中AES-128是最常用的一種,它使用128位(16字節(jié))的密鑰進行加密和解密操作。AES屬于分組密碼,每次操作
    發(fā)表于 11-08 15:38

    國民技術(shù)N32 MCU通過IEC/EN/UL 60730功能安全認證

    近期,國民技術(shù)多個系列的N32MCU產(chǎn)品先后通過了全球領(lǐng)先的檢驗、鑒定、測試和認證機構(gòu)SGS的IEC/EN/UL60730功能安全測試認證,獲得SGS頒發(fā)的IEC/EN/UL60730認證證書,助力
    的頭像 發(fā)表于 10-25 08:07 ?1022次閱讀
    國民技術(shù)N32 <b class='flag-5'>MCU</b>通過IEC/EN/UL 60730<b class='flag-5'>功能</b><b class='flag-5'>安全</b>認證

    CW32L010安全低功耗MCU,樹立M0+產(chǎn)品行業(yè)新標桿!

    安全運行庫保護功能。 確保高訪問速度: 可確保指令的快速執(zhí)行,滿足實時性要求高的應(yīng)用場景。 易于升級迭代: 在同等成本下,擴大存儲容量,為用戶提供同級最寬裕的程序和非易失
    發(fā)表于 10-09 10:08

    【GD32 MCU 入門教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的頭像 發(fā)表于 08-25 09:24 ?1382次閱讀
    【GD32 <b class='flag-5'>MCU</b> 入門教程】GD32 <b class='flag-5'>MCU</b> FPU <b class='flag-5'>使用方法</b>

    ST NPI 專區(qū) | 新架產(chǎn)品【STM32WB09KEV7TR】

    STM32WB09xx32位MCU無線系列:Bluetooth低功耗5.4STM32WB09xx是輕量級、高性價比Bluetooth低功耗5.4應(yīng)用的理想解決方案產(chǎn)品說明STM32WB
    的頭像 發(fā)表于 08-13 08:27 ?649次閱讀
    ST NPI 專區(qū) | 新<b class='flag-5'>上</b>架產(chǎn)品【<b class='flag-5'>STM32WB</b>09KEV7TR】