是否有API可以检测iOS上的CPU功能



我有一些具有多个实现的加密代码,根据其运行的CPU的功能,在运行时选择哪个实现。到目前为止,移植它一直很简单,Windows,Linux和Android很容易。

但是在iOS中,这似乎并不容易。X86 CPU具有cpuid指令以检测功能,即使是从用户模式中,ARM等效也具有特权。在没有OS合作的情况下,无法在ARM上检测CPU功能。

在Windows中,IsProcessorFeaturePresent用于检测ARM CPU功能。在Linux上,/proc/cpuinfo是必经之路。Android具有cpufeatures库(/proc/cpuinfo仍然可以使用(。MAC OS具有sysctlbyname,带有hw.optional.*

但是iOS呢?iOS内核具有像Mac OS一样的hw.optional.*,但它在iOS 10中被锁定。(因此,我的问题并不是这种情况的重复,因为这种情况发生了变化。源网站运行一个自动化过程,从他们公开发出的操作系统来擦洗所有特定ARM的代码,以使越狱者更加努力。

您可以在iOS安全指南

上查看

显然,如果您可以获取CPU系列名称,则可以推断出哪些加密组件以及它如何从文档中工作。

您可能会注意到某些设备具有安全性:

安全的飞地是Apple T1中制造的协处理器 S2,Apple S3,Apple A7或以后的A系列处理器。

第6页

您可以推断出任何较旧的CPU版本都没有。

每个iOS设备都有专用的AES-256加密引擎 闪存存储与主系统内存之间的DMA路径 [...]

在T1,S2,S3和A9或更高版本A系列处理器上,每个安全飞地 生成自己的UID(唯一ID(。

第12页

访问加密组件的方法将取决于您要获得访问的数据或存储(本地数据存储/SYNC/HOME DATA/APP/SIRI/ICLOUD/SECURE NOTE/SECURE NOTE/keybag/payment/applepay/applepay/vpn/vpn/wifi密码/sso/airdrop/etc ...(

您是否可以在用例中确定需要访问的加密部分的哪一部分?

您也可以在这里和这里查看以获取有关iOS本机安全和密码学API的其他信息。

iOS阻止某些硬件信息的原因非常简单。请阅读有关Apple A11处理器的信息。里面有很多东西,也永远不会记录下来。

Apple根本不希望开发人员意识到它并使用它。我不会期望在这个主题上取得任何进展。

此刻的唯一前进是绕过操作系统并直接与硬件对话。您会惊讶于里面的东西以及它响应的速度!

相关内容

  • 没有找到相关文章

最新更新