首页 > 范文大全 > 正文

基于AT91SO100的密码键盘安全解决方案

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于AT91SO100的密码键盘安全解决方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】随着银行卡保有量的增多和刷卡消费的日益盛行,密码键盘作为个人密码的输入终端,其安全性备受关注。本文基于ATMEL的AS91SO100芯片,提出一种符合PCI PED认证安要求的密码键盘安全解决方案,从根本上避免了用户程序非法访问敏感数据的问题,提升了终端设备的安全性。

【关键词】密码键盘:PIC PED;支付安全

随着银行卡的普及应用和支付环境的改善,刷卡消费在我国经济和人民生活中正发挥着越来越重要的作用,2013年我国银行卡跨行交易金额达32.3万亿元,同比增长48%。在耀眼的数字背后,个人密码的安全越发不容忽视,而密码键盘(PED)作为个人密码的输入终端也备受关注。VISA和MASTERCARD两大国际信用卡商联合推出PCI(Payment Card Industry)PED认证,以确保用户在线上和离线交易时密码输入的安全,国内银行业也把符合PCI认证作为新采购密码键盘的必须要求。本文基于at91so100安全芯片,针对PCI PED认证,就密码键盘的软件设计如何保护数据安全提出应对之道。

1.存储结构

ATMEL的AT91SO100芯片基于ARM?32-bit SecureCore?SC100 CPU内核,适用于卡付款终端等高安全性系统。AT91SO系列具有MPU单元,可以在CPU的特权模式(Privileded modes)以及用户模式(User mode)下分别对存储单元的读写访问权限进行设置。如果用户程序访问未授权的空间,将产生异常中断。为更符合PCI PED的数据安全标准,密码键盘的存储单元访问权限做如下划分:

(1)ROM区包含ATMEL提供的算法库和驱动库,只允许特权模式读访问,用户模式没有任何访问权限,这样可以避免用户程序通过直接地址跳转,运行ROM区的库函数。

(2)EEPROM区作为程序代码空间以及静态数据存储空间,分为系统级(OS Code)和用户级(User Code)两部分。特权模式对两部分都有读写权限,而用户模式仅对用户级空间有读权限。密码键盘可将敏感数据存储在系统级空间,保证用户模式下敏感数据的安全。

(3)Peripherals(寄存器)空间仅特权模式具有读写访问权限,用户模式无法访问,这就限制了用户模式对系统进行任何硬件级别的操作,自行编写硬件驱动也是无法运行的。

(4)RAM空间同样分为系统级(OS RAM)和用户级(User RAM)空间,特权模式拥有读写访问权限,用户模式只拥有对用户级空间的读写权限。密码键盘同样可以把临时敏感数据存储在系统级空间。

(5)RAM AdvX空间是CPU内部硬件算法器所需的专用内存空间,同样只允许特权模式下对其进行读写访问。

表1 密码键盘存储空间权限划分

存储区 特权模式 用户模式

读 写 读 写

ROM √ × × ×

EEPROM-OS Code √ √ × ×

EEPROM-User Code √ √ √ ×

Peripherals(寄存器) √ √ × ×

RAM-OS RAM √ √ × ×

RAM-User RAM √ √ √ √

RAM AdvX √ √ × ×

2.软件架构

密码键盘的系统软件架构分为三层:ISP层,BIOS层,用户层。如图1所示,其中ISP层和BIOS层是系统级代码,存放在系统级代码空间;用户层是用户级代码,存放在用户级代码空间。各层代码提供功能描述如下:

(1)ISP层代码提供系统在线(串口)下载功能,包括ISP自我更新、BIOS更新、用户程序更新以及相应的密钥管理等功能。作为最小运行系统,只包含串口和EEPROM烧写驱动,另外还包括系统启动boot代码、MPU存储单元访问控制设置、初始化BIOS中断向量表等内容。ISP工作在特权模式的系统态下,ISP启动结束后将跳转到用户程序入口地址,并且会在跳转前将运行态切换到用户态。

(2)BIOS层代码实际上是一个函数库,包含各中断处理函数、硬件设备驱动以及提供给用户程序调用的API函数。其中提供给应用程序调用的API函数需要基于安全方面的考虑,不能将敏感信息通过API函数接口泄漏给应用层。

(3)用户层代码是用户编写的应用程序,可以调用BIOS层的API函数。主要包括密码键盘命令接口的解析等。

BIOS层本身不能独立运行,通过BIOS中断向量表将中断处理函数挂载到ISP最小系统。API函数包含所有涉及到系统信息安全的操作,用户程序调用API的方式是通过软中断触发进入监控态,由软中断处理程序分解应用层入口API的ID号调用不同的API函数。

图1 软件层次结构划分

3.ISP下载

依据上述的存储分配和架构设计,无论用户程序代码如何编写,均无法对敏感信息进行访问。但入侵者仍可能通过下载非法的BIOS或者ISP程序,对系统敏感信息进行窃取和破坏,因此在ISP下载流程上需要特别的安全防护。

ISP下载可分为两类:一类是下载系统级代码,如更新ISP或BIOS;一类是下载用户级代码,如更新用户应用程序,PED需分别存储认证密钥SYSKEY和USRKEY。认证过程是由P密码键盘先上送随机数,下载服务器加密后回送,此时PED将密文和自身用密钥加密后的结果比较,匹配一致后方可下载。每次下载成功都必须更新密钥,以保证一次一密。另外根据安全级别的不同,还需要清除相应的敏感信息。

为实现SYSKEY和USRKEY的初始化和出厂设置管理,硬件上需提供一个拨码开关给ISP程序判断。如果配置为出厂下载,那么ISP将用默认的原始密钥进行认证,同时会清除ISP代码外的所有数据区,并更新SYSKEY和USRKEY,将密码键盘恢复到出厂状态。该功能可在遭遇攻击瘫痪或者管理者丢失下载密钥后做为系统恢复使用,也便于日后的维护。表2所示为ISP不同下载方式的安全功能。

4.敏感信息

密码键盘的敏感信息管理主要体现在对密钥的维护上。根据PCI PED的要求应当尽可能采取一次一密的方式以及两层密钥的管理体制。AT91SO100提供了一个16×16字节长度的寄存器区域用于存储密钥明文,该区域由电池供电保护,受到攻击后会自动清除,可存放银行主密钥以及系统内部加密密钥。

银行主密钥是用于解密银行工作密钥的,可以将银行工作密钥的密文存储在受系统安全访问保护的系统RAM区或者系统EEPROM区(在一次一密的情况下放在RAM区能延长EEPROM的使用寿命),在需要使用工作密钥进行加解密运算的时候再通过银行主密钥解密。系统内部加密密钥用于加密ISP下载的SYSKEY和USRKEY,密文存储在系统EEPROM区。系统内部加密密钥每次下载结束后都需要更新,由CPU的随机数生成,同时如果有需更新的USRKEY则需要用原密钥解密得到明文后再用新的加密密钥加密。

5.结论

在基于AT91SO100的密码键盘的设计中,充分利用ARM芯片状态分级的特点,针对PCI PED的认证需求,通过多层次的安全防护,解决了传统密码键盘容易通过用户态破解的隐患,提高了密钥保护的安全级别,增强数据的安全性,并在后期顺利通过了PCI PED2.X认证。

参考文献

[1]VISA.Payment Card Industry(PCI):PIN Security Requirements[S].2011.

[2]VISA.Payment Card Industry(PCI):PIN Entry Device Testing and Approval Program Guide.2008.

[3]VISA.Payment Card Industry(PCI):PCI POS PED Evalutaion FAQ (Technical)[S].2007.