由于Apple控制整个硬件/软件堆栈,是否可以获得以下内容(通过某种类型的可信计算):
实现的目标如下:
当我的服务器发送数据时,保证数据只能以我打算使用的方式使用(因为它在未经监狱的iOS上运行我的应用程序未修改)。
这可以防止像修改后的应用程序那样窃取从服务器传输到客户端的数据。我知道理论上可以窃听,但这可以通过加密来消除。
谢谢!
答案 0 :(得分:3)
简单地说,没有。
您在不支持TC的平台上谈论可信计算概念。 IOS不包括Trusted Computing - Remote Attestation
附近的任何内容。 没有TPM 。
如果引导链中下一个元素的签名无效,Apple芯片建立的信任链只会尝试停止执行。如果有一件事失败了(越狱),他们就没有真正有效的方法来检测它。它与Microsoft引入的安全启动非常相似,但它与可信计算非常不同,后者attest
当前正在运行的系统版本。
通过可信计算,TPM存储系统启动(SRTM)的测量(PCR)。在启动时,执行的第一件事(CRTM - 我们真正需要隐含信任的唯一事物)将通过测量BIOS启动链,将度量发送到TPM(在PCR中)并将执行传递给它(BIOS)。然后BIOS对引导链中的下一个元素执行相同的操作。
然后,根据内存中加载的环境,存储在PCR中的测量值可用于加密或解密信息(SEAL / UNSEAL操作)。
TPM不对测量采取行动(好的或坏的)。我们的想法不是限制可以加载的内容,而是能够知道平台上加载了什么环境。如果某些内容被修改,TPM将不包含正确的PCR值,UNSEAL操作(使用PCR作为密钥解密)将不起作用。
在远程证明的情况下,我们谈论的是QUOTE操作。这与SEAL基本相同,但是使用其他密钥来确保评估方可以验证证明确实来自真实/兼容的TPM。
当然,系统可以使用SEAL操作来保护用于解密操作系统的秘密,从而以某种方式产生与安全启动相同的效果。
有关详细信息,请参阅我的其他帖子。