我們對來自 Kraken Security Labs 的安全發現做出回應
Feb 16,2021
本文由AI翻譯,查看原文請點擊此處。
今天早些时候,Kraken Security Labs发布了一份安全报告,披露了他们对SafePal S1硬件钱包的发现。我们想借此机会回应这些发现,并澄清Kraken Security Labs的一些说法。
TL, DR:
1. 资金安全:经过多次尝试和攻击,Kraken Security Labs未能窃取种子。
2. 无效的篡改检测:无法利用,不影响钱包安全。
3. 降级攻击:无法利用,已修复。
现在让我们来看看Kraken Security Labs在报告中提出的问题。
1. 无效的篡改检测
在报告中,Kraken Security Labs声称绕过了自毁机制,通过移除RF屏蔽罩并重新连接单个引脚来实现。然而,这种设计与设备的核心安全逻辑无关。相反,RF屏蔽罩是符合EMC(电磁兼容性)标准的要求。绕过此设置不会对硬件钱包安全构成实际威胁。这也被Kraken Security Labs在此攻击场景中缺乏实质性进展所证明。自毁和数据擦除机制嵌入在SafePal S1的硬件级别和软件级别的许多细节中。仅仅因为没有触发其他陷阱,就断言该机制无效是不恰当的。
2. 开源许可违规
SafePal是一个去中心化的钱包,旨在为加密货币大众构建安全友好的资产管理解决方案。目前,它尚未开源。
未开源并不意味着SafePal产品不安全。正如泰戈尔在《飘泊的鸟》中写道:“最好的不会独自而来,它伴随着所有人的陪伴而来”,开源也有其优点和缺点。
一方面,开源产品允许每个人审查和验证产品中是否嵌入了恶意代码,有助于建立信任和透明度。它还有助于产品在开发者社区的支持下改进和发展。开发者可以审查代码并找出可能的漏洞,从而增强产品安全性。
另一方面,大多数没有技术背景的人可能无法真正审计开源代码并验证其安全性,而开源实际上使黑客更容易利用潜在漏洞给用户带来危害。因此,从用户的角度来看,很难判断开源是否带来更多好处还是风险。
此外,由于软件开发是一个复杂的过程,即使产品是开源的,用户很可能无法确定他们正在使用的当前产品的代码是否与开源代码一致并编译自开源代码。
总的来说,SafePal尚未开源。但开源一直在我们的考虑范围内。未来,我们可能也会根据实际情况选择部分开源代码,就像苹果和微软所做的那样。
3. 降级攻击
在报告中,Kraken Security Labs从主板上取下闪存,并使用特殊的闪存编程器将SafePal S1固件回滚到先前的官方版本。报告指出了这种现象可能导致的潜在风险,即有经验的攻击者使用早期存在漏洞的固件版本发起降级攻击。
SafePal S1采用了安全引导链技术(防止固件操作期间的任何恶意尝试)和椭圆曲线Diffie - Hellman密钥交换技术(确保应用处理器与安全元素之间的通信安全)。这种核心结构从一开始就已经实施。在报告中,Kraken Security Labs没有在渗透核心安全机制方面取得实质性进展,这从另一个角度证明了SafePal S1核心架构的安全水平。
SafePal已发布V1.0.24固件,以添加一些新功能并修补降级限制。升级指南可以在这里找到。
4. 应用处理器与安全元素之间的可能通信弱点
Kraken Security Labs在报告中提到,与安全元素通信的应用处理器一直是加密货币硬件钱包的弱点。这是我们对此项的进一步技术披露:
自SafePal S1固件发布以来,该设备采用了椭圆曲线Diffie - Hellman密钥交换技术。每次SafePal S1开机时,应用处理器将与安全元素协商一个新密钥来加密通信。即使攻击者物理获取设备,采取暴力手段并监视通信,也无法轻易提取和加密通信内容。即使攻击者伪造向安全元素发起交易,也会因来自设备PIN码和芯片的唯一ID生成的特殊密码的验证而失败。在5次尝试后,私钥将被擦除。这可以有效保护设备免受针对通信机制的恶意尝试。
5. 其他尝试和分析
1) 闪存修改尝试
Kraken Security Labs尝试了几次固件修改尝试,每次都导致设备故障。没有取得实质性进展。
这在我们的预期之内。SafePal S1采用了安全引导链技术,在引导过程中验证每一步向前和向后。一旦任何步骤未通过验证,系统将终止。
2) 固件升级尝试
Kraken Security Labs试图篡改upgrade.bin文件,导致升级失败。
这在我们的预期之内。自第一个固件发布以来,upgrade.bin文件已被加密。在固件升级之前,设备将验证upgrade.bin文件上的签名。一旦upgrade.bin被篡改,验证将失败,因此攻击者无法进入固件升级过程并写入非法内容。
3) 数据库篡改尝试
Kraken Security Labs试图更改S1数据库中的敏感钱包数据,如地址和交易。这样做后,发生了故障。
这在我们的预期之内。S1数据库中的所有敏感数据都通过AES完全加密。加密密钥是根据特殊算法从多个芯片的唯一ID生成的。任何更改或伪造数据和设备组件的尝试都将导致设备故障。
4) 配置和数据库分析
wallet.cfg包括诸如关机时间、默认语言、钱包名称等信息。这些都是非敏感数据,因为可以通过启动设备立即查看。即使攻击者采取类似Kraken Security Labs的尝试打开设备、取下闪存并通过闪存编程器的复杂过程更改钱包名称,用户也会在第一眼看到钱包名称的变化。更改wallet.cfg不会影响任何私钥安全。从V1.0.24固件开始,wallet.cfg文件已被废弃。
致谢
这份报告中分享的攻击和尝试是在未提前通知SafePal的情况下完成的。报告充分展示了Kraken Security Labs的专业精神和专业知识。我们要感谢Kraken Security Labs的研究人员详细报告发现,并怀着善意保护用户免受任何恶意攻击。
近期文章