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;
        }
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50770

    浏览量

    423383
  • 密钥
    +关注

    关注

    1

    文章

    138

    浏览量

    19755
  • TEE
    TEE
    +关注

    关注

    0

    文章

    29

    浏览量

    10258
收藏 人收藏

    评论

    相关推荐

    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

    【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次下载

    实现密钥的物理安全

    实现密钥的物理安全保密通信的实质是保护密钥,较长的在一起程度上能够防止通过强硬的计算威廉希尔官方网站 破解代码,但这种保护措施无法满足同样重要的物理安全性的
    发表于 04-10 09:50 9次下载

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

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

    如何更新存储库签名密钥

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

    LKT(LCS)安全芯片RSA密钥存储格式说明

    RSA算法目前常用密钥长度有RSA512、RSA1024、RSA2048,存储的参数长度也会存在变化,LKT系列安全芯片存储相应参数时还需要在参数内容之前加入参数标识符、参数内容长度,
    的头像 发表于 02-17 13:52 1295次阅读

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

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

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

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