一种防泄漏键盘设计方案
1 键盘工作原理概述
键盘是计算机中最通用的设备,也是除显示器外信息最容易被截获并被复现的设备。简要介绍键盘的工作原理,分析键盘的信息泄漏问题;提出预防信息泄漏键盘的设计;按照红黑分离式防信息泄漏原理,成功地开发了红黑分离式防信息泄漏键盘。
首先分析一下键盘的工作原理。现在的键盘主芯片只有1个。1个键盘由专用芯片、按键和接口3部分组成。其中专用芯片提供主机接口、行线、列线及键盘分系统控制微程序;按键被安排在行列线的交叉点上;主机接口共4根线:电源、地、时钟、数据。工作原理如下。
① 时钟和数据线在主机方和键盘方的引脚都是OC门,正常时电平为高。主机和键盘任何一方都可以把这两根线上的电平拉低。当两根线都为高时,键盘可以发数据;当时钟为低时,禁止键盘发送数据;当时钟为高、数据为低时,表示主机要发送命令,键盘要准备接收。
② 加电后键盘开始自检,如自检正常,则向主机发出AAH,并开始扫描按键。
③ 判断出有键按下后向主机发这一键的扫描码并开始计时,然后继续扫描。若0.5 s后,这个键仍未抬起,且没有新键按下的话,就要连续发这一键的扫描码:每秒30个。最多支持3个键同时按下。在0.5 s内若有新键按下的话,就为新键计时。
④ 待有键抬起时发这一键的结束码。
⑤ 收到主机发来的命令码后,键盘发FAH以应答,并开始执行这一命令。
键盘与主机通信的数据规则是:每组数据由11位组成:1位启始位(逻辑0)、8位数据位(低位在前)、1位校验位(奇校验)、1位停止位(逻辑1)。 其数据位的数据格式为:
时钟是键盘分系统发出的方波,周期约为80μs下降沿有效,只在发码的时候才有时钟。每个键有1个扫描码。主机还会发一些命令。表1给出了每个键的扫描码。
表1 键盘扫描
这是一个开放式的工业标准,PC机的键盘都是这样的。其与主机的通信必须按上述标准执行。这为零配件的生产、维修、使用提供了极大的方便,但同时也使键盘按键造成信息泄漏成为了可能。
2 键盘信息泄漏的分析
为了验证键盘信息泄漏的电磁场的特性,进行如下试验:当键盘连续保持按下“H”键时,用频谱仪测量键盘与主机连接的信号线的传导发射特性,结果如图1所示。
图1 键盘的传导发射特性
当按不同的键时,频谱仪接收到的谱线发生频移。按信息的相关原理证明,所得的谱线与按键信息相关,说明其中含有键盘的扫描码信息。该信息为键盘编码,并将其定义为红信号。
下面具体分析一下键盘产生的红信号走过的路径。图2是普通键盘的电路图,是用8051单片机实现的。
图2 普通键盘电路
图2中键阵列部分的引脚(P0、P2和P1的一部分)流过的是高低变换的电平,用以判断哪个键按下了,哪个键抬起了。这些信号即使被截获也是没有意义的,因此,将它们定义为黑信号。此外复位电平、晶振等也为黑信号。
键盘有2根信号线与主机相连,即时钟线(KBDCLK)和数据线(KBCDATA)。时钟线提供键盘与主机通信时的时钟信号,由键盘发出,下降沿有效。也就是说在每个时钟的下降沿,主机将键盘准备好的数据读入累加器“ACC”中,读到有效的“停止位”后送CPU处理。但对于同一种键盘来说,时钟的周期、频率、电平高低都是一样的;对于不同键盘会略有不同。在同一个键盘中,发出的所有数据的时钟都是相同的。所以这一信号与按键信息无关,也是黑信号。键盘有不同的键,它们被依此选通后,将通过数据线发出相应的键码数据传送给主机,所以,图2中只有数据线上走的是红信号。
推荐阅读