报价
HOME
报价
正文内容
NAND解锁 FBI 破解 iPhone 后你是不是担心这些问题?
发布时间 : 2025-01-20
作者 : 小编
访问数量 : 23
扫码分享至微信

FBI 破解 iPhone 后你是不是担心这些问题?

FBI到底是通过什么办法破解iPhone?是漏洞吗?这个漏洞会对一般用户有什么影响?

昨天美国司法部宣布,计划放弃对苹果不愿解锁 iPhone 的起诉。因为 FBI 已经通过第三方成功解锁了涉案的 iPhone 5c。看到这则新闻的你想必应该有很多疑问,比如 FBI 是如何破了苹果 iPhone 的“铜墙铁壁”,此外还有一些和你的切身利益相关的问题应该也困扰着你。那么这里我们就来为你解答。

FBI的成功是否意味着美国当局现在可以破解任何一台iPhone的密码?

我们知道此前 FBI 要求苹果协助破解 iPhone 时,是要求他们提供特别版 iOS 操作系统,这样 FBI 在法鲁克的 iPhone 5c 上尝试输入密码时,可以避免因为密码错误而带来的等待,也能够避免触发设备的数据擦除功能。

但是最新的法庭文件显示没有人尝试过这种方法,文件仅表示已经获得了部分存储在设备上的数据。至于 FBI 如何破解 iPhone,没人知道,行业猜测可能是通过 NAND 镜像法来破解的。

而 Cellebrite 则曾提出绕过密码锁来获取设备中存储的数据,但是通过这种方法 FBI 无法获取设备上的全部数据。另外还有一个因素必须考虑在内,苹果公司最近更新了 iOS 软件。

每次 iOS 升级和更新中一定包括安全更新。如果 FBI 在法鲁克的 iPhone 软件中利用了什么安全漏洞,那苹果在 iOS 9.3 中很有可能已经修复了该漏洞。

有没有什么方法可以防止其他人获取iPhone里的信息?

除了把 iPhone 毁了,没有什么方法是万无一失的。但是你可以利用加密应用来混淆数据。比如聊天工具 Wickr Messenger,每次用户使用这款应用时都必须输入密码。同样的像 PQChat,用户必须输入五位数密码才可以使用这款应用。

也就是说如果你的 iPhone 被破解了,信息内容、邮件和 WhatsApp 聊天内容等都曝光了,而类似上述应用中的内容可能还是安全的。

当然这些都是在政府没有在你的 iPhone 上安装后门软件的前提下说的。如果你的设备被安装了后门软件,那不管你怎么加密,一切都是徒劳。

该事件会对其他类似事件产生什么影响?

此前的消息表示,美国司法部还想通过法庭判决让苹果帮助他们解锁更多设备。而其中关注度较高的就是纽约布鲁克林案件中的 iPhone。

在 2 月底,美国纽约东区地方法官 James Orenstein 拒绝了司法部申请强制苹果协助解锁一部 iPhone 5s 的请求,司法部同样是希望通过 1789 年的 All Writs Act 法案来达到自己的目的,为此 James Orenstein 还写下了长达 50 页的裁决书。美国司法部有可能会继续进行申请,要求苹果必须配合政府调查工作,解锁那台运行 iOS 7 的 iPhone 5s。

纽约案件中 iPhone 5s 运行的是 iOS 7 操作系统,而法鲁克 iPhone 5c 运行的是 iOS 9 操作系统,因此在 iOS 9 iPhone 5c 上有效的办法不一定对 iOS 7 iPhone 5s 也有效。

但是如果美国政府还想继续利用 All Writs Act,强迫苹果和其他公司给他们提供后门的话,或许最终只能够让最高法院决定政府是否真的有这样的权利。

BitVM:图灵完备的 Taproot 智能合约

BitVM [1]是 Robin Linus 提出的一种用于表达具有图灵完备性的比特币智能合约的建议,并且声称 BitVM 能够在不对网络的共识规则进行任何改变的情况下实现。BitVM 的设计类似于 Optimistic Rollups,那么 Optimistic Rollups 又是如何实现的呢?

那么 Optimistic Rollups 又是如何实现的呢?在了解 BitVM 之前,我们先简单说说欺诈证明。

Optimistic Rollups

Optimistic Rollups [2]是一种基于乐观性验证的二层扩容方案,它基于欺诈证明避免无效的状态转移

何为欺诈证明?欺诈证明默认发生的状态转移是有效的(EVM 维护了一个庞大的状态机),发布者将交易前状态树的根哈希值以及交易发送到 Layer 1 上,Layer 1 上的智能合约确认交易前状态树根哈希是否和存储的根哈希一致。但是,Layer 1 上的智能合约并不能保证交易过程是正确的。在 Optimistic Rollups 中则默认这些状态的转变是正确的,其核心在于有挑战者发起挑战(说明状态的执行存在错误)时,证明交易前状态树的根哈希在执行这一组交易之后可以变为新的状态根哈希。

在默认交易的执行过程没有错误的情况下,Optimistic Rollups 的方案就较为简单:在 Layer 2 中执行一系列交易后得到的新的状态树哈希和交易存放到 Layer 1 上即可 [3],而在发生挑战的情况下进入到欺诈证明的流程。而欺诈证明的流程不是本文的重点,不再进行赘述。

BitVM

BitVM 采用了类似 Optimistic Rollups 的方法:证明者和验证者 (BitVM 考虑只有两者的简单情况以简化方案,也是后续会频繁提到的两个角色)将程序编译为巨大的二进制电路 ,证明者将电路提交到一个为电路中的每个逻辑门都有一个叶子脚本的 Taproot 地址中。并且证明者和验证者预签名了一系列交易以启用两者之间的挑战-应答。

在这里,证明者和验证者之间共享了这个二进制电路,并且被证明者提交到 Taproot 地址中,在有效的时间内执行欺诈证明的一系列操作。

从 0 和 1 开始

比特值承诺(Bit Value Commitment, BVC)是 BitVM 的最基本的组成部分,它允许证明者将特定位的值设置为 0 或 1。证明者可以在不同的脚本和 UTxO 中设置变量的值。而这会是实现 BitVM 的关键,它通过将运行时分布在多个交易中来扩展 Bitcoin 虚拟机。

一个 BVC 包含两个哈希值,$hash_0$ 和 $hash_1$,在此后的某个时刻,证明者可以实现下面的操作:

揭露 $preimage_0$ 将这个位设置为 0;揭露 $preimage_1$ 将这个位设置为 1;同时揭露 $preimage_0$ 和 $preimage_1$。此时验证者将它们用作欺诈证明 ,并收回证明者的存款,该操作被称为 equivocation;在上面的这些操作中,$preimage$ 是 $hash$ 的原象,假设有一个哈希函数 $H$,那么有 $hash = H(preimage)$

结合 BVC 和时间锁能够强制要求验证者在一定时间内决定 bit 的值是 0 还是 1,这样的脚本可以表现为:

OP_IF // 如果揭露的是 hash1,则 push 一个 1 到栈中 OP_HASH160 OP_ELSE // 如果揭露的是 hash0,则 push 一个 0 到栈中 OP_HASH160 OP_ENDIF

在这个示例中,验证者需要揭露 $hash_0$ 或 $hash_1$ 的原像来设置当前位的值,验证者选择了揭露 $hash_1$ 的原像并且设置值为 1。在后续为了简化流程,假设存在一个 OP_BITCOMMITMENT 的操作码,它接收两个哈希值和其中一个原像,通过判断原像可以将一个 bit 存放到脚本的执行栈中4。而这样的操作是一个最小单元,BitVM 可以将一系列的最小单元组合在一起,最终得到一个可执行的二进制程序。

NAND 逻辑门

任何的可计算函数都能够被表示为布尔电路 ,NAND 门(与非门)是一个普适的逻辑门,任何的布尔函数都可以通过它来组成。

脚本语言下的 NAND 门通过两个 BVC 来实现,实现一个验证$ A \ NAND \ B = C $的脚本为:

// 揭露哈希 c1 或 c0 的原像 OP_BITCOMMITMENT // 此时将 C 的比特值移动到 ALT 栈中 OP_TOALTSTACK // 揭露哈希 b1 或 b0 的原像 // 此时将 B 的比特值移动到 ALT 栈中 OP_TOALTSTACK // 揭露哈希 a1 或 a0 的原像 // 此时将 A 的比特值在主运行栈中,此时栈中的情况为 A // 验证 A NAND B == C // 从 ALT 栈中取出 B,此时栈中的情况为 B、A OP_FROMALTSTACK // 执行 NAND 位运算操作,此时栈中情况为 B NAND A OP_NAND // 从 ALT 栈中取出 C,此时栈中的情况为 C、B NAND A OP_FROMALTSTACK // 判断是否相等,取出 C 和 B NAND A,并判断它们是否相等 OP_EQUALVERIFY

OP_TOALTSTACK 将主运行栈的值放入到另外一个被称为 ALT 栈的栈顶,并将它从主运行栈中弹出。

而 OP_NAND 是一个假设存在的操作码,它在实际的 Bitcoin 脚本语言中并不存在,它可以容易地使用 OP_BOOLAND 和 OP_NOT 操作码来实现。

二进制电路

通过组合一系列的 NAND 门可以表达任何的电路,每一步都在 Taproot 的叶子节点下进行提交,最后合并到同一个 Taproot 地址中[5],以便于证明者可以执行电路中的任何门。执行门需要证明者打开相应的 NAND 门并且设置输入和输出位的值。二进制电路在链下的结构可以非常巨大,但是由于 Taproot 的特性,可以使得它在链上的占用空间非常小。

上图是一个具有 8 个不同的 NAND 门的电路,它具有四个输入,而这样的门电路的输入脚本可以表示为

这样的脚本允许证明者在之后的任何时间点设置门电路的输入

挑战-应答

除了允许证明者提交到一个电路之外,还需要验证者能够挑战证明者的声明。这可以在加载时预签名一系列的交易来实现。这些交易通过**”挑战->应答->挑战->...“**的方式连接。如果某一方停止一段时间后,另外一方就会赢得挑战并回收双方的存款。

上图展示了一系列预先签名的交易:

挑战:Vicky (验证者)在脚本路径中释放一个原像(这些原像只有验证者知道),用作对证明的挑战的锁;

应答:Paul (证明者)执行对应的逻辑门,将资金发回初始的脚本中;

在几轮的查询后可以迅速驳斥任何一个不一致的声明。如果证明者停止在链下与验证者合作,验证者就会强制证明者在链上合作:验证者解锁一个哈希锁,使得证明者的 UTxO 中的每个 NAND 门对应的 Taproot 叶子节点只有在证明者知道验证者持有的一个原像时才可以被花费。证明者可以通过揭示其输入和输出来证明给定的 Taproot 叶子节点执行正确。其前提是验证者通过揭露对应 Tapleaf 的哈希的原像来解锁它,通过二分查找的方式,验证者可以在经过有限轮($O(logn)$)的挑战和应答后锁定证明者的错误。

结语

BitVM 采用了类似 Rollups 的思想,在链下执行复杂程序,再将关键的证据放到链上。它设计了一种最简的”电路单元“,并且利用了 Taproot 的可组合性将这些单元组合起来,以达到在比特币区块链上实现任意的可执行函数的能力。但是它所需要处理的数据量是极其庞大的,所需要的 Taproot 脚本树的叶子节点数量可能达到上亿个,这也使得链下存储的成本非常高,是 BitVM 实现的一个局限。另外就是目前的 BitVM 是作为一个简单的单一证明者和单一验证者之间实现的协议,这使得需要实现 N-N 的交互还需要更为复杂的逻辑设计,而且它本身是一个交互性的欺诈证明,这就使得所有的参与方都需要在线进行操作。

当然,本文并没有完全深入讲解更具体的原理,例如如何构建这样的 Taproot 树?以及执行的具体过程是怎么样的?这些具体的流程也会是 BitVM 在未来实现上所需要考虑的,它目前还处在白皮书的阶段,还需要长期的探索。

相关问答

华为p9 解锁 以后Your device has been unlocked and can't be trusted?

英文提示就是在说,已经成功解锁。英文提示就是在说,已经成功解锁。

电脑开机为什么会出现两个 解锁 图标-ZOL问答

changjiazhixiao啥键啊有用(0)回复chedandeqingchun你把这个词输错了,少了个n,重试一下。开始菜单-运行-输入msconfig回车有用(0)回复7464...

and 和家庭电视上的登陆密码忘了怎么办?

电视机上的密码忘记了有三种方式可以解锁:用菜单键解锁、按屏显键解锁、密码解锁。1、用菜单键解锁:按“MENU”键(或“FUNC”键),选择功能显示菜单(系统...

好记星平板电脑 解锁 密码忘了怎么处理-ZOL问答

你好,关机状态按住音量键上+电源键开机,开机有个机器人的图像按home键(像房子)选wipedatafactoryreset按菜单键恢复出厂设置然后选择rebootsystemnow...

pdvm00怎么 解锁 ?

PDVM00是一款OPPO手机,想要解锁需要先进行以下步骤:首先,在设置中找到“关于手机”,连续点击版本号七次,然后返回主界面,进入“附加设置”中的“开发者选...

darkanddarker术士怎么 解锁 ?

为了解锁darkanddarker术士,需要完成一系列相关的任务和挑战。这个过程需要玩家在游戏中积累足够的经验和技能,同时还需要掌握一些特定的技巧和战术。玩家需...

捷报即时比分足球比分网-JRS直播-低调看高清|jrskan|nba(无...

[回答]分破6000历史第三年轻&仅次于詹杜捷报即时比分足球比分网复出首战!莫布里仅出战20分钟7投5中得到10分9篮板1抢断阿根廷连续两年来华无...莫布里...

足球比分-即时比分-JRS直播nba(无插件)直播|低调看直播

[回答]比分打得太棒了!杰伦-格林23中12&三分10中4得到34分12板7助1断恒大汽车、恒大物业今日9点起复牌!中国恒大总市值仅剩22亿港元迪巴拉赛后...杰伦-...

新款uqi+如何解档?

UQi+解档可以通过两种方式:1、使用iNANDUFSToolkits软件:使用该软件可以在档案管理器中查看、管理、解压缩和压缩UQi+存储卡中的文件。2、使用FastFile...

工行卡密码输错3次要多久能 解锁 ?

工行卡取款密码连续三次错误会自动锁定。24小时后自动解锁。也可到当地银行柜台办理解锁业务,流程如下:1、携带本人身份证、银行卡前往银行柜台。2、告知工作...

 王宝强女儿  贝吉格里芬凡丁犬 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部