|无需漏洞也能攻破:云计算FPGA的重大安全隐患( 二 )
在今年的 FCCM 大会上 , 来自马萨诸塞大学的 Russell Tessier 教授做了名为“Security and Privacy Concerns for the FPGA-Accelerated Cloud and Datacenters”的报告 , 并介绍了一种针对 FPGA 的电压攻击方法 。
这篇论文的全文和大会报告 , 已上传至知识星球“老石谈芯 - 进阶版” , 请于文末扫码进入星球查看 。
简单来说 , 攻击者可以在 FPGA 上实现一些消耗大量功耗的电路 , 由此会引发芯片上电压的下降 。由于使用同一个 FPGA 的用户共享芯片上的供电网络 , 这种电压下降会波及到 FPGA 上其他用户的设计区域 。值得注意的是 , 这种利用电压进行攻击的方式会无视多租户之间相互独立的逻辑区域 。
一旦电压下降过大 , 就会带来很多问题 。其中最主要的问题 , 就是会造成电路延时的增加 。这样一来 , 原本时序收敛的设计就不能满足时序 , 从而造成各种错误的功能和计算结果 。
例如 , 对于常见的加法运算来说 , 它的关键路径取决于最长进位传播(carry propagation)的时间 。正因此 , FPGA 中内置了固化的进位链结构 , 以提高进位传播的速度 。然而 , 一旦电路延时增加 , 可能会导致时钟沿到来时 , 加法的进位尚未完成传播 , 由此导致计算结果出现重大误差 。
下图就是一个行波进位加法器(Ripple Carry Adder)的例子 , 它计算四位二进制加法 1111 + 0001 时 , 应该得到二进制数 10000(十进制 16) , 但由于电压降低导致延时增加 , 使得进位未能传播到最高位 , 最终得到的结果是 00000 。
文章图片
文章图片
耗电单元(Power Waster)
可以看到 , 这种电压攻击的关键 , 就是在 FPGA 上实现某种可以消耗大量功耗的电路 。数字电路的一个重要知识点是 , 动态功耗和所谓的开关速率(switch activity)呈线性相关 , 也就是下面这个公式中的 f 。因此只要实现一个能高速进行状态切换的电路 , 就能消耗大量功耗 。
基于此 , 这种耗电模块事实上非常简单 , 可以直接用一阶环形振荡器实现 , 见下图 。
文章图片
文章图片
实验表明 , 当例化 28000 个这样的环形振荡器时 , 每个振荡器可以消耗 2.2mW 的功耗 , 并由此带来芯片上电压的迅速下降 。在下图中可以看到 , 50 微秒之内 , 离这些耗电单元最近区域的电压(黑线)就由 1.1V 下降到 0.85V 左右 。如果离耗电单元稍远 , 也会出现不同程度的电压下降 , 甚至在芯片的边缘部分也会受到波及 。
文章图片
文章图片
使用这种电压攻击的方法 , 除了可以对其他用户的电路功能造成破坏之外 , 还可以用来窃取其他用户的加密信息 。例如 , Tessier 教授就展示了如何破解并获取 RSA 算法的私钥 。简单来说 , 有一种名为中国剩余定理(CRT , 也称为孙子定理)的算法 , 在实现 RSA 计算时可以得到 4 倍的性能提升 。然而 , 如果在这个过程中通过电压攻击的方法引入错误的计算结果 , 就会简单的反推出 RSA 的私钥 , 并且这个过程与 RSA 密钥长度无关 , 且只需要一次迭代就可以完成 。这个过程的具体细节在本文不再赘述 , 有兴趣的读者可以在知识星球“老石谈芯进阶版”或微博与我互动讨论 。
推荐阅读
- 推特|推特回应“史诗级漏洞”:黑客锁定130个账号,控制45个发文
- 目标检测|数据民工也能移动办公了:目标检测标注App上线,分分钟创建私人数据集
- 行业互联网|“云端”也能种蘑菇?——首都民间友好交流云对话线上举行
- 拍照摄影|暑期出游无需单反,荣耀30青春版随手就是大片感
- 平板|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- 网上飘数码旗舰店|颜值与实力并行,网上飘数码配件这款平板支架也能玩出高逼格!
- 中年|多吃鹅肉有什么好处呢,大厨教你一招,在家也能做,不腥也不柴
- 自动驾驶|AutoX获加州全无人驾驶载人牌照,无需安全员
- DIGITIMES|【IoT早报】美对华为员工实施签证限制;腾讯公布快充安全漏洞等
- 漏洞|Oracle发布7月份安全公告,360安全大脑测绘云再获Oracle官方致谢
