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