在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

STM32WB雙核架構和雙核間的隔離機制

調試端口訪問:

出廠的芯片缺省關閉CM0+一側的調試端口訪問,即使在RDP0的狀態下也只能調試CM4內核。

Option Byte

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

片上Flash:

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

片上SRAM

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

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

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

CKS (Customer Key Storage)

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

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

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

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

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

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

用戶密鑰存儲

用戶密鑰存儲在“安全”Flash區域,用戶代碼和調試端口不可訪問

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

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

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

把密鑰寫到“安全”Flash區域,需要安全的操作環境

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

用戶密鑰的寫入 (Key Provisioning)

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

寫入應用密鑰的明文//simple key,需要安全的操作環境

寫入應用密鑰的密文//encrypted key,無需安全的操作環境

基于AES-128 GCM

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

該操作在手冊中用“write”或“load”表示

用戶密鑰的寫入通過應用代碼實現

參考例程:

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

調用FUS服務:SHCI_C2_FUS_StoreUsrKey

輸入:CKS_param結構體

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

SHCI_C2_FUS_StoreUsrKey (&CKS_param, &key_simple_128_idx );

用戶密鑰的寫入使用STM32CubeProgrammer GUI實現

STM32CubeProgrammer 從2.4版本開始支持

芯片切換到系統 Bootloader 啟動運行DFU,

STM32CubeProgrammer 以USB方式連接芯片

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

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

應用密鑰的裝載和使用

Load:AES1的密鑰裝載

SHCI_C2_FUS_LoadUsrKey (key_simple_128_idx)

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

SAES1@SYSCFG_SIPCR

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

運行在CM4上的用戶代碼可以讀取其狀態

安全狀態和AES1時鐘是否使能沒有關系

使用步驟

Step1:AES1模塊初始化

初始化結構體的pKey,設置為空指針即可

使能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)

應用密鑰的使用

Lock:

SHCI_C2_FUS_LockUsrKey (key_simple_128_idx)

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

對該key load的禁止操作,會一直生效直到下次系統復位

注意事項:關于后續更新

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

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

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

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

小結

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

CKS存儲的密鑰數據無法通過調試端口獲取,已經存儲的密鑰數據,即使在RDP為0的情況下也不能通過調試端口訪問。

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

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

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

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4529

    瀏覽量

    87374

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    凌科芯安國產安全MCU簡介

    安全MCU是指在傳統MCU基礎,集成了硬件級安全功能模塊的芯片,專門用于應對數據泄露、惡意攻擊、固件篡改等
    的頭像 發表于 06-04 15:28 ?423次閱讀

    MAX36051 DeepCover安全管理器,具有128字節無痕跡存儲器技術手冊

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

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

    安全MCU是在傳統MCU基礎增加了多種安全特性的芯片。硬件它集成了專門的
    的頭像 發表于 03-31 15:58 ?443次閱讀

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

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

    中科芯CKS32F030K6T6 高性能32位RISC內核MCU 程序兼容STM32F030K6T6

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

    代碼分區的藝術:雙區域架構下的安全與性能平衡策略

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

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

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

    STM32WB55RG開發(5)----監測STM32WB連接狀態

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

    知行科技《基于仿真方法量化AEB系統功能安全閾值》入選智能網聯汽車功能安全典型案例

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

    藍牙AES+RNG如何保障物聯網信息安全

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

    CW32L010安全低功耗MCU,樹立M0+產品行業新標桿!

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

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

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

    ST NPI 專區 | 新架產品【STM32WB09KEV7TR】

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

    WPS完成后,主機應用程序如何從ESP讀取WPA安全密鑰?

    WPS 完成后,主機應用程序如何從 ESP 讀取 WPA 安全密鑰? AT WPS 命令似乎將結果存儲在閃存中,以便 ESP 下次將連接到同一 AP。 ESP是否可以選擇不將其存儲
    發表于 07-16 08:28

    ESP是否可以接受ASCII十六進制的安全密鑰來連接到AP,而不是密碼?

    ESP 是否可以接受 ASCII 十六進制的安全密鑰來連接到 AP,而不是密碼? 如果沒有,可以將其添加到固件中嗎?
    發表于 07-16 06:29
    主站蜘蛛池模板: 狠狠做深爱婷婷久久一区 | 欧美激情xxxx性bbbb | 台湾一级毛片永久免费 | 亚洲精品视频在线 | 在线播放黄色 | 青草91| 亚洲黄色小说网站 | 黄色录像视频网站 | 欧洲性开放大片免费观看视频 | 美日韩免费视频 | 国产亚洲欧美成人久久片 | 正在播放欧美 | 天天干天天插天天射 | 35qao强力打造免费上线高清 | 97影院午夜午夜伦不卡 | 日韩毛片高清免费 | 51xtv成人影院| 国产精品成人一区二区三区 | 一级黄色片在线看 | 玖玖激情 | 欧美三级色 | 中文天堂在线观看 | 日本三级黄在线观看 | 欧洲成人r片在线观看 | 伊人久久综合网亚洲 | 久久99热精品免费观看无卡顿 | 欧美性黄色 | 天天干天天草天天 | 四虎影视在线影院4hu | 天天操天天干天天 | 韩国在线a免费观看网站 | 日本在线一级 | 欧美 亚洲 国产 精品有声 | 久久夜色精品国产亚洲噜噜 | 日韩亚 | 色视频免费 | 日本在线网站 | 亚洲天堂电影在线观看 | 中文字幕精品一区二区2021年 | 一区二区三区在线观看视频 | 国产成人精品高清在线 |