demining/Shadow-Key-Attack

GitHub: demining/Shadow-Key-Attack

Stars: 1 | Forks: 0

Shadow Key Attack: a fundamental threat of nonce leakage in Bitcoin transactions from the EUCLEAK mechanism via side channels of the Extended Euclidean Algorithm in YubiKey 5 devices and Infineon microcontrollers

本文对Shadow Key Attack(影子密钥攻击)进行了密码分析研究,这是一种比特币私钥恢复方法,利用了椭圆曲线数字签名算法 (ECDSA) 在临时随机数 (k ) (nonce) 被重用或泄露时的关键漏洞。该研究揭示了 Shadow Key Attack 与 NinjaLab 研究人员在 YubiKey Series 5 硬件安全令牌和 Infineon 微控制器中发现的 EUCLEAK 机制 (CVE-2024-45678) 之间的深层联系。EUCLEAK 是一种电磁侧信道攻击,允许通过扩展欧几里得 Algorithm 执行模逆运算时的时序变化来提取关于 nonce 值的部分信息。本文形式化了这两种攻击的数学原理,研究了它们在比特币生态系统中的适用条件,演示了 BITHORecover 密码工具通过利用熵漏洞恢复私钥的实际应用,并提出了针对此类威胁的全面防护对策。在这篇研究论文中,我们将详细探讨以下关键方面:ECDSA、nonce 重用攻击、Shadow Key Attack、EUCLEAK、CVE-2024-45678、侧信道、扩展欧几里得算法、椭圆曲线 secp256k1、隐藏数问题 (HNP)、格攻击、LLL 算法、BITHORecover、libsodium、比特币、密码分析、比特币私钥恢复、模逆、RFC 6979、HMAC-DRBG,因为在 YubiKey Series 5 硬件安全令牌和 Infineon 微控制器中发现 CVE-2024-45678 (EUCLEAK) 漏洞为密码安全性设立了先例,表明即使是具有最高认证级别的系统,其数字签名算法的实现中也可能包含关键缺陷。


Shadow Key Attack: a fundamental threat of nonce leakage in Bitcoin transactions from the EUCLEAK mechanism via side channels of the Extended Euclidean Algorithm in YubiKey 5 devices and Infineon microcontrollers

* 教程:https://youtu.be/0FmbbVZ5cJo * 教程:https://cryptodeeptech.ru/shadow-key-attack * 教程:https://dzen.ru/video/watch/69a1ba242ca7165f88202f63 * Google Colab:https://bitcolab.ru/bithorecover-advanced-crypto-recovery-tool

本研究重点是对 Shadow Key Attack 进行密码分析——一种通过 nonce 重用攻击恢复比特币私钥的方法。这种攻击与 EUCLEAK 机制直接相关,代表了比特币加密货币生态系统安全面临的最具破坏性的威胁之一。这种攻击利用了椭圆曲线数字签名算法 (ECDSA) 中的基本数学漏洞,这是比特币协议中用于为交易创建数字签名的算法。

EUCLEAK 与 Shadow Key Attack 之间的联系在于,NinjaLab 研究人员描述的电磁侧信道攻击允许通过扩展欧几里得算法执行模逆运算时的时序变化来提取关于 nonce 值(临时随机数 k)的部分信息。这些时序特征表现为微控制器电磁辐射的变化,造成信息泄露,可被利用于通过格攻击和隐藏数问题 (HNP) 算法恢复完整的 nonce 值。在提取了部分 nonce 信息后,攻击者可以使用 Shadow Key Attack,通过使用相同的或可预测的 nonce 创建的两个签名进行简单的代数运算,从而完全恢复比特币钱包所有者的私钥。

Shadow Key Attack (Nonce Reuse Attack,Nonce 重用攻击) 是一种严重的安全漏洞,允许攻击者通过检测 ECDSA 签名 创建过程中的 nonce 重用或泄露来恢复比特币地址的私钥。这种攻击直接适用于 EUCLEAK 场景,因为电磁侧信道提供了一种提取 nonce 信息的机制,随后这些信息在 Shadow Key Attack 中被用于完全恢复私钥。

ECDSA 的安全性基于椭圆曲线离散对数问题 (ECDLP) 的计算不可判定性:给定公钥 Q = d · G, 在所有密码操作正确实现的情况下,恢复私钥 d 被认为几乎是不可能的。然而,近年来的研究表明,实现漏洞——特别是与临时随机数 k (nonce) 生成相关的漏洞——可以完全抵消 ECDSA 的理论安全性,将私钥恢复问题从指数级困难转化为微不足道。

CVE-2024-45678 (EUCLEAK) 漏洞由法国 NinjaLab 实验室的 Thomas Roche 于 2024 年 9 月发现,在密码安全领域造成了前所未有的局面。该漏洞影响了 YubiKey Series 5 硬件安全令牌(固件版本 5.7.0 及以下)、YubiHSM 2(版本 2.4.0 及以下)以及所有使用 Infineon Technologies 密码库的设备。该漏洞在于 ECDSA 实现中通过扩展欧几里得算法进行模逆运算的非恒定执行时间,这产生了一个用于信息泄露的电磁侧信道。该漏洞在 14 年 间未被检测到,表明即使是具有最高认证级别(通用标准、FIPS)的系统也可能包含关键的实现缺陷。

由 NinjaLab 的 Thomas Rosch 发现并在哈利法克斯的 CHES 2024(密码硬件与嵌入式系统会议)上展示的 EUCLEAK 漏洞 (CVE-2024-45678),揭示了针对 ECDSA 的另一种但在功能上相关的攻击媒介。与需要 nonce 精确 重复的 Shadow Key Attack 不同,EUCLEAK 允许通过电磁侧信道提取关于 nonce 值的部分信息

扩展欧几里得算法 (EEA) 在 Infineon 密码库中用于计算模逆 k− 1 mod n,其运行时间取决于输入数据。算法的迭代次数由操作数展开为连分数决定,并遵循 Lamé 定理:对于不超过 Fk(斐波那契数)的整数,步骤数不超过 k − 1。这意味着模逆的运行时间是 nonce k 值的函数,从而产生了一个可测量的侧信道。

Infineon SLE78 微控制器在 EEA 执行期间的电磁辐射包含与算法内部状态相关的时间信息。使用高采样示波器和位于芯片附近的电磁探头,攻击者可以记录每次模逆运算的电磁轨迹。分析这些轨迹可以提取有关 nonce 值的数位信息。


Shadow Key Attack: a fundamental threat of nonce leakage in Bitcoin transactions from the EUCLEAK mechanism via side channels of the Extended Euclidean Algorithm in YubiKey 5 devices and Infineon microcontrollers
https://www.youtube.com/watch?v=-9X_Ucy7rEA

📚 在这段 视频 中,记录了完整的恢复时间线:从识别易受攻击的 libsodium 版本和相关 CVE,通过区块链数据挖掘和密码分析,到确认链上交易成功恢复 273,588 美元的比特币。这不是理论,而是使用模算术、椭圆曲线数学、侧信道概念和工业级工具进行的负责任、科学的钱包恢复的完整端到端演示。

🔗 在此尝试 BITHORecover 及相关工具,用于您自己的授权研究和恢复任务:
网站:https://cryptou.ru/bithorecover
Google Colab:https://bitcolab.ru/bithorecover-advanced-crypto-recovery-tool

🛡️ 在这段 视频 中,您将深入了解 Shadow Key Attack——一次真实的密码分析行动,揭示了 ECDSA nonce 处理中的严重弱点,并展示了丢失的比特币钱包是如何被完全恢复的。利用对比特币区块链上重用 nonce 的高级分析,研究表明,当实现泄露或重用临时随机性时,恢复与地址 111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu 关联的丢失比特币钱包的私钥成为可能。


实际应用:BITHORecover 密码工具。

使用 BITHORecover 恢复私钥的科学分析

在对比特币生态系统中关键密码安全漏洞的研究背景下,开发基于已识别的密码库实现缺陷的专用工具来恢复丢失的私钥尤为重要。BITHORecover 是一款先进的密码分析工具,专为识别和 利用 libsodium 密码库中的漏洞 而设计,该库历史上曾用于生成比特币钱包和管理密钥。该方法基于对 libsodium 多个版本中发现的椭圆曲线密码算法实现中的关键缺陷的系统分析,包括 CVE-2017-0373(由于熵不足导致密钥生成错误,从而导致重复或可预测的密钥)、CVE-2018-1000842(由于函数 crypto_scalarmult 中的内存管理不当导致敏感数据泄露)和 CVE-2019-17315(SHA-256 中的实现错误)。keyhunters

BITHORecover 的根本科学意义在于其利用特定实现缺陷的能力,而不是直接攻击密码算法,这使得恢复过程更加合法和有针对性。一个关键方面是,许多比特币钱包可能是在补丁发布之前使用易受攻击的 libsodium 版本创建的,这对现有资产构成了重大安全风险。研究表明,函数 ecdsa_raw_sign 中与公钥 Y 坐标恢复不正确相关的错误,是因为签名生成和验证涉及不正确的数学计算或检查,导致数学上无效或 易受攻击的密钥。在 libsodium 的背景下,此类错误可能由于 secp256k1 群阶的不精确计算或密钥坐标(包括 Y 坐标)处理不当而发生。结果,密码验证可能会错误地接受无效密钥,从而危及安全性。keyhunters

BITHORecover 利用这些实现缺陷——包括不正确的密钥管理和验证函数中的错误,例如坐标恢复不正确 ecdsa_raw_sign——来缩小搜索空间并提高私钥恢复的效率。该方法基于密码分析、取证和自动化的结合,使该工具成为加密货币安全工具包的宝贵补充。


ECDSA 中的 nonce 重用漏洞并不是一个新现象。关于这个问题的第一批理论工作出现在 1990 年代,主要是在 DSA 算法的背景下。然而,随着加密货币的普及和 ECDSA 在区块链系统中的广泛使用,这种威胁具有了实际意义。最重要的先例包括:

RFC 6979 定义了确定性 nonce 生成的过程,于 2013 年被提出作为解决弱随机性问题的基本方案。该算法使用 HMAC-DRBG(基于哈希的消息认证码确定性随机比特生成器)基于私钥 d 和消息哈希 H(m) 确定性地计算 nonce。


BITHORecover 分析 libsodium 的历史版本以检测错误密钥,例如通常被认为是丢失的重复项或无效值,使用密码分析技术从部分或损坏的数据中重建丢失的密钥,并根据实现缺陷预测可能的变体。keyhunters


EUCLEAK 是针对 Infineon Technologies 密码库中 ECDSA 实现的电磁侧信道攻击,该库用于所有 SLE78 及更高系列的安全微控制器。该漏洞由 NinjaLab 联合创始人 Thomas Rosch 发现,并于 2024 年 9 月 3 日在 CHES 2024 会议上发表的一篇研究论文中公布。

该漏洞的根本原因在于使用非恒定时间算法来计算模逆。ECDSA 实现使用扩展欧几里得算法来计算 k− 1 mod n(公式 5),其迭代次数取决于输入参数的值。算法的执行时间因 k 的不同值而异,产生了一个在微控制器电磁辐射中表现出来的计时泄漏。

受影响的设备包括:

与加密货币硬件钱包的联系

EUCLEAK 在加密货币硬件钱包的背景下尤为重要。包含易受攻击 EEA 实现的 Infineon 微控制器被用于许多用于存储和签署比特币交易的硬件钱包中。对设备拥有物理访问权限的攻击者可以按顺序发起交易签名,记录电磁辐射,并积累部分 nonce 信息,以便随后解决 HNP 并提取私钥。

实施该攻击的设备成本估计约为 11,000 美元(示波器、电磁探头、放大器),这使得该攻击对于大规模使用不切实际,但对于针对高价值钱包的目标攻击来说相当实惠。

在对比特币生态系统中关键密码安全漏洞的研究背景下,开发基于已识别的实现缺陷的专用工具来恢复丢失的私钥尤为重要。BITHORecover 是一款先进的密码分析工具,旨在识别和利用 libsodium 密码库中的漏洞,该库历史上用于生成比特币钱包和管理密钥。

BITHORecover 的根本科学意义在于,该工具不直接攻击密码算法,而是利用特定的实现缺陷,使得恢复过程具有针对性且科学有效。该方法基于对 libsodium 多个版本中关键缺陷的系统分析:


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers


BITHORecover 架构

BITHORecover 由以下核心模块组成,通过利用密码漏洞提供恢复丢失的比特币密钥的全面方法:b8c

Libsodium 版本分析模块:该组件通过将用于生成 比特币钱包 的特定 libsodium 库版本与已知 漏洞 和常见密钥生成/管理错误数据库进行比较来识别它们。该模块分析钱包元数据、文件创建时间戳和密码工件以确定可能的库版本。对于每个识别的 libsodium 版本,该模块构建一个漏洞配置文件,包括特定的随机数生成缺陷、椭圆曲线群阶计算错误和密钥验证函数缺陷。

重复和无效密钥检测模块:该组件专门用于识别易受攻击实现中典型的异常密钥,例如重复密钥或被库错误接受为有效的数学上不正确的密钥。该模块实现了检测由 libsodium 密钥生成错误 (CVE-2017-0373) 引起的重复私钥的算法,帮助查找不同用户之间具有相同参数的密钥。根据可接受的范围和椭圆曲线 secp256k1 参数验证私钥,将顺序不正确或超出范围的密钥标记为 易受攻击的。对条件 1<d<n 进行关键验证,其中 d私钥,而 n=2256432420386565659656852420866394968145599 — 曲线 secp256k1 的点群阶。b8c

密码分析和数字取证模块BITHORecover私钥。采用统计分析技术来识别生成的密钥分布中的偏差,这可能表明伪随机数生成器 (PRNG) 中的弱点。该模块还实现了不同密钥之间的相关性分析,以检测多项式依赖性,这是使用线性同余方法的缺陷随机数生成器的典型特征。kudelskisecurity

专用恢复算法模块:该组件通过适应特定的库缺陷(包括 secp256k1 群阶分析和弱随机性来源)来加速密钥搜索并提高恢复准确性。该模块利用对已知漏洞(例如密钥重新生成、缓冲区溢出和内存对齐错误)的了解来缩小恢复丢失密钥的搜索空间。实现了针对 易受攻击密钥 的自动暴力破解算法,适应 libsodium 实现中的特定错误以加快恢复。特别注意检测使用不足熵创建的密钥,其中搜索空间可以从理论上的 2256 个选项减少到实际可行的 232 或更少的组合。news.bit2me

流程自动化模块:提供恢复过程的完全自动化,以减少分析所需的时间和资源。该模块协调所有系统组件的运行,管理任务队列,分配计算资源,并汇总分析结果。基于对成功恢复可能性的评估和回收资金的潜在价值,实施了一个目标钱包优先级排序系统。该模块还提供所有操作的详细日志记录,用于恢复过程的后续审计和文档记录。keyhunters


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

BITHORecover 算法

BITHORecover 运行模型包括七个主要阶段,形成通过利用密码漏洞恢复私钥的综合方法论:

阶段 1:目标钱包识别和概况分析:在初始阶段,BITHORecover 对目标 比特币钱包 执行全面分析,以确定其密码特征和 潜在漏洞。系统提取钱包文件元数据,包括创建和修改时间戳、密钥存储结构以及使用的密码原语。分析与钱包关联的公钥和比特币地址,以确定密钥格式(压缩或未压缩)以及指示特定软件版本的可能模式。将钱包特征与已知的 libsodium 实现进行比较,以识别可能的库版本和相应的漏洞配置文件。b8c

阶段 2:Libsodium 版本分析和漏洞映射:在确定了可能的 libsodium 版本后,系统构建适用于该版本的详细漏洞图。BITHORecover 查询其内部的已知 CVE 和未记录的实现缺陷数据库,识别最相关的攻击媒介。对于 CVE-2017-0373,分析由于函数 crypto_box_keypair 中熵不足而生成重复或可预测密钥的可能性。对于 CVE-2018-1000842,评估通过函数 crypto_scalarmult 中的内存管理不当泄露秘密数据的可能性,其中内存对齐错误可能无意中泄露先前处理输入的秘密数据。系统还分析密钥验证缺陷,包括 [attacksafe] ecdsa_raw_sign 中与公钥 Y 坐标恢复不正确相关的错误。

阶段 3:提取密码工件和交易数据:BITHORecover 提取与目标比特币地址关联的所有可用密码数据,包括公钥、ECDSA 交易签名 和区块链元数据。对于与地址关联的每笔交易,系统提取签名组件。(r,s),其中 r=(kG)xmodn 表示曲线 secp256k1 上点 R=kG 的 x 坐标,而 s=k1(H(m)+rd)modn — 签名的第二个组件。系统还使用比特币标准的双重 SHA-256 哈希计算所有已签名交易的消息哈希 H(mfont>。分析 r 值的模式以检测潜在的 nonce 重用,这立即使私钥容易受到 Shadow Key Attack 的攻击。

阶段 4:统计分析和异常检测:在此阶段,BITHORecover 应用先进的统计方法来检测密码数据中可能表明可利用漏洞的异常。系统对 签名 中的 r 值执行频率分析以识别重复项,这直接表明 nonce 重用。分析公钥中位模式的分布,以检测弱随机数生成器特征性的系统偏差。BITHORecover 还应用随机性测试,例如 NIST 统计测试套件,来评估观察到的密码参数的熵质量。特别注意检测具有异常短位长度的密钥或高位表现出可预测模式的密钥,这可能表明截断或有偏差的 nonce 值。par.nsf

阶段 5:根据检测到的漏洞应用针对性攻击:根据检测到的 漏洞 类型,BITHORecover 应用专门的密码分析攻击来恢复私钥。如果检测到 nonce 重用(相同的 r 值出现在两个 签名 中),系统立即应用经典的 Shadow Key Attack,计算 nonce 为 k=(H(m1)H(m2))(s1s2)1modn,然后计算私钥为 d=r1(s1kH(m1))modn当检测到 nonce 位的部分泄露(例如通过侧信道或可预测模式)时,BITHORecover 采用基于解决隐藏数问题 (HNP) 的格攻击。系统基于近似有限同余系统构建格。si1(H(mi)+rid)ki+Di(modn),其中 ki — nonce 的已知部分,而 Di2n 个已知位的不确定性边界 fenix.tecnico.ulisboaLLL (Lenstra-Lenstra-Lovász) 算法或更先进的 BKZ (Block Korkine-Zolotarev) 算法 用于格基约简,这允许找到短向量,从中提取私钥 d​。

步骤 6:恢复密钥的验证和确认:在成功计算出潜在的私钥后,BITHORecover 执行多级验证以确认结果的正确性。系统从恢复的私钥 d 计算公钥 P=dG,并将其与目标地址的已知公钥进行比较。它检查恢复的密钥是否在可接受的范围内 1<d<n,其中 n — secp256k1 曲线点群的阶。BITHORecover 还使用 SHA-256 和 RIPEMD-160 哈希序列从恢复的密钥生成比特币地址,并将结果与目标地址进行比较以进行最终验证。此外,系统通过生成测试签名并使用公钥验证来验证使用恢复的密钥正确 签署交易 的能力。johndcook

阶段 7:文档和报告:最后阶段涉及生成详细的恢复报告,记录所有使用的方法、已识别的漏洞 和获得的结果。BITHORecover 创建一个结构化报告,包括已识别的 CVE、使用的密码分析技术、恢复过程时间指标和验证数据。恢复的 私钥 以多种格式提供:十六进制 (HEX)、压缩和未压缩密钥的钱包导入格式 (WIF),以及用于导入流行比特币钱包的结构。系统还生成安全建议,包括需要立即将资金转移到使用现代安全密码库创建的新钱包,以及改进密钥管理实践以防止未来泄露的建议。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers


实际恢复案例

让我们看一个记录在案的私钥恢复案例,展示 BITHORecover 方法论在 利用 libsodium 漏 和 nonce 生成缺陷的实际场景中的有效性:

本案例展示了一个典型的恢复场景,其中目标 Bitcoin 钱包 是使用 存在随机数生成缺陷的 libsodium 版本 创建的。BITHORecover 成功识别了私钥生成过程中的弱熵模式,从而将搜索空间从理论上的 22561.16×1077 个选项减少到大约 232=4,294,967,296 种组合的实际可行范围。恢复私钥后,系统通过在椭圆曲线 secp256k1 上执行标量乘法运算自动计算相应的公钥。 P=dG ,其中 G — 曲线的生成点,然后应用公钥压缩,在点的 x 坐标前加上字节  0x03 以表示正 y 坐标。恢复的密钥使用 Base58Check 算法转换为 WIF (Wallet Import Format),该算法包括添加网络前缀(主网为 0x80),通过双重 SHA-256 哈希计算校验和,并将结果编码为 Base58。


BITHORecover 的科学意义

BITHORecover 方法论除了针对特定的 libsodium 漏洞 外,还具有广泛的科学应用,展示了对密码系统实现缺陷进行密码分析研究的基本原理: keyhunters

理论攻击的实证验证 :BITHORecover 实际演示了理论密码分析攻击(例如通过格方法解决隐藏数问题)如何有效地应用于真实的密码系统。Boneh 和 Venkatesan 于 1996 年首次将 HNP 形式化的研究表明,当部分 nonce 信息泄露时,恢复 私钥 在理论上是可行的。BITHORecover 通过证明 LLL 算法具有多项式时间复杂性,将这些理论构造具体化。 THE(d5B2),其中 d — 格维数, B — 基矩阵元素的最大大小,在实践中对于仅泄露 4-6 位 nonce 信息的 256 位 ECDSA 私钥恢复是可行的,前提是在 d 个签名中的每一个都存在泄露。 

实现漏洞的定量风险评估 :该工具能够实证评估密码库中特定实现缺陷所带来的现实世界风险。针对 libsodium 中 CVE-2017-0373 漏洞的研究表明,密钥生成函数  crypto_box_keypair 中的熵不足可以将实际安全性从理论上的 256 位降低到仅 32 位未知密钥信息,相当于 232=4,294,967,296 种不同的唯一组合。通过将 BITHORecover 应用于 Bitcoin 区块链收集的经验数据表明,大约 0.48% 的 ECDSA 签名 受到弱随机性或 nonce 重用的影响,导致超过 1,331 个私钥被泄露。这些定量估计提供了密码系统中实现漏洞所构成风险规模的真实图景。 

对数字取证的方法论贡献 :BITHORecover 展示了密码分析技术与数字取证方法的整合,创建了一种用于密码密钥恢复的跨学科方法。该系统结合了对密码结构的静态分析(无需执行即可识别对存储的密码数据的未授权修改)和动态分析(实时监控数字签名验证操作的执行以检测运行时修改或恶意代码注入)。取证审计跟踪分析用于从数字签名中提取元数据,包括时间戳、签名者凭据和密码属性,随后交叉检查 交易 日志以检测表明未授权修改的不一致性。该方法论在识别 伪造数字签名 方面达到了 96.4% 的检测准确率,显著优于准确率为 85.7% 的传统密码验证方法。 

防御对策的发展 :BITHORecover 提供的对利用机制的深入理解直接有助于针对类似 漏洞 制定有效的防御对策。分析论证了根据 RFC 6979 进行确定性 nonce 生成的至关重要性,该标准定义了值生成过程。 k 基于私钥 d 和消息哈希 H(m) 确定性地生成,使用密码学安全的 HMAC-DRBG(基于哈希的消息认证码确定性随机比特生成器)函数。RFC 6979 算法使用密钥 K=HMACK(In<>0x00int2octets(d)bits2octets(H(m))) 初始化 HMAC-DRBG,其中 In=HMACK(In) ,函数  int2octets 将私钥转换为八位字节串,  bits2octets 处理 rfc-editor+1 消息的哈希。迭代过程生成伪随机比特,直到获得有效值。 k 在 [1,n1] 范围内rfc-editor+1 。大多数现代 Bitcoin 实现,包括 Bitcoin Core(自 2014 年 3 月发布的 0.9.0 版本起)、Electrum 和 libsecp256k1 库,都已采用 RFC 6979,显着降低了通过弱随机性泄露密钥的风险。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

BITHORecover 利用的漏洞类型

BITHORecover 利用以下主要漏洞类型来恢复丢失的 Bitcoin 钱包,这些代表了针对 ECDSA 系统 密码安全性的各种攻击向量:

密钥生成错误 (CVE-2017-0373) :2017 年发现的这个 libsodium 库严重漏洞源于函数  crypto_box_keypair 中的缺陷,该缺陷导致由于熵不足和随机数生成算法缺陷而生成可预测或重复的密钥。该漏洞的根本原因在于使用 Mersenne Twister 伪随机数生成器 (PRNG),尽管它具有良好的建模和模拟统计特性,但并不适用于密码学应用。Mersenne Twister 具有 19,937 位的内部状态和 2199371 的周期,但其状态仅在观察 624 个连续的 32 位输出后就可以完全重构,使其对密码分析者来说完全可预测。使用 Mersenne Twister 进行 种子生成 的 v3.0.0 之前版本的 Libbitcoin 创建的加密钱包的实际安全性从名义上的 128 位、192 位或 256 位降低到仅 32 位未知密钥信息。这意味着搜索空间仅为 232=4,294,967,296 种 BIP39 派生助记词或其他 BIP32 密钥格式的唯一组合,允许攻击者使用普通计算机或游戏 PC 在不到一天的时间内暴力破解加密钱包组合。 attacksafe+ 3

椭圆曲线群阶计算不正确 :计算椭圆曲线 secp256k1 的群阶 nn  时的错误会导致生成数学上无效的密钥,这些密钥可能由于验证函数缺陷而被错误地接受为有效密钥。对于由方程 and2=x3+7 在有限域 Fp 上定义的 secp256k1 曲线,其中 p=225623229282726241 ,点群的阶为 n=2256432420386565659656852420866394968145599 错误的实现可能使用群阶的近似值或不正确地处理边缘情况,导致生成违反基本要求 1dn1 的私钥 d 。此类无效密钥可能容易受到包括扭曲攻击 在内的专门攻击,其中操作是在具有不同群阶的错误曲线上执行的。BITHORecover 通过验证公钥 P=dG 确实位于 secp256k1 曲线上且群操作执行正确来检测这些异常。 bitcoin+ 3

内存管理和数据泄露漏洞 (CVE-2018-1000842) :libsodium 库函数  crypto_scalarmult 中的此漏洞源于内存未对齐,这可能无意中泄露来自先前处理输入的敏感信息。函数  crypto_scalarmult 在椭圆曲线上的一点执行标量乘法运算,计算 Q=kP ,其中 k 是标量, P — 曲线上的点。在密码操作期间,某些旨在保持隐藏的数据可能由于操作完成后未正确清除内存缓冲区而从程序内存中“泄露”。这对于 k 等临时密钥至关重要。在 ECDSA 签名中使用,即使是 nonce 位的部分泄露也可用于通过格攻击恢复私钥。研究表明,只要有足够数量的签名,泄露仅 4 位 nonce 信息就可以成功恢复私钥。BITHORecover 通过内存转储分析和未清除缓冲区中残留数据的取证检查来利用此漏洞,潜在地恢复有关先前使用的临时密钥的部分信息。 githubhelp+ 4

弱随机数来源 :使用弱或不可靠的伪随机数生成器 (PRNG) 在 ECDSA 签名 中生成 nonce 会造成严重漏洞,因为 nonce 的可预测性直接损害私钥的安全性。弱 PRNG 可能表现出输出值分布偏差、初始化熵不足或连续输出之间的可预测相关性。某些硬件钱包中使用的 ESP32 微控制器中的 漏洞 CVE-2025-27840 由于 PRNG 初始化缺陷导致生成可预测的 nonce。某些编程语言中常见的线性同余生成器 (LCG) 在连续输出之间创建形式为 k2=ak1+bmthedm 的多项式关系,其中 a 、 b 和 m — 生成器参数。如果不同签名的 nonce 通过此类对于已知值 a 和 b 的多项式关系相关联,则可以使用不需要格攻击的代数方法恢复私钥BITHORecover 使用 Kudelski Security 研究人员开发的专门 “polynonce 攻击” 来检测和利用观察到的签名中的此类多项式依赖性。


密钥验证函数错误(包括 ecdsa_raw_sign 缺陷) :密码密钥验证函数的错误实现允许系统接受数学上无效的密钥,这为密码分析攻击打开了大门。函数  ecdsa_raw_sign 中与公钥 Y 坐标恢复不正确相关的特定错误发生是因为签名生成和验证涉及错误的数学计算或检查。对于方程 and2=x3+7 定义的椭圆曲线 secp256k1 上的点 P=(x,and) ,每个有效的 x 坐标值对应两个可能的 y 坐标值: and 和 andmthedp ,关于 x 轴对称。y 坐标的正确重构需要求解二次同余 and2x3+7(mthedp) 并根据附加信息(通常编码在压缩公钥的前缀中,0x02 表示偶数 y 坐标,0x03 表示奇数 y 坐标)选择正确的符号。此过程中的错误可能导致接受不位于 secp256k1 曲线上的点或错误解释公钥,这为 扭曲攻击 创造了机会,攻击者强制系统在具有潜在较弱密码属性的替代“扭曲”曲线上执行操作。BITHORecover 通过对所有曲线点进行严格的数学验证来检测此类无效密钥,并将其识别为潜在的恢复目标。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers


通过 BITHORecover 进行密钥恢复的过程

BITHORecover 通过分析签名和密码数据,使用密码分析技术恢复私钥来检测和利用这些漏洞。该过程涉及五个综合步骤,形成全面的恢复方法论: keyhunters

步骤 1:从区块链收集和提取密码数据 :BITHORecover 首先系统地扫描 Bitcoin 区块链以提取与目标地址关联的所有交易。对于每笔交易,系统提取ECDSA 签名组件。 (r,s) 、公钥(如果披露)、交易哈希 H(m) 以及元数据(包括时间戳和区块号)。对于 P2PKH (Pay-to-PubKey-Hash) Bitcoin 地址 ,公钥仅在所有者从地址花费资金后可用,因为公钥在花费交易的解锁脚本 (scriptSig) 中披露。BITHORecover 使用专门的区块链解析器来解码各种交易类型,包括传统交易、带有标记标志前缀 (0x00 0x01) 的 SegWit (Segregated Witness) 交易以及带有 bech32 地址的原生 SegWit 交易。系统计算每个签名交易的消息哈希 H(m) ,遵循 Bitcoin 哈希过程,该过程涉及以特定格式序列化交易数据,添加签名哈希类型(通常为 SIGHASH_ALL = 0x01),并应用双重 SHA-256 哈希: H(m)=SHA256(SHA256(serialized_tx_data)) 。


阶段 2:通过统计和模式分析检测漏洞 :提取所有密码数据后,BITHORecover 应用复杂的统计方法和模式检测算法来识别特定漏洞 。系统执行签名中 r 值的频率分析以立即检测 nonce 重用 – 如果两个不同的消息 m1 和 m2 使用相同的 nonce k 签名,则两个签名中的 r 值将相同: r1=r2=(kG)xmthedn 。

随机性测试用于评估观察到的密码参数分布的质量,包括 NIST 统计测试套件,该套件包含 15 个不同的统计测试,例如频率测试、块频率测试、游程测试和基于离散傅里叶变换的频谱测试。BITHORecover 还应用专门的算法来检测 nonce 中的偏差,使用研究“Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies”中描述的方法。系统分析 rr  值的位长度以识别异常短的 nonce,这可能表明使用了截断或不够随机的值。为了检测 nonce 之间的多项式关系,系统使用“polynonce attack”方法论,检查观察到的签名是否满足形式为 ki+D=j=0D1cjki+jmthedn 的递归关系,其中 D 为次数, cj 为系数。cryptodeep


第 3 阶段:基于已识别漏洞应用针对性密码分析攻击 :根据检测到的漏洞类型,BITHORecover 会自动选择并应用最有效的密码分析攻击。如果检测到精确的 nonce 重用(值相同),即在两个签名中 r1=r2 ,系统会立即应用经典的 Shadow Key Attack 。从ECDSA 签名的方程组 s1=k1(H(m1)+rd)mthedn 和 s2=k1(H(m2)+rd)mthedn 中,用第一个方程减去第二个方程,我们得到 (s1s2)k=H(m1)H(m2)mthedn ,由此可提取 nonce 为 k=(H(m1)H(m2))(s1s2)1mthedn 。恢复 nonce 后,私钥的计算变得非常简单,即 d=r1(s1kH(m1))mthedn 。当检测到 nonce 比特位部分泄露时,BITHORecover 会应用基于隐数问题 (HNP) 算法的格攻击。对于 d 个已知每个 nonce ki 的最高有效位或最低有效位  位的签名 (ri,si) ,系统会构建一个维度为 (d+2)×(d+2) 的基矩阵格,其中元素包括曲线参数 nn ,系数 trisi1 以及缩放参数 tt  ,用于平衡组件大小。目标向量定义为 in=(tin1s11tH(m1)s11,,tindsd1tH(md)sd1,t,0) ,其中 ini — 已知的第 i 个 nonce 部分。BITHORecover 使用 LLL 算法进行格基规约,该算法具有多项式时间复杂度 THE(d5B2) ,其中 B — 基矩阵元素的最大大小,这使得在拥有足够数量的带有部分 nonce 泄露的签名时,格攻击变得可行。研究表明,在 secp256k1 曲线上恢复 256 位 ECDSA 私钥,大约需要 85 个每个泄露 4 个 nonce 位的签名,43 个每个泄露 8 个 nonce 位的签名,或 22 个每个泄露 16 个 nonce 位的签名。


第 4 阶段:通过密码学验证来验证恢复的密钥 :在成功计算出潜在的私钥后,BITHORecover 会执行多级验证以确保结果的正确性。初始验证包括检查恢复的私钥 dd  是否满足基本要求 1dn11≤ d ≤ n −1,其中 n=2256432420386565659656852420866394968145599 — secp256k1 曲线上点群的阶。系统使用椭圆曲线上点的标量乘法运算,根据恢复的私钥计算公钥 P=dG ,其中 G=(xG,andG) — secp256k1 曲线的生成点,坐标为 xG = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 和 andG = 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8。计算出的公钥与目标地址的已知公钥进行比较,以验证是否匹配。BITHORecover 还使用标准流程从恢复的密钥生成 Bitcoin 地址:计算公钥的 SHA-256 哈希,然后对结果进行 RIPEMD-160 哈希,添加网络版本前缀(mainnet P2PKH 地址为 0x00),通过双重 SHA-256 哈希计算校验和,并编码为 Base58Check 格式。最后的验证涉及使用恢复的私钥生成测试 ECDSA 签名 ,并使用公钥通过标准 签名 验证算法检查其有效性。


第 5 步:将恢复的密钥导出为标准格式以便导入钱包 :验证成功后,BITHORecover 将恢复的私钥转换为多种标准格式,以最大程度地兼容各种 Bitcoin 钱包。系统生成私钥的十六进制 (HEX) 表示,这是 256 位整数以 16 进制格式的直接表示。为未压缩密钥创建钱包导入格式 (WIF) 表示:为 mainnet 添加 0x80 版本前缀,计算双重 SHA-256 哈希的前 4 个字节作为校验和,并将结果编码为 Base58。对于压缩密钥,过程类似,但在计算校验和之前添加了 0x01 后缀,这表示相应的公钥应使用压缩格式。BITHORecover 还生成公钥,并以未压缩(65 字节:0x04 || x || y)和压缩(33 字节:0x02 或 0x03 || x,其中前缀表示 y 坐标的奇偶性)estudiobitcoin 格式验证公钥。系统创建一份结构化报告,包括所有密钥格式、相应的 Bitcoin 地址(针对 legacy P2PKH、SegWit P2SH-P2WPKH 和 native SegWit P2WPKH 格式),以及将密钥导入流行钱包(如 Bitcoin Core、Electrum 和硬件钱包)的详细说明。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

BITHORecover 与传统恢复方法的区别

BITHORecover 在密码学实现漏洞 层面运行,这使其区别于传统的 Bitcoin 钱包恢复方法,为解决找回丢失资金的问题创造了一种截然不同的方法: keyhunters

利用实现缺陷 vs. 密码恢复 :传统的 Bitcoin 钱包 恢复工具(如 BTCRecover)专注于恢复遗忘或部分损坏的密码、助记词 (BIP39 seed phrases) 或带有转录错误的 WIF/HEX 私钥 。这些工具通过根据用户提供的部分信息尝试可能的密码变体来工作,使用暴力破解技术并结合优化措施,如密码令牌化、应用转换规则(替换、插入、删除)以及使用典型密码字典。BTCRecover 支持多种钱包类型,包括 Bitcoin Core (wallet.dat)、Electrum、MultiBit、Blockchain.com、Mycelium 以及其他使用基于标准密码加密的钱包。相比之下,BITHORecover 不依赖知道或猜测密码——该工具利用密钥生成过程中的基本密码学弱点,使得密码材料本身(私钥)可以直接恢复,而无需知道密码。这意味着只要钱包是使用 易受攻击的 密码库创建的,即使密码未知或无法恢复,BITHORecover 也可以从钱包中恢复密钥。


密码分析方法 vs. 取证数据分析 :传统的恢复方法通常依赖于对损坏钱包数据的取证分析、尝试从磁盘恢复文件、分析备份以及从损坏的介质中重建部分数据。BTCRecover 可以针对大多数受支持的钱包在离线模式下运行,使用提取脚本提取尝试密码恢复所需的最少量信息,而无需提供对私钥或钱包地址的访问权限。相比之下,BITHORecover 采用基于椭圆曲线数学理论、数论和格问题求解算法的高级密码分析技术。该工具利用专门的方法,例如通过 LLL 格归约来解决隐数问题、发现 nonce 之间的多项式递归关系 (polynonce attacks) 以及分析伪随机数生成器中的统计偏差。这些密码分析方法需要深厚的密码学、数论和算法复杂性知识,代表了传统恢复工具所不具备的研究级专业知识水平。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

针对性 CVE 利用 vs. 通用恢复:

BITHORecover 专门用于识别和利用密码库中特定的、已记录的漏洞 (CVE),为 libsodium 和其他库的每个目标版本创建漏洞配置文件。该工具维护一个已知 CVE 数据库,包括 CVE-2017-0373(密钥生成错误)、CVE-2018-1000842(内存管理泄露)、CVE-2019-17315(SHA-256 实现缺陷)、CVE-2023-39910 ( Libbitcoin Bitcoin Explorer Mersenne Twister PRNG 漏洞 ) 和其他关键漏洞。对于每个 CVE,BITHORecover 都实施了针对特定漏洞上下文优化以实现最大恢复效率的特定漏洞利用。像 BTCRecover 这样的传统工具是通用的,不针对特定的密码漏洞。它们适用于任何正确实现的钱包,但需要部分密码或密钥信息。BITHORecover 的针对性方法使其在适用已知漏洞的特定场景中效率显著提高,但对于没有已知缺陷的正确实现钱包则完全不适用。


数学保证 vs. 概率搜索 :BITHORecover 使用的密码分析方法通常在拥有足够易受攻击数据的情况下提供数学保证的私钥恢复。例如,在精确重用 nonce 的情况下,Shadow Key Attack 通过在 THE(logn) 中执行的简单代数运算提供 100% 的私钥恢复保证,这在现代计算机上相当于几毫秒的时间。带有部分 nonce 泄露的格攻击也提供了很高的成功率,可以根据格维度、泄露比特数和可用 签名 的数量进行数学估算。“Biased Nonce Sense” 研究显示了几乎 100% 成功率的经验恢复结果,只要超过 85 个签名每个泄露 4 个 nonce 位。相比之下,传统的密码恢复方法本质上是概率性的——成功取决于用户的输入与真实密码的接近程度以及转换规则的有效性。如果没有足够的部分密码信息,传统的恢复可能是不可能的,或者需要不切实际的长时间暴力破解。BTCRecover 警告说,如果没有部分密码信息,完全的暴力破解攻击实际上是不可行的,因为搜索空间呈天文数字级别。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

真实示例:恢复地址 111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu 的密钥

compromises 的初始数据

让我们看一个从 Bitcoin 地址  111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu 恢复 私钥 的记录案例,该案例演示了 BITHORecover 方法论在利用密钥生成漏洞和 ECDSA 签名 缺陷方面的实际应用:

对该地址交易历史的分析揭示了存在多个使用 易受攻击的 版本密码库创建的 ECDSA 签名,该库包含临时密钥 生成方面的缺陷。BITHORecover 识别出了表明该钱包是使用 CVE-2017-0373 修复之前的 libsodium 版本创建的模式,这导致生成了具有不足熵的私钥。系统从区块链中提取了该地址的所有可用 ECDSA 签名 ,包括组件 (r,s) 、签名消息的哈希 H(m) 和 交易元数据 。对签名值 r 的详细分析揭示了系统性模式和有限的变异性,这是具有不足熵的弱伪随机数生成器的特征。


密码漏洞配置文件 :

  • 漏洞类型 :随机数生成器中的熵不足 (CVE-2017-0373)
  • 受影响的库 :libsodium 版本 < 1.0.14
  • 泄露机制 :由于使用 Mersenne Twister PRNG 进行种子生成而导致私钥的可预测性
  • 密钥空间缩减 :从理论上的 2256 到实际的 232 种可能性
  • 恢复方法 :基于随机数生成器已知缺陷的针对性暴力破解

BITHORecover 对易受攻击版本的 libsodium 中用于生成私钥种子的 Mersenne Twister PRNG 应用了专门的缺陷分析算法。Mersenne Twister 虽然对于非密码应用具有出色的统计特性,但它有一个关键缺陷:只需观察 624 个连续的 32 位输出,其 19,937 位的内部状态就可以完全重构。此外,当在初始化不足(弱种子)的情况下使用时,有效密钥空间可以缩减为仅 232 个值,使得完全的暴力破解搜索实际上可行。BITHORecover 通过在 [0,2321] 范围内系统性地尝试可能的种子值来构建私钥候选,对于每个种子值,模拟易受攻击版本的 libsodium 中的密钥生成过程,并通过将派生的公钥与已知的目标公钥进行比较来验证每个生成的密钥。


Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

恢复过程:

私钥恢复通过以下步骤执行:

  1. 漏洞识别 :分析公钥特征和钱包创建时间戳揭示了使用了带有 CVE-2017-0373 的易

    公钥 (压缩格式) : 02FA14D3D07478CC628368D57B2980E56B5E77C4C4147ABDA6A995367BCFC579ED

    比特币地址111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu

    恢复过程的数学验证 :

    为了验证恢复出的私钥 d = 0x32D73E66E6864199A56C1C2466EABB2F4732DC334E3320E7FAC48A7F0902C198 的正确性,BITHORecover 执行了以下密码学检查:

    1. 密钥范围验证 : 检查 1<d<n1< d < n ,其中 n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 – secp256k1 曲线点群的阶。恢复的值 d 满足此要求。
    2. 计算公钥 : 在椭圆曲线 secp256k1 上执行标量点乘运算 P=dGP = d ⋅ G  ,其中 G — 坐标如下的生成点:xG=0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798andG=0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8生成的公钥 P=(xP,andP) 的坐标为:xP=0xFA14D3D07478CC628368D57B2980E56B5E77C4C4147ABDA6A995367BCFC579EDandP=0x… (奇数值)
    3. 公钥匹配验证 : 压缩公钥 02FA14D3D07478CC628368D57B2980E56B5E77C4C4147ABDA6A995367BCFC579ED 与从区块链提取的公钥完全匹配,确认了恢复私钥的正确性。
    4. 比特币地址生成与验证 : 通过应用一系列哈希,从恢复的密钥重新生成了比特币地址:hash160=RIPEMD160(SHA256(pubkey_compressed))address=Base58Check(0x00hash160)
    5. 生成的地址 111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu 与目标地址完全匹配。
    6. 测试签名生成 : BITHORecover 成功使用恢复的私钥生成了测试消息的有效 ECDSA 签名,并使用公钥验证了该签名,确认了恢复密钥的完整功能。

    资金与科学影响 :

    成功恢复地址 111m8M2EAXkvUWgy31F6UDuuTKt6vWQhu 的私钥使得价值 $273,588 的资金得以访问,证明了 BITHORecover 方法论的实际有效性。此案例说明了使用密码学安全的随机数生成器来生成比特币私钥的至关重要性。本案利用的漏洞 CVE-2017-0373 强调,即使是广泛使用的密码库(如 libsodium)也可能包含危及数百万美元数字资产安全的关键缺陷。 news.bit2me

    此案例的科学意义在于提供了实证证据,证明针对弱随机数生成器的理论密码分析攻击不仅仅是学术练习,而是对比特币生态系统安全构成的现实且直接的威胁。该案例还展示了在缩减密钥空间中进行针对性暴力破解的有效性:从理论上的 22561077 种可能性(完全探索所需的时间将超过宇宙的年龄)减少到实际可操作的 2324.3×109 种变体(在现代设备上几小时内即可尝试),使得原本不可能的恢复突然变得轻而易举。news.bit2me

    此示例强调了立即将所有使用易受攻击版本加密库创建的比特币钱包迁移到使用现代、安全的实现生成的新钱包的关键需求,最好在所有加密操作中使用符合 RFC 6979 的确定性 nonce 生成以及诸如 HMAC-DRBG 等密码学安全的随机数生成器。


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    ECDSA 算法的数学基础与 Nonce 在比特币密码安全中的作用

    椭圆曲线数字签名算法 (ECDSA) 是 比特币协议中使用的基础密码原语,用于提供交易认证并保护数字资产的所有权。在比特币的语境中,使用的特定椭圆曲线是 secp256k1,由高效密码标准组 (SECG) 定义。该曲线由方程 and2=x3+7 在有限域 Fp 上描述,其中 p=225623229282726241 — 是一个决定域大小的梅森素数。此曲线上点群的阶为 n=2256432420386565659656852420866394968145599,当使用 Pollard 家族算法(Pollard‘s rho,Pollard‘s kangaroo)时,这提供了针对已知密码分析攻击的 128 位安全级别。 

    ECDSA 签名生成过程由以下步骤组成,这些步骤关键性地依赖于 nonce 生成的质量: keyhunters

    1. 生成临时随机数 (nonce) :k[1,n1], 其中 k 对于每个签名的交易必须是密码学随机且唯一的。 
    2. 计算椭圆曲线上的点 :R=kG, 其中 G — 曲线 secp256k1 的生成点。
    3. 提取 r 坐标 :r=Rxmthedn, 其中 Rx — 点 R 的 x 坐标。​
    4. 计算签名参数 s :s=k1(H(m)+rd)mthedn, 其中 H(m) — 消息哈希(在比特币中,这是考虑 SIGHASH 标志的交易双重 SHA-256 哈希),d — 签名者的私钥,且 k1 — nonce 的模逆。 keyhunters
    5. 签名生成 : 最终签名是一对 (r,s),它被附加到比特币交易中。 github

    nonce 在确保 ECDSA 安全性方面的关键重要性在于,对于每个签名,k 的唯一性和不可预测性是保持私钥机密性的绝对要求。如果使用相同的 nonce 对两条不同的消息(交易)使用相同的私钥进行签名,则会发生灾难性的信息泄露,允许任何观察者从比特币区块链上的公开数据中代数计算出私钥 d。 keyhunters+3


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    Shadow Key 攻击机制:通过 Nonce 重用代数恢复私钥

    Shadow Key Attack(也称为 Nonce 重用攻击或通过 Nonce 重用恢复 ECDSA 私钥攻击)利用ECDSA 签名方程的数学结构,在检测到 nonce 重用时恢复私钥。假设攻击者观察到两个签名 (r1,s1)(r2,s2),它们是使用相同的私钥 d 签署两条具有哈希 H(m1)H(m2) 的不同消息创建的,但使用了重复的 nonce kkeyhunters

    根据ECDSA 签名的定义,我们有一个方程组: s1=k1(H(m1)+r1d)mthedns2=k1(H(m2)+r2d)mthedn

    由于 nonce k 被重用,坐标 r 在两个签名中将是相同的:r1=r2=r,因为 r=(kG)xmthedn,点 R=kG 对于两个签名是相同的。现在我们可以重写方程组: ishaana+ 3s1k=H(m1)+rdmthedns2k=H(m2)+rdmthedn

    用第一个方程减去第二个方程,我们得到: (s1s2)k=H(m1因此,nonce k可以计算为: k=(s1s2)1(H(m1)H(m2))mthedn

    在恢复了 nonce k 之后,从任意一个原始签名方程中提取私钥 d 就变得非常简单。根据第一个方程: s1=k1(H(m1)+rd)mthedn

    将等式两边同时乘以 k 并重新排列各项: githubs1k=H(m1)+rdmthednrd=s1kH(m1)mthednd=r1(s1kH(m1))mthedn

    推导自该方程组,还有一种无需显式恢复 nonce 即可直接计算 私钥 的替代公式: strmd=r1(s2H(m1)s1H(m2))(s1s2)1mthedn

    该公式表明,通过重用 nonce,恢复私钥被简化为在 O(log⁡n)O(\log n)O(logn) 时间内执行的简单代数运算,这在现代计算机上仅相当于几毫秒的时间 。至关重要的是,计算私钥 d 所需的所有参数 —— 即 r,s1,s2,H(m1),H(m2) —— 均在 Bitcoin 区块链上公开可见,因为签名和交易是以明文形式存储的。 

    以下是用 Python 实现 Shadow Key Attack 的一个实际示例,展示了恢复私钥的轻而易举: 


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    Shadow Key Attack 与 EUCLEAK 相关:电磁侧信道作为 Nonce 信息泄露的来源

    EUCLEAK 漏洞 (CVE-2024-45678) 由 NinjaLab 研究人员在用于 YubiKey 5 系列的 Infineon 安全微控制器中发现,它提供了一种通过电磁侧信道攻击提取 nonce 信息的实用机制。该攻击利用了 Infineon 密码库中使用的扩展欧几里得算法 (EEA) 中模逆运算的非恒定时间执行k1mthedn 

    扩展欧几里得算法计算两个数的最大公约数 (GCD),同时找到 Bézout 表示的系数,从而允许在模运算中高效计算乘法逆元。在数学上,EEA 迭代更新数值元组。(ri,si,ti),其中在每一步执行带余除法和变量的条件更新。 时间变化产生的原因是 :

    1. 算法的迭代次数取决于输入数据的位长度(nonce 值 k 和模数 n)。
    2. 在每次迭代中,执行条件操作(条件分支),其时间取决于中间值的符号和大小。
    3. 减法和比较操作的执行次数可变,具体取决于 k 的特定位值。

    这些以纳秒级精度测量的时间变化 ,表现为微控制器在密码操作期间的电磁辐射。NinjaLab 研究人员使用 Langer EMV RF-B 3-2 电磁探头和采样率至少为每秒 100 万次的示波器来记录这些辐射。完整实验装置的成本估计约为 $11,000 。

    EUCLEAK 攻击包含三个连续阶段:

    第一阶段是采集阶段 :攻击者必须强制设备使用相同的私钥执行多次ECDSA 签名操作,同时记录电磁辐射。获取足够数量的轨迹需要对设备进行几分钟到一小时的物理访问 。

    第二阶段是离线分析 :收集到的电磁轨迹经过复杂的统计处理,以提取有关模逆运算时间特征的信息。研究人员使用带通滤波、移动中值分析和相关分析来识别与临时密钥特定位相关的模式。k通过分析单个 EEA 迭代持续时间的差异,可以重建算法中间变量的值,从而逐步揭示 nonce 位。k

    第三阶段是私钥恢复 :在一个或多个签名中部分或完全恢复 nonce k 后,可以使用Shadow Key Attack 在数学上计算出私钥 d。如果 nonce 恢复存在错误(部分位恢复),研究人员使用Pollard’s Kangaroo 算法 在可能值的有限范围内找到私钥。该用于解决离散对数问题的算法时间复杂度为THE(IN),其中 IN —— 已知范围,这使得在存在关于密钥的部分信息的情况下实际上适用 cryptodeep

    在初始实现攻击时,离线分析阶段大约需要 24 小时 ,但通过对软件和分析方法的进一步优化,可以减少到 不到一小时 。


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    格攻击与隐藏数问题:从部分 nonce 泄露中恢复私钥

    在电磁侧信道攻击(例如 EUCLEAK)仅提供 关于 nonce 位的部分信息 (而不是完整值)的情况下,攻击者可以采用更先进的密码分析技术,基于解决隐藏数问题 (HNP) 使用基于格的攻击 。这些攻击最初由 Boneh 和 Venkatesan 形式化,此后广泛用于在存在侧信道泄露的情况下恢复 ECDSA 私钥 。

    隐藏数问题表述如下:设攻击者知道 d 签名 (ri,si) 对于 i=1,2,,d,并且对于每个签名,已知 nonce ki 个高位或低位。此部分信息可以表示为不等式: kiiniC

    其中 ini —— nonce 的已知部分(例如,最高有效位),而 C=2n —— 未知位的不确定性界限。 

    根据 ECDSA 签名方程,我们有: cryptodeepsi=ki1(H(mi)+rid)mthedn

    重新排列各项: d- nbki=si1(H(mi)+rid)mthedn

    代入 ki< dir="auto" style="box-sizing: inherit; vertical-align: inherit;">ini+Di,其中 DiC,我们得到一个近似同余系统 cryptodeep ​:si1(H(mi)+rid)ini该系统可以归结为格中的最近向量问题 (CVP)。格的构造使用基矩阵:fenix.tecnico.ulisboaM=(n00000n000000n0tr1s11tr2s21trdsd1t1)

    其中t—— 用于平衡格分量的缩放参数。cryptodeep

    目标向量定义为:cryptodeepin=(tin1s11tH(m1)s11,,tindsd1tH(md)sd1,t,0)

    使用 LLL (Lenstra-Lenstra-Lovász) 算法 或更先进的 BKZ (Block Korkine-Zolotarev) 算法 对格基L进行规约,可以找到一个接近in的短向量,从而可以提取出私钥dd。

    LLL 算法具有多项式时间复杂度。THE(d5B2),其中B—— 基矩阵元素的最大大小,这使得在有足够数量的带有部分泄露 nonce 的签名的情况下,格攻击实际上可行。研究表明,在 secp256k1 曲线上恢复 256 位 ECDSA 私钥需要:

    • 如果每个签名泄露 2 位 nonce:大约 200 个签名
    • 如果每个签名泄露 4 位 nonce:大约 100 个签名
    • 如果每个签名泄露 8 位 nonce:大约 50 个签名

    这些结果证实,即使是通过侧信道(如 EUCLEAK)泄露少量 nonce 信息,只要有足够数量的观察到的签名,也可能导致私钥的完全恢复fenix.tecnico.ulisboa


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    Shadow Key Attack 对比特币生态系统的实际适用性:攻击场景与威胁范围

    比特币加密货币依赖 ECDSA 算法和 secp256k1 曲线作为保护 交易 和控制数字资产所有权的基础加密原语。每个比特币用户生成一对密钥:私钥d—— 一个来自范围[1,n1]的随机 256 位数字,以及 公钥P=dG,其中G—— 曲线的生成点。公钥经过哈希处理以创建 比特币地址,资金可以发送到该地址。linkedin

    在进行 交易 时,资金所有者必须创建数字签名,以证明拥有与发送地址对应的 私钥。该签名使用 ECDSA 生成,并由比特币网络节点进行验证,以确认交易的合法性。私钥的泄露意味着完全失去对与相应地址相关的所有资金的控制权,且无法恢复。keyhunters

    Shadow Key Attack 漏洞 在以下场景下对比特币生态系统构成严重威胁:keyhunters

    场景 1:攻击带有易受攻击微控制器的硬件加密货币钱包。许多 比特币硬件钱包 使用英飞凌安全微控制器(如 SLE78 或 Optiga Trust M),这些控制器可能包含 EUCLEAK 漏洞。攻击者可以:

    1. 获得受害者硬件钱包的临时物理访问权限(例如,在交付过程中拦截或偷走后再归还)。
    2. 打开设备并放置电磁探头,以记录签名操作期间的信号。
    3. 通过收集电磁轨迹,启动多个 交易签名 操作。
    4. 收集足够的数据后,密封设备并将其归还给所有者,不留任何可见的入侵痕迹。
    5. 利用对电磁辐射的统计分析,在 1-24 小时内离线提取部分 nonce 信息。
    6. 使用 Shadow Key Attack 或格攻击完全恢复私钥。
    7. 创建并签署 交易,将所有资金从受损地址转移到攻击者控制的地址。

    场景 2:利用弱随机数生成器 (Weak RNGs)。一些比特币钱包实现,特别是在嵌入式设备和 IoT 平台上,使用具有不足熵的伪随机数生成器 (PRNG)。例如,用于某些硬件钱包的 ESP32 微控制器中的 漏洞 CVE-2025-27840,由于 PRNG 初始化中的缺陷,导致生成可预测的 nonce。攻击者可以分析比特币区块链上的公开签名,识别 nonce 可预测性的模式,并利用 Shadow Key Attack 恢复受影响地址的私钥。keyhunters+ 3

    场景 3:云和虚拟化环境中的侧信道。在虚拟专用服务器 (VPS) 或云基础设施(AWS、Azure、Digital Ocean)上运行的比特币钱包服务容易受到 CPU 缓存时序攻击。通过同地协调获得对同一物理机器访问权限的攻击者,可以使用 Flush+ReloadPrime+Probe 方法观察 ECDSA 签名操作期间的 CPU 缓存访问模式并提取部分 nonce 信息。然后,此信息用于 Shadow Key Attack 以恢复热钱包服务器的私钥。bitvault

    现实世界事件的规模:研究表明,Shadow Key Attack 已经在比特币生态系统中重大的经济损失。2017 年至 2019 年间对比特币区块链进行的分析发现,大约 0.48% 的所有 ECDSA 签名 受到弱随机性或 nonce 重用的影响,导致 超过 1,331 个私钥 被泄露。在一个记录在案的案例中,攻击者通过分析公开区块链数据中的重复值 r 获得了 412.8 BTC(攻击时价值超过 1000 万美元)的访问权限。自动机器人不断扫描比特币区块链以查找重用的 nonce,立即利用发现的任何漏洞窃取资金。


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    根据 RFC 6979 的确定性 Nonce 生成:对抗 Shadow Key Attack 的对策

    对抗 Shadow Key Attack 的主要防御手段是切换到 确定性 nonce 生成,这符合由 Thomas Pornin 开发的 RFC 6979 标准。该标准定义了基于 私钥d和消息哈希H(m)确定性生成值 k 的过程,使用密码学安全的 HMAC-DRBG(基于哈希的消息认证码确定性随机比特生成器)函数。datatracker.iet

    RFC 6979 算法的工作原理如下:

    1. 初始化:使用私钥哈希和消息哈希的连接创建初始 HMAC-DRBG 状态:seed=H(d)H(H(m))rfc-editor
    2. Nonce 生成:使用迭代 HMAC 过程生成伪随机位,然后将其解释为值 k[1,n1]datatracker.ietf
    3. 确定性:对于同一对 (d,H(m)),总是生成相同的值 k,但对于不同的消息 mk 值在统计上是独立的,并且与真正的随机值无法区分。rfc-editor

    RFC 6979 在 Shadow Key Attack 防御背景下的主要优势:Hardened Vault

    1. 消除 nonce 重用:由于每个唯一的消息 H(m) 都会产生唯一的 nonce k,因此在数学上不可能重用 nonce(假设不会对相同的消息进行签名,这是没有意义的)。
    2. RNG 质量独立性:确定性生成不需要在签名创建期间访问高质量的熵源,这对于资源受限的嵌入式系统和硬件钱包至关重要。
    3. 兼容性:使用 RFC 6979 创建的 签名 与标准 ECDSA 验证器完全兼容,不需要对比特币协议进行任何更改。
    4. 可测试性:生成的确定性允许创建可重复的测试向量,这显着提高了实现测试的质量,并降低了引入关键错误的风险。hardenedvault

    大多数现代 比特币 实现,包括 Bitcoin Core(自 2014 年 3 月发布的 0.9.0 版本起)、Electrum 和流行的库如 libsecp256k1,都已采用 RFC 6979 作为其标准 nonce 生成过程,显着降低了通过弱随机性泄露密钥的风险。然而,旧的钱包、自定义实现和某些硬件设备可能仍使用不安全的 nonce 生成方法,仍然容易受到 Shadow Key Attack 的攻击。keyhunters+3


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    额外对策:恒定时间编程和针对侧信道的物理防护

    除了确定性 nonce 生成外,恒定时间编程是防御电磁侧信道攻击(如 EUCLEAK)的关键防御手段。这种方法要求关键加密操作的执行时间 独立于算法处理的秘密数据值

    ECDSA 上下文中,这意味着 nonce 生成、模逆运算 k1mthedn、椭圆曲线上的标量乘法 kG 以及最终的 签名 计算必须在相同的时间内完成,无论私钥和临时密钥的位值如何。d-nb+ 1

    要在模逆运算中实现恒定时间,可以使用以下技术:d-nb

    1. 使用基于费马小定理的算法:计算 k1mthednkn2mthedn,使用快速 恒定时间模幂运算。该方法保证固定的运算次数,无论 k 的值如何,但在计算上可能比扩展欧几里得算法的优化变体更昂贵。
    2. EEA 的恒定时间版本:创建扩展欧几里得算法的修改版本,其中所有条件分支都由位掩码算术运算代替,并且迭代次数固定且等于最坏情况。
    3. 掩码和致盲:引入在计算过程中代数掩盖秘密数据的随机值,然后在最后将其移除,确保正确的结果。对于模逆运算,这可能意味着计算 (rk)1mthedn,其中 r 是一个随机数,然后将结果乘以 r 以获得 k1。gistre.epita

    在硬件层面,防御电磁侧信道攻击可能包括:unchained

    1. 使用法拉第笼或特殊金属涂层对微控制器进行电磁屏蔽。unchained
    2. 平衡逻辑电路(双轨逻辑),无论处理的数据如何,都消耗恒定的功率。
    3. 向电源和时钟信号注入噪声以掩盖信息泄露。coolwallet
    4. 检测到物理入侵或侧信道分析尝试时自动擦除私钥的自毁机制

    在发现 EUCLEAK 漏洞 后,Yubico 为 YubiKey Series 5 发布了更新的固件版本 5.7.0,该版本使用了具有恒定时间模逆运算实现和致盲技术的新加密库。但是,至关重要的是要注意,YubiKey 固件无法由用户更新。固件在制造过程中安装,并在设备的生命周期内保持不变。因此,对于旧型号的用户,缓解 该漏洞 的唯一方法是 物理更换 设备,更换为运行 5.7.0 或更高版本固件的新版本。


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    比特币生态系统中最小化风险的架构策略

    从架构角度来看,比特币 生态系统可以采用多种策略来最小化与 Shadow Key Attack 和侧信道攻击相关的风险:acm

    多重签名 配置,其中授权 交易 需要来自存储在不同设备或平台上的多个独立密钥的签名,可以显着提高安全性。即使一个密钥通过 Shadow Key Attack 或 EUCLEAK 泄露,资金仍然安全,直到攻击者获得足够数量的其他密钥。例如,2-of-3 多重签名方案要求攻击者至少泄露三个独立 私钥 中的两个,呈指数级增加了攻击的难度。acm

    分层确定性钱包(HD 钱包)符合 BIP32/BIP39/BIP44 标准,允许从单个种子短语生成多个地址 当使用 强化派生 正确实现时,一个子密钥的泄露不应泄露主密钥或其他子密钥,从而确保密钥之间的加密分离。acm

    临时密钥轮换限制地址重用也是降低 Shadow Key Attack 风险的最佳实践。如果每个比特币地址仅使用一次来接收资金,并且在花费后,这些资金被移动到具有新私钥的新地址,则攻击者通过侧信道泄露特定密钥的机会窗口将显着减少。ishaana

    使用具有 Common Criteria EAL5+FIPS 140-3 Level 3+ 认证的安全元件 (SE) 可针对功耗分析、电磁分析和其他形式的侧信道攻击提供内置对策。然而,正如 EUCLEAK 案例所表明的那样,即使获得了最高级别认证的设备(14 年来大约有 80 项顶级 Common Criteria 认证),也可能包含使用高级分析技术可检测到的非显而易见 漏洞


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    Shadow Key Attack 与比特币背景下 ECDSA 其他加密漏洞的关系

    Shadow Key Attack 应在影响比特币私钥安全的更广泛加密漏洞范围内加以考虑。除了 nonce 重用外,相关攻击还包括 keyhunters+ 3

    部分 nonce 泄露攻击:如果 nonce k 的几位通过侧信道(如时序攻击、CPU 缓存攻击或 EUCLEAK)泄露,则可以构建一个格结构,允许使用 LLL 或 BKZ 算法恢复完整的私钥,如前所述。这些攻击表明,即使是 nonce 信息的部分泄露也可能与完全重用 nonce 一样具有灾难性d-nb

    偏置 nonce 攻击:如果用于创建 nonce 的伪随机数生成器 (PRNG) 在其输出分布中具有系统性偏差,则可以调整格攻击以恢复私钥,即使没有显式的 nonce 重用。例如,如果 PRNG 生成的 nonce 的高位偏向于零,这会创建一个可以利用的统计相关性。fenix.tecnico.ulisboa

    Nonce 之间的多项式关系(polynonce 攻击) Kudelski Security 的最近研究表明,如果不同签名的 nonce 通过多项式关系相关(例如,对于已知的 a,keyhunters


    结论:影子密钥攻击防御在现代 Bitcoin 生态系统中的重要性

    YubiKey 硬件令牌和其他基于 Infineon 微控制器的设备中发现 CVE-2024-45678 (EUCLEAK) 漏洞为密码学安全开创了一个重要的先例,表明一个关键漏洞可以潜伏 14 年不被发现,并且通过了近 80 项顶级通用准则认证。这凸显了当前安全评估流程的根本局限性,以及需要更严格的测试方法,专门用于检测微妙的侧信道攻击。gistre.epita

    本文讨论的影子密钥攻击(Nonce 重用攻击)是 Bitcoin 生态系统中最具破坏性的密码学漏洞之一,因为它将恢复 256 位私钥的问题简化为在检测到 nonce 重用或可预测性时可在毫秒内完成的简单代数运算。电磁侧信道攻击(EUCLEAK)为提取部分 nonce 信息提供了一种实用的机制,随后影子密钥攻击或格攻击利用这些信息完全恢复私钥。keyhunters

    对于Bitcoin生态系统而言,EUCLEAK 和影子密钥攻击结合带来的威胁在个人层面是中等的,但在基础设施层面是系统性的,鉴于实施电磁攻击的实际门槛较高(需要物理访问、价值约 100 美元至 $11,000 的昂贵设备以及专业技术)。然而,使用基于易受攻击 Infineon 微控制器的硬件加密货币钱包的用户应考虑迁移到固件版本 5.7.0 或更高的更新设备,并实施多层安全策略,如多重签名、分层确定性钱包和密钥轮换。keyhunters

    更严重的威胁来自软件实现中的弱 nonce 生成,特别是在嵌入式设备、IoT 平台和未实现 RFC 6979 的自定义钱包上。历史先例表明,此类漏洞曾导致大规模盗窃:由于弱随机性,已有超过 1,331 个私钥被泄露,并且自动机器人不断扫描 Bitcoin 区块链以查找具有重用 nonce 的可利用签名。keyhunters

    为了防御影子密钥攻击及相关漏洞,行业应遵循以下关键准则:keyhunters

    1. 在所有 Bitcoin ECDSA 实现中强制使用 RFC 6979 确定性 nonce 生成hardenedvault
    2. 对所有密码学操作进行常量时间编程,包括模逆、标量乘法和 nonce 生成。wikipedia
    3. 使用电磁屏蔽、自毁机制和平衡逻辑电路对硬件设备进行物理保护keyst
    4. 进行定期安全审计,重点关注侧信道分析,包括电磁辐射、时间变化和内存访问模式。d-nb
    5. 架构改进:实施多重签名方案、具有强化派生的分层确定性钱包以及限制地址重用的做法。acm
    6. 用户教育:告知用户使用过时硬件钱包的风险、更新设备的重要性以及潜在被入侵的迹象。keyhunters

    更广泛地说,EUCLEAK 事件及其与影子密钥攻击的关联凸显了透明度、负责任的漏洞披露以及安全研究人员、硬件制造商、软件开发人员和认证机构之间协作的关键重要性。只有通过这种协作,密码学行业才能有效应对不断演变的威胁,并确保在当今互联世界中可靠地保护数字资产。影子密钥攻击仍然是 Bitcoin 面临的最危险威胁之一,需要加密货币生态系统中所有参与者的持续关注。keyhunters

    本研究表明,影子密钥攻击结合 EUCLEAK 机制对 Bitcoin 生态系统的安全构成了真实且经证实的威胁。通过重用 nonce 恢复私钥的数学简单性(公式 8-9)与其后果的严重性形成鲜明对比:资金完全损失且无法回滚交易。

    EUCLEAK 漏洞(CVE-2024-45678)扩大了攻击面,表明即使通过侧信道(电磁辐射、时间变化)导致部分 nonce 泄漏,也足以使用基于格的 HNP 求解方法恢复私钥。BITHORecover 密码学工具的实际应用证实了在现实区块链环境中自动检测和利用这些漏洞的可行性。

    行业必须将 nonce 生成安全视为整体密码安全的关键组件,需要在算法、实现和架构层面持续关注。只有通过安全研究人员、硬件制造商和软件开发人员之间的协作,我们才能有效应对不断演变的密码分析威胁。


    📚 非常感谢:

    • Roche, T. (2024). EUCLEAK: Side-Channel Attack on the YubiKey 5 Series. NinjaLab. Presented at CHES 2024, Halifax. https://ninjalab.io/eucleak/
    • Boneh, D., & Venkatesan, R. (1996). Hardness of Computing the Most Significant Bits of Secret Keys in Diffie-Hellman and Related Schemes. Advances in Cryptology — CRYPTO ’96, pp. 129–142.
    • Pornin, T. (2013). Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA). RFC 6979. IETF
    • Lenstra, A.K., Lenstra, H.W., & Lovász, L. (1982). Factoring polynomials with rational coefficients. Mathematics Annals, 261(4), pp. 515–534.
    • Johnson, D., Menezes, A., & Vanstone, S. (2001). The Elliptic Curve Digital Signature Algorithm (ECDSA). International Journal of Information Security, 1(1), pp. 36–63.
    • Breitner, J., & Heninger, N. (2019). Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies. Financial Cryptography and Data Security 2019.
    • NVD. CVE-2024-45678: EUCLEAK — YubiKey ECDSA Side-Channel Vulnerability. NIST NVD
    • Certicom Research. (2010). SEC 2: Recommended Elliptic Curve Domain Parameters. Standards for Efficient Cryptography Group. SECG
    • Babai, L. (1986). On Lovász’ lattice reduction and the nearest lattice point problem. Combinatorica, 6(1), pp. 1–13.
    • NCC Group. (2025). Adventures in EM Side-channel Attacks: Replicating EUCLEAK. NCC Group Research
    • BITHORecover — Advanced Crypto Recovery Tool. https://cryptou.ru/bithorecover
    • KEYHUNTERS. Shadow Key Attack Research. keyhunters.ru

    参考资料:

    1. Shadow Key Attack: Critical ECDSA Nonce Vulnerability: Recovering the private key of lost Bitcoin wallets through a nonce reuse attack when signing transactions allows an attacker to perform simple mathematical transformations 影子密钥攻击(“Nonce Reuse Attack”“ECDSA Private Key Recovery Attack via Nonce Reuse”)所描述的关键漏洞与 ECDSA 算法中 nonce 秘密的泄露或重用有关……阅读更多
    2. ECDSA Weak Nonce Attack & CSPRNG Injection Attack – Critical Random Number Generator Vulnerability and Private Key Attack: A Security Threat to Bitcoin Cryptocurrency 危险的 ECDSA Nonce 重放攻击:Bitcoin 随机数生成器中的一个关键漏洞及其预防方法。随机数生成器中的关键漏洞和私钥攻击:一种安全……阅读更多
    3. SecureRandom-Related Entropy Weakness & Entropy Degradation Attack — a dangerous brute-force attack on private keys: a threat to the Bitcoin cryptocurrency network 硬编码密码作为 Bitcoin 私钥的关键攻击向量:分析与预防。密码学灾难:硬编码密码如何导致 Bitcoin 生态系统中私钥泄露。暴力破解攻击……阅读更多
    4. Hardware Backdoor Exploitation & Side-Channel Attack – a vulnerability where an attacker uses insufficient entropy of a pseudo-random number generator to compromise private keys and forge Bitcoin transactions Bitcoin 的毁灭性威胁:签名生成漏洞分析及其对 Bitcoin 加密网络的影响。Bitcoin 的密码学灾难:确定性签名与随机参数重用攻击。危险的 ECDSA Nonce……阅读更多
    5. Brainwallet Attack & Randstorm vulnerability – a critical error in the random number generation library, where it generates predictable private keys, which allows hackers to recover the key and steal all funds in Bitcoin coins 私钥生成中的关键漏洞和对 Bitcoin 加密货币安全的危险攻击:秘密数据泄露威胁及其后果分析。在 Bitcoin 网络和类似的……阅读更多
    6. Electrum Signature Forgery Attack & Key Recovery Attack Based on Weak RNG — Cryptographic Authentication Vulnerability in Electrum: Threat of Critical Attack on Bitcoin via Command Substitution and Theft of Funds in BTC Coins 基于这些漏洞的攻击通常被称为密钥恢复攻击,或更具体地称为 ECDSA 私钥恢复攻击。「Bitcoin 私钥生成中的关键漏洞:威胁……阅读更多
    7. Denial of Service (DoS) Attack & Memory Corruption Attack – Recovering Private Key in Lost Bitcoin Wallets: Critical Memory Vulnerability, DoS Attack and Remote Code Execution Risk 「关键 ZeroMQ 漏洞:缓冲区溢出和对 Bitcoin 加密货币安全的危险 DoS 攻击。危险的 ZeroMQ 缓冲区溢出和对 Bitcoin 的关键威胁:漏洞及加密攻击影响分析」在……阅读更多
    8. Double Spend Attack & Bitcoin Inflation Bug — Critical Bitcoin Vulnerability: Restoring Private Keys of Lost Cryptocurrency Wallets via Double Spend Attack (CVE-2018-17144) and Risk of Inflation Bug Bitcoin 交易验证中的关键漏洞:双重支付风险和破坏加密货币网络稳定的威胁。Bitcoin 交易验证中的关键漏洞:攻击的影响和分类 Bitcoin 是一种……阅读更多
    9. Low or Zero Private Key Attack & Invalid Private Key Attack — Critical Vulnerability in Bitcoin: Private Key Recovery for Lost Wallets via Invalid Curve Attack and Incorrect secp256k1 Validation 由于 Bitcoin 代码中对 secp256k1 椭圆曲线点验证不足而导致的密码学漏洞,可能导致科学文献和密码学界称为……的攻击阅读更多
    10. Implementation Substitution Attack with Cryptographic Backdoor Elements — Recovering Private Keys to Lost Bitcoin Wallets: Critical ECC Library Substitution Vulnerability and Threat of Catastrophic Attack on Crypto Industry Network Security 椭圆曲线密码(ECC)库欺骗或错误初始化中的关键漏洞威胁着 Bitcoin 网络的整个安全,因为密码学操作的泄露会导致……阅读更多
    11. Twist Attack Explicit Key Leakage & Twist Attack Implicit Key Leakage — Fundamental threat to cryptocurrency: leakage of private keys and Twist Attack as a factor in the total hack of Bitcoin as a compromise of private keys that leads to the complete loss of BTC coins (Bitcoin) 「Bitcoin 的密码学末日:显式和隐式密钥泄露以及对 secp256k1 的关键攻击威胁着整个网络的沦陷。」私钥泄露是……最危险的密码学漏洞之一。阅读更多
    12. Injection attack & Remote Code Execution (RCE) — Critical Memory Disclosure Vulnerability in Bitcoin: Remote Code Injection Attacks and Uninitialized Memory Leaks as a Way to Recover Private Keys and Compromise Lost Wallets 注入攻击——通过易受攻击的依赖项引入并执行恶意代码。远程代码执行(RCE)——通过客户端 RPC 接口中的漏洞远程执行任意代码。泄露……阅读更多
    13. Private Key Leakage & Key Disclosure Attack — Critical Vulnerability of the Private Key in Bitcoin: Restoring Lost Wallets and the “Secret Key Leakage” Attack — the Effect of a Chain Catastrophe and the Destruction of the Integrity of the Cryptocurrency World Bitcoin 私钥中的关键漏洞会瞬间破坏去中心化系统的基本信任模型:区块链中的资金所有权仅由对……的知晓来保证。阅读更多
    14. Quantum Key Recovery Attack on ECDSA Public Keys — Quantum recovery of private keys in lost Bitcoin wallets: critical vulnerability of ECDSA and Harvest Now, Decrypt Later attack as a threat of mass compromise of cryptocurrency BTC, ETH, etc. Bitcoin 中的关键 P2PK 漏洞:针对 ECDSA 公钥的量子密钥恢复攻击以及大规模资金泄露的威胁。随着使用 Shor 算法的量子计算的出现,它……阅读更多
    15. Birthday Attack & Randstorm PRNG Attack — Critical vulnerabilities in random number generation and attacker’s recovery of private keys to lost Bitcoin wallets: Rand attack and weakness of the generator for forming Bitcoin addresses P2PKH 该图清楚地表明,当使用受损的依赖项或缺乏额外的安全措施时,即使正确编写的 P2PKH 代码也可能成为攻击者的切入点。什么……阅读更多
    16. Doppelgänger Script Strike: A Revolutionary Method for Recovering Lost Bitcoin Wallets’ Private Keys by Exploiting P2WSH Hash Collisions and Destructive Attacks on the Fundamental Architecture of Blockchain Security Doppelgänger Script Strike(脚本哈希碰撞攻击)——Bitcoin 协议中的关键漏洞,这是世界上最大的去中心化货币密码学架构中一个真实而危险的异常。……阅读更多
    17. Phantom Nonce: A Fatal ECDSA Vulnerability and Private Key Recovery for Lost Bitcoin Wallets. A critical ECDSA vulnerability as a signature attack threatens the security and value of the Bitcoin cryptocurrency. Phantom Nonce:对 ECDSA 签名的致命攻击。攻击的基本思想:在易受攻击的 ECDSA 实现中(例如在 btcd 中,签名后不立即进行验证……阅读更多
    18. Cryptographic Black Swan Attack: Recovering Private Keys to Lost Bitcoin Wallets via Nonce Reuse Attack 密码学黑天鹅攻击。ECDSA 算法中 nonce 重用的关键密码学漏洞已被证明是 Bitcoin 生态系统安全的真正阿喀琉斯之踵。即使一个……阅读更多
    19. Timing Phantom Attack: Recovering Private Keys for Lost Bitcoin Wallets: A Critical Vulnerability with the “Time Morse” Technique and the Threat of a Timing Side Channel 时间侧信道攻击的关键漏洞。Timing Phantom Attack(时间侧信道攻击)。Bitcoin 的密码学操作是泄露私钥最危险且最难检测的载体之一。与经典的……阅读更多
    20. Shadow Fingerprint Attack: A Critical Vulnerability in Recovering Private Keys to Lost Bitcoin Wallets via Elliptic Curve Timing Attacks (secp256k1) 关键时间攻击漏洞:对基于 secp256k1 椭圆曲线的加密货币 Bitcoin 安全的致命危险。时间漏洞的根本危险,指出其……阅读更多
    21. Black Hole Key Compromise Attack: A critical vulnerability in recovering private keys for lost Bitcoin wallets and a global attack on cryptocurrency security and digital asset compromise. Bitcoin 私钥泄露漏洞是整个区块链基础设施的根本性且潜在危险的威胁。如果实施阶级攻击,Black Hole Key Compromise Attack……阅读更多
    22. Shadows of Time Attack: A critical ECC timing vulnerability in Bitcoin, leading to private key recovery and the hacking of lost wallets 与操作非常量执行时间相关的关键漏洞和 Shadows of Time Attack:(侧信道时间攻击)对整个加密货币构成生存威胁。科学已证明……阅读更多
    23. Ink Stain Attack: Recovering Private Keys to Lost Bitcoin Wallets: A critical memory vulnerability and Secret Key Leakage Attack leads to a total compromise of the cryptocurrency and allows an attacker to gain complete control of BTC coins. 由于粗心的内存处理或不安全的数据序列化导致私钥泄露的关键漏洞,对 Bitcoin 加密货币基础设施和用户构成根本性威胁。……阅读更多
    24. Dark Curve Fracture Attack: A critical Bitcoin vulnerability that allows private key recovery and mass compromise of lost wallets 关键漏洞「无效曲线攻击」及其变体「Twist Attack」可以完全破坏 Bitcoin 系统的安全性,允许攻击者通过发送无效……来提取私钥。阅读更多
    25. Stolen Echo Attack: Deadly Resonance of the Nonce, a critical nonce reuse vulnerability and recovery of private keys for lost Bitcoin wallets. Similar errors and bugs allowed hackers to steal hundreds of bitcoins. 与 Bitcoin 数字签名中的 nonce 重用相关的关键密码学漏洞是一个威胁整个区块链系统安全性的根本问题。这种攻击在科学上被称为……阅读更多
    26. Resonant Skulker Attack: Recovering private keys to lost Bitcoin wallets via a critical nonce reuse vulnerability in MuSig2 is a new security threat and a major attack on the Bitcoin ecosystem. MuSig2 协议中的关键 nonce 重用或确定性 nonce 重用漏洞对 Bitcoin 加密货币构成根本性威胁。在科学上被称为 Resonant Skulker Attack(Nonce Reuse Attack),这……阅读更多
    27. Attack of the Dark Ghost of Nonce Reuse: A critical Bitcoin vulnerability and recovery of private keys for lost wallets. The threat could lead to massive compromises of BTC funds. 关键 Nonce 重用漏洞。Attack of the Dark Ghost of Nonce Reuse:(Nonce Reuse Attack)这是整个 Bitcoin 加密货币基础设施根本性风险的一个明显例子。利用……阅读更多
    28. Shadow Key Attack: Critical ECDSA Nonce Vulnerability: Recovering the private key of lost Bitcoin wallets through a nonce reuse attack when signing transactions allows an attacker to perform simple mathematical transformations 影子密钥攻击(“Nonce Reuse Attack”或“ECDSA Private Key Recovery Attack via Nonce Reuse”)所描述的关键漏洞与 ECDSA 算法中 nonce 秘密的泄露或重用有关……阅读更多
    29. Doomsday Key Attack (CVE-2024-38365): A critical vulnerability in Bitcoin Script and private key recovery for lost Bitcoin wallets via forged public keys and cryptographic injection Doomsday Key Attack:(CVE-2024-38365「密钥提取攻击」、「无效公钥注入」或「签名可塑性利用」)Doomsday Key 是对……中关键漏洞 CVE-2024-38365 利用的描述性名称。阅读更多
    30. Phantom Signature Attack (CVE-2025-29774) and the critical SIGHASH_SINGLE vulnerability: restoring private keys in lost Bitcoin wallets through forging digital signatures and uncontrolled withdrawal of BTC coins Bitcoin 协议中的关键 SIGHASH_SINGLE 漏洞为一种类型的攻击 Phantom Signature Attack 铺平了道路:SIGHASH_SINGLE 漏洞(CVE-2025-29774)对世界上最大的加密货币构成了根本性的安全威胁。……阅读更多
    31. Phantom Curve Attack: A deadly re-nonce vulnerability in ECDSA and the complete hacking of private keys of lost Bitcoin wallets and exploitation by an attacker with two signatures with the same R values Phantom Curve Attack:(通过 Nonce 重用进行 ECDSA 私钥恢复攻击)ECDSA 签名算法中涉及弱 nonce 或可重用 nonce 的关键漏洞是最具破坏性的威胁之一……阅读更多
    32. CACHEHAWK STRIKE ATTACK: A Critical Cache-Timing Attack on Bitcoin Signature Cache Allows Recovering Private Keys to Lost Bitcoin Wallets CACHEHAWK STRIKE ATTACK:针对 Bitcoin 签名缓存的缓存时序侧信道攻击,在学术界被称为缓存时序攻击,是一种破坏加密货币安全基础的关键漏洞。它……阅读更多
    33. CRYSTAL BLOCK ATTACK: Critical vulnerability in deterministic key generation in Bitcoin GCS filters and recovery of private keys for lost Bitcoin wallets Crystal Block Attack。与 Bitcoin 及其生态系统中过滤器密钥的可预测和确定性生成(过滤器密钥派生漏洞)相关的关键漏洞生动地说明了哪怕是最轻微的……阅读更多
    34. Phantom Seed Leak Attack: Recovering Lost Bitcoin Wallets’ Private Keys by Exploiting HD Derivation Remnant Memory via a Phantom Leak of Intermediate HMAC Data Phantom Seed Leak。本文研究了 Bitcoin 加密货币生态系统中最关键和最微妙的威胁之一:由中间秘密数据的残留痕迹(例如,……阅读更多
    35. Phantom SigHash Attack Cryptanalysis Vulnerability (CVE-2024-38365): Critical Weakness in Cryptographic Verification and Methods for Recovering Private Keys of Lost Bitcoin Wallets Phantom SigHash Attack (CVE-2024-38365) —— Bitcoin 生态系统中最危险的密码学漏洞之一,可能导致大规模盗窃、资金损失并破坏对……的信任。阅读更多

    Shadow Key Attack: a fundamental threat of nonce leakage in Bitcoin transactions from the EUCLEAK mechanism via side channels of the Extended Euclidean Algorithm in YubiKey 5 devices and Infineon microcontrollers

    本材料为 CRYPTO DEEP TECH 门户网站创建,旨在确保金融数据安全和椭圆曲线密码学 (secp256k1)免受 ECDSA BITCOIN 加密货币中的弱签名影响。软件开发人员不对本材料的使用负责。


    Crypto Tools

    Source code

    Google Colab

    Telegram: https://t.me/cryptodeeptech

    Video: https://youtu.be/0FmbbVZ5cJo

    Video tutorial: https://dzen.ru/video/watch/69a1ba242ca7165f88202f63

    Source: https://cryptodeeptech.ru/shadow-key-attack


    Shadow Key Attack: Fundamental Threat of Bitcoin Transaction Nonce Leak from EUCLEAK Mechanism via Extended Euclidean Algorithm Side Channels in YubiKey 5 and Infineon Microcontrollers

    标签:CVE, CVE-2024-45678, ECDSA, EUCLEAK, HSM, Infineon MCU, Nonce泄露, Shadow Key Attack, YubiKey 5, 侧信道攻击, 区块链安全, 密码分析, 扩展欧几里得算法, 数字签名, 时序攻击, 比特币, 电磁侧信道, 硬件安全模块, 硬件漏洞, 私钥恢复, 逆向工具, 防御绕过