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

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

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

安全存儲(chǔ)密鑰是什么

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-11-21 11:37 ? 次閱讀

安全存儲(chǔ)密鑰

安全存儲(chǔ)密鑰(Secure Storage Key, SSK)在每臺(tái)設(shè)備中的值都不同。

OP-TEE啟動(dòng)時(shí)會(huì)使用 芯片ID和HUK經(jīng)HMAC算法計(jì)算來獲得該值 ,并將SSK的值保存在結(jié)構(gòu)體變量tee_fs_ssk的密鑰成員中,以備生成其他密鑰使用。

工廠生 產(chǎn)時(shí)會(huì)將HUK寫入到OTP/efuse中 ,且正常世界狀態(tài)無法讀取到HUK的值,而芯片ID在芯片出廠后就會(huì)被寫入到芯片中。

OP-TEE啟動(dòng)過程中會(huì)執(zhí)行tee_fs_init_key_manager函數(shù),該函數(shù)使用SSK =HMAC(HUK, message)的方式來生成SSK。該函數(shù)的內(nèi)容如下:

static TEE_Result tee_fs_init_key_manager(void)
        {
            int res = TEE_SUCCESS;
            struct tee_hw_unique_key huk;
            uint8_t chip_id[TEE_FS_KM_CHIP_ID_LENGTH];
            uint8_t message[sizeof(chip_id) + sizeof(string_for_ssk_gen)];
            /* SSK的產(chǎn)生:
              *      SSK = HMAC(HUK, message)
              *      message := concatenate(chip_id, static string)
              * */
            /* 獲取HUK的值(該接口的實(shí)現(xiàn)與平臺(tái)有關(guān),不同的芯片具有不同讀取HUK值的方式)*/
            tee_otp_get_hw_unique_key(&huk);
            /*  獲取芯片ID的值(不同的芯片具有不同的讀取芯片ID值的方式)*/
            tee_otp_get_die_id(chip_id, sizeof(chip_id));
            /* 將chip id + string_for_ssk_gen連接后的值保存到message中,string_for_ssk_gen
            是一個(gè)靜態(tài)的字符串,該值被寫死在代碼中 */
            memcpy(message, chip_id, sizeof(chip_id));
            memcpy(message + sizeof(chip_id), string_for_ssk_gen,
                    sizeof(string_for_ssk_gen));
            /* 使用huk的值對(duì)message的內(nèi)容做HMAC運(yùn)算,將獲取到的數(shù)據(jù)作為SSK保存到tee_fs_ssk變
            量的key成員中 */
            res = do_hmac(tee_fs_ssk.key, sizeof(tee_fs_ssk.key),
                    huk.data, sizeof(huk.data),
                    message, sizeof(message));
            /* 標(biāo)記ssk已經(jīng)生產(chǎn) */
            if (res == TEE_SUCCESS)
                tee_fs_ssk.is_init = 1;
            return res;
        }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419614
  • 密鑰
    +關(guān)注

    關(guān)注

    1

    文章

    136

    瀏覽量

    19708
  • TEE
    TEE
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    10232
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CysecureTools如何直接訪問外部存儲(chǔ)設(shè)備內(nèi)的密鑰呢?

    顯然不符合安全標(biāo)準(zhǔn)。 那么,如標(biāo)題所示,CysecureTools應(yīng)該如何直接訪問外部存儲(chǔ)設(shè)備內(nèi)的密鑰呢?\"
    發(fā)表于 01-31 08:08

    請(qǐng)問如何才能安全存儲(chǔ)加密密鑰

    大家好!我用的是PIC32MZ2048EFM144。我需要安全存儲(chǔ)加密密鑰。我知道這個(gè)PIC有一個(gè)密碼引擎,但是顯然,它不像PIC24密碼引擎,它不存儲(chǔ)
    發(fā)表于 06-13 08:24

    為什么PIC32MZ不支持密鑰存儲(chǔ)?

    大家好,根據(jù)本文:http://www..hip.com/.-centers/.-security/.-./.-crypto-enginePIC24FJ密碼引擎支持編程安全密鑰存儲(chǔ),而
    發(fā)表于 10-28 10:40

    【HarmonyOS】安全指南

    密鑰結(jié)合業(yè)務(wù)上下文衍生出多種密鑰,給應(yīng)用提供密鑰管理和數(shù)據(jù)加解密相關(guān)的服務(wù);設(shè)備核心密鑰生命周期不離開可信環(huán)境??尚怒h(huán)境同樣可提供身份認(rèn)證、系統(tǒng)狀態(tài)監(jiān)控、數(shù)據(jù)
    發(fā)表于 09-16 17:34

    為什么STSAFE上沒有存儲(chǔ)密鑰1和2的示例項(xiàng)目?那是安全問題嗎?

    密鑰存儲(chǔ)安全區(qū)域中。這意味著 :如果我激活 RDP lvl 2,這些密鑰是不可變的并且 永遠(yuǎn)無法更新如果我激活 RDP lvl 1,我可以批量擦除閃存并使用新
    發(fā)表于 12-19 07:38

    為了使用SBSFU或自定義安全引導(dǎo)加載程序,將BHK密鑰和RHUK密鑰存儲(chǔ)在stm32u585中的什么位置?

    BHK 和 RHUK 密鑰的正確位置在哪里?如果我的 SBSFU 讀數(shù)是正確的,則 KEY 僅存儲(chǔ)在內(nèi)部安全閃存 (0x0C000000) 中,RDP 用于限制從 DEBUG 端口 (SWD/JTAG) 訪問閃存。3)如果是,
    發(fā)表于 02-02 06:46

    MCUBoot寫入閃存之前將AES密鑰存儲(chǔ)在哪里?

    程序會(huì)通過藍(lán)牙將.sb2文件下載到sdcard,然后booloader會(huì)讀取0xB000地址的AES密鑰,解密sdcard中的文件,最終將程序?qū)懭雈lash 0xA000。我想知道在寫入閃存之前將 AES 密鑰存儲(chǔ)在哪里,我應(yīng)該
    發(fā)表于 03-23 08:47

    Arm密鑰管理單元規(guī)范

    Arm?密鑰管理單元(KMU)是一種集中的密鑰管理架構(gòu),用于存儲(chǔ)對(duì)稱密鑰材料(資產(chǎn))。存儲(chǔ)在KMU中的
    發(fā)表于 08-09 06:43

    安全組播密鑰管理方案研究

    隨著組播應(yīng)用的不斷發(fā)展,其安全性尤其是組播密鑰管理成為熱點(diǎn)問題。本文對(duì)基于邏輯密鑰樹的集中控制方案進(jìn)行了分析和改進(jìn)。改進(jìn)方案在不增加組播成員密鑰
    發(fā)表于 08-18 09:02 ?8次下載

    實(shí)現(xiàn)密鑰的物理安全

    實(shí)現(xiàn)密鑰的物理安全保密通信的實(shí)質(zhì)是保護(hù)密鑰,較長的在一起程度上能夠防止通過強(qiáng)硬的計(jì)算技術(shù)破解代碼,但這種保護(hù)措施無法滿足同樣重要的物理安全性的
    發(fā)表于 04-10 09:50 ?9次下載

    網(wǎng)絡(luò)安全密鑰是什么_網(wǎng)絡(luò)安全密鑰怎么修改

    本文開始闡述了網(wǎng)絡(luò)安全密鑰的定義,其次闡述了如何設(shè)置無線網(wǎng)絡(luò)的安全密鑰以及無線網(wǎng)絡(luò)的加密方法,最后闡述了網(wǎng)絡(luò)安全
    發(fā)表于 03-14 10:29 ?14.1w次閱讀

    如何更新存儲(chǔ)庫簽名密鑰

      為了最好地確保 RPM 和 Debian 軟件包存儲(chǔ)庫的安全性和可靠性, NVIDIA 從 2022 年 4 月 27 日開始更新并輪換apt、dnf/yum和zypper軟件包管理器使用的簽名密鑰。
    的頭像 發(fā)表于 05-07 10:50 ?1420次閱讀

    LKT(LCS)安全芯片RSA密鑰存儲(chǔ)格式說明

    RSA算法目前常用密鑰長度有RSA512、RSA1024、RSA2048,存儲(chǔ)的參數(shù)長度也會(huì)存在變化,LKT系列安全芯片存儲(chǔ)相應(yīng)參數(shù)時(shí)還需要在參數(shù)內(nèi)容之前加入?yún)?shù)標(biāo)識(shí)符、參數(shù)內(nèi)容長度,
    的頭像 發(fā)表于 02-17 13:52 ?1166次閱讀

    ATSHA204A國產(chǎn)替代新選擇:LCSHA204加密芯片介紹

    ATSHA204A是一款用于固件版權(quán)保護(hù),防抄板仿克隆的加密芯片。包含多達(dá)16個(gè)密鑰存儲(chǔ)區(qū)用于安全存儲(chǔ)密鑰。
    的頭像 發(fā)表于 09-15 10:15 ?1450次閱讀
    ATSHA204A國產(chǎn)替代新選擇:LCSHA204加密芯片介紹

    存儲(chǔ)密鑰與文件加密密鑰介紹

    數(shù)據(jù)。 文件加密密鑰 文件加密密鑰(File Encryption Key, FEK)是安全存儲(chǔ)功能用于對(duì)數(shù)據(jù)進(jìn)行加密時(shí)使用的AES密鑰,該
    的頭像 發(fā)表于 11-21 11:43 ?1129次閱讀
    <b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>密鑰</b>與文件加密<b class='flag-5'>密鑰</b>介紹