精华内容
下载资源
问答
  • linux tpm 测试

    千次阅读 2019-08-09 10:47:54
    没有tpm芯片,采用模拟器的方式来测试。 实验环境:内核版本 3.10.0-327 软件包准备: 内网,没有仓库,自己网上下载: 1. cmake-3.9.6-Linux-x86_64.tar.gz 解压后就已经有bin文件,可以直接使用bin下的cmake...

    没有tpm芯片,采用模拟器的方式来测试。

    实验环境:内核版本 3.10.0-327

    软件包准备:

    内网,没有仓库,自己网上下载:

    1. cmake-3.9.6-Linux-x86_64.tar.gz

    解压后就已经有bin文件,可以直接使用bin下的cmake,

    ls cmake-3.9.6-Linux-x86_64/
    bin doc man share

    2. 然后下载gmp,我使用的是gmp-6.1.2版本,

    ./configure && make && make install

    在install的时候,它会提醒要求make check

    复制代码

    +-------------------------------------------------------------+
    | CAUTION:                                                    |
    |                                                             |
    | If you have not already run "make check", then we strongly  |
    | recommend you do so.                                        |
    |                                                             |
    | GMP has been carefully tested by its authors, but compilers |
    | are all too often released with serious bugs.  GMP tends to |
    | explore interesting corners in compilers and has hit bugs   |
    | on quite a few occasions.                                   |
    |                                                             |
    +-------------------------------------------------------------+

    复制代码

    我也按要求操作一把,没看到什么区别,但是同事在复制我的过程的时候,还是有些区别,建议大家按照安装步骤来。

     

    3.安装tpm_emulator

    因为并没有真实的芯片,所以还需要安装模拟器,如果有真实的芯片支持,则可以跳过安装模拟器这一步。

    下载并解压之后,老规矩,先看readme,readme中针对不同的操作系统给了不同的步骤。

    复制代码

    The compilation and installation of the TPM emulator package is based on
    the CMake build environment (version 2.6 or better) and requires that the
    GNU MP library (version 4.0 or better) is properly installed on your
    system. A working MinGW compiler suite is further required on Windows
    (see http://www.mingw.org/). To compile and install the package execute:
    
    # tar -xvzf tpm_emulator-X.Y.tar.gz
    # cd tpm_emulator-X.Y
    # mkdir build
    # cd build
    # cmake ../   ----------这一步,由于我们第一步没有安装cmake,可以用绝对路径因为bin文件即可。本例中,我使用的是/home/caq/cmake-3.9.6-Linux-x86_64/bin/cmake  -D CMAKE_BUILD_TYPE=Debug ../
    # make
    # make install

    复制代码

     按步骤操作即可。

    Usage Examples for TPM/J
    --------------------------------------------------------------------------
    
    === Linux
    # modprobe tpmd_dev
    # tpmd -f -d

     

    4.下一步,下载trousers-master.zip并安装trousers,这个就是传说中的tss协议栈 (tcg software stack) 。

    解压后,参照readme文件,一步步操作:

    不过,由于我们是使用模拟器操作,所以原本makefile中的lib需要替换成我们模拟器安装的lib。

    先查找一下lib的路径:

    # whereis libtddl.so
    libtddl: /usr/local/lib/libtddl.a /usr/local/lib/libtddl.so

    然后,修改对应的makefile

    修改./src/tcsd/Makefile.am :

    tcsd_LDADD=../tcs/libtcs.a ../tddl/libtddl.a –lpthread  

    为:

    tcsd_LDADD=../tcs/libtcs.a /usr/local/lib/libtddl.so –lpthread

     

    修改 ./src/tcsd/Makefile.in :

    tcsd_DEPENDENCIES = ../tcs/libtcs.a ../tddl/libtddl.a

    为:

    tcsd_DEPENDENCIES = ../tcs/libtcs.a /usr/local/lib/libtddl.so

     

    然后参照如下操作即可。

      To build trousers after you have the device driver installed:
    
      $ sh bootstrap.sh
      $ ./configure [--enable-debug] [--enable-gprof] [--enable-gcov]
      $ make
      # make install

    这个步骤的README非常重要,包括64位的安装的不同也会提示。也包括安装完之后的运行方法和参数,不过-h参数也提供了方法。

    另外,由于这个步骤默认的configure是将编译warning设置成了error,所以make的时候,经常会停止,建议在make之前,

    将configure脚本中的CFLAGS 参数修改一下,去掉-Werror -Wno-unused-parameter 。不然会好多编译不过的。

     

    然后运行 tcsd -e -f  可以看到如下进程运行,我为了了解运行机制,gdb了一把,这个就需要在configure的时候对debug使能。

    # ps -ef |grep -i tcsd
    root 156492 183333 0 16:20 pts/4 00:00:00 grep --color=auto -i tcsd
    tss 184541 107431 0 Nov15 pts/11 00:00:00 tcsd -e -f

     使能了debug的运行结果,如果没有使能debug,不方便调试:

    tpm_testing.c:221: Debug: tpm_rsa_encrypt(RSA_ES_OAEP_SHA1)
    tpm_testing.c:225: Debug: tpm_rsa_decrypt(RSA_ES_OAEP_SHA1)
    tpm_testing.c:229: Debug: verify plain text
    tpm_testing.c:261: Info: Self-Test succeeded
    tpm_startup.c:43: Info: TPM_Startup(2)
    tpmd.c:412: Debug: waiting for connections...

    5.下载安装tpm-tools

    复制代码

     BUILDING tpm-tools
     -------- ---------
     $ sh ./bootstrap.sh
     $ ./configure
     $ make
     # make install
    
     By default the build will place everything in /usr/local. Issue
       ./configure --help
     to see how to install to a different location.

    复制代码

    安装完之后,敲入tpm然后tab健,就可以看到新增了很多命令了:

    tpm_changeownerauth  tpm_nvinfo           tpm_restrictpubek    tpm_setactive        tpm_setpresence      tpmtool
    tpm_clear            tpm_nvread           tpm_restrictsrk      tpm_setclearable     tpm_takeownership    
    tpm_createek         tpm_nvrelease        tpm_revokeek         tpm_setenable        tpm_unsealdata       
    tpm_getpubek         tpm_nvwrite          tpm_sealdata         tpm_setoperatorauth  tpm_version          
    tpm_nvdefine         tpm_resetdalock      tpm_selftest         tpm_setownable       tpmd   

     

    下面是最终的测试了:

    # tpm_takeownership
    Enter owner password:
    Confirm password:
    Enter SRK password:
    Confirm password:

    设置两个密码,要记住,后面要用到。

    复制代码

    # ./tpm_version 
    LOG_DEBUG TSPI rpc/tcstp/rpc.c:362 Sending TSP packet to host localhost.
    LOG_DEBUG TSPI rpc/tcstp/rpc.c:377 Connecting to 127.0.0.1
    LOG_DEBUG TSPI rpc/tcstp/rpc_context.c:44 RPC_OpenContext_TP: Received TCS Context: 0xa0d40600
    LOG_DEBUG TSPI rpc/tcstp/rpc_caps_tpm.c:40 RPC_GetTPMCapability_TP: TCS Context: 0xa0d40600
      TPM 1.2 Version Info:
      Chip Version:        1.2.0.7
      Spec Level:          2
      Errata Revision:     1
      TPM Vendor ID:       ETHZ
    LOG_DEBUG TSPI rpc/tcstp/rpc_caps_tpm.c:40 RPC_GetTPMCapability_TP: TCS Context: 0xa0d40600
      TPM Version:         01010000
    LOG_DEBUG TSPI rpc/tcstp/rpc_caps_tpm.c:40 RPC_GetTPMCapability_TP: TCS Context: 0xa0d40600
      Manufacturer Info:   4554485a
    LOG_DEBUG TSPI rpc/tcstp/rpc_context.c:60 RPC_CloseContext_TP: TCS Context: 0xa0d40600
    LOG_RETERR TSPI tspi_context.c:113: 0x126

    复制代码

    加密某个文件:

    tpm_sealdata  -i  /home/caq/Path_test/caq.txt -p 4 -p 8 -p 9 -p 12 -p 14  -o  /home/caq/Path_test/sealed_key

    会要求输入srk的密码,就是刚才设置的第二个密码。

    加密后的文件内容:

    复制代码

    -----BEGIN TSS-----
    -----TSS KEY-----
    AQEAAAARAAAABAEAAAABAAMAAQAAAAwAAAgAAAAAAgAAAAAAAAAAAAABANxiK5q8
    Nfx/spy+mnJgRpRAaEgBhvT3bTDdV9gNSdy6hryJGNKkIsQCSdam1Yo28DPHiB9i
    iout25PXLi9VaNLmlT7UPVMTReujGhSMWk5pkejpNd0He+CoTyov6CveHnk7YqXa
    Hp1ipsg98+IVLrhshPkbW4yq6/PEK07Za56Cj0gVDQ1S+3zkZY8wegPilXG79GQ8
    j/yHaPar62jExVfGuoOtPsUINFAcgvWO14Syq30ZM0Dr4aTGcj4XjKqrRtuuiE7y
    qkQM37DM1x7/EYgg9/ITIpR3fVTP7hEuo+qPyfUy8rEINAoTCBiBN/53r84xdA+y
    t+Ic1tt+qSJi/t8AAAEAq+dKuhTIuoo75gKIkRfiEbpeUn3yK3sHJTkZKwJudMyp
    1f1oYegR48lhatQhgRPC5nfKBG/7N/VoKb9KQMA/XuFM4iKVdfqckSnnq8s97Exh
    7cK9DHPWDLCChk/Fa6xPR4AIcq6Qj4DTiESQeb66ZGGl/DSKzMLQwYFeg011UmI9
    5r4sb3vdkCVIj2suuLQpbmc80O9rLsHmo7z68SNB8HgHFSR/LQeywoPa4Gq5xFsH
    /qDRSS5rayvd1+/W3n7bhlj1Byym6/T9Yjzgsycm1TlqWlY7uX9wiXP63y29IAzQ
    sTnK1eTWfU2KrmpZznmwoa9oxjGuzvMPdplyMV4O2Q==
    -----ENC KEY-----
    Symmetric Key: AES-256-CBC
    AQEAAAAAACwAAhBTkyUEalmn0CnsJOCtGAt3AocthliTJQRqWafQKewk4K0YC3cC
    hy2GWAAAAQBvqgwWrpyJ0pTdR4aNEvq+YfQ+58GyISxMLh/DziwijcwZ5VZf03Ps
    +vLq876xOSuo3SDbKJfHas7JHasxq5WnX8j50VqTubvHXQ6H2y3Frtp3suG6LQgT
    kI4DNTrkHXMbp8AJU5Euk4DGf7dXKeKbu/XBsKqoY0FP61WgrSMU6wCGI3nQ0esW
    ARdVBoZkWl4Gf7KHb+Jhkfyh8T+1vn63IZ31BvaJBjlQDTGqJofDvaBkR6ceKrAD
    h9G1EA0NUc9Grwv59L0onyZ7R6D7P2lgCheLsvyt2gFr0bxyMm78D1Fuywx5iZtx
    7e7iToJSld4tq7LJep8Rf/f7Bo9DvJnL
    -----ENC DAT-----
    UxkNGTc11B7eIdPUx65IsA==
    -----END TSS-----

    复制代码

    解密这个文件:

    tpm_unsealdata  -i  /home/caq/Path_test/sealed_key -o hah

    也要求输入密码,密码输入错误是拒绝解密的。

    复制代码

    tpm_sealdata  -i  /home/caq/Path_test/sealed_key -o hah
    LOG_DEBUG TSPI rpc/tcstp/rpc.c:362 Sending TSP packet to host localhost.
    LOG_DEBUG TSPI rpc/tcstp/rpc.c:377 Connecting to 127.0.0.1
    LOG_DEBUG TSPI rpc/tcstp/rpc_context.c:44 RPC_OpenContext_TP: Received TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_random.c:37 RPC_GetRandom_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_ps.c:318 RPC_LoadKeyByUUID_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_ps.c:339 RPC_LoadKeyByUUID_TP: TCS key handle: 0x40000000
    LOG_DEBUG TSPI rpc/tcstp/rpc_ps.c:274 RPC_GetRegisteredKeyBlob_TP: TCS Context: 0xa0b0fe15
    Enter SRK password: 
    LOG_DEBUG TSPI rpc/tcstp/rpc_auth.c:70 RPC_OSAP_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_key.c:119 RPC_CreateWrapKey_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_auth.c:37 RPC_OIAP_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI obj_policy.c:230 Got a secret:
    36 F7 7C 80 32 12 AD 05 7D 36 63 03 76 D2 85 2E 
    24 72 D6 4D 
    LOG_DEBUG TSPI rpc/tcstp/rpc_key.c:42 RPC_LoadKeyByBlob_TP: IN: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_key.c:75 RPC_LoadKeyByBlob_TP: OUT: TCS key handle: 0x2233000d, TPM key slot: 0xb
    LOG_DEBUG TSPI rpc/tcstp/rpc_auth.c:70 RPC_OSAP_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_seal.c:46 common_Seal_TP: TCS Context: 0xa0b0fe15
    LOG_DEBUG TSPI rpc/tcstp/rpc_context.c:60 RPC_CloseContext_TP: TCS Context: 0xa0b0fe15
    LOG_RETERR TSPI tspi_context.c:113: 0x126

    复制代码

     

    其他的一些使用方法,可以tpm_unsealdata  -h来找到方法。解密之后,diff对比下加密前的文件,可以看到两者是一样的。

    模拟器和芯片的区别,就是秘钥的存放位置。

    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。

    展开全文
  • TPM 密钥证明

    2021-04-28 14:57:00
    文章参考了微软的TPM 密钥证明 每一个TPM在生产时,都会注入一个EK (Endorsement Key)密钥对。EK 对于每个 TPM 都是唯一的,不能更改或删除 EK。EK是一个模长为2048比特的RSA公私钥对,私钥保存在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则验证成功。

    展开全文
  • TPM概述

    2020-01-03 10:57:19
    TPM(Trusted Platform Module)安全芯片,是符合TPM(可信赖平台模块)标准的安全芯片。标准由TCG(可信赖计算组织,Trusted Computing Group)提出,目前最新版本为2.0。 符合TPM的芯片首先必须具有产生加解密...

    https://book.2cto.com/201512/58740.html

    https://www.cnblogs.com/chenguang/p/3742220.html

    https://www.cnblogs.com/embedded-linux/p/6716744.html

    https://zhuanlan.zhihu.com/p/29840740

    https://www.cnblogs.com/summer2017/p/7747080.html

    TPM(Trusted Platform Module)安全芯片,是指符合TPM(可信赖平台模块)标准的安全芯片。标准由TCG(可信赖计算组织,Trusted Computing Group)提出,目前最新版本为2.0。
    符合TPM的芯片首先必须具有产生加解密密钥的功能,此外还必须能够进行高速的资料加密和解密,以及充当保护BIOS和操作系统不被修改的辅助处理器。
    TPM的可信基础来源于可信根,可信根(Root of trust)是无条件被信任的,系统并不检测可信根的行为,因此可信根是否真正值得信任,是系统可信的关键。TPM是一个含有密码运算部件和存储部件的小型系统,也可以作为另一个芯片的一部分出现,比如以太网接口。
    TPM安全芯片包含了分别实现RSA、SHA等算法硬件处理引擎,它既是密钥生成器,又是密钥管理器件。TPM通过提供密钥管理和配置管理等特性,与配套的应用软件一起,主要用于完成计算平台的可靠性认证、防止未经授权的软件修改、用户身份认证、数字签名以及全面加密硬盘和可擦写等功能。TPM安装在输入/输出控制器,即连接外部设备与内存的总线中,让TPM可以监视每一个从外存装载入内存的软件。由于TPM处于硬件层,所以只要用户选择了打开TCG功能,任何行为都无法逃避监视。

    通过TPM安全芯片对计算机系统提供保护的方法为:(1)在主板上设置TPM安全芯片;(2)启动信息处理设备时,由TPM芯片验证当前底层固件的完整性,如正确则完成正常的系统初始化后执行步骤(3),否则停止启动该信息处理设备;(3)由底层固件验证当前操作系统的完整性,如正确则正常运行操作系统,否则停止装入操作系统。总之,此方法是通过在信息处理设备的启动过程中对BIOS、底层固件、操作系统依次进行完整性验证,从而保证信息处理设备的安全启动之后,再利用TPM芯片内置的加密模块生成并管理系统中各种密钥,对应用模块进行加解密,以保证计算机等信息设备中应用模块的安全。
    图2中,信息处理设备的CPU 与主板上的北桥相连,北桥与南桥和静态存储器(SRAM)分别直接相连[2],南桥分别与超级输入输出接口(SuperIO)、BIOS 模块和安全芯片通过LPC(Low Pin Count Bus)总线直接相连,同时,计算机主板上的CPU 通过读写控制线与安全芯片中的BIOS模块直接相连。安全芯片通过完整性校验检验主板上的BIOS模块是否被非法修改。上述方法能够对BIOS的完整性进行验证,但它仅仅避免了BIOS中的病毒对操作系统的破坏,安全芯片并不能防止BIOS本身被修改,只能在发现BIOS被修改后,停止启动计算机,因而该方法只是被动应对可能的攻击。

     

    作者:furious
    链接:https://www.zhihu.com/question/35496371/answer/856294314
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    • 传统的系统中,密钥和授权信息等安全信息只能存储在磁盘中,这样非常不安全。而在带TPM安全芯片的系统中,一些关键的key是存在TPM芯片内部,这时攻击者只有攻破TPM才有可能攻破系统的防护,攻克一块芯片比一块硬盘成本和难度可大得多。TPM成为系统可信的最低层次,它提供了整个系统可信的基础。
    • TPM主要目的是用来加解密数据(seal/unseal),这些经TPM加密的数据只有这块TPM芯片才能解密,从而达到了数据与此TPM芯片绑定来保护数据的目的。离了加密的这块TPM芯片这份资料是无法解密的。
    • 但是通常TPM芯片是一个很低速的芯片,所以不会用来加解密大量的数据。通常只是用来加解密少量数据(比如其他软件层加解密算法的key,可以统称这些key经TPM加密保护的数据为TPM密钥)。例如整个硬盘数据加密,并不是直接用TPM加密,而是用一个key去软件加密,而这个key是用TPM再加密保护起来(如前所述,加密后称之为一个TPM密钥)。如果要解密硬盘数据,只能先把该TPM密钥用这个TPM芯片解密得到初始的key,才能解密硬盘数据。如此即使别人偷了硬盘也没用,甚至别人的TPM owner密码一样也是解不出来的。
    • TPM功能的核心是签注密钥( endorsement key),这是在生产过程中内置到TPM硬件的加密密钥,每个TPM是唯一的。这个签注密钥的私钥部分绝不会出现在TPM外部或暴露给其他组件、软件、程序或个人。它是TPM的基础,也可以认为是数据与此TPM芯片绑定的原因。
    • TPM有密码和ownership的概念,take ownership的时候你会设置一个密码,之后就是这块TPM的owner,只有知道这块密码才能用它做一系列的操作,如前面提到的加解密。你可以clear ownership,clear之后别人才可以take ownership,但是在这之前这块TPM只属于你(的密码)。
    展开全文
  • Total Productive Maintenance (全员参与的生产保全 ) 之缩写,TPM简称“全员生产保全”,也有称为“全员生产维护”。 T —— Total 为由经营层至第一线作业者全员参加之 Total;设备总合效率之 Total;生产系统...

    优思学院|什么是TPM管理?

    Total Productive Maintenance (全员参与的生产保全 ) 之缩写,TPM简称“全员生产保全”,也有称为“全员生产维护”。

    T —— Total 为由经营层至第一线作业者全员参加之 Total;设备总合效率之 Total;生产系统全体之寿命周期之 Total。

    PM—— Productive Maintenance (生产保全)则为最经济的保养,亦即生产上最经济的保养方法。

    按照日本工程师学会(JIPE),TPM有如下的定义:

    (1)以最高的设备综合效率为目标;

    (2)确立以设备一生为目标的全系统的预防保全;

    (3)设备的计划、使用、保全等所有部门都要参加;

    (4)从企业的最高管理层到第一线职工全体参加;

    (5)通过开展小组的自主活动来推进生产保全。

    TPM的管理特征

    TPM的管理特征

    TPM的管理特征

    日本的全员生产保全与原来的生产保全相比,主要突出一个“全”字,“全”有三个含义,即全效率、全系统和全员参加。所谓的全效率,是指设备寿命周期费用评价和设备综合效率。全系统即指生产维修的各个侧面均包括在内,如预防维修、维修预防、必要的事后维修和改善维修。全员参加即指这一维修体制的群众性特征,从公司经理到相关科室,直到全体操作工人都要参加,尤其是操作工人的自主小组活动。

    1、目标性:人类的每一项活动都是为了取得一定的效果,达到一定的目标。TPM管理也不例外,它的目标就是要不断追求企业生产效率的最大化,全面提升企业的综合素质。具体来讲,TPM管理是通过对设备的六大损失(故障损失、工艺调整损失、突停和空转损失、速度损失、废次品损失、开工损失)和生产现场的一切不良因素实施持续的改善,努力实现“5Z”(零事故、零故障、零缺陷、零库存、零差错)的目标,从而达到最佳的设备综合效率和企业经营效益,提高企业的市场竞争能力和应变能力,最终达成“3S”(员工满意、顾客满意、社会满意)的可持续发展的企业,其目标是明确的。

    2、系统性:就是TPM管理涉及企业生产系统的全方位和全过程。TPM把设备包括引进、安装、调试、使用、维护、维修、改造,直到报废更新的各个阶段作为管理对象,涉及设备的各个子系统以及设备的每一个部件、零件,构成以事后维修、预防维修、改善维修和维修预防为主导的全系统生产维修体系。同时,TPM要求对设备环境、车间以至整个生产现场实行清洁化、定置化、目视化和文明化的管理。

    3、集合性:TPM管理由一些相对独立而又相互依赖的活动内容组成,这就是我们所说的TPM八大支柱,即:个别改善、自主维修、专业维修、初期管理、质量管理、安全与环境管理、事务改善、教育培训。这些活动既有区别,又有联系,相互制约,相互促进,例如维修管理影响着环境管理,环境管理又影响着质量管理,各项活动相互交织在一起,形成一个错综复杂的链和环。

    4、整体性:虽然TPM管理的每一项活动内容都是可以量化的,各自具有其独立的功能,但是由于这些活动都是有组织、有系统的活动,它们几乎都难以独自充分发挥其效能,因此单纯追求某一个目标是没有意义的,必须使这些活动形成一个集合,统一于和协调于TPM管理的整体之中,围绕着TPM管理的目标,共同发挥各自的功能,这样才能构成完整的有机整体,形成一个总体效应。

    5、开放性:作为当代企业管理的重要组成部分,TPM管理处于整个企业管理的大环境中。因此,TPM管理必将受到企业资源条件、环境条件、人员素质、管理方法和管理手段的影响和作用,同时,TPM管理状况也将作用于和影响于企业管理及其它各项专业管理。由此可知,TPM管理与所处的环境之间既有输入,又有输出,相互渗透,相互促进,每一次输入输出过程的完成,都应使企业管理、专业管理及TPM管理水平有所提高。

    6、全员性:TPM管理要求企业从最高领导到生产第一线作业人员的全面参与。事实上,对于一个象鞍钢这样的特大型钢铁企业来说,仅靠某个管理部门或是几个人来抓,是无法把住质量关、成本关、设备维护关、安全生产关的,必须把所有员工都发动起来,充分调动其积极性、主动性和自觉性,实现群体参与,才能使推进TPM管理工作开展起来并坚持下去。全员参与是TPM管理最基本的特征。

    7、动态性:对于TPM管理的要求,在一定时间内是相对稳定的,但是随着企业管理水平的提高和企业生产经营活动的发展,特别是我国加入WTO后企业直接面对的世界经济全球化和国内市场国际化的新挑战和新环境,TPM管理也应与之相适应,不会也不应该停滞在一个水平上。TPM管理始终处于动态的PDCA循环过程中,才会有生命力,才会有效地发挥其独特的功能。

    8、持续性:企业追求“5Z”目标和效率最大化的完美境界是无止境的,因此企业推进TPM管理不是突击性的、临时性的工作,不可能一劳永逸,它是一项连续不断的、持久的、艰巨的管理活动,稍有松懈,就有可能崩跨,前功尽弃。

    因此,推进TPM管理必须思想上重视,工作上狠抓,切实下大力量,常抓不懈,才能推动企业管理水平的不断提高。综上所述可以看出,TPM有如下的特征:以最高的设备综合效率为目标,确立以设备生命周期的全系统的预防维护,设备的计划、使用、维修等所有部门及全体员工都要参与,提倡通过小组自主活动来推进生产维护。

    TPM通过以全员参与的小组方式,创建设计优良的设备管理系统,提高现有设备的最有效利用,实现安全性和高质量,防止错误发生,从而使企业达到降低成本和提高全面生产效率。具体包括:强化设备基础管理,提高设备可动率;维持设备良好状态,延长设备寿命;提高生产效率,降低成本;改善工作环境,消除安全隐患,提高员工工作满意度;提高企业持续改善的意识和能力。

    自主保全是TPM的一大特色,自主保全强调生产者自己进行设备日常维护,专职设备人员的重点职责则转化为设备专业技能的培训和计划保全、特定情况下的专业维修等。由单一专业保全转变为以自主保全为主,是企业设备管理思想的一次飞跃,难度虽大,但通过有效的思想意识教育和专业方法辅导,完全能够实现。华安盛道近期对某企业的TPM咨询就顺利实现了此项转变,设备管理效果明显改善,而专业保全人员缩简了近一半。

    TPM的推行离不开5S基础,在5S基础上,企业就可逐级开展如下工作:初期清扫;污染源及薄弱点对策;自主保养;自主管理等。通过深入开展TPM,企业就能不断接近“停机为零!废品为零!事故为零!”的奋斗目标。

     

    展开全文
  • 可信平台模组(TPM)的前世今生

    千次阅读 2019-06-30 19:45:20
    10多年来,商业个人电脑平台在运输中带有一个基于标准安全子系统,它位于PC的主板上,通常被称为可信平台模组(TPM)。TPM已经在许多应用中得到了广泛的使用,但是一些问题阻碍了其更大规模的被采用。在过去8年中,...
  • TPM安全芯片

    千次阅读 2019-07-11 20:55:24
    TPM(Trusted Platform Module)安全芯片,是符合TPM(可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问。了数据安全的考虑,不少笔记本都集成了安全芯片,可实现数据加密、密码保护等安全...
  • 企业开展的TPM管理活动就像生活中的吸尘器,吸取企业各项设备中的灰尘,解决企业对设备制定的管理工作的不足,掌握好其重要特点,才能更好的开展生产活动。
  • TPM工作原理

    千次阅读 2018-05-30 21:21:21
    TPM(Trusted Platform Module)安全芯片,是符合TPM(可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问。了数据安全的考虑,不少笔记本都集成了安全芯片,可实现数据加密、密码保护等安全...
  • Win11 DELL - G7 如何开启TPM模块

    千次阅读 2021-07-07 18:05:11
    TPM(Trusted Platform Module)安全芯片是符合TPM(可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问。 Window11预览版已经发布了一阵子了,如何使自己的电脑符合条件打开Dev渠道更新捏~ 接...
  • tpm

    2018-03-09 17:03:54
    :这一点和项目范围是在项目最开始确定的不冲突,如果你以为最开始定下项目范围后就固定 了,那就太天真了,3次以上的项目范围变更的是一般的情况,要是你不幸遇到一个极品项目/甲方,项目范围可能每天每月都会变...
  • TPM在中国为什么很难落地?

    千次阅读 2019-04-04 11:26:08
    华天谋TPM咨询专家概述:TPM是英文Total Productive Maintenance的缩略语,中文译名叫全员生产维护,又译为全员生产保全。TPM诞生于70年代初,是以提高设备综合效率为目标,以全系统的预防维修为过程,全体人员参与...
  • TPM介绍及工作原理

    千次阅读 2013-07-03 17:31:53
    TPM(Trusted Platform Module)安全芯片,是符合TPM(可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问。了数据安全的考虑,不少笔记本都集成了安全芯片,可实现数据加密、密码保护等安全...
  • AMT & TPM

    2017-11-10 16:13:00
    ,是符合TPM(可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问。   用途  TPM安全芯片用途十分广泛,配合专用软件可以实现以下用途:  1、存储、管理BIOS开机密码以及硬盘 密码  ...
  • 0. 序最近搞可信计算方面,需要使用tpm模拟器,查阅不少资料,也看到了网上各位的教程。现将自己的安装步骤写个备注,方便自己查看。也希望对看官有所帮助。开干。—原创水印:http://blog.csdn.net/gscsnm—1. 环境...
  • 这是应用现代科学技术成就和先进经验,在对其进行寿命周期费用分析的基础上,结合设备维修,通过改变现有设备的结构,加装和更换新部件、新装置、新附件等,以改善原有设备的技术性能,增加功...
  • 一.基本名称,容易混淆 1.dm-crypt是linux的2.6内核开始集成的一种磁盘加密功能。十几年来,连sche调度算法都被改了N次,但dm-crypt一直稳定在内核中,稳定性还是很好的。 2.cryptsetup是linux一般自带的一个用户...
  • PWM分辨率ΔT是脉冲宽度的最小时间增量。 若PWM是利用频率为 48MHz 的时钟源产生的,即时钟源周期 20.8ns ,那么脉冲宽度的 每一增量为20.8ns ,即PWM的分辨率,脉冲宽度的最小时间增量。 脉冲宽度的增加与...
  • 转录组表达量计RPKM、FPKM、TPM说明

    千次阅读 2018-04-27 22:03:00
    基因表达量的衡量指标有:RPKM、FPKM、TPM。 RPKM:Reads Per Kilobase Million;说实话,这个英文说明真的很费解,其实可以理解为“Reads Per Kilobase Per Million Reads”​,即“每一百万条Reads中,对基因的每...
  • 昨天点AMT发现TPM未发现,点设备管理器发现有一个未安装的设备驱动,想到应该就是TPM,上网找驱动安装出现“安装程序无法创建一个或多个保存文件快捷方式,程序将要退出”的错误,因为我下载的TPM驱动是SP2的而我装的...
  • TPM emulator 调研报告

    千次阅读 2013-04-15 22:44:29
    TPM emulator 调研报告 1.TPMemulator设计概要  TPM emulator包包含3个主要部分(见图1):实现真实TPM模拟器的用户空间守护程序(tpmd),作为连接模拟器常规接口的TPM设备驱动库(tddl),可以为与TPM设备驱动...
  • 华天谋TPM咨询专家概述:设备采购是TPM设备前期管理的重要环节,设备采购质量的好坏,影响着后续的调配、维护、调换,乃至长期产品的更新换代,因此必须了解设备采购的方法和注意事项。 一、TPM设备采购的有效方法 1...
  • 华天谋TPM咨询专家概述:为贯彻“少花钱、多创效”的企业精益生产管理精神,工厂企业在设备管理中对于备件消耗定额管理方面需要加强要求,旨在通过落实设备管理点检和检修标准化管理等一些措施和办法,达到促进企业...
  •  这里的是Trousers,我用的版本是0.3.11.2。Trousers是一个开源可信计算软件栈,它从下到上依次为TDDL(驱动库)、TCS(核心服务)、TSP(服务提供者),tcsd是编译完毕之后的一个用户态可执行文件,作为守护进程...
  • Windows 7安全启动与TPM

    2013-05-03 22:22:58
    近段时间帮助客户开发一套基于TPM的安全管理系统,现隐去项目和代码内容,为大家简单介绍一下Windows7的安全启动与TPM相关技术。以下开始算是正式内容。 一、概述 Windows 7是微软推出的新一代操作系统。在...
  • TPM设备管理作为现代化企业管理的重要组成,TPM管理在企业的实施关着企业的生产发展,TPM管理不但改善企业的生产设备,还提高...这是企业须根据技术先进、经济合理的原则和生产的需要,正确地选择设备。同时要进...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,315
精华内容 926
关键字:

tpm是指