带自毁功能的密码键盘设计

2011-06-22 08:19陈彦陈浩源韩挺挺姚盛伟
单片机与嵌入式系统应用 2011年11期
关键词:明文密文中断

陈彦,陈浩源,韩挺挺,姚盛伟

(1.北京航空航天大学物理科学与核能工程学院,北京100191;2.山东省交通技术学院)

陈彦(实验师),主要研究方向为测试计量技术与嵌入式系统开发。

1 概 述

银行存储系统中储户取款已广泛使用密码支付,储户个人密码安全成为保护储户资金的一个重要问题。随着银行系统对安全性要求的提高,原先使用的明文密码小键盘存在安全隐患,客户个人密码如果以明文形式从终端传送到前台主机,在通信过程中容易被监听而泄露。为防止储户密码在通信过程中被窃听,最简单的方法是采用DES(Data Encryption Standard)加密键盘将明文变为密文传输。

用DES加密技术保护密码的安全主要取决于对密钥的保护,而不是对算法本身的保护,即密码算法的安全性完全取决于密钥。通常工作密钥是事先下载到密码键盘中作为加密运算的密钥,因其在DES加密运算中作用关键,必须保证密钥在键盘中不能被外部读取,下载密钥过程必须是密文传输。

为确保工作密钥安全,一般键盘均设置三级密钥管理体系,分为原始密钥、管理密钥及工作密钥。加密键盘出厂时预先写入原始密钥,运输到银行后,银行根据原始密钥下载自己的管理密钥,替换原始密钥;最后,根据业务需要下载各组工作密钥。

由上述描述可见,采用DES或 3DES加密算法的键盘在密钥的管理和通信过程中都是比较安全的;但是由于原始密钥、管理密钥及工作密钥在下载到密码键盘后,通常经过DES解密后以明文形式存储在密钥区,别有用心的人可以通过专业破解方式读取CPU信息,从而达到获取密钥的目的,因此仍存在极大的隐患。

针对上述恶意破解问题,本文介绍了一种具有拆机自毁密钥功能的密码键盘设计方法。

2 MPC82G516简介

MPC82G516[1]是笙泉科技有限公司生产的一款基于80C51核的高效1T结构的单芯片微处理器,与传统8051指令兼容,具有速度快、功耗低的特点;芯片内部集成了64 KB Flash用于保存程序和数据。Flash存储器可以通过并行模式编程,也可采用在系统编程(ISP)、在电路编程(ICP)和在应用编程(IAP)。ISP和ICP使用户无需从产品中取下CPU就可以下载代码;IAP意味着应用程序在运行时,CPU自身就可以在Flash中写入非易失数据。

另外,MPC82G516集成了在线仿真(ICE)功能,在芯片上集成了在片上调试(OCD)接口。通过OCD_SDA与OCD_SCL引脚可以实现片上仿真调试,解决了传统8051单片机必须通过仿真机调试的问题。

MPC82G516有两种节能模式和8位的系统时钟分频器,以减少耗电量。在空闲模式下,CPU被冻结而外围模块和终端功能依然活动。在掉电模式下,随机存储器RAM和特殊功能寄存器SFR的状态被保存,而其他所有功能被终止。更重要的是,在掉电模式下,CPU可以被外部中断唤醒。

此外,MPC82G516还具有掉电监测功能,如果电源电压跌落到正常工作电压阈值以下,就会触发中断。

3 恶意破解的手段分析

在通信链路中,由于全部采用DES或3DES加密,通信链路中的数据均以加密后的密文形式传输,因此通过窃听通信链路获取密码基本没有可能。

通常情况下,通过技术手段恶意破解CPU的方式主要有以下两种:

①使密码键盘在断电状态下,打开外壳,拆下 CPU并放置到专业的编程器中读取Flash中的数据,进而获取密钥;

②一旦在断电状态下不能获取密钥,有些人可能会考虑到保持键盘通电状态,然后拆机,通过专业工具试图读取CPU中的数据。

分析上述破解方式可知,任何破解均需要通过拆开键盘外壳,才能够进行后续的操作。因为在有外壳保护的情况下,外部只有电源和通信电缆,通过电源线和通信线已无破解可能。

针对此类犯罪的特点,如果在密码键盘中设置监听电路,一旦发现密码键盘被拆机,则自动销毁密钥,就可以彻底避免上述隐患。

利用MPC82G516具有的掉电监测、休眠模式以及中断可唤醒、在应用可编程(IAP)等功能,可以实现密钥的拆机自毁功能。

4 硬件电路设计

掉电检测与拆机自毁电路如图1所示。电路中通过3.6 V后备电池给CPU供电,使其在断电状态下维持休眠所需要的电能。INT0引脚外接一个按键,当按键处于闭合状态时,INT0引脚状态为高;一旦按键松开,INT0引脚就会检测到一个负脉冲,触发CPU进入中断状态。VCC电源通过电阻分压网络接到INT1脚,一旦外部电源开始供电,就会触发INT1中断,同样会使CPU从休眠状态下被唤醒,进入正常工作状态。

密码键盘可分为正常状态(外壳封装完好状态)和拆机状态。

在正常工作状态下,如果外部电源给键盘供电,则INT1会唤醒CPU,使密码键盘可以正常使用;一旦停止外部供电,则MPC82G516就会监测到电压异常,迅速进入休眠模式,以降低设备功耗。

在正常状态下,INT0脚连接的按键始终被键盘外壳压住,处于闭合状态,不会影响密码键盘的正常使用。如果密码键盘被拆开,则该按键松开,就会进入INT0中断。CPU据此可以判断密码键盘是否被拆机,以决定是否需要销毁密码。通过后备电池的保护,不仅可以使密码在正常使用中不会丢失,而且也可以使其在拆机后具有销毁密码的能量。

图1 掉电检测与拆机自毁电路

5 拆机自毁程序设计

5.1 DES/3DES算法实现

密码键盘采用了通用的DES/3DES加密/解密技术,DES的加密过程可分为3个阶段:首先,64位的明文先通过初始IP置换,将明文按照一定的规则重排并分组为L0和R0;然后对同一个函数进行16次迭代,DES轮密钥产生如图2所示;最后将两个部分经过交换后得到预输出,预输出通过一个逆初始置换可得到64位的密文[2]。

DES的解密过程与加密过程类似,只是对于16次迭代密钥的使用顺序相反。

在密码键盘设计中,为了进一步提高加密效果和产品的通用性,在 DES算法的基础上,又实现了 3DES算法,其实质就是对明文或密文连续调用3次DES(依次为DES加密-DES解密-DES加密),并且3次的密钥允许不同。

5.2 密钥的存储

图2 DE S轮密钥产生示意图

在本方案中充分利用MPC82G516具有片内Flash的特点,将原始密钥、管理密钥、工作密钥,以及其他一些配置信息等均存储到片内的EEPROM中。

(1)将需要保存的数据写入Flash

5.3 中断程序

(1)低压检测中断处理

(2)拆机自毁按键中断处理

(3)从休眠状态唤醒

6 结 论

在基于MPC82G516的密码键盘的设计中,充分利用了MPC82G516的掉电检测、中断唤醒等功能,解决了传统密码键盘容易通过破解方法读取密码的隐患,提高了密钥保护的安全级别,增强了密钥的安全性。

[1]笙泉科技有限公司.MPC82G516 Data Sheet,2008-06.

[2]胡振宇,蒋建春.密码学基础与安全应用[M].北京邮电大学出版社,2008.

猜你喜欢
明文密文中断
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
基于FPGA的中断控制器设计*
奇怪的处罚
跟踪导练(二)(5)
千里移防,卫勤保障不中断
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争