每次创建数据分区上的文件时,数据保护都会创建一个新的256位密钥(“每个文件”密钥),并将其交给硬件AES引擎,该引擎在使用AES CBC模式将文件写入闪存时使用密钥对文件进行加密。初始化向量(IV)是用块偏移量计算的线性反馈移位寄存器(LFSR)的输出,该移位寄存器由每个文件密钥的SHA-1散列加密而成。
关于iOS-安全白皮书 ( pg摘录)。8)将文件写入数据分区时,创建AES密钥,由AES引擎使用AES-CBC模式对文件进行加密。AES-CBC确实需要一个初始化向量,它是线性反馈移位寄存器的输出.
是这样的吗?
加密(LFSR(块偏移),SHA-1(perfile-key)) ->存储在文件元数据中的结果
发布于 2013-08-10 08:08:07
本源详细研究了它,他们还实现了工具来实现它,根据它,它的工作原理如下(大致如此):
每个受保护的文件都有一个元数据条目,其中包含每个文件的加密密钥,每个文件的密钥都用相应的类密钥加密;元数据还包含有关文件的保护类的信息。元数据字段本身也是用EMF加密的。文件数据本身只使用每个文件密钥加密,而IV是隐式的,即不属于该数据的一部分(引用来自这是iOS 5的后续行动):
要计算文件数据分叉中的块的IV,IV生成器的输入现在是文件分叉中的块偏移量(而不是iOS 4上的块LBA ),然后用" IV-key“加密(AES128)以给出实际的IV。" IV -key”是每个文件唯一的,并使用以下公式计算:IV-key= SHA1(filekey)*16
这可能是为了确保如果文件中不同的文件系统块是相同的(可能是0块),用于这些块的IV是完全不同的(它们过去只是通过LSFR提供的iOS 4上的块LBA )。IV生成器(来自块偏移)仍然是相同的LSFR (它的来源可以在上述工具中找到)。
https://crypto.stackexchange.com/questions/9582
复制相似问题