当前位置: 首页 > news >正文

TPM 2.0实例探索1

1. 获取用户名

命令及结果如下所示:

$ whoami
ph

2. 获取设备序列号(串号)

命令及结果如下所示:

$ sudo dmidecode | grep "Serial Number" | head -n 1Serial Number: MP260S48

3. 将用户名和设备序列号放入到一个文件中

文件名如key_info.dat。具体步骤略。

4. 通过TPM生成哈希值

通过tpm2_hash命令针对文件生成哈希值。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_hash -C e -g sha256 -o hash.bin -t ticket.bin key_info.dat$ ls
hash.bin  key_info.sh  key_info.dat  ticket.bin

5. 加载外部密钥到TPM中

通过tpm2_loadexternal命令以AES密钥形式加载生成的外部密钥(即上一步中的hash.bin)到TPM中。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_loadexternal -C o -G aes -r hash.bin -c key.ctx
WARNING:esys:src/tss2-esys/api/Esys_LoadExternal.c:314:Esys_LoadExternal_Finish() Received TPM Error 
ERROR:esys:src/tss2-esys/api/Esys_LoadExternal.c:108:Esys_LoadExternal() Esys Finish ErrorCode (0x000003c5) 
ERROR: Esys_LoadExternal(0x3C5) - tpm:parameter(3):hierarchy is not enabled or is not correct for the use
ERROR: Unable to run /usr/local/bin/tpm2_loadexternal

可以看到,出现了错误。具体原因参见:

tpm2-tools/tpm2_loadexternal.1.md at master · tpm2-software/tpm2-tools · GitHub

中的“NOTES”:

NOTES

  • If the hierarchy is null or the name hashing algorithm is null, tickets produced using the object will be NULL.

  • If the private portion of an object is specified, the hierarchy must be null or the TPM will reject loading it.

因此,将参数由“-C o”改为“-C n”。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_loadexternal -C n -G aes -r hash.bin -c key.ctx
name: 000bd13e6f08d050bf1d0b1ba1396698e719518a8d3a6550f2b2f7deb32abf7408f7

6. 生成明文文件

通过命令生成一个明文文件。如下举例:

$ echo "plain text" > message.dat
$ cat message.dat 
plain text

7. 加密

通过tpm2_encryptdecrypt命令、利用步骤5中生成的AES密钥key.ctx对步骤6中的明文文件进行加密。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_encryptdecrypt -c key.ctx -o message.enc message.dat
WARN: Using a weak IV, try specifying an IV
$ sudo cat message.enc
���*9D�wA

8. 解密

通过tpm2_encryptdecrypt命令、利用步骤5中生成的AES密钥key.ctx对步骤7中的密文文件进行解密。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_encryptdecrypt -d -c key.ctx -o message.dec message.enc
WARN: Using a weak IV, try specifying an IV
$ sudo cat message.dec 
plain text

9. 将密钥持久保存

通过tpm2_evictcontrol命令,将以上AES密钥从易失性空间移存到非易失性空间中。命令及结果如下所示:

$ sudo /usr/local/bin/tpm2_evictcontrol -C o -c key.ctx 0x81010002
WARNING:esys:src/tss2-esys/api/Esys_EvictControl.c:330:Esys_EvictControl_Finish() Received TPM Error 
ERROR:esys:src/tss2-esys/api/Esys_EvictControl.c:114:Esys_EvictControl() Esys Finish ErrorCode (0x00000282) 
ERROR: Esys_EvictControl(0x282) - tpm:handle(2):inconsistent attributes
ERROR: Unable to run /usr/local/bin/tpm2_evictcontrol

相关文章:

TPM 2.0实例探索1

1. 获取用户名 命令及结果如下所示: $ whoami ph2. 获取设备序列号(串号) 命令及结果如下所示: $ sudo dmidecode | grep "Serial Number" | head -n 1Serial Number: MP260S483. 将用户名和设备序列号放入到一个文…...

buu [BJDCTF2020]signin 1

题目描述: 题目分析: 打开发现是16 进制数(我也不知道我是怎么发现的,先是尝试了md5和rot-n,发现都不行,然后参考大佬的才知道是16进制)使用 在线16进制转字符串 便能得到 flag但我如果不想用线上工具&…...

Storage

WebStorage主要提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式: localStorage:本地存储,提供的是一种永久性的存储方法,在关闭掉网页重新打开时,存储的内容依然保留;…...

CAS底层原理及ABA问题

一、案例CAS是Java中Unsafe类里面的一个方法,它的全称是叫CompareAndSwap比较并交换的一个意思,它的主要功能是能够去保证在多线程的环境下对于共享变量修改的一个原子性。例如,比如说像这样一个场景,有一个成员变量state&#xf…...

华为OD机试真题Python实现【单词反转】真题+解题思路+代码(20222023)

题目 输入一个英文文章片段, 翻转指定区域的单词顺序, 标点符号和普通字母一样处理, 例如输入字符串 I am a developer. [0,3] 则输出 developer. a am I 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 输入 使用换行隔开 3 个参数 第一…...

嵌入式linux驱动学习-用cdev代替register_chrdev()

​上回说到字符设备驱动程序的注册与销毁register_chrdev()和unregister_chrdev()这是有缺陷的。 嵌入式lnux驱动学习-2.一个驱动程序的流程 现在用另外一个更好的方法代替,我们先来看看register_chrdev()实际上是调用了 __register_chrdev(major, 0, 256, name,…...

技术更新!10个MySQL性能调优技巧

MySQL是世界上使用最广泛的开源数据库,它在业界的受欢迎程度让其他数据库望尘莫及。它是一个关系型数据库管理系统,多年来依然是应用程序的核心。在过去几年里,MySQL有一些重要发展。因此,整理更新10个MySQL性能调优技巧。 模式设…...

ICLR 2023|VLDet:从图像-文本对中学习区域-词语对齐的开放词汇式目标检测

原文链接:https://www.techbeat.net/article-info?id4614&isPreview1 作者:林闯 目标检测任务在AI工业界具有非常广泛的应用,但由于数据获取和标注的昂贵,检测的目标一直被限制在预先设定好的有限类别上。而在学术界&#xf…...

如何效率搭建企业流程系统?试试低代码平台吧

编者按:本文介绍了一款可私有化部署的低代码平台,可用于搭建团队流程管理体系,并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计,集成能力,流程审批,流程调试天翎是国内最早从事快速开发平台研发…...

嵌入式开发:C++在深度嵌入式系统中的应用

深度嵌入式系统通常在C语言中实现。为什么会这样?这样的系统是否也能从C中获益?嵌入式开发人员在将广泛、高效的深度嵌入式代码库从C转换为C方面的实践经验的贡献。嵌入式和深度嵌入式系统通常用C而不是C实现。软件开发人员必须放弃C作为强类型系统、模板元编程(TMP)和面向对…...

快鲸scrm发布快递行业私域运营解决方案

现如今,快递行业竞争格局日益激烈,前有“四通一达”等传统快递企业,后有自带互联网基因、绑定电商流量新贵快递企业,如菜鸟、京东等。在这一背景下,很多快递企业开启了增长破局之旅,他们纷纷搭建起私域运营…...

【蓝桥杯集训·每日一题】AcWing 1497. 树的遍历

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴递归一、题目 1、原题链接 1497. 树的遍历 2、题目描述 一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的 …...

详解matplotlib的color配置

详解matplotlib的color配置 Matplotlib可识别的color格式 格式举例RGB或RGBA,由[0, 1]之间的浮点数组成的元组,分别代表红色、绿色、蓝色和透明度(0.1, 0.2, 0.5), (0.1, 0.2, 0.5, 0.3不区分大小写的十六进制RGB或RGBA字符串。‘#0f0f0f’, ‘#0f0f0f…...

Oracle删除表数据的三种方式

简介 oracle数据库mysql数据库都是如此 drop命令>truncate命令>delete命令,它们的执行方式、效率和结果各有不同。还是万年的student 学生表 自己可以建个尝试这玩一下。 drop命令 语句: drop table 表名; 理由:1、用drop删除表数据&…...

第 16 章_多版本并发控制

第 16 章_多版本并发控制 1. 什么是MVCC MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作…...

五种 IO 模型

文章目录操作系统和内存内核空间和用户空间应用程序的内核态和用户态网络 IO 和磁盘 IO简易的网络通信流程阻塞和非阻塞阻塞 IO 模型非阻塞 IO 模型IO 复用模型SelectPollEpoll小结信号驱动 IO 模型异步 IO 模型五种 IO 模型的对比IO 模型里的同步和异步5种 IO 模型分别是&…...

34-Golang中的结构体!!!

Golang中的结构体结构体和结构体变量(实例)的区别和联系结构体变量(实例)在内存中的布局如何声明结构体字段/属性注意事项和细节说明创建结构体实例的四种方式结构体使用细节结构体和结构体变量(实例)的区别和联系 1.结构体是自定义的数据类型,代表一类事物2.结构体…...

这6个视频剪辑素材库,你一定要知道~

推荐5个免费商用视频素材网站,建议收藏哦! 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 网站素材量很大,有设计、图片、音频、视频等超多素材,大部分都能免费下载。视频素材都很高清,有自然、人物、科技、农业…...

RocketMQ WIN11 搭建

去官方下载 https://rocketmq.apache.org/zh/download/ 下载,博主下载的是 4.6.0 的版本,选择Binary版本 拓展 Source 下载:需要编译 Binary 下载:不需要编译 解压缩,运行 先解压缩环境变量中添加rocketMQ文件夹路…...

iPhone更换电池和屏幕后提醒非原厂配件的操作办法

---开局一张图,内容全靠编系列! 【图】 自从在iPhone系统iOS13开始支持原厂配件检测后,可以说苹果也动起了维修站商家利益的这块蛋糕。道理自然简单,卷嘛!全球汽车行业也不是靠卖新车才赚钱的,各种交通事故…...

艾尔登法环帧率解锁终极指南:告别卡顿,畅享丝滑游戏体验

艾尔登法环帧率解锁终极指南:告别卡顿,畅享丝滑游戏体验 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_m…...

混合求解器:用神经网络增强传统微分方程数值方法

1. 项目概述:当数值方法遇到机器学习在科学计算和工程仿真领域,求解常微分方程(ODE)和偏微分方程(PDE)是绕不开的核心任务。无论是模拟电路中的电流变化、预测天气系统的演变,还是分析机械结构的…...

UOS系统下WPS卸载不干净?手把手教你用命令行精准清理(附dpkg/apt组合拳)

UOS系统下WPS卸载不干净?手把手教你用命令行精准清理 在UOS系统日常使用中,WPS Office作为常用办公软件,有时因版本更新或功能调整需要彻底卸载。但不少用户发现,通过图形界面或简单命令卸载后,系统中仍残留配置文件、…...

从Gamma函数到泊松分布:一个概率论中的含参量积分实用案例解析

Gamma函数与泊松分布:概率论中的数学之美 在数据科学和机器学习的实践中,概率分布构成了建模的基石。当我们深入探究这些分布背后的数学原理时,Gamma函数以其优雅的性质和广泛的应用脱颖而出。它不仅连接了离散与连续概率世界,更在…...

从分立逻辑到单片机:基于ATmega8的MIDI通道分析仪设计与实现

1. 项目概述:从分立逻辑到单片机的MIDI通道分析仪进化史二十年前,当我在《Elektor》杂志上发表第一版MIDI通道分析仪时,整个数字音乐世界还处于一个相当“硬核”的阶段。那个版本的设计,用今天的话来说,简直就是一场“…...

Java数组工具类实战:设计不可实例化的静态工具类

实现一个工具类 MathUtils,满足以下要求: 1. 所有方法均为静态,且该类不能从外部实例化(提示:使用私有构造器)。 2. 提供三个静态方法:- maxArray(int[] arr):返回较大值&#xff1b…...

浏览器 Profile 环境排查:Cookie、LocalStorage、网络出口与自动化任务配置清单

一、为什么浏览器环境经常“今天能用,明天失效”很多团队遇到登录状态丢失、页面配置异常、自动化任务失败时,会先怀疑网络、脚本或系统本身。但在实际项目里,问题经常不是单点故障,而是浏览器环境缺少稳定管理:对象常…...

Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析)

更多请点击: https://intelliparadigm.com 第一章:Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析) 自2024年V6.2版本起,大量用户反馈 --stylize 与 --sharp 参数组合下图像边缘锐化效果显著弱化&am…...

车载诊断系统(OBD)的原理、演进与未来

本文约8,167字,建议收藏阅读 作者 | 北湾南巷 出品 | 汽车电子与软件 引 言 在现代汽车中,越来越多的故障不再表现为明显的机械损坏,而是以“亮灯”“报码”“性能异常”等电子信号的形式出现。发动机为什么亮起故障灯?排放是否达…...

OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案

OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 在惠…...