iPhone 4 解锁。NCK-暴力破解研究

10
每个iPhone都有一个NORID(8字节)和CHIPID(12字节),每部手机都是独一无二的。
这些信息存储在哪里?是在NOR中还是在seczone中?可以被转储吗?
要解锁iPhone,需要一个NCK。据我所知,NCK由15个字符组成。
它是数字、字母还是字母数字组合?
用于检查NCK是否有效的安全令牌加密存储在seczone的+0x400位置。
这个说法正确吗?
根据我从dogbert的博客上读到的内容,安全令牌是使用类似以下伪代码的方法创建的:
deviceKey = SHA1_hash(norID+chipID)

nckKey = custom_hash(norID, chipID, SHA1_hash(NCK), deviceKey)

rawSignature = generateSignature(SHA1_hash(norID+chipID), SHA1_hash(chipID))

Signature = RSA_encrypt(rawSignature, RSAkey)

security token = TEA_encrypt_cbc(Signature, nckKey)
  • 伪代码正确吗?如果是的话,使用的是什么自定义哈希?用什么生成rawSignature?使用的RSAKey是什么?是可以在手机中找到的公钥吗?

如果以上伪代码正确。那么我们将不得不暴力破解所有15个字符组合,以找到正确的NCK密钥,对吗?因为即使我们能够恢复NORID和CHIPID,我们也无法利用该信息来缩短所需查找的字符数量。

  • 正确吗?

新一代iPhone OS包含在激活过程中生成的wildcardticket。

  • 但是一旦我们有了NCK,生成它应该不成问题,对吗?正确吗?

我在苹果堆栈交换网站被拒绝了,说这是一个与编程有关的问题。所以我想我会在这里问一下。 - d123
iPhone开发团队正在研究这个NCK破解问题,你应该搜索他们的博客,看看是否有任何可以帮助你的发布内容。此外,根据他们的一位成员所说,NCK只有40位。 - Nasreddine
嗨,是的,我知道他们正在研究这个。但没有更多细节,我正在寻找更多技术细节,例如使用了哪些算法,做了什么,如何得出40位数字。我已经试图通过Twitter联系他们,但还没有回应。问题在于,如果我读到的上述算法是正确的,那么拥有NORID和CHIPID也无济于事,仍然需要暴力破解所有15个字符。 - d123
1
对于那些感兴趣的人,这是我目前为止收集到的研究资料:http://george.insideiphone.com/?p=228 http://www.ithinkdiff.com/nck-iphone-4-unlock-basebands-021001-031001-update/ - d123
1
真希望我上周看到这个。我和设计这个方案的那个人吃晚饭时喝了不少啤酒,我本来可能可以给你一个答案的。 - David Schwartz
1
嘿,大卫,你和那个设计iPhone安全方案或暴力方案的人一起吃过晚饭吗?我很想知道为什么我们不使用暴力破解NCK来解锁iPhone,因为我们需要的信息可以从iPhone中检索出来。 - d123
2个回答

4
  1. NOR ID是硬件芯片ID,烧录在设备的基带芯片中。我不知道您从哪里获取的8个字节,但实际上它是烧录在芯片中的,对于iPhone 3G,大小为64字节,对于iPhone 3GS,大小为128字节。

  2. NCK是15位数字(十进制),即最大NCK为999999999999999。

您的设备密钥有误。

应该这样读取:

deviceUniqueKey = SHA(NCK + CHIPID + NORID)

teaEncryptedData = &seczone [0x400]

rsaEncryptedData = TEA_DECRYPT(teaEncryptedData,deviceUniqueKey)

validRSAMessage = RSA_DECRYPT(rsaEncryptedData,rsaKey)

当您的NCK产生有效的RSA消息时,您已经找到了正确的NCK来解锁您的设备。


1
嗨,克里斯,谢谢你的回答,你能告诉我你获取信息的方向吗?还有一个百万美元的问题,此时我们能够从iPhone中检索到所有所需的信息,因此强制破解NCK是可能的,对吧?我的意思是,我至少有100台网络连接的设备,我可以编写分发代码来简化暴力破解,并通过一些算法调整,我们不应该需要很长时间就能得到15位密钥。我只是好奇为什么解锁社区没有考虑这个方法。 - d123
主要原因是因为需要一个bootrom级别的漏洞来获取seczone数据。自iPhone 4以来,还没有公开的漏洞。 - Chris Moran

0

这里是Python脚本,可以解密iPhone基带内存,因此您将能够获取所有NCK令牌,例如

芯片ID NOR ID IMEI哈希值 Tea哈希值

但是,此脚本仅用于旧的基带(S-Gold芯片组),但您始终可以制作自己的脚本。 此外,以下是一些将iPhone基带转储到文件中的方法,例如使用iPhone核心转储功能或其他脚本,如NOR转储程序。希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接