问题标签 [trusted-computing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1435 浏览

intel - 关于 SGX 加载的详细信息

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

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

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

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

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

0 投票
2 回答
1834 浏览

intel - 英特尔 SGX 线程和与 TCS

我试图了解 TCS 启用的 SGX 线程和SDK提供的不受信任的线程之间的区别。

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

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

我的问题是,这些线程同步原语是否打算由 TCS 线程使用?如果是这样,这不会降低安全性吗?操作系统可以随心所欲地进行调度。

0 投票
1 回答
1343 浏览

sgx - 英特尔 SGX 远程证明示例代码

我正在尝试在英特尔 SGX SDK 中运行远程证明示例代码。我总是收到错误“错误,调用 sgx_ra_get_msg1 失败 [wmain]。” 我认为这是因为该sgx_ra_init(&g_sp_pub_key, b_pse, p_context)函数返回零值p_context,无法使用。

有没有人可以正确运行远程证明示例代码?PS:我可以运行本地认证示例代码,我认为Intel SGX开发环境是可以的。

0 投票
1 回答
261 浏览

security - Xen vTPM 是否集成到 Openstack 云中?

Xen 能够将虚拟可信平台模块 (vTPM) 附加到来宾 VM:http://wiki.xenproject.org/wiki/Virtual_Trusted_Platform_Module_(vTPM)。我想知道此功能是否有任何 Openstack 集成 - 例如托管 VM 是否可以配置为 vTPM?

我在这里看到了与 Hyper-V 类似的东西:

http://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/hyper-v-vtpm-devices.html

0 投票
1 回答
288 浏览

sgx - 英特尔 SGX:从 enclave 二进制文件复制 enclave 测量值

我对英特尔 SGX 中的飞地测量有疑问。从 SignTool源代码(以及手册中的高级描述)来看,似乎测量涉及加载 enclave 文件(ELF 或 PE)。但是加载的结果在不同的平台上是不同的,对吧?我想知道我是否可以从飞地二进制文件中重现一致的飞地测量。

特别是,我正在考虑以下场景:假设我想将一个分enclave.signed.so发给我的用户,并且我只想为来自该特定飞地的请求提供服务。我想我不能简单地将我平台上的本地测量与用户(可以包含在他们的证明中)进行比较。我应该怎么做?

本质上,问题归结为如何以密码方式链接二进制文件和测量值?似乎有一个悖论:假设我有 enclave 二进制文件,我可以获得它的测量值的唯一方法是加载它。但是,加载过程不受信任(由操作系统完成)!我如何确保我得到的测量值确实是针对那个特定的二进制文件?我一定误解了什么,因为这似乎对新交所的整个有效性至关重要。请纠正我。

谢谢!

0 投票
3 回答
1813 浏览

amazon-web-services - 我可以将 Amazon AWS Lambda 用作可信计算的安全飞地吗?

我想使用 AWS Lambda 代表第 3 方执行计算,然后向他们证明我是按预期进行的。证明将是函数体、请求和响应的加密签名摘要。理想情况下,亚马逊会用自己的私钥签署摘要并发布他们的公钥以允许验证签名。这个想法类似于新的英特尔芯片通过 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/Azure/azure-blockchain-projects/blob/master/bletchley/CryptletsDeepDive.md

当前的 AWS Lambda 是否可以实现类似的功能?

0 投票
0 回答
168 浏览

c++ - 使用 TrouSerS 库绑定和解除绑定

我正在使用 TrouSerS 库。我想编写一个应用程序来绑定 AES 密钥并将这个有界密钥放入文件中,第二个应用程序将从文件中解密这个密钥。

这是我的代码:

它正在执行,没有任何错误。

在这里我得到“0x00000021。解密错误。” 在 Tspi_Data_Unbind 函数之后。

请问你能帮帮我吗?

0 投票
2 回答
630 浏览

android - Android Dev:在可信执行环境 (TEE) 中运行自定义代码,扩展 Keystore

我对 Android 开发比较陌生,之前从未使用过 Android Keystore。但我熟悉(理论)概念。

我的问题是我必须生成和存储一个密钥,然后使用这个密钥对一些数据运行加密原语。理想情况下,以最佳方式保护密钥不被提取,ei 密钥生成和所有加密操作仅在安全飞地内运行,以便只有有效负载离开受信任区域。

据我了解,这会自动发生,如果使用“正确”的 Keystore API,硬件设备支持它并且密钥的使用会被适当地标记。但是,支持的算法是有限的。

问题:我可以编写在信任区内执行的自定义代码吗?如果是的话,你能指点我一个好的资源或教程吗?

背景:我需要使用 Abe 的 Optimal Structure-Preserving Signatures 和基于 SXDH 的 Groth-Sahai-Proofs 在椭圆曲线(Barreto-Naehrig 曲线)上做一些花哨的现代东西。显然,开箱即用的 Keystore API 不支持这一点。目前,该代码被实现为 C++ 代码并编译为原生 Android 代码。该实现在语义上是正确的,但在实现级别上没有特别注意安全密钥存储,因为这都是学术原型开发。目前,密钥只是从普通文件读/写,所有操作都在同一个用户域(主)进程中执行。

0 投票
0 回答
723 浏览

android-kernel - 如何部署 Trusty TEE?

最近在研究信任执行环境。并发现 Android 已经实现了一个名为 Trusty 的 TEE 操作系统。我按照https://source.android.com/security/trusty/上的说明构建了 Trusty 系统。但是我该如何部署它呢?还是简单地运行它?

0 投票
1 回答
1286 浏览

arm - 如何设置 TrustZone 开发环境

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

这是我现在的照片:

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

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


编辑:

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

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