zoukankan      html  css  js  c++  java
  • RT600之PUF

    PUF是恩智浦LPC Niobe4,RT600新推出的功能。它是一个带SRAM用于管理秘钥的硬件模块。
    目的是为了让秘钥更加安全

    • 具体内容如下:

      1. PUF简介
      2. 如何使用PUF

    PUF简介

    • 传统的MCU,如果加密一段数据,需要将对应的解密key存放到固定的位置。解密的时候,调用该key进行数据的解密。传统的方式有个弊端,就是hake可以获取到key,不能保证加密数据的安全性。
    • 恩智浦新推出的LPC系列的芯片(Niobe4,RT600)增加了PUF模块。用于对秘钥的保护管理。使用这个模块,我们存放到固定位置的不是明文key,而是经过PUF处理后的key-store。

    -如下是PUF的对key的处理

    • key store的结构图(RT600)

    PUF使用(Niobe4)

    • 生成key store

      1. Enroll生成activation code
        blhost.exe -p com25 -- key-provisioning enroll
      2. set-key生成key store
        blhost.exe -p com25 -- key-provisioning set_key 7 16
        生成prince region0的key store
        blhost.exe -p com25 -- key-provisioning set_key 8 16
        生成prince region1的key store
        blhost.exe -p com25 -- key-provisioning set_key 9 16
        生成prince region2的key store
        blhost.exe -p com25 -- key-provisioning set_user_key 3 sbkek.bin
        根据提供的sbkek.bin生成sb kek key store
      3. get-key读取生成的key store
        blhost.exe -p com25 -- key-provisioning read_key_store key_store.bin
        将生成的key store读取出来。前1200 bytes是header(0x95959595)+diascardtime+activation code,后面跟着的就是key store(header(0x59595959)+key code)
    • key store的使用

      1. 将生成的key store存到固定的位置
        blhost.exe -p com25 -- key-provisioning write_key_store key_store2.bin
        blhost.exe -p com25 -- key-provisioning write_key_nonvolatile 0
        执行完命令后,我们会发现key store已经写入FFR key store中
      2. ROM启动时,会自动调用key store,re-construct出key。对数据进行解密
        如果activation code存在于key store中,ROM启动时会init PUF,否则不init。
        在activation存在的前提下,如果存在key code。则根据不同的key code,ROM有如下动作:
        • SBKEK key code,只有使用了receive-sb-file命令后,PUF对SBKEK key code解密。然后执行
        • Prince key code,只要存在,ROM立即解密
        • UDS key code,只有secure boot的时候才会执行
  • 相关阅读:
    关于Servelet在Tomcat中执行的原理
    类变量被final修饰编译时结果确定变为宏
    本地无法连接远程服务器(Host is not allowed to connect to this MySQL server)解决办法(Windows)
    leetcode_227. 基本计算器 II
    leetcode_150. 逆波兰表达式求值
    leetcode_145. 二叉树的后序遍历
    leetcode_144. 二叉树的前序遍历
    leetcode_94. 二叉树的中序遍历
    leetcode_71. 简化路径
    1598. 文件夹操作日志搜集器
  • 原文地址:https://www.cnblogs.com/richard-xiong/p/9908849.html
Copyright © 2011-2022 走看看