Intel开源了Software Guard Extensions的Linux源码
https://01.org/intel-softwareguard-eXtensions主要功能是利用CPU做数据加密等功能,由于密钥保留在CPU内部,无人能够访问,另外内存数据也是加密的,从而比传统加密算法更加安全。
代码里面还有不少加密方面的算法。 类似“沙盒",但是是否可以通过监听cpu运行“声音”来破解数据。使用低通和高通滤波器来截获电脑中 CPU正在解密数据时所发出的声音(实际上,声信号由CPU电压调节器产生,它需要在多样和丛发性负载中保持恒定电压)。一旦收到信号后,剩下的时间就是要读懂它。
完全可以从电气学角度去破解密码,因为条条大路通罗马。CPU在加密过程中,会释放出很多物理的、化学的、热力学的信号。RSA的发明者也是用监听cpu把RSA破解了的。各种电阻电容在工作是的温度、电压、电流很多参数的变化都可以留下密码的蛛丝马迹。在纯数学角度、纯软件角度无能为力时,通过旁敲侧击,转换思考角度亦能击破。 听声识密码难道大了些,这可没有闻香识美人那么容易。
侧信道(side channel)分析通常是通过测量功率时间信息来分析保密信息。
比如对于RSA,其中关键部分计算时模幂运算,$m=c^d(mod n)$,其中通常按$d$的二进制位进行运算,如果对应二进制位为0,那么只要进行一次平方运算,如果对应二进制位为1,那么就需要一次平方运算加一次乘法运算。由于大数运算消耗时间还是相当可观的,如果这时对整个过程的CPU功率消耗变换情况进行监测,那么很可能就可以看出两种不同的功率时间变换图,由此可以猜测出密钥$d$的各个二进制位。但是这个前提条件是模幂运算过程没有考虑过侧信道分析(最常见的代码实现都是如此)。
对于Intel SGX来说,侧信道攻击可以分两部分,一是对系统本身的攻击,主要就是对内存数据加密过程的攻击。这个部分主要是用对称加密算法(应该是AES算法并使用随机密钥)进行攻击来获取密钥。这个攻击的难度要远远大于RSA。当然也不是不可能,前段时间就报道过交大教授对一个SIM卡中AES算法侧信道分析攻击的成功的例子(当然我相信那个SIM卡中算法本身的实现应该是有些问题的)。另外一种攻击时对用户代码的攻击,用户代码必然会有一些对关键保密数据的处理,如果代码实现不合理,必然存在遗留给别人侧信道攻击的可能。
另外需要说明的是侧信道攻击通常需要物理上可以对设备进行访问,这是一个很大的限制。 本帖最后由 happysxyf 于 2016-6-29 11:54 编辑
mathe 发表于 2016-6-29 06:25
听声识密码难道大了些,这可没有闻香识美人那么容易。
侧信道(side channel)分析通常是通过测量功率时间信 ...
这个RSA不好破,目前除了物理方法破解外,纯数学的方法就是大整数的分解有赖于素数理论的支持。而素数连个小小的“1+1”都不好破,RSA加密速度最慢,破解最难,随着密钥位数的增大,将来也不见得有什么好方法。md5倒是可以碰撞。
不过借助超级计算机的千万亿次运算能力,加上巧妙的程序设计,应该可以在几个月内破解一个RSA密钥。
还可以用RSA模数攻击策略。
页:
[1]