1. 什么是边信道攻击?
边信道攻击:side channel attack,简称SCA,也称为侧信道攻击。不同于一般的攻击形式,这是一种对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息进行利用,从而获取密码信息的方法。这类攻击的有效性远高于传统针对密码算法进行数学分析或暴力破解的方法,给加密设备带来了严重的威胁。
1.1 一般分类
-
缓存攻击,通过获取对缓存的访问权而获取缓存内的一些敏感信息,例如攻击者获取云端主机物理主机的访问权而获取存储器的访问权;
-
计时攻击,通过设备运算的用时来推断出所使用的运算操作,或者通过对比运算的时间推定数据位于哪个存储设备,或者利用通信的时间差进行数据窃取;
-
基于功耗监控的旁路攻击,同一设备不同的硬件电路单元的运作功耗也是不一样的,因此一个程序运行时的功耗会随着程序使用哪一种硬件电路单元而变动,据此推断出数据输出位于哪一个硬件单元,进而窃取数据;
-
电磁攻击,设备运算时会泄漏电磁辐射,经过得当分析的话可解析出这些泄漏的电磁辐射中包含的信息(比如文本、声音、图像等),这种攻击方式除了用于密码学攻击以外也被用于非密码学攻击等窃听行为,如TEMPEST攻击(例如范·埃克窃听、辐射监测);
-
声学密码分析,通过捕捉设备在运算时泄漏的声学信号捉取信息(与功率分析类似);
-
差别错误分析,隐密数据在程序运行发生错误并输出错误信息时被发现;
-
数据残留,可使理应被删除的敏感数据被读取出来(例如冷启动攻击);
-
软件初始化错误攻击,现时较为少见,Row hammer是该类攻击方式的一个实例,在这种攻击实现中,被禁止访问的存储器位置旁边的存储器空间如果被频繁访问将会有状态保留丢失的风险;
-
光学方式,即隐密数据被一些视觉光学仪器(如高清晰度相机、高清晰度摄影机等设备)捕捉。
1.2 已实现的边信道攻击
-
通过CPU缓存来监视用户在浏览器中的快捷键及鼠标操作
这种攻击对最新型号的英特尔CPU有效,如Core i7,需运行在支持HTML5的浏览器上。带有恶意JS的网页在受害者电脑上执行后,会收集与之并行的其它进程的信息,有了这个信息,攻击者可以绘制内存对按下按键和鼠标移动的反应情况,进而重塑用户使用情景。(哥伦比亚大学)
-
“听译”电子邮件密钥
通过智能手机从运行PGP程序的计算机中“听译”密钥。这项最新的密钥提取攻击技术,能够准确地捕捉计算机CPU解码加密信息时的高频声音,并提取密钥。(同时提出GnuPG来应对这种攻击)
-
非智能手机+恶意软件+目标PC
从采购供应链下手,将特制难以检测的恶意软件植入电脑,该软件会强制计算机的内存总线成为天线,通过蜂窝频率将数据无线传输到手机上。攻击者将接受和处理信号的软件嵌入在手机的固件基带中,这种软件可以通过社会工程攻击、恶意App或者直接物理接触目标电话来安装。
-
用手触碰电脑即可破解密码
电脑CPU运算时造成“地”电势的波动,用手触碰笔记本电脑的外壳,接着再测量释放到皮肤上的电势,然后用复杂的软件进行分析,最终得到计算机正在处理的数据。例如:当加密软件使用密钥解密时,监测这种波动就可得到密钥。(GnuPG可以应对这种攻击)
1.3 针对CPU缓存的几种边信道攻击
-
Prime+Probe
步骤1. Prime: 攻击者用预先准备的数据填充特定多个cache 组;
步骤2. Trigger: 等待目标虚拟