ECDSA案例研究之索尼PS3被破解
索尼因为PlayStation-3糟糕的加密实现而受到了黑客的破解。
那么事情是怎么样的呢?设计了哪些密码学的算法呢?
背景介绍
在2010年,黑客组织fail0overflow证明他们可以破坏索尼PS3的安全措施。他们重新创建了索尼的私钥,然后销毁了hypervisor和可执行签名。
索尼PlayStation-3最初的安全目标是使用椭圆曲线数字签名算法(ECDSA)来保护系统的安全, 然而索尼在使用椭圆曲线数字签名算法(ECDSA)进行签名处理时,该算法在生成随机化因子时缺乏随机化,索尼没有实际随机化种子值来进行每个签名。
在fail0overflow大会上,他们展示了索尼ECDSA的部分代码,发现他们让种子的值保持4,实际上正确的做法是应该要有一套严密的伪随机数生成算法来使得每次生成的种子值接近真正的随机。
黑客团队利用这个漏洞来使用公钥进行反向签名获得了私钥从而实现了完全破解。
那么相对密码算法是什么呢?
ECDSA算法介绍
因为编辑器不方便写数学公式,那么我就放上我整理在word上的过程:
破解算法介绍
回到我们的例子,对于k的值,k必须随机地选择不同的签名。然而,索尼没有这样做,k的值是fixed 4,黑客团队就是使用这个fixed 4来获取私钥x。
方法如下:
至此,黑客团队得到了私钥,他们可以借助自己生成签名,从而导致整个算法系统被完全破解。
Reference
- https://www.youtube.com/watch?v=LP1t_pzxKyE
- https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm.