随着智能手机和物联网的爆炸式增长,越来越多的安全芯片在众多领域的终端设备上被广泛应用,如移动支付领域、智能交通系统、公务政务领域、安全计算机领域、安全通信领域、物联网领域等。安全芯片在保障信息安全方面有着无可比拟的优点和不可替代的作用。正因为安全芯片如此重要,针对安全芯片的攻击技术也层出不穷;安全芯片本身的安全性设计也日益重要,对这一块的研究和应用具有重要的现实意义。
在目前的信息安全应用中,带有安全协处理器方案的芯片被广泛采纳。然而安全协处理器基本都是针对某种具体应用来设计的一个实现特定功能的硬件模块,功能简单、没有灵活性。且特定功能的硬件模块的设计全由硬件实现,要求较高,本身设计起来较复杂、设计周期较长、面积也较大[1]。
在比较复杂的金融场合,比如POS机支付领域,要实现的不单单是数据的加解密。从刷卡一开始的卡数据保护,到密码键盘的保护,再到液晶接口的显示,每个环节都要考虑到数据的防护。而且芯片自身也需要防攻击模块和机密数据防护模块(遇到攻击要清除机密数据)。所有以上的安全功能要通过协处理器的方法全由硬件来完全实现是不现实的。目前市面上的POS机芯片都是单核实现的,主要是通过监测是否遇到攻击来清除机密数据。本文在此基础上,通过特殊的双核设计,使得机密数据运行在与实际应用完全隔离的环境当中。
本文提供的双核安全设计方法,是一个软硬件的综合体;在几乎没有增加芯片面积的前提下,缩短了研发周期,成本低且灵活多变;在没有安全应用操作时,可以当成普通的双核芯片;在安全应用操作时,能在一个独立封闭的物理环境实现对机密数据的完全隔离;在很大程度上提升了芯片处理能力和安全防护,可以适用于各种不同的安全方面的应用场景。
如图1所示,本文主要讲述一种双核POS机安全芯片的设计,主要包含安全系统(SP系统)、应用系统(AP系统)、总线矩阵和双核通信4大部分。
AP系统主要包括应用处理器(AP)、应用静态随机存储器(SRAM-AP)、应用存储器、应用直接内存存取控制器(DMA-AP)、USB接口、嵌入式多媒体卡接口(eMMC接口)、通用通信接口、外部存储器控制器接口(EMI)、四线外设串行接口(QSPI)等模块。SP系统主要包括安全处理器(SP)、安全静态随机存储器(SRAM-SP)、安全直接内存存取控制器(DMA-SP)、安全存储器和安全保护模块等模块。双核通信模块包括双核通信协议模块和双核通信缓存模块。
安全存储器和应用存储器可以是ROM、OTP、Flash或EEPROM,也可以是上述4种的随意混合。
AP系统和SP系统遵循双核通信协议,通过对双核通信缓存模块的分时读写实现双核之间数据的高效传输。
源于总线矩阵的特殊设计,SP可以根据实际需求拥有访问AP系统任何模块的权限,而AP却无法访问SP系统的任何模块。如此,实现了与AP系统完全隔离的密闭的SP系统。由SP系统完成所有的安全操作,AP系统仅需要通过双核通信协议,发送相应的数据和操作指令,SP系统接收该数据和操作指令,执行之后把结果通过双核通信协议返还给AP系统。
图2是总线矩阵设计的一个简单示意图,芯片内的每个单元可以称之为设备(IP),设备可以分为主设备或从设备。主设备通过片上总线跟总线矩阵相连接,总线矩阵也是通过片上总线跟从设备相连接。片上总线协议可以是ARM公司的AMBA协议,或opencores的wishbone总线协议,也可以是altera的avalon协议,也可以是其他类似的总线协议。
总线矩阵上的主设备可以是SP、AP、全局DMA,也可以是含内置DMA功能的接口模块(如USB、EMMC、WiFi、蓝牙等);从设备可以是存储器、SRAM、外部存储接口、安全保护模块、共同访问模块等,从设备可以根据应用需求拆分得更精细化。主设备和从设备的个数可以根据实际应用场景增加或减少,对应的总线矩阵也要跟着变化。每个主设备接口和每个从设备接口之间都有通路,可以设计成桥接(连通)或断开。桥接代表桥接两头的主设备和从设备通路是连通的,主设备可以访问从设备;断开则代表主设备无法访问从设备。
如图2所示,SP作为主设备通过总线矩阵与SRAM-SP、安全存储器、SRAM-AP、应用存储器、安全防护模块等从设备连接;AP也作为主设备通过总线矩阵与SRAM-AP、应用存储器等从设备连接。这样,SP能够访问应用系统模块,而AP无法访问安全系统模块。如此,断开AP与安全存储器、SRAM-SP、安全防护模块的连接关系,中止AP对安全系统的访问,形成一个完全封闭的安全系统,即应用开发人员完全无法访问到安全保护模块及其内部的机密数据。
其余内置DMA功能的接口模块可以根据应用需求进行差异化配置(图2中全部留空),在此不具体展开。
SP系统和AP系统通过双核通信协议模块来实现对双核通信缓存模块的分时控制,保障双核之间数据的安全交互。
双核通信协议模块里有一组SP中断寄存器,包括中断标志位寄存器,中断置1寄存器和中断清0寄存器。跟中断系统类似,SP中断标志位寄存器中只要有一位置1,则会产生中断请求,SP通过识别中断标志位来完成该中断请求;因此,AP只要往SP中断标志位寄存器写入相应的值(这个值代表着AP和SP已经约定好的某项具体任务),SP就能完成该值所指的具体任务。反之,也同样存在一组AP中断寄存器,SP只要往AP中断标志位寄存器写入相应的值(这个值代表着AP和SP已经约定好的某项具体任务),AP就能完成该值所指的具体任务。
双核通信协议模块包含一个互斥寄存器。如AP要操作双核通信缓存之前,应先读取互斥寄存器位,如读取到1,则表示有权限对双核通信缓存进行读写;如读取到0,表示SP正在操作双核通信缓存(SP在操作双核通信缓存完后,会对互斥寄存器位进行写操作,互斥寄存器位的值为1),AP则应该等待并查询,直到读取到1方可对双核通信缓存进行操作。反之,亦然。如SP要操作双核通信缓存之前,应先读取互斥寄存器位,如读取到1,则表示有权限对双核通信缓存进行读写;如读取到0,表示AP正在操作双核通信缓存(AP在操作双核通信缓存完后,会对互斥寄存器位进行写操作,互斥寄存器位的值为1),SP则应该等待并查询,直到读取到1方可对双核通信缓存进行操作。
SP系统和AP系统共同遵循以上双核通信协议的约定,实现对双核通信缓存的分时读写;SP和AP都可以访问SRAM-AP,因此,可以由SP在SRAM-AP中直接指定某段区间为双核通信缓存[3],软件人员需要对这段区间做额外的定义和约束,避免发生误操作。双核通信缓存也可以是用硬件功能单独实现的一块SRAM,这块SRAM只供双核通信用,可以完全避免误操作[2]。
SP系统提供所有的功能函数以便和AP系统通信。AP开发人员通过双核通信功能,将需要输入的数据写入双核通信缓存,再往SP中断标志位寄存器写入相应的值(代表相应的任务函数),这样SP即接收到相应的中断,就执行该任务并最终把数据结果写回到双核通信缓存,然后SP往AP中断标志位寄存器写入相应值(代表任务执行完毕),告知AP系统。同样的,SP也可以主动发起双核通信,如SP系统检测到安全防护模块有数据输入,则可以将相应的需求数据写入双核通信缓存,再往AP中断标志位寄存器写入相应的值(代表相应的任务函数);这样AP就接收到相应的中断,取到SP系统传输过来的数据。所有双核之间的通信都必须符合SP系统所提供的功能函数集合,超出该集合,SP系统不会做出任何应答。
由SP定义并提供函数调用接口,这样做可以用ROM来完成很多程序代码,节省FLASH成本,最终节省芯片成本。
安全防护模块包括如下模块:加解密模块、数据保护模块、物理安全模块、密码键盘模块、银行卡模块、液晶显示模块。这些模块可以根据实际安全应用需求来添加或减少。安全模块可以如图2所示通过总线挂在总线矩阵上,也可以通过总线直接挂在安全CPU上;所有有关信息安全或金融支付的模块都可融合于安全防护模块。
加解密模块,包括但不限于DES/3DES、AES、HASH、ECC、RSA、国密等算法,用于完成机密信息的加解密处理。数据保护单元由非易失性存储器构成,支持快速清除功能,用于保存重要安全数据,并在数据受到攻击时快速清除敏感数据。物理安全单元由各种物理量探测单元组成,用于防御各种电压、电流、电容、温度、频率类型的物理攻击,银行卡接口用于支持银行卡的数据读取,密码键盘模块用于对密码输入数据的保护。
AP可以选择市场上常见的ARM或MIPS的低功耗系列RISC CPU,以便于客户开发和市场推广。SP完全由公司自主研发,人为形成一个更加密闭的开发环境。如此,机密数据在产品出厂时,通过一个自主设计的硬件通道和烧录协议进行烧录,并读取确认烧录成功后,该烧录通道通过熔丝烧断封闭掉,杜绝了烧录通道泄露机密数据的可能。AP系统与SP系统的数据交互只有双核通信缓存,SP系统提供用机密数据进行相应操作并输出结果的函数,不提供对机密数据进行直接读取的函数。这样,AP开发人员没有任何的物理通道读取到机密数据,外界攻击人员再怎么通过AP系统的漏洞或软件bug,也是无法取得机密数据的,从而实现了真正的物理隔离。
本发明所述的双核安全POS机芯片,其安全支付流程如下:
(1)用户通过POS设备进行刷卡动作,设备通过双核芯片中安全系统的银行卡接口模块读取用户的银行卡信息。
(2)用户通过POS机上的按键输入密码等信息,按键直接连接到安全系统的密码键盘模块。相关信息通过安全系统内的液晶控制接口在液晶上显示,与用户进行一定的信息交互,如删除、退格、确认等。
(3)安全系统通过加解密模块对上述信息进行加密,然后将加密好的数据通过双核通信功能传输给应用系统,应用系统再将加密好的信息通过通信接口(如串口、USB等)发送给支付后台。
(4)支付后台处理完后,再将加密信息的校验结果通过通信接口传输回POS设备,应用系统将校验结果通过双核通信功能送到安全系统,并通过约定好的双核通信协议的函数,将最终交易结果通过安全系统内的液晶接口显示出来。
应用系统通过通信接口与银行对接,只对已经加密好的信息进行搬运工作,安全方面的所有工作全由安全核完成,应用人员无法形成攻击且无法获得机密数据。
使用安全系统中物理安全单元的相关功能进行各种抗攻击设计。物理安全单元适时探测环境变化,可以保证在机器受到攻击后清除数据保护单元中的重要敏感信息,以免被攻击者盗取。数据防护的工作依旧是安全系统完成,应用人员无触碰。
联合应用开发人员,上述设计已在FPGA平台上完成了高覆盖率的功能测试和双核安全测试,也在服务器上完成了芯片级别的高覆盖率仿真测试,目前已MPW。
全部0条评论
快来发表一下你的评论吧 !