标签: trusted-computing

How to encrypt bytes using the TPM (Trusted Platform Module)

How can I encrypt bytes using a machine's TPM module?

CryptProtectData

Windows provides a (relatively) simple API to encrypt a blob using the CryptProtectData API, which we can wrap an easy to use function:

public Byte[] ProtectBytes(Byte[] plaintext)
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

The details of ProtectBytes are less important than the idea that you can use it quite easily:

  • here are the bytes I want encrypted by a secret key held in the System
  • give me back the encrypted blob

The …

windows encryption tpm trusted-computing

106
推荐指数
2
解决办法
1万
查看次数

在Linux下签名的可执行文件

出于安全原因,希望在执行之前检查代码的完整性,避免攻击者篡改软件.所以,我的问题是

如何在Linux下签署可执行代码并仅运行可信软件?

我读过van Doom 等人的着作.,设计和实现Linux的签名可执行文件,以及Safford&Zohar 的IBM TLC(可信Linux客户端).TLC使用TPM控制器,这很好,但该文件来自2005年,我无法找到当前的替代品.

你知道其他选择吗?

更新:关于其他操作系统?OpenSolaris的?BSD家庭?

linux security linux-kernel trusted-computing

35
推荐指数
4
解决办法
3万
查看次数

我可以将Amazon AWS Lambda用作可信计算的安全区域吗?

我想使用AWS Lambda代表第三方执行计算,然后向他们证明我按预期这样做了.证明将是函数体,请求和响应的加密签名摘要.理想情况下,亚马逊会使用自己的私钥对摘要进行签名,并发布其公钥以允许验证签名.这个想法类似于新的英特尔芯片通过SGX(软件保护扩展)提供的"安全区".

现有的Lambda服务具有一些所需的成分.例如,GetFunction响应包括唯一标识函数实现的CodeSha256字段.Amazon API Gateway允许您向Lambda服务发出HTTPS请求,这可能允许TLSNotary样式的请求 - 响应内容证明.但要做到这一点,我认为AWS Lambda需要直接提供签名.

Microsoft Azure正在其项目Bletchley中开发可信软件包("cryptlets"): https://github.com/Azure/azure-blockchain-projects/blob/master/bletchley/bletchley-whitepaper.md https:// github的.com /天青/天青-blockchain项目/斑点/主/布莱切利/ CryptletsDeepDive.md

当前的AWS Lambda是否可以这样?

amazon-web-services trusted-computing aws-lambda

17
推荐指数
1
解决办法
1511
查看次数

如何确保一段代码永远不会离开CPU缓存(L3)?

最新的英特尔XEON处理器拥有30MB的L3内存,足以容纳薄型1管理程序.

我有兴趣了解如何在CPU中保留这样的Hypervisor,即防止被刷新到RAM,或者至少在发送到内存/磁盘之前加密数据.

假设我们使用裸机运行,我们可以使用DRTM(延迟启动)来引导它,例如我们从不受信任的内存/磁盘加载,但是如果我们可以解密()用于解密的秘密,我们只能加载真实的操作系统.操作系统,在设置了适当的规则以确保发送到RAM的任何内容都已加密后进行.

ps我知道T​​XT的ACEA又称ACRAM(认证代码执行区域又称认证代码RAM)据说有这样的保证(即它限制在CPU缓存中)所以我想知道是否可以在此周围做一些技巧.

pps这似乎超出了目前的研究范围,所以我实际上并不确定答案是否可行.

cpu hypervisor low-level trusted-computing cpu-cache

6
推荐指数
1
解决办法
1016
查看次数

如何使用例如 sha1sum 复制 PCR 值的扩展?

这与以下帖子有些相关: Perform OR on two hash output of sha1sum

我有一组 TPM 测量样本,例如以下内容:

10 1ca03ef9cca98b0a04e5b01dabe1ff825ff0280a ima 0ea26e75253dc2fda7e4210980537d035e2fb9f8         boot_aggregate
10 7f36b991f8ae94141753bcb2cf78936476d82f1d ima d0eee5a3d35f0a6912b5c6e51d00a360e859a668 /init
10 8bc0209c604fd4d3b54b6089eac786a4e0cb1fbf ima cc57839b8e5c4c58612daaf6fff48abd4bac1bd7 /init
10 d30b96ced261df085c800968fe34abe5fa0e3f4d ima 1712b5017baec2d24c8165dfc1b98168cdf6aa25 ld-linux-x86-64.so.2
Run Code Online (Sandbox Code Playgroud)

根据 TPM 规范,在上面的帖子中也提到,PCR 扩展操作是: PCR := SHA1(PCR || data),即“将 PCR 的旧值与数据连接起来,对连接后的字符串进行散列并存储PCR 中的哈希值”。此外,我发现的规范多篇论文和演示文稿提到数据是要加载的软件的散列。

但是,当我执行类似 的操作时echo H(PCR)||H(data) | sha1sum,我没有获得正确的结果值。即,当计算(使用上述散列)时:echo 1ca03ef9cca98b0a04e5b01dabe1ff825ff0280a0ea26e75253dc2fda7e4210980537d035e2fb9f8 | sha1sum,结果值不是7f36b991f8ae94141753bcb2cf78936476d82f1d

我对 TPM_Extend 操作的理解正确吗?如果是这样,为什么生成的散列与样本测量文件中的散列不同?

谢谢!/n

linux sha1 trusted tpm trusted-computing

5
推荐指数
1
解决办法
2044
查看次数

有关 SGX 加载的详细信息

是否可以将大于 EPC 内存的程序加载到飞地?我觉得理论上这是允许的,因为

  • 操作系统可以自由交换页面
  • EEXTEND 以 256 字节增量测量飞地

所以理论上,似乎可以只使用一页 EPC 内存来加载一个大程序:

  1. 将 4K 字节加载到 EPC 页面
  2. 测量加载的页面
  3. 驱逐加载的页面
  4. 将接下来的 4K 字节加载到与 (1) 中的相同的 EPC 页

我在理论上理解正确吗?虽然在实践中,我在加载大程序时立即出错。

intel trusted-computing

5
推荐指数
1
解决办法
1379
查看次数

英特尔SGX线程和vs TCS

我试图理解由TCS启用的SGX线程与SDK提供的不受信任的线程之间的区别.

如果我理解正确,TCS允许多个逻辑处理器进入同一个飞地.每个逻辑处理器都有自己的TCS,因此也有自己的入口点(OENTRYTCS中的字段).每个线程都会运行,直到AEX发生或到达线程结束.但是,由TCS启用的这些线程无法相互同步.至少,没有用于同步的SGX指令.

然后,另一方面,SGX SDK提供了一组线程同步基元,主要是互斥和条件变量.这些原语不受信任,因为它们最终由OS提供服务.

我的问题是,这些线程同步基元是否意味着由TCS线程使用?如果是这样,这不会恶化安全吗?操作系统可以按照自己的意愿进行调度.

intel trusted-computing sgx

5
推荐指数
1
解决办法
1135
查看次数

英特尔TXT和TPM有什么区别?

英特尔TXT和TPM有什么区别?与TPM相比,英特尔TXT还能提供什么?基本上,我想知道TXT是如何工作的?任何易于学习的初学者文献都将受到高度赞赏!

intel tpm trusted-computing

4
推荐指数
1
解决办法
9009
查看次数

如何设置 TrustZone 开发环境

我想开始玩ARM TrustZone,所以我想设置一个开发环境,不幸的是我觉得我仍然缺少一些东西,我不知道如何把所有东西放在一起。

这是我现在的照片:

  • 需要带有 Cortex-A 处理器的 SoC
    • 没有板子可以开发吗?即模拟器?
  • TrustZone 是一种硬件和软件技术
    • 如果我得到一块 SoC 板,是否已经涵盖了硬件部分?
    • 软件(OS/Kernel)部分可以用GlobalPlatform、OpenTEE等解决。
  • 可信应用开发
    • 有哪些 IDE?
    • 他们如何部署到董事会?

我知道这是一个相当广泛的问题,我很乐意获得在线资料的链接


编辑:

我的问题的某些部分得到了部分回答,但最重要的事情还没有得到回答:我详细描述的图片是否正确和完整?是/否,为什么?

不,这不是我应该使用哪个基于 ARM 的开发板的副本

arm soc trusted-computing trustzone

4
推荐指数
1
解决办法
1174
查看次数

用于访问英特尔TXT(可信执行模式)或AMD SVM的API?

当前的操作系统(windows,linux,BSD)是否提供驱动程序,使用户模式程序能够部分以可信执行模式执行(与计算机上运行的其他程序隔离)?如果是这样,哪里可以找到文件?

security virtualization tpm trusted-computing

3
推荐指数
1
解决办法
684
查看次数

如何将运行的应用程序扩展到PCR?

如何将运行的应用程序扩展到PCR?哪个PCR可用于它?

tpm trusted-computing

3
推荐指数
1
解决办法
1613
查看次数

可信执行环境 (TEE) 中的客户端应用程序和可信应用程序

我是 TEE(可信执行环境)的新手。有人可以帮助我解决一些基本的疑问吗?

AFAIK,每个 Android 移动设备都安装了一个单独的 TEE 操作系统以及一些预定义的 TA(可信应用程序)来存储机密信息,如指纹图像、密码、密钥对等。

如何识别 Android 手机上运行的 TEE 操作系统?是否有可能在一台设备中存在多个 TEE,例如 Trusty(来自 Google)、Kinibi(来自 Trustonic)等?

由于 Trusty 来自谷歌,所以所有设备都会默认安装 Trust OS 吗?

如何列出 TEE 中现有的 TA 应用程序?如果是这样,我们可以使用 CA(使用来自谷歌的 Trusty API 的客户端应用程序)从手机连接到现有 TA吗?

security android trusted-computing trustzone trusted-execution-environment

3
推荐指数
1
解决办法
1395
查看次数