什么是可信根

Posted 积微子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是可信根相关的知识,希望对你有一定的参考价值。

        可信根即信任根,在可信计算机系统中作为信任的基点。

        在可信计算体系中,我们要从不同方向实现可信,主要体现在:启动程序(软件、固件)的可信、存储数据(状态、策略、资源)的可信、对外报告的可信。由此,可信计算从三个概念来实现信任的基点:可信度量根(RTM)、可信存储根(RTS)、可信报告根(RTP)。

    以TPM为例:(引用自《可信计算》,张焕国,赵波等著)

  1. 可信存储根:是指TPM中PCR的存储器和存储根密钥。
  2. 可信报告根:是指TPM芯片中PCR和背书密钥(Endersement Key,EK)。
  3. 可信度量根:是指整个计算机上电后,被执行的一段代码,也叫做CRTM(Core Root of Trust for Meaurement)。

      因为可信根中使用了密钥和密码算法,所以可信根也必须是一个硬件形态的密码芯片,可信密码芯片实质上就是一个基于密码芯片的SoC(System on Chip)。

        我们应该如何理解这三个根呢?

        在现实生活中,我们如何判断一个人身份呢?当然是通过此人的身份证来判断。权威机构颁发的身份证,就是每个人的信任根。在每个人出生时,就采集了指纹、DNA等信息,在颁发身份证时,可以唯一标识一个人的身份。

        可以设想这样一个场景:乘坐火车出行时,我们首先到火车站售票窗口,持身份证购买车票。进站时,通过安检、查验身份证或车票后进站乘车。上车后,乘务员会对乘车人查验身份证和车票(人、证、票合一)。

       在上面描述的场景中:身份证就是可信根。身份证在签发时,唯一绑定了每个人的特征:指纹和DNA,所以其唯一代表一个人。存储在身份证中的关键信息(指纹信息、DNA、身份证号)等受到身份证芯片的物理保护,在这个过程中身份证就扮演了可信存储根的作用(这里只是类比,可信存储和密钥相关)。我们购买的车票和身份证进行了绑定,在我们进站时出示车票和身份证时,就可以将车票理解为对外的报告,身份证证明我们的身份和提供的票据的正确性,二者共同证明本人具备乘车资格(即报告合法,又身份合法),在这个过程中,身份证扮演了可信报告根。为了保证整个乘车系统的安全,车站安排了可靠的验票员,有验票员检查每个乘客的票据信息。此时,验票员就扮演了可信度量根的角色。

        由于可信存储根(RTS)和可信度量根(RTP)都和密钥有关,所以这个场景不是十分贴切,但总体上表达了三个根的含义。   (关于三根和密钥的关系,可以参考本人博客的其他文章)

        在三根的定义中,可信度量根(RTM)比较特别。在TPM的计算机平台上,可信度量根是在Bios启动之前的一段代码,这段代码我们定义为CRTM。CRTM有两个特点:1、作为第一段运行的代码,其安全性由计算机提供商从硬件层面来保证(如:来源可靠、不可更改等);2、CRTM启动后使用密码算法计算BIOS主程序的完整性(HASH值),并与TPM预选存储的HASH值进行比较,判断BIOS是否被篡改。因此,我们发现在上个例子中可信度量根是验票员,而不是身份证。

应用包或捆绑包中签名的根证书必须是可信的

【中文标题】应用包或捆绑包中签名的根证书必须是可信的【英文标题】:The root certificate of the signature in the app package or bundle must be trusted 【发布时间】:2018-07-12 14:26:23 【问题描述】:

我正在使用 Xamarin 和 Visual Studio 2017 进行移动应用程序开发。 我已经为 Windows 移动应用程序的 UWP(通用 Windows 平台)平台创建了一个包,我通过安装它在我的本地机器上进行了测试,它运行良好。 但是,当我将整个软件包(appxbundle 等)提供给其他用户进行测试时,在该机器上安装时出现以下错误。

错误0x800B0109:。

那么,同一个包在一台机器上运行而不在另一台机器上运行的原因是什么? 对此的任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:

它可以在您的设备上运行,因为您已经通过调试器运行了它,因此已经安装了应用证书。

要使其在其他人的设备上运行,您需要通过 Powershell 进行安装,它会处理证书安装(右键单击软件包随附的 ps1 文件和 Run with Powershell),或者您首先必须安装双击_Test文件夹中的证书文件手动进行认证。

【讨论】:

好的,我们可以安装没有证书的包吗? 不,很遗憾没有。需要在侧载应用程序之前安装证书 如果我们尝试使用 .appxbundle 或 .ps1 安装软件包有什么不同/问题吗? ps1 解决方案对用户不太友好,但也会自动安装证书。安装证书后,下次正常双击该包即可,无需额外步骤即可使用。 @AbhishekMaurya 我认为在这种情况下,证书是由微软提供的,所以它已经被信任了。

以上是关于什么是可信根的主要内容,如果未能解决你的问题,请参考以下文章

什么是可信计算?

可信验证与TPCM技术

快速了解什么是可信执行环境TEE技术

可信计算(Trusted Computing)

可信计算(Trusted Computing)

隐私计算中可信执行环境的一知半解