黑客技术隔空取物之侧信道攻击(2)

考虑普通显示设备色域、分辨率、亮度、校准准确度的问题,还有扫码设备摄像头像素的问题,选用常见的双色单层(黑白)二维码是最适合的,即便是低端的720p分辨率的显示器,500万像素主摄的智能手机可以轻松建立侧信道。

下面需要根据通信原理的知识设计稳定的通信信道,通信过程如下:

alt

信源:任意格式文件

信源编码器:7z压缩+base64编码

信道编码器:数据分组生成二维码

信道:动态二维码

干扰源:重复接收+信号不对齐

信道译码器:二维码解析成分组数据

信源译码器:base64解码+7z解压缩

信宿:sdcard

发送端通过将原文件进行编码分割转换成二维码图片集,二维码在固定时间间隔变换展示,接受端设置同样的采样时间间隔,最后把采样到的片段信息进行组合就可以解码得到原文件,这样就可以建立稳定的侧信道。

alt

编码实现

首先是实现信源编码器,通过将压缩文件的数据流转换为base64,然后再对base64消息进行分段,每段消息再经信道编码器,组成连续的动态二维码gif,完成信道编码过程。这里使用python语言实现,关键代码如下:

alt

接收器需要用到二维码识别设备,使用最常见的android手机即可,那么就需要开发一个apk,这里使用java语言实现。

首先动态二维码经过信道译码器转换成base64消息,完成信道译码过程。关键代码如下:

alt

然后base64消息经过信源译码器得到文件流,文件流再保存到SD卡,即可完成信源译码过程。关键代码如下:

alt

以下是编码完进行测试时发现的问题及对应解决办法:

1.消息包丢失:手抖导致相机对焦失败,可以通过降低采样频率,选用有防抖功能的相机来解决。

2.重复发包:多次重复扫码,可以通过对同一采样间隔的消息去重来解决

3.包顺序错乱:由于二维码无法标识消息序号,开始传输时无法准确同步。通过循环扫码,识别压缩包文件头信息,排列出正确的包顺序来解决包顺序错乱问题。

最终效果如下图所示,通过连续扫码实现“隔空取物”:

alt

总结

本文通过模拟特定场景下的侧信道攻击,可以实现非网络传输,非硬件破解的“隔空取物”。侧信道信息泄漏非常隐蔽,现有的防信息泄漏的安全工具DLP难以防御侧信道的攻击。因此建议对一些敏感岗位人员禁止携带智能设备,同时在终端监控工具上进行调整,实时检测设备音频、图像等潜在的侧信道传输载体,保护关键机密信息。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdpgx.html