TPM 密钥证明

文章参考了微软的TPM 密钥证明

每一个TPM在生产时,都会注入一个EK (Endorsement Key)密钥对。EK 对于每个 TPM 都是唯一的,不能更改或删除 EK。EK是一个模长为2048比特的RSA公私钥对,私钥保存在TPM内部,永远不会暴露在TPM之外。

TERMINOLOGY
TermDefinition
EKEndorsement Key. This is an asymmetric key contained inside the TPM (injected at manufacturing time). The EK is unique for every TPM and can identify it. The EK cannot be changed or removed.
EKpubRefers to public key of the EK.
EKPrivRefers to private key of the EK.
EKCertEK Certificate. A TPM manufacturer-issued certificate for EKPub. Not all TPMs have EKCert.
TPMTrusted Platform Module. A TPM is designed to provide hardware-based security-related functions. A TPM chip is a secure crypto-processor that is designed to carry out cryptographic operations. The chip includes multiple physical security mechanisms to make it tamper resistant, and malicious software is unable to tamper with the security functions of the TPM.

TPM 密钥证明是指 请求证书 以加密方式向 CA 证明,证书请求中的 RSA 密钥受 CA 信任的TPM 保护的能力。

TPM密钥证明工作方式:

1. 每个 TPM 出厂时都带一个唯一的非对称密钥对(称为 认可密钥 EK),EK的公钥称为EKPub, 私钥称为EKPriv. 有些TPM芯片还具有制造商为EKPub颁发的EK证书,此证书称为EKCert。 

2. CA通过TPM中的EKPub或EKCert建立信任。

3. 用户向CA证明,为其请求证书的RSA密钥与EKPub加密相关,并且用户拥有EKpriv。

4. CA颁发带有特殊颁发策略OID的证书,以表示该密钥现在已被证明受TPM保护。

 

部署 TPM 密钥证明有三个步骤:

1TPM 信任模型

     基于用户凭据的信任

     企业 CA 相信用户提供的 EKPub 作为证书请求的一部分,而不执行除用户域凭据以外的任何验证。

   基于 EKCert 的信任

企业CA会根据管理员管理的可接受EK证书链列表来验证作为证书请求的一部分提供的EKCert链。可接受的链是按制造商定义的,并通过CA上的两个自定义证书存储区(一个存储为中间证书存储区,一个存储为根CA证书)来表示。 此信任模式意味着来自给定制造商的所有TPM都是可信的。 在这种模式下,环境中使用的TPM必须包含EKCert

  基于 EKPub 的信任

企业 CA 验证作为证书请求的一部分提供的 EKPub 是否显示在管理员托管的允许 EKPubs 列表中。 此列表表示为文件目录,其中每个文件的名称都是允许的 EKPub SHA-1 哈希。 此选项可提供最高的保障级别,但需要更多管理工作,因为每个设备单独标识。 在此信任模式下,仅允许已将其 TPM EKPub 添加到 EKPubs 允许列表的设备注册证明证书。

根据所使用的方法,CA 会将不同的颁发策略 OID 应用于颁发的证书。请注意,可以选择 TPM 信任模型的组合。 在这种情况下,CA 将接受任何证明方法,并且颁发策略 Oid 将反映所有成功的证明方法。

2.   配置证书模板

3.为 TPM 信任模型配置 CA

    基于用户凭据的信任: 不需要特定的配置。

    基于 EKCert 的信任: 管理员必须从 TPM 制造商处获取 EKCert 链证书,并将其导入到在执行 TPM 密钥证明的 CA 上由管理员创建的两个新证书存储。

    基于 EKPub 的信任: 管理员必须获取将需要 TPM 证明证书的每个设备的 EKPub,并将其添加到允许的 EKPubs 列表。

一、基于用户凭据的信任

配置证书模板, 此模板也将通过少许修改后作为EKCert和EKPub信任的证书模板。

  1. 从【证书模板控制台(certtmpl.msc)】中复制【工作站身份验证】模板
  2. <常规/General>页,设置模板名称,如:TPMKEYATTESTATION
  3. <兼容性/Compatibility>页,<证书颁发机构/ Certificate Authority>可以设置为”Windows Server 2012 R2”, 也可以设置为”Windows Server 2016”, 此处设置为后者;<证书接收人/ Certificate recipient>设置为“Windows 8.1/Windows Server 2012 R2”。
  4. <加密/Cryptography>页,<提供程序类别/Provider Category>选择密钥存储提供程序“/”Key Storage Provider”; <算法名称/Algorithm name>选择 ”RSA”; <提供程序/Providers> 只选择 “Microsoft Platform Crypto Provider”
  5. <密钥证明/Key Attestation>页,<密钥证明/Key Attestation>选择 “必需(如果客户端允许)/”Required, if client is capable”<根据以下条件执行证明/Key attestation type to enforce>选择“用户凭据”/”User credentials” <密钥证明的证书分布策略/Issuance policies for key attested certificates> 选择包含强制实施的证明类型的颁发策略”/”Include issuance policies for enforced attestation types
  6.  应用并保存模板。打开【证书颁发机构(certsrv.msc) / Certificate Authority,右键<证书模板>新建一个证书模板。在启用证书模板中选择刚才建立的 TPMKEYATTESTATION”

密钥证明说明:​​​​​​​​​​​

  1. 无: 表示不得使用密钥证明
  2. 如果客户端支持,则需要: 允许设备上不支持 TPM 密钥证明的用户继续注册该证书。 可以执行证明的用户将与特殊的颁发策略 OID 区分开来。 某些设备可能无法执行证明,因为旧的 TPM 不支持密钥证明,或者设备根本没有 TPM。
  3. 必需: 客户端 必须 执行 TPM 密钥证明,否则证书请求将会失败

密钥证明类型说明:

  1. 用户凭据: 允许认证用户通过指定其域凭据来担保有效的TPM。
  2. 认可证书: 设备的 EKCert 必须通过管理员管理的 TPM 中间 CA 证书验证到管理员管理的根 CA 证书。 如果选择此选项,则必须在颁发 CA 上设置 EKCA 和 EKRoot 证书存储区.

  3. 认可密钥: 设备的 EKPub 必须出现在 "PKI 管理员管理" 列表中。 此选项提供最高的保障级别,但需要更多的管理工作量。 如果选择此选项,则必须在颁发 CA 上设置 EKPub 列表

最后,确定要在颁发的证书中显示的颁发策略。 默认情况下,每个强制类型都有一个关联的对象标识符 (OID) ,如果它传递该强制类型,它将插入证书,如下表所述。 请注意,可以选择强制方法的组合。 在这种情况下,CA 将接受任何证明方法,并且颁发策略 OID 将反映成功的所有证明方法。

OID

密钥证明类型

说明

保证级别

1.3.6.1.4.1.311.21.30

EK

"EK Verified": 适用于管理员托管的 EK 列表

1.3.6.1.4.1.311.21.31

认可证书

"EK Certificate Verified":当对 EK 证书链进行验证时

中型

1.3.6.1.4.1.311.21.32

用户凭据

"EK Trusted on Use":用于用户认证的EK

客户端申请证书

用具有管理员权限的域帐户登入客户端,在【(证书)本地计算机 (certlm.msc)】的<个人>存储区新申请一个证书。在证书注册策略中选择”Active Directory注册策略/ Active Directory Enrollment Policy”, 下一步请求证书选择” TPMKEYATTESTATION”进行注册(Enroll)。成功后得到的证书:Endorsement Key Trusted on Use

可以通过以下命令验证证书:

Certutil -csp "Microsoft Platform Crypto Provider" -key

 

二、基于EKCert的信任

要使用EKCert信任,首先要确认TPM中包含有证书。

使用Get-TPMEndorsementKeyInfo查看本地TPM信息。 如下英飞凌的SLB9665在芯片中包含有证书,即EKCert, 此证书可以导出,然后在CA上面验证。从英飞凌网站下载中间证书时,要参考下面信息中的Issuer,找对应的证书。

1.证书导入

管理员必须从TPM 制造商处获取 EKCert 链证书,并将其导入到在执行TPM 密钥证明的CA上,由管理员创建的两个新证书存储区。

为了方便起见,Microsoft 发布了受信任的 TPM 根证书和中间证书的集合。 可以通过下面的链接下载到这些证书。如果以下包中未包含您的 TPM 证书,请与您的 TPM 供应商或服务器 OEM 联系,以获取特定 TPM 型号的根证书和中间证书。

 https://go.microsoft.com/fwlink/?linkid=2097925 下载最新的包。

参考:https://docs.microsoft.com/zh-cn/windows-server/security/guarded-fabric-shielded-vm/guarded-fabric-install-trusted-tpm-root-certificates

MS下载TrustedTpm.cab主要为了得到TPM供应商的根证书。供应商通常会将中间证书放在产品页面供下载,如英飞凌SLB9665的中间证书链接:

https://www.infineon.com/cms/en/product/promopages/optiga_tpm_certificates/#SLB9665xx2.0

从MS下载的TrustedTpm.cab中的安装脚本会在【(证书)本地计算机】中新建两个存储区:TrustedTpm_IntermediateCA 和 TrustedTpm_RootCA, 分别用于存储TPM供应商的RootCA和IntermediateCA。 可以选择需要的安装,不用全部安装所用TPM证书。针对TPM密钥证明测试,可以不执行MS的脚本,即不创建TrustedTpm_IntermediateCA 和 TrustedTpm_RootCA。 因为TPM密钥证明有专门的存储区EKROOT和EKCA。

通过PowerShell在CA服务器的(证书)本地计算机】创建两个新的证书存储区:EKROOT和EKCA。 Windows Server 2016不会在控制台(certlm.msc)中显示EKCA对应的节点,会显示EKROOT对应的节点(认可密钥受信任的根证书颁发机构)。 Win10下两个节点都会显示:Endorsement Key Intermediate Certification Authorities 和 Endorsement Key Trusted Root Certification Authorities.

Powershell

Cd cert:

Cd .\\LocalMachine

New-item EKROOT  //对应Endorsement Key Trusted Root Certification Authorities

New-item EKCA  //对应Endorsement Key Intermediate Certification Authorities

Cd EKROOT

Import-Certificate path\to\“Infineon OPTIGA(TM) RSA Root CA.crt” -certstorelocation .  //注意最后代表当前路径的“."

Cd ../EKCA

Import-Certificate path\to\“Infineon-OPTIGA-RSA-Manufacturing-CA 036_Issued_by_RootCA.crt-C-v01_00-EN”.crt -certstorelocation .  //注意最后的“."

由于TPM供应商的根证书可能不被MS信任(如英飞凌的自签根证书),可以将rootca安装到<受信任的根证书颁发机构>。

2.模板修改

修改TPMKEYATTESTATION:

<密钥证明/Key Attestation>页,<密钥证明/Key Attestation>选择 “必需(如果客户端允许)/”Required, if client is capable”<根据以下条件执行证明/Key attestation type to enforce>选择“硬件证书”/” Endorsement Certificate” <密钥证明的证书分布策略/Issuance policies for key attested certificates> 选择包含强制实施的证明类型的颁发策略”/”Include issuance policies for enforced attestation types”

重新发布证书模板,在客户端申请证书,得到的证书信息:Endorsement Key Certificate Verified

CA上添加TPM供应商的RootCA后,可以通过EKCert验证TPM设备,不需要向CA申请证书

Powershell

$a=Get-TpmEndorsementKeyInfo

$a.manufacturerCertificates|Export-Certificate -filepath D:\myEkcert.cer    //导出TPM中的EKCert

net use p: \\democa\test "123" /user:test@democa   //将导出的证书上传到CA

copy d:\myEkcert.cer p:

net use /d p:

Enter-PSSession -ComputerName democa -Credential (Get-Credential)  //登入CA服务器

new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "d:\myEKcert.cer" | Confirm-CAEndorsementKeyInfo 

如果结果返回True则验证成功。

三、基于EKPub的信任

要使用EKPub验证,首先要将本地TPM中的PublicKeyHash保存到CA的允许的 EKPubs 列表。

1. 获取PublickKeyHash

​​​​​​​客户端

Powershell

$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256

$b=new-item $a.PublicKeyHash -ItemType file  //用PublicKeyHash为文件名创建一个文件

2.在CA上设置EKPUB List

在颁发 CA 上创建和配置一个文件夹,文件夹中的每个文件都命名为允许的 EK sha-1 哈希此文件夹充当允许获取 TPM 密钥证明证书的设备的 "允许列表"。由于必须为每个需要证明证书的设备手动添加 EKPUB,因此它向企业提供了一个保证获得 TPM 密钥证明证书授权的设备。

创建 EndorsementKeyListDirectories 注册表项: 使用 Certutil 命令行工具配置受信任的 EKpubs 定义的文件夹位置

Operation

命令语法

添加文件夹位置

certutil.exe -setreg CA\EndorsementKeyListDirectories +" "

删除文件夹位置

certutil.exe -setreg CA\EndorsementKeyListDirectories -" "

在CA上创建一个文件夹: D:\EKPUBLIST

certutil.exe -setreg CA\EndorsementKeyListDirectories +“D:\EKPUBLIST”

注意“+”或“-”后面不能有空格

对应的注册表路径为HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\EndorsementKeyListDirectories 

EndorsementKeyListDirectories包含UNC或本地文件系统路径的列表,每个路径都指向CA具有读取访问权限的文件夹。 每个文件夹可能包含零个或多个允许列表条目,其中每个条目都是一个文件,该文件的名称是受信任的EKpub的SHA-2哈希,没有文件扩展名。

创建或编辑此注册表项配置需要重新启动CA服务。 向文件夹中添加哈希文件不需要重启CA服务。

net stop certsvc & net start certsvc

3.将HASH文件放置到D:\EKPUBLIST

net use p: \\democa\EKPUBLIST "123" /user:test@democa   //将导出的证书上传到CA

copy $b p:  //$b 为在第一步生成的hash文件

net use /d p:

4.修改证书模板

修改TPMKEYATTESTATION:

<密钥证明/Key Attestation>页,<密钥证明/Key Attestation>选择 “必需(如果客户端允许)/”Required, if client is capable”<根据以下条件执行证明/Key attestation type to enforce>选择“硬件密钥”/” Endorsement Key” <密钥证明的证书分布策略/Issuance policies for key attested certificates> 选择包含强制实施的证明类型的颁发策略”/”Include issuance policies for enforced attestation types”

重新发布证书模板,在客户端申请证书,得到的证书信息:Endorsement Key Certificate Verified,Endorsement Key Verified.

尽管证书模板没有勾选“硬件证书”,但好像自动启用了硬件证书(EKCert)验证.

CA上添加TPM供应商的RootCA后,可以通过EKCert验证TPM设备,不需要向CA申请证书

Powershell

$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256

$b=new-item $a.PublicKeyHash -ItemType file  //用PublicKeyHash为文件名创建一个文件

net use p: \\democa\EKPUBLIST "123" /user:test@democa   //将导出的证书上传到CA

copy $b p:  //$b 为在第一步生成的hash文件

net use /d p:

Enter-PSSession -ComputerName democa -Credential (Get-Credential)  //登入CA服务器

$a=(ls d:\EKPUBLIST).name  //假定EKPUBLIST只有刚上传的文件

Confirm-CAEndorsementKeyInfo $a

如果结果返回True则验证成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72706.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成keystore以及导出keystore公钥,私钥信息

有时候需要做一些证书&#xff0c;特别是安卓接入SDK&#xff0c;提交包什么的需要填入公钥私钥信息&#xff0c;可能需要RSA 1024位或其他位数的信息。 这里提供一个能获取keystore信息和公钥私钥的命令。 openssl我就不再写了&#xff0c;自己再百度下怎么处理。 1. 生成k…

中文聊天机器人

目录 一、项目介绍 wukong-robot介绍 特点 二、环境搭建 三、安装配置 四、录制唤醒词并使用机器人 要说当前最火的技术肯定就是人工智能和物联网了。 很多的厂家都不是从头到尾都自己实现的 截少了一块最后一个算法叫隐马尔可夫&#xff08;都是人名的音译&#xff09…

计算机毕业论文选题推荐|软件工程|系列七

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)的家政服务系统…

计算机毕业论文选题推荐|软件工程|系列八

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)应用负载仿真计…

中国算力总规模全球第二,如何实现算力的技术升维?

光子盒研究院出品 近日&#xff0c;人民日报记者从工信部了解到&#xff0c;近年来&#xff0c;我国算力产业年增长率近30%&#xff0c;算力总规模位居全球第二。 工信部数据显示&#xff0c;截至去年底&#xff0c;我国算力总规模达到180EFLOPS&#xff08;每秒18000京次浮点运…

吴军长文讲解算力:全球算力竞争中我们要做的三件事

这两天看到吴军的一段访谈&#xff0c;绝对是在算力这个话题领域中最深入浅出的一篇讲解了&#xff0c;把算力的概念、演进趋势&#xff0c;再到与经济发展如何挂钩、中国算力产业的发展方向&#xff0c;做了一个非常完整的梳理。 其中&#xff0c;吴军提到了算力竞争中&#…

我国的超算中心、智算中心、数据中心有多少?在哪里?啥规模?

目前&#xff0c;全国国家超级计算中心有十座&#xff0c;分别位于天津、广州、长沙、深圳、济南、无锡、郑州、昆山、成都和西安&#xff0c;其中深圳和西安中心二期正在建设&#xff0c;文昌航天超算中心已进入建设尾声。 超算中心项目 2023年4月17日&#xff0c;科技部启动了…

月薪25-80K丨一汽(南京)招聘雷达感知开发工程师、主管、主任、高级主任

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 公司介绍&#xff1a; 一汽&#xff08;南京&#xff09;科技开发有限公司坐落于美丽的南京&#xff0c;归属中国一汽集团&#xff0c;我们依托深度学习、数据挖掘等AI核心技术&#xff0c;致力于自主突破自动…

运维工程师技能图

运维工程师(Operations)在国内又称为运维开发工程师(Devops)&#xff0c;在国外称为 SRE&#xff08;Site Reliability Engineering&#xff09;。负责维护并确保整个服务的高可用性&#xff0c;同时不断优化系统架构、提升部署效率、优化资源利用率提高整体的ROI. 运维工程师…

ATE测试工程师的前景怎么样?能转DFT工程师吗?

最近后台不少同学私信想要咨询ATE这个岗位&#xff0c;想了解这个岗位的薪资&#xff0c;前景&#xff0c;以及相关的技能&#xff0c;下面就来一起了解一下~ 什么是ATE&#xff1f; ATE是&#xff08;Automatic Test Equipment&#xff09;的缩写&#xff0c; 于半导体产业意…

年薪20-65W|瓦特曼3D感知、图像、机器人、无人机算法工程师等岗位招聘

瓦特曼智能算法研发岗位火热招募中 公司官网&#xff1a;www.wattman.cn 福利待遇&#xff1a; 入职七险一金&#xff08;全额基数&#xff09;&#xff0c;绩效奖、项目奖、年终奖、员工评优、期权激励通通都有&#xff0c;年假、司龄假、孝亲假也都齐全&#xff0c;除此之外还…

38张IT工程师技能图谱

所有图片均来自网络。 高清图片下载链接&#xff1a;https://download.csdn.net/download/bluehawksky/11214937 百度网盘&#xff1a;https://pan.baidu.com/s/15S_aINgYEOT9lAs25oo1lQ 提取码: 9xbm 1.1 架构师图谱 1.2 Java架构师图谱 1.3 微服务架构秘籍 1.4 一致性图谱…

售前工程师工作内幕揭秘:面试实战技巧

售前工程师工作内幕揭秘&#xff1a;面试实战技巧 前言一、售前面试问题&#xff0c;基本就下面这些二、售前工程师岗位普遍误区三、售前工程师核心技能四、面试中&#xff0c;主动出击&#xff0c;才是王道五、对行业的了解是做好售前的基础 前言 看到网上很多关于售前工程师…

职位介绍之硬件工程师(提升宝典)

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事与硬件设计&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验…

统计字符串中每个字符出现的频率

基本实现&#xff1a; //统计countStr() {var str abcabca;var result {};for (var i 0; i < str.length; i) {//判断result是否有该字符if (result[str[i]]) {result[str[i]];} else {result[str[i]] 1;}}console.log(result, result);}, 优化&#xff1a; //统计 co…

2500个常用中文字符 + 130常用中英文字符

参考自 《现代汉语常用字表》常用字(2500字) 常用字符 一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止…

7-6 统计字符出现次数 (20 分)

7-6 统计字符出现次数 (20 分) 本题要求编写程序&#xff0c;统计并输出某给定字符在给定字符串中出现的次数。 输入格式&#xff1a; 输入第一行给出一个以回车结束的字符串&#xff08;少于80个字符&#xff09;&#xff1b;第二行输入一个字符。 输出格式&#xff1a; …

二月星座运势之射手座:勇敢冒险 寻找新的体验和发现

射手座的人通常是勇敢、自信和乐观的&#xff0c;他们追求自由和独立&#xff0c;喜欢冒险和探索。他们渴望新鲜感和刺激&#xff0c;喜欢寻找新的体验和发现。 对于射手座的人来说&#xff0c;世界充满了未知和神秘&#xff0c;他们总是怀着好奇心和冒险精神&#xff0c;愿意尝…

哪些星座的男生能把女朋友当成宝贝 ?

冠军&#xff08; 双鱼座 &#xff09;&#xff1b;亚军&#xff08; 白羊座 &#xff09;&#xff1b;季军&#xff08; 处女座 &#xff09;&#xff1b; 第4名&#xff08; 水瓶座 &#xff09;&#xff1b; 第5名&#xff08; 金牛座 &#xff09;&#xff1b; 第六名&…

最会惹怒老板的星座

第一名&#xff1a;白羊座 当白羊不爽的时候&#xff0c;他会直接找老板&#xff0c;摊牌谈条件&#xff0c;也不管周围环境如何&#xff0c;丝毫不考虑老板的面子问题。 第二名&#xff1a;金牛座 一条路走到黑的坚持是金牛的蜜糖&#xff0c;也是金牛的砒霜。 第三名&#xf…