防信息泄漏鍵盤的設計與實現
當按不同的鍵時,頻譜儀接收到的譜線發生頻移。按信息的相關原理證明,所得的譜線與按鍵信息相關,說明其中含有鍵盤的掃描碼信息。該信息為鍵盤編碼,并將其定義為紅信號。
下面具體分析一下鍵盤產生的紅信號走過的路徑。圖2是普通鍵盤的電路圖,是用8051單片機實現的。

圖2 普通鍵盤電路
圖2中鍵陣列部分的引腳(P0、P2和P1的一部分)流過的是高低變換的電平,用以判斷哪個鍵按下了,哪個鍵抬起了。這些信號即使被截獲也是沒有意義的,因此,將它們定義為黑信號。此外復位電平、晶振等也為黑信號。
鍵盤有2根信號線與主機相連,即時鐘線(KBDCLK)和數據線(KBCDATA)。時鐘線提供鍵盤與主機通信時的時鐘信號,由鍵盤發出,下降沿有效。也就是說在每個時鐘的下降沿,主機將鍵盤準備好的數據讀入累加器“ACC”中,讀到有效的“停止位”后送CPU處理。但對于同一種鍵盤來說,時鐘的周期、頻率、電平高低都是一樣的;對于不同鍵盤會略有不同。在同一個鍵盤中,發出的所有數據的時鐘都是相同的。所以這一信號與按鍵信息無關,也是黑信號。鍵盤有不同的鍵,它們被依此選通后,將通過數據線發出相應的鍵碼數據傳送給主機,所以,圖2中只有數據線上走的是紅信號。
下面再分析一下在芯片內部的紅信號的通路情況。圖3為8051的內部框圖。

圖3 8051框圖
圖3中以空心箭頭表示紅信號的路徑。在8051內部,這一部分發出列掃描電平,讀入行掃描電平,鍵按下后ALU通過計算將放在累加器ACC中。ACC再一位一位地送到P3的某個引腳上。在芯片內部,這一紅信號是串行二進制碼數據,其波特率為12.5 Kbps,脈沖寬度為80μs,轉換時間為 1.4μs,奇校驗。具體波形如圖4所示。

圖4 鍵盤發“H”的掃描碼波形
通過上述試驗可知,鍵盤中紅信號的路徑是從微處理器中的累加器開始,經一個數據引腳至主機數據口止的一段電路上。
鍵盤掃描周期諧波的RF輻射有兩種主要的威脅:其一為攻擊鍵盤電纜在其響應頻率諧波的輻射;其次是攻擊被非線性交叉效應調制的返回信號中被檢波的掃描碼。
3 紅黑分離式防信息泄漏鍵盤
3.1 設計
為了預防鍵盤泄密,我們研制了紅黑分離式防信息泄漏鍵盤。這種鍵盤使用光信號傳輸數據,鍵盤與主機間用塑料光纜連接,鍵盤以電池供電,使其最大限度地減小電磁輻射。
所設計的低電壓電路,用2節5號電池供電。使用低電壓的8051單片機作主芯片,實現鍵選掃并發送數據。為了省電,設計中采用一種技術,即在沒有鍵按下時單片機處于休眠狀態。
普通鍵盤的編碼是固定的標準值,如表1所列。這種明碼如果防御不當,一旦被截獲將可被復現,造成嚴重后果。
這里的防御技術包括可編程的鍵盤微控制器。由于掃描周期是隨機的,在它們傳送給PC機前加密掃描碼。當按鍵時,在周期內鍵掃描次數將是隨機的,并且改變了值,而不是原來的常數。這樣,當用戶打印圖案或所有情況下使用時,即使由攻擊者截獲到該值,但給他們的不是該按鍵值的信息。
評論