引言
現代社會中,人們的日常工作和生活愈發依賴于計算機。在處理一些機密事務時,信息安全不可謂不重要。在一些單位會采取斷網或禁止插入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文章
6278瀏覽量
185585 -
RGB
+關注
關注
4文章
801瀏覽量
58618 -
HDMI信號
+關注
關注
0文章
10瀏覽量
7738 -
無線電接收機
+關注
關注
0文章
6瀏覽量
1790 -
時域波形
+關注
關注
0文章
10瀏覽量
1929
原文標題:【實踐分享】| 被夸爆的HDMI信號泄露檢測技巧,一臺示波器就能實現
文章出處:【微信號:羅德與施瓦茨中國,微信公眾號:羅德與施瓦茨中國】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論