引言
现代社会中,人们的日常工作和生活愈发依赖于计算机。在处理一些机密事务时,信息安全不可谓不重要。在一些单位会采取断网或禁止插入U盘的方式来防止泄密。然而,计算机的EMI问题还可能导致信息从其它途径泄露。本文介绍了一种使用RTH示波器探测并解码HDMI的方法,并解释了其实现原理。
RTH示波器相比市面上常见的软件无线电接收机采样率高了很多倍,因此解析出的画面会更清晰,有利于看清小字体。另外,RTH示波器是手持仪表,携带非常方便,还能通过WiFi方式实现信号回传,简化了示波器与上位机之间的连接,降低了整套探测系统的复杂度。
既然是EMI问题导致的信息泄露,我们可以先尝试用示波器的近场探头配合示波器FFT功能在被攻击电脑附近进行探测。当我们移动近场探头到达被攻击电脑的HDMI接口附近,示波器频谱上会出现好多信号。
▲从上图可知,HDMI显示信号已经泄露到了空气中,如果我们能够找出信号规律,即可逆向得到原始画面内容。
我们可以先在被攻击电脑上使用比较简单的图形,并观察示波器的时域波形,来尝试找出电脑画面与泄露信号之间的规律。
比如我们可以在被攻击电脑上开启画图程序,并填充黑色背景。然后中间开启一个白色长条形的记事本窗口,并尝试更改这个窗口的宽度,或左右拖动这个窗口。
调整示波器的水平/垂直刻度和触发方式,你会得到这样有规律的时域波形。并且你会发现,在示波器屏幕中间的触发位置处有一个窄矩形,同时它的左数3格位置也有类似的窄矩形。说明这种矩形的重复周期大概是30us。当我们在被攻击电脑上左右拖动记事本窗口的边沿,则两个窄矩形之间的较宽矩形就会对应运动,并且当电脑屏幕上的记事本运动到屏幕边界处时,示波器显示的宽矩形也会靠近窄矩形的位置。
根据上述规律,我们可以大胆猜测在窄矩形之间的波形,对应的是电脑屏幕上的一行,示波器从左往右的波形对应于电脑屏幕的一行中从左往右的像素点。由于目前被攻击电脑的屏幕内容比较简单,因此可以认为它的每一行数据基本是相同的。这也就是为什么时域波形看上去是周期性的,重复周期是30us。如果对模拟视频制式比较熟悉,你会发现这一点与PAL或NTSC制式非常相似。
因此,我们可以尝试用时域波形的幅度对应于像素点的亮度,把每一行的波形都用绘图软件库中的函数绘制出来,行之间的顺序也参考模拟视频,把左侧出现的行放在上方,右侧出现的行放在下方。
大致猜出信号规律后,我们就可以开始着手写程序了。
我们需要先配置示波器程控开发环境(以Ubuntu系统为例):
1.安装python3.8
2.在罗德与施瓦茨官网搜索并下载,RSVisa(对于Ubuntu系统,可下载deb包,并双击安装)
3.使用pip3 install命令安装pyvisa, rsinstrument, opencv-python等软件库 这样就配置完成了示波器程控开发环境。
然后我们找到罗德与施瓦茨在github上的账号中的RTH示波器范例,并逐步修改,实现自己的程序。
在上方代码中,我修改了RTH的设备地址、时基设置、通道刻度、触发方式(可用代码设置或保持示波器原先的设置)。
在上方代码中,设置了数据类型,并请求数据。然后获取通道的刻度和偏置,实现数据归一化。最终,用matplotlib绘制时域波形。
运行上述代码,你就能在程控电脑的屏幕上得到上图结果。你会观察到,现在程控电脑上得到的波形与示波器探测的波形完全一致,比较宽的矩形对应的就是被攻击电脑上的记事本窗口,而比较窄的矩形对应的就是被攻击电脑的屏幕边界。下一步,我们只要把波形幅度转为像素点亮度即可。
成功运行了RTH程控范例后,我们即可对此范例程序进一步修改,以验证我们之前猜测的想法。
上图是我修改后的代码,我做的主要修改是先对整个解码程序加了一个循环,这样解码的画面才可以不停刷新,而不是只显示一副画面。我用abs来对波形数据取模,相当于实现了AM解调,并把解调结果依次绘制在OpenCV的画布上。绘制顺序是从左往右绘制,到达行尾后换行,到达列尾后重新回到画布左上角。绘制完一副画面后,用imshow函数把画面显示出来。
成功实现HDMI解码后,我们还可以查询HDMI规范,了解为什么这种高清数字信号能用模拟视频解调的方式解出来。
从上图可知HDMI在TMDS模式时,3个通道独立发送数据。它们对应于HDMI线缆中的3对差分线。更具体来说,这3对差分线中分别传输的数据就是R、G、B数据。
不仅如此,从上图可知这三路R、G、B数据是按像素点依次传输的。当某一行的像素点从左往右传输完成后,就会换行,传输下一行的RGB数据,这一点与模拟视频几乎一样,这就解释了为何我们可以用类似模拟视频解调的方式,实现HDMI信号的解码。不仅HDMI信号以此方式传输,早期的DVI信号也是这种方式。因此,也能用类似的方式解码。
除了这些视频接口外,显示屏内部的专用信号也存在信息泄露问题,这些问题可能由于显示屏在生产过程中内部电路板的差分走线的不对称而引入。
结语
通过本文,相信你已经学会如何自己写程序控制示波器,并实现对HDMI泄露信号的探测和解码。在日常工作中,罗德与施瓦茨的示波器和近场探头也是调试EMI问题的好帮手。除此之外,罗德与施瓦茨还提供了全套专业的EMC测试方案,帮助你整改目标设备的EMC问题。
审核编辑:刘清
-
示波器
+关注
关注
113文章
6240浏览量
184795 -
RGB
+关注
关注
4文章
798浏览量
58461 -
HDMI信号
+关注
关注
0文章
10浏览量
7721 -
无线电接收机
+关注
关注
0文章
6浏览量
1769 -
时域波形
+关注
关注
0文章
10浏览量
1900
原文标题:【实践分享】| 被夸爆的HDMI信号泄露检测技巧,一台示波器就能实现
文章出处:【微信号:罗德与施瓦茨中国,微信公众号:罗德与施瓦茨中国】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论