TPM 2.0实例探索3 —— LUKS磁盘加密(4)
接前文:TPM 2.0实例探索2 —— LUKS磁盘加密(3)
本文大部分内容参考:
Code Sample: Protecting secret data and keys using Intel® Platform...
二、LUKS磁盘加密实例
4. 将密码存储于TPM的PCR
TPM平台配置寄存器(PCRs)用于防止出现这种情况:攻击者修改了系统启动参数或者启动到他们选择的操作系统以访问敏感数据。TPM PCRs的有效使用需要系统固件、boot loaders、操作系统内核和应用的协作。没有固件、驱动和软件对于TPM的配置,TPM将只能空位于I/O总线上而什么也做不了。
TPM PCRs用于度量引导组件,使用诸如SHA-256的安全哈希算法。当系统重启时,TPM PCRs默认恢复到0值。当系统引导时,对于诸如固件、BIOS、OS loaders等关键系统组件的度量被扩展到PCRs中。扩展一个PCR是一种只加操作,需要通过I/O与TPM交互。由于不可能将PCR设置为用户指定的值,也不可能“退回”I/O,因此TPM PCRs可以证明系统启动顺序以及平台的状态,直到PCR检测停止。例如,PCR0包括了系统固件和BIOS的度量,但不包含操作系统boot loader或内核。使用PCR0的结果是本例将只保护固件替换攻击,假如原始固件正确地进行了测量,并且假设替换固件没有伪造TPM度量 — 一个需要单独缓解的攻击。
在实际操作中,一个有效的PCR集必须被足够完整以证明当前运行的代码以及设计者认为安全关键的任何预先运行的代码。 TCG PC Client Specific Implementation Specification for Conventional BIOS 只明确规定了PCRs 0-7、16和23的使用方法。系统启动中和启动后的PCR用法是特定于操作系统的。
更进一步的解决方案包括以下两个额外的步骤:
- 使用PCRs作为TPM 密封对象的代理身份验证。
- 在解封密钥文件之后扩展密封的PCRs,以便它不能在当前引导上成为未密封增益。
研读更多关于TPM命令的信息,在以下节中:tpm2_startauthsession, tpm2_policypcr, tpm2_flushcontext, tpm2_pcrread, 和 tpm2_pcrextend.
以当前位于sha256 bank中的PCR0的值创建一个PCR策略:
(1)启动TPM会话
命令如下:
tpm2_startauthsession --session=session.ctx
实际命令及结果如下:
$ sudo /usr/local/bin/tpm2_startauthsession --session=session.ctx
$
$ ls
session.ctx
$ ls -l session.ctx
-rw-rw---- 1 root root 467 3月 2日 17:06 session.ctx
(2)创建一个包含指定PCR值的策略
命令如下:
tpm2_policypcr -Q --session=session.ctx --pcr-list="sha256:0" --policy=pcr0.sha256.policy
实际命令及结果如下:
$ sudo /usr/local/bin/tpm2_policypcr --session=session.ctx --pcr-list="sha256:0" --policy=pcr0.sha256.policy
4bc350fced1d9ec748eb9fac5576eed06178b715969525d1f967451ff89395bf$ ls
pcr0.sha256.policy session.ctx
$ ls -l
总计 8
-rw-rw---- 1 root root 32 3月 2日 17:13 pcr0.sha256.policy
-rw-rw---- 1 root root 467 3月 2日 17:13 session.ctx
(3)移除一个指定的句柄,或者所有与一个临时对象相关的上下文,从TPM中加载会话或保存会话
命令如下:
tpm2_flushcontext session.ctx
实际命令及结果如下:
$ sudo /usr/local/bin/tpm2_flushcontext session.ctx
$
相关文章:
TPM 2.0实例探索3 —— LUKS磁盘加密(4)
接前文:TPM 2.0实例探索2 —— LUKS磁盘加密(3) 本文大部分内容参考: Code Sample: Protecting secret data and keys using Intel Platform... 二、LUKS磁盘加密实例 4. 将密码存储于TPM的PCR TPM平台配置寄存器(…...
Linux连接RDP远程服务工具集记录
目录 rdesktop 安装 实例 xfreerdp 安装 实例 remmia 介绍 rdesktop 安装...
离散事件动态系统
文章目录离散事件动态系统ppt离散事件系统建模离散事件动态系统的基本组成元素离散事件动态系统仿真具体建模petri建模实例离散事件动态系统 ppt ppt 仿真建模步骤 离散事件系统建模 from:离散事件系统建模 离散事件动态系统的基本组成元素 (1&am…...
无线WiFi安全渗透与攻防(二)之打造专属字典
系列文章 无线WiFi安全渗透与攻防(一)之无线安全环境搭建 打造专属字典 什么在破解之前先准备专用字典,因为对于一般家庭来说,常用 一个是预共享密钥PSK,一个是PIN码。 也不是所有的路由都开起了PIN码,一般都会开启域共享密钥…...
拥抱 Spring 全新 OAuth 解决方案
以下全文 Spring Authorization Server 简称为: SAS 背景 Spring 团队正式宣布 Spring Security OAuth 停止维护,该项目将不会再进行任何的迭代目前 Spring 生态中的 OAuth2 授权服务器是 Spring Authorization Server 已经可以正式生产使用 作为 SpringBoot 3.0 的…...
前端开发与vscode开发工具介绍
文章目录1、前端开发2、vscode安装和使用2.1、下载地址2.2、插件安装2.3、设置字体大小2.4、开启完整的Emmet语法支持2.5、创建项目2.6、保存工作区2.7、新建文件夹和网页1、前端开发 前端工程师“Front-End-Developer”源自于美国。大约从2005年开始正式的前端工程师角色被行…...
C++---最长上升子序列模型---友好城市(每日一道算法2023.3.2)
注意事项: 本题为"线性dp—最长上升子序列的长度"的扩展题,所以dp思路这里就不再赘述。 题目: Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。 北岸的每个城市有且仅有…...
maven高级知识。
目录 一、分模块开发 1、分模块开发设计 2、依赖管理 二、继承和聚合 1、聚合 2、继承 三、属性 1、基本介绍 2、版本管理 四、多环境配置与应用 1、多环境开发 2、跳过测试 五、私服 1、私服安装 2、私服仓库分类 一、分模块开发 1、分模块开发设计 ▶ 示意图 …...
Python 之 Pandas 处理字符串和apply() 函数、applymap() 函数、map() 函数详解
文章目录一、处理字符串1. 向量化字符串操作简介2. str 方法的简介二、apply() 函数详解三、applymap() 函数详解四、map() 函数详解一、处理字符串 当我们遇到一个超级大的 DataFrame,里面有一列类型为字符串,要将每一行的字符串都用同一方式进行处理&…...
汇川AM402和上位机C#ModebusTcp通讯
目录 一、测试任务 二、测试环境 三、PLC工程 1、组态配置 2、ip地址、端口号 3、全局变量定义 四、C#端Winform程序创建 1创建主界面 2、创建子窗口 3、运行生成,界面效果 4、Modebus协议说明 5、Modebus操作说明 六、测试 1、寄存器读测试 2、MW1300寄…...
给你一个电商网站,你如何测试?功能测试及接口测试思路是什么?
功能测试思路 1、注册测试: 测试注册表单是否可以正确提交用户信息; 测试注册表单是否有输入限制,例如密码长度、邮箱格式等; 测试注册后是否可以正常登录。 2、登录测试: 测试登录表单是否可以正确提交用户信息&…...
Spring Boot 3.0系列【5】基础篇之应用配置文件
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言应用配置文件文件格式YAML获取配置属性方式1:@Value方式2: @ConfigurationProperties方式3: @PropertySource方式4…...
SQLyog图形化界面工具【超详细讲解】
目录 一、SQLyog 介绍 二、SQLyog 社区版下载 三、SQLyog 安装 1、选择Chinese后点击OK 2、点击“下一步” 3、选择“我接受”后点击“下一步” 4、点击“下一步” 5、修改安装位置(尽量不要安装在C盘),点击“安装” 6、安装后点击“…...
Linux: 中断只被GIC转发到CPU0问题分析
文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化:缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…...
模电学习10. MOS管简单应用电路
模电学习10. MOS管简单使应用电路一、开关和放大器1. 开关电路2. 放大电路二、时序电路中作为反相器使用三、双向电平转换电路1. 原理图2. 工作状态分析(1)分析SDA,信号从左向右(2)分析SDA,信号从右向左四、…...
轻松搞懂Linux中的用户管理
文章目录概念用户账户用户组用户权限用户管理工具概念 用户管理是Linux系统管理员必须掌握的重要技能之一。Linux系统是一个多用户操作系统,可以支持多个用户同时使用,每个用户拥有自己的账户和权限,因此管理员需要了解如何创建、管理和删除…...
力扣-丢失信息的雇员
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1965. 丢失信息的雇员二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他…...
FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持
目录1、前言2、AD7606数据手册解读输入信号采集范围输出模式选择过采样率设置3、AD7606串行输出采集4、AD7606并行输出采集5、vivado仿真6、上板调试验证7、福利:工程代码的获取1、前言 AD7606是一款非常受欢迎的AD芯片,因为他支持8通道同时采集数据&am…...
CSS介绍
文章目录一. CSS介绍二. CSS的引入方式三. CSS选择器一. CSS介绍 定义: 层叠样式表作用: 美化界面: 设置标签文字大小,颜色,字体加粗等样式控制页面布局: 设置浮动,定位等样式 基本语法: 选择器{样式规则 } 样式规则: 属性名1: 属性值1 属性名2: 属性值2 属性名3: 属性值3 ..…...
Auto-encoder 系列
Auto-Encoder (AE)Auto-encoder概念自编码器要做的事:将高维的信息通过encoder压缩到一个低维的code内,然后再使用decoder对其进行重建。“自”不是自动,而是自己训练[1]。PCA要做的事其实与AE一样,只是没有神经网络。对于一个输入…...
斐讯K3从梅林‘变砖’到官复原职:一个手残党的硬核救砖全记录(附TTL/编程器操作避坑点)
斐讯K3救砖实战:从梅林固件崩溃到完美恢复的完整指南 1. 当路由器变成"砖头":一个普通用户的崩溃瞬间 那是一个普通的周末下午,我正兴冲冲地准备给我的斐讯K3刷上梅林固件,幻想着能获得更强大的功能和更稳定的性能。按照…...
保姆级教程:用GATK4从玉米B73参考基因组中提取SNP和Indel(附完整代码)
玉米基因组变异检测实战指南:从测序数据到SNP/Indel分析全流程 在植物遗传学研究领域,玉米作为重要的模式作物和粮食作物,其基因组变异分析对品种改良和功能基因挖掘具有重要意义。本文将带领生物信息学初学者逐步完成从原始测序数据到变异检…...
RK3368安卓9.0固件烧录后开机卡Recovery?手把手教你调整分区表解决4GB闪存空间不足
RK3368安卓9.0固件烧录实战:4GB闪存分区优化全解析 当你满怀期待地将Android 9.0固件烧录到RK3368开发板,却发现设备直接进入了Recovery模式,屏幕上躺着那个令人沮丧的红色感叹号机器人——这可能是每个嵌入式开发者都经历过的"入门仪式…...
2026年最新英语单词AI辅助工具 帮英语学习者轻松提升背词效率
英语单词学习的核心痛点拆解我们团队做英语学习工具测评快5年了,后台收到最多的提问就是「有没有能真的提升背词效率的工具」,拆解下来行业的共性痛点其实很明确:第一是资源错配,80%的背词时间都花在已经掌握的词汇上,…...
3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略
3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…...
OpenClaw vs Hermes Agent,谁是 2026 年 AI Agent 最优解?
OpenClaw+Hermes 全集成,一键调用所有 AI 技能:https://ai-skills.ai/?inviteCode=S2JV3NCK 前言 2026 年,AI Agent 已从 “实验玩具” 迈入 “工程化落地” 关键期。GitHub 上 OpenClaw 与 Hermes Agent 两大开源项目热度飙升,均宣称解决大模型 “失忆、弱执行、难沉淀”…...
GeoServer部署实战与前端地图调用跨域配置详解
1. GeoServer快速部署指南 第一次接触GeoServer的朋友可能会觉得这个开源地图服务器有点神秘,其实它的安装比想象中简单得多。我在多个项目中部署过不同版本的GeoServer,总结出了一套最稳妥的安装流程。GeoServer本质上是一个基于Java的Web应用ÿ…...
别再盲目刷LeetCode了!先把这5个编程基础打牢
文章目录前言一、代码规范:不是“洁癖”,是保命的底线二、函数式编程:不是玄学,是现代开发的通用语言三、Python基础工具:sys模块与可变参数,效率提升10倍的利器四、任务拆解能力:从“写代码”到…...
如何通过命名规范降低代码维护成本:7个命名技巧提升长期项目质量
如何通过命名规范降低代码维护成本:7个命名技巧提升长期项目质量 【免费下载链接】naming-cheatsheet Comprehensive language-agnostic guidelines on variables naming. Home of the A/HC/LC pattern. 项目地址: https://gitcode.com/gh_mirrors/na/naming-chea…...
Nigate:让Mac与Windows硬盘和谐共处的开源桥梁
Nigate:让Mac与Windows硬盘和谐共处的开源桥梁 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management for NTFS …...
