0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安全存储密钥是什么

麦辣鸡腿堡 来源:TrustZone 作者:Hcoco 2023-11-21 11:37 次阅读

安全存储密钥

安全存储密钥(Secure Storage Key, SSK)在每台设备中的值都不同。

OP-TEE启动时会使用 芯片ID和HUK经HMAC算法计算来获得该值 ,并将SSK的值保存在结构体变量tee_fs_ssk的密钥成员中,以备生成其他密钥使用。

工厂生 产时会将HUK写入到OTP/efuse中 ,且正常世界状态无法读取到HUK的值,而芯片ID在芯片出厂后就会被写入到芯片中。

OP-TEE启动过程中会执行tee_fs_init_key_manager函数,该函数使用SSK =HMAC(HUK, message)的方式来生成SSK。该函数的内容如下:

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的产生:
              *      SSK = HMAC(HUK, message)
              *      message := concatenate(chip_id, static string)
              * */
            /* 获取HUK的值(该接口的实现与平台有关,不同的芯片具有不同读取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
            是一个静态的字符串,该值被写死在代码中 */
            memcpy(message, chip_id, sizeof(chip_id));
            memcpy(message + sizeof(chip_id), string_for_ssk_gen,
                    sizeof(string_for_ssk_gen));
            /* 使用huk的值对message的内容做HMAC运算,将获取到的数据作为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));
            /* 标记ssk已经生产 */
            if (res == TEE_SUCCESS)
                tee_fs_ssk.is_init = 1;
            return res;
        }
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409133
  • 密钥
    +关注

    关注

    1

    文章

    119

    浏览量

    19588
  • TEE
    TEE
    +关注

    关注

    0

    文章

    28

    浏览量

    10146
收藏 人收藏

    评论

    相关推荐

    CysecureTools如何直接访问外部存储设备内的密钥呢?

    显然不符合安全标准。 那么,如标题所示,CysecureTools应该如何直接访问外部存储设备内的密钥呢?\"
    发表于 01-31 08:08

    请问如何才能安全存储加密密钥

    大家好!我用的是PIC32MZ2048EFM144。我需要安全存储加密密钥。我知道这个PIC有一个密码引擎,但是显然,它不像PIC24密码引擎,它不存储
    发表于 06-13 08:24

    ACR1256U-R9读写器如何实现密钥存储安全访问控制

    `ACR1256U-R9读写器如何实现密钥存储安全访问控制ACR1256U-R9读写器支持USB通讯方式,易于与电脑连接,支持ISO 14443类型A和类型B,MF和Felica,是公交交通,门禁
    发表于 08-03 11:33

    为什么PIC32MZ不支持密钥存储

    大家好,根据本文:http://www..hip.com/.-centers/.-security/.-./.-crypto-enginePIC24FJ密码引擎支持编程安全密钥存储,而
    发表于 10-28 10:40

    【HarmonyOS】安全指南

    密钥结合业务上下文衍生出多种密钥,给应用提供密钥管理和数据加解密相关的服务;设备核心密钥生命周期不离开可信环境。可信环境同样可提供身份认证、系统状态监控、数据
    发表于 09-16 17:34

    为什么STSAFE上没有存储密钥1和2的示例项目?那是安全问题吗?

    密钥存储安全区域中。这意味着 :如果我激活 RDP lvl 2,这些密钥是不可变的并且 永远无法更新如果我激活 RDP lvl 1,我可以批量擦除闪存并使用新
    发表于 12-19 07:38

    为了使用SBSFU或自定义安全引导加载程序,将BHK密钥和RHUK密钥存储在stm32u585中的什么位置?

    BHK 和 RHUK 密钥的正确位置在哪里?如果我的 SBSFU 读数是正确的,则 KEY 仅存储在内部安全闪存 (0x0C000000) 中,RDP 用于限制从 DEBUG 端口 (SWD/JTAG) 访问闪存。3)如果是,
    发表于 02-02 06:46

    MCUBoot写入闪存之前将AES密钥存储在哪里?

    程序会通过蓝牙将.sb2文件下载到sdcard,然后booloader会读取0xB000地址的AES密钥,解密sdcard中的文件,最终将程序写入flash 0xA000。我想知道在写入闪存之前将 AES 密钥存储在哪里,我应该
    发表于 03-23 08:47

    Arm密钥管理单元规范

    Arm®密钥管理单元(KMU)是一种集中的密钥管理架构,用于存储对称密钥材料(资产)。存储在KMU中的
    发表于 08-09 06:43

    安全组播密钥管理方案研究

    随着组播应用的不断发展,其安全性尤其是组播密钥管理成为热点问题。本文对基于逻辑密钥树的集中控制方案进行了分析和改进。改进方案在不增加组播成员密钥
    发表于 08-18 09:02 8次下载

    物理层安全密钥容量分析

    随着移动通信应用领域的拓展,安全问题逐渐成为制约其发展的主要瓶颈之一。现有移动通信安全依靠高层密钥加密机制,但是在资源受限的新兴网络(如物联网等)中,高层密钥的分发和管理存在一定的
    发表于 02-07 10:50 0次下载

    网络安全密钥是什么_网络安全密钥怎么修改

    本文开始阐述了网络安全密钥的定义,其次阐述了如何设置无线网络的安全密钥以及无线网络的加密方法,最后阐述了网络安全
    发表于 03-14 10:29 13.9w次阅读

    如何更新存储库签名密钥

      为了最好地确保 RPM 和 Debian 软件包存储库的安全性和可靠性, NVIDIA 从 2022 年 4 月 27 日开始更新并轮换apt、dnf/yum和zypper软件包管理器使用的签名密钥
    的头像 发表于 05-07 10:50 1271次阅读

    ATSHA204A国产替代新选择:LCSHA204加密芯片介绍

    ATSHA204A是一款用于固件版权保护,防抄板仿克隆的加密芯片。包含多达16个密钥存储区用于安全存储密钥
    的头像 发表于 09-15 10:15 870次阅读
    ATSHA204A国产替代新选择:LCSHA204加密芯片介绍

    存储密钥与文件加密密钥介绍

    数据。 文件加密密钥 文件加密密钥(File Encryption Key, FEK)是安全存储功能用于对数据进行加密时使用的AES密钥,该
    的头像 发表于 11-21 11:43 450次阅读
    <b class='flag-5'>存储</b><b class='flag-5'>密钥</b>与文件加密<b class='flag-5'>密钥</b>介绍