安全与隐私blog.jonlu.ca
任天堂 Switch 通过不可逆熔断机制阻止系统降级
Nintendo Switch prevents downgrades by irreparably blowing its own fuses (2020)
2020 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇文章介绍 Nintendo Switch 如何利用主板上的 eFuse 记录固件版本:每次重要系统更新可能烧断一个熔丝,使设备无法回退到旧固件。文章从硬件机制和实际限制出发,解释这种不可逆的降级防护如何运作。
为什么经久不衰:它把“防降级”从软件限制延伸到不可逆的硬件熔断,是理解消费电子版本锁定、破解社区与设备所有权的经典案例。
HN 评论精选
区分普通 AVR fuse 与 eFuse,指出 eFuse 是通过电迁移物理熔断的一次性机制。
AVR 上也有叫 fuse 的东西,不能通过运行代码更改,但可以由外部编程器多次设置和清除。这些显然不同。维基百科描述 eFuse 的作用机制:“eFuse 可由硅或金属走线制成。两种情况下都通过电迁移工作(熔断),即电流导致导体材料移动。”
cyounkins查看英文原文
There are things called fuses on AVRs that cannot be changed by running code but can be set and unset multiple times by an external programmer. These are apparently different. https://en.wikipedia.org/wiki/Efuse describes the mechanism of action: "eFuses can be made out of silicon or metal traces. In both cases, they work (blow) by electromigration, the phenomenon that electric flow causes the conductor material to move."
质疑 eFuse 数量上限只能支持约 32 次大版本更新,用完后的防护会失效。
ODM_RESERVED fuse 集合有 256 位,并且有 8 组 ODM_RESERVED。这样允许 32 个 fuse,或者说 32 个未来固件版本(前提是每个大版本烧一个 fuse)。32?就这?所以如果任天堂想推送超过 32 次更新,要么不再烧 fuse,要么用完后停止使用?那时它们不就完全没用了?
tentacleuno查看英文原文
> There are 256 bits in the set of ODM_RESERVED fuses, and there are 8 ODM_RESERVED. This allows for 32 fuses, or 32 future FW versions (provided they burn a fuse on every major release). 32? Is that it? So if Nintendo want to push more than 32 updates, they either need to not blow any more fuses, or stop using the fuses when they've all gone? Wouldn't they be totally useless then?
自制固件社区已有绕过烧 fuse 的工具,保留备份主要用于等待版本相关漏洞。
Switch 自制社区有个简单绕过办法:在自定义固件(如 Atmosphere-NX)内升级,并运行 ChoiDuJourNX 工具,绕过烧 fuse。如果小心操作,可以保留一路备份直到设备原始固件,并用 Hekate 系统工具恢复或降级。已经有人指出没太多理由这样做;据我所知,人们坚持旧固件或保留备份链的主要原因是利用可能存在的特定固件版本漏洞,最高目标是冷启动漏洞。
hd4查看英文原文
There is an easy workaround developed by the Switch homebrew community, simply upgrade from within a custom firmware (such as Atmosphere-NX) and run a tool called ChoiDuJourNX which bypasses the fuse-burning. If you're careful you can keep a backup trail going all the way back to your original device firmware and restore/downgrade it using the Hekate system tool. It has already been pointed out that there isn't much reason to do this, AFAIK the main reason people either held out on older firmwares or kept up a backup trail to them was in order to take advantage of possible firmware-version-specific exploits, the gold standard being a coldboot exploit.
开发者从实际经验说明 eFuse 容易被误烧,同时公司可借它低成本维护版本基线。
我在开发的高通芯片上会无意中烧掉 eFuse,经常发生……用他们的工具做这件事意外地容易,非常令人沮丧。我在意识形态上反对把这个功能“用于正途”,但它确实让公司维护已安装基础版本变得更简单、更便宜……
aa-jv查看英文原文
I unintentionally blow the eFuse on the Qualcomm chips I'm developing for, all the time .. its very frustrating and surprisingly easy to do with their tools. I'm ideologically opposed to using this feature 'productively', but it definitely makes it simpler (cheaper) for the company to maintain installed base versions...
历次讨论
同类还值得读
非法素数
Illegal prime
维基百科条目,介绍“非法素数”:某些素数之所以被称为“非法”,是因为它们经特定编码后,恰好对应一段被法律禁止传播的数据——最著名的是 DVD 解密程序 DeCSS 的代码,有人把…
安全与隐私上首页 5 次 · 2010–2021en.wikipedia.org编辑精选关于 /dev/urandom 的常见误区
Myths about /dev/urandom
(Thomas Hühn 撰写,2014 年首发并持续更新)逐条反驳关于 /dev/urandom 的常见误解:它与 /dev/random 使用的是同一个 CSPRNG,一旦完…
安全与隐私上首页 5 次 · 2014–20202uo.de编辑精选AES 高级加密标准火柴人图解
A Stick Figure Guide to the Advanced Encryption Standard (AES)
一篇用火柴人漫画形式讲解 AES(高级加密标准)算法的经典科普文章。
安全与隐私上首页 5 次 · 2009–2022moserware.com编辑精选指纹是用户名,不是密码
Fingerprints are Usernames, not Passwords
作者(eCryptfs 维护者、Ubuntu 安全工程师)认为指纹等生物特征是公开、不可更改的标识,应视作用户名而非密码,不能当作秘密凭据用于认证。
安全与隐私上首页 4 次 · 2013–2017blog.dustinkirkland.comHTTPS 连接的最初几毫秒(2009)
The First Few Milliseconds of an HTTPS Connection (2009)
逐毫秒拆解一次 HTTPS 连接建立时发生了什么,重点讲 TLS 握手、证书验证、RSA 签名与密钥协商等机制,面向不熟悉该领域的读者。
安全与隐私上首页 4 次 · 2009–2020moserware.com编辑精选