一种控制多个安全应用软件的运行的装置和方法
【专利摘要】一种控制多个安全应用软件的运行的装置,包括:安全元件和耦合于所述安全元件的至少一个中央处理单元;其中,所述安全元件包括:处理器和第一随机存储器;所述处理器,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;所述处理器还用于当需要运行第二安全应用软件时,暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迁移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件。
【专利说明】
一种控制多个安全应用软件的运行的装置和方法
技术领域
[0001]本发明涉及系统安全技术领域,尤其涉及一种控制多个安全应用软件的运行的装置和方法。
【背景技术】
[0002]移动支付(MobilePayment)是指允许用户使用移动终端,例如手机、平板电脑、或可穿戴装置等,对所消费的商品或服务进行账务支付的一种服务方式。通过移动终端实现移动支付目前有三种方式,分别是安全数据(Secure Digital,SD)卡方案、用户识别模块(Subscriber Identity Module,SIM)方案、或近场通信(Near Field Communicat1n,NFC)结合安全元件(Secure Element,SE)的全终端解决方案。目前近场通信结合安全元件的全终端解决方案越来越成为实现移动支付方案的主流。
[0003]—种现有的全终端解决方案如图1所示,移动终端10通过其内部的近场通信单元101与销售点(Point of sales,P0S)机11通信,近场通信单元101和POS机11间的近距离无线通信连路12为双向通路,可采用各类合适的短距离无线通信协议实现,以实现移动支付中的基本无线通信功能。例如,通信连路12可用于从POS机11向移动终端10内部的近场通信单元101传输POS指令数据等。安全元件102则可以是与一个独立的中央处理单元(CentralProcessing Unit,CPU) 103相親合的部件,用于对运行金融支付业务相关的各类功能,并存储与银行业务相关的密钥、证书等数据。在交易时,安全元件102从近场通信单元101收到POS指令数据,解析指令数据并根据金融交易协议进行相应回应。所述回应被近场通信单元1I反馈给POS机11以完成移动支付中的数据传输,以实现移动终端10作为交易验证卡的功能。中央处理单元103则运行有通用操作系统软件1031,例如安卓(Android)系统软件,其用于对近场通信单元101和安全元件102进行控制,例如控制打开或关闭近场通信单元101和安全元件102。此外,移动终端10可包括输入单元104,输入单元104可以是触摸屏,用于通过一个用户界面(User Interface,UI)来与用户交互消息,使得用户可以通过UI在输入单元104上输入操作指令,以便指示操作系统软件1031和相关应用软件执行相关操作,也可包括交易的确认、或个人交易密码的输入等。POS机11作为一个交易的终端设备通过互联网接入网络侧的云服务器14,以实现通过服务器14计算并完成支付业务。位于网络侧的服务器14通常由银行运营。
[0004]全终端的解决方案可包括线上支付和线下支付。在线下支付时,如图1所示,移动终端10与POS机11进行非接触式刷卡,即刷手机,近场通信单元101和安全元件102共同作用完成支付交易。在采用线上支付时,则可以不通过近场通信单元101实现,中央处理单元103和安全元件102此时可通过移动通信网络接入互联网实现线上支付,此时安全元件102相当于银行U盾的作用,用于存储并验证银行的证书,因此上述图1中近场通信单元101是可选的。具体地,请参见图1,在线上支付时,移动终端10可进一步包括一个移动通信单元105,用于代替线下支付时近场通信单元101的作用,其接入无线接入网(Rad1 Access Network,RAN)15,具体可以是无线接入网15中的基站,并通过该无线接入网15接入互联网,所述互联网与位于互联网中的服务器14连接,以实现服务器14接收指令数据或传输信息给安全元件102。安全元件102解析指令数据并根据金融交易协议进行相应回应,以便通过移动通信单元105将数据通过移动互联网传输给网络侧服务器14。此时移动通信单元105可以是一个运行无线蜂窝通信协议的单元,用于将移动终端10通过蜂窝无线通信链路13接入互联网。移动通信单元105具体可运行全球移动通信(Global System for Mobile,GSM)、通用移动通信系统(Universal Mobile Telecommunicat1ns System,UMTS)、全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX)或长期演进(Long TermEVolUt1n,LTE)等蜂窝无线通信协议以实现移动终端10的移动互联网功能。
[0005]中国专利申请201510201343.9提供了一种将安全元件102与中央处理单元103(或者可选地包括也移动通信单元105)集成在同一个电路衬底上,即集成为一块主芯片106上的方案,并且安全元件102可以从主芯片106外部的存储单元中加载中央处理单元103需要的通用操作系统软件,如安卓或Windows。
[0006]随着移动应用场景的发展,安全元件102运行的应用软件种类越来越多,安全元件102的应用场景已经不限于移动支付,还可能包括一些S頂(用户识别模块)卡相关的软件,如通信运营商定制的应用软件。随着安全元件102运行的应用软件数量的增多,对安全元件102中用于运行相应应用软件的内存空间的需求也在变大。然而,扩展安全元件102的内存空间会增加安全元件102的面积和成本。
【发明内容】
[0007]本发明实施例提供了一种控制多个安全应用软件运行的装置和方法,以节省运行至少一个安全应用软件所需的所述装置中安全元件的内存空间。
[0008]第一方面,本发明实施例提供了一种控制多个安全应用软件的运行的装置,包括:安全元件和耦合于所述安全元件的至少一个中央处理单元;安全元件包括:处理器和第一随机存储器;所述至少一个中央处理单元,用于运行通用操作系统软件,并在通用操作系统软件的作用下与所述安全元件通信;所述处理器,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;所述处理器还用于当需要运行第二安全应用软件时,暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件,其中运行所述第二安全应用软件所产生的第二临时数据被临时存储于所述第一随机存储器。
[0009]通过第一方面提供的技术方案,所述处理器能够暂停至少一部分正在运行中的安全应用软件,使得所述第一随机存储器的至少部分内存空间被节省出来并被用于运行第二安全应用软件,实现安全应用软件的动态暂停或加载。即本技术方案实现了利用需要运行的安全应用软件替换部分正在运行的安全应用软件,并将被替换的安全应用软件所运行产生的临时数据迀移至外部存储设备,从而避免消耗更多的所述第一随机存储器的内存空间,使得所述第一随机存储器的内存空间无需被设计的很大,从而降低安全元件的面积和成本。
[0010]可选地,所述处理器可以被设计为在同一时刻仅能够运行一个安全应用软件,通过动态暂停正在运行的该安全应用软件并加载其他需要运行的安全应用软件,实现对正在运行的安全应用软件的替换,使得对所述第一随机存储器的内存空间的需求达最低。
[0011]可选地,所述第一随机存储器可以是SRAM(静态随机存储器)、DRAM(动态随机存储器)或SDRAM(同步动态随机存储器)。
[0012]可选地,所述至少一个中央处理单元可以是进阶精简指令集机器(Advanced RISCMachine,ARM)处理器。
[0013]可选地,所述至少一个中央处理单元在通用操作系统软件的作用下与所述安全元件通信可包括:所述至少一个中央处理单元可控制所述安全元件的运行。例如,所述控制所述安全元件的运行可包括开启所述安全元件、关闭所述安全元件、控制所述安全元件进入低功耗状态、和调整所述安全元件的工作电压、工作电流或时钟频率中的至少一项。例如,所述通信可遵循IPC(进程间通信,Inter-Process Communicat1n)规则或协议。
[0014]可选地,所述至少一个安全应用软件或第二安全应用软件中的每个软件占用所述存储设备中预设的空间资源(或叫通道)。
[0015]根据第一方面,在第一方面的第一种可能的实现方式中,所述处理器包括第一处理单元,用于运行所述安全操作系统软件和基于所述安全操作系统软件的第一安全应用软件,并且还用于暂停运行所述第一安全应用软件,控制将所述第一临时数据迀移至所述存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件。可选地,该第一处理单元可以是一个中央处理单元。在本实现方式中,由于所述安全应用软件运行和临时数据迀移都由同一个处理单元实现,可降低处理器的复杂度。
[0016]根据第一方面,在第一方面的第二种可能的实现方式中,所述处理器包括第一处理单元和第二处理单元;所述第一处理单元用于运行所述安全操作系统软件和基于所述安全操作系统软件的第一安全应用软件,以及当需要运行所述第二安全应用软件时,暂停运行所述第一安全应用软件并触发所述第一临时数据的迀移;所述第二处理单元用于基于所述第一处理单元的触发,控制将所述第一临时数据迀移至所述存储设备;所述第一处理单元还用于在所述第一临时数据迀移完成后基于安全操作系统软件运行所述第二安全应用软件。在本实现方式中,由于所述安全应用软件运行和临时数据迀移都由不同处理单元实现,可提高处理效率。可选择地,所述第一处理单元是一个中央处理单元,所述第二处理单元是一个DMA(直接内存访问)控制器。
[0017]根据第一方面或以上任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述安全元件与所述至少一个中央处理单元位于所述装置中的第一半导体芯片内。可选地,该装置可以是一个便携式电子设备,例如手机、平板电脑、或可穿戴装置。由于所述安全元件与所述至少一个中央处理单元被集成于该装置中的第一半导体芯片,提高了集成度,降低成本。可选地,该装置内的所述第一半导体芯片中还可包括蜂窝基带通信处理器或图像处理单元等。
[0018]根据第一方面或以上任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述存储设备位于所述装置中的第二半导体芯片内。可选地,所述存储设备是第二随机存储器。由于所述存储设备是外置于所述安全元件的独立芯片,其内存空间较大,可以被充分利用来执行本实施例的技术方案。
[0019]可选地,所述第二随机存储器可以是SRAM(静态随机存储器)、DRAM(动态随机存储器)或SDRAM(同步动态随机存储器)。优选地,该第二随机存储器是一个DDR SDRAM(双倍速率同步动态随机存储器)。
[0020]根据第一方面或以上任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述存储设备包括一个安全存储区域,该安全存储区域被专用于临时存储被所述处理器暂停运行的一个或多个安全应用软件的第三临时数据。可选地,该存储设备可以被所述安全元件和所述至少一个中央处理单元所共享。所述存储设备可以在存储所述至少一个中央处理单元产生的临时数据或中间数据的同时存储所述安全元件所产生的第三临时数据。通过在所述存储设备中划分出一个专用于临时存储关于安全应用软件的第三临时数据的空间或区域,可以实现所述至少一个中央处理单元产生的临时数据与所述第三临时数据的隔离,提高安全性。该安全存储区域由于是仅用于存储所述第三临时数据,不能被所述至少一个中央处理单元所访问,安全隔离性好。可选地,所述第三临时数据可包括被暂停的所述一个或多个安全应用软件中的每一个安全应用软件的临时数据。
[0021]根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述处理器还用于当需要关闭所述被所述处理器暂停运行的一个或多个安全应用软件中的第三安全应用软件时,控制所述存储设备从所述第三临时数据中删除运行所述第三安全应用软件所产生的第四临时数据。如果任何安全应用软件被完全关闭,则其运行所产生的临时数据将被从所述存储设备中删除。
[0022]根据第一方面或以上任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述装置还包括第三随机存储器,耦合于所述安全元件;所述第一临时数据被所述处理器从所述第一随机存储器迀移至所述第三随机存储器并被进一步迀移至所述存储设备。可选地,该安全元件将需要迀移的所述第一临时数据迀移至所述第三随机存储器,所述至少一个中央处理单元或该至少一个中央处理单元对应的控制器用来将所述第一临时数据从所述第三随机存储器迀移至所述存储设备。可选地,该第三随机存储器是所述至少一个中央处理单元和所述安全元件进行数据交互所需的存储器。所述数据交互可以遵循进程间通信协议。可选地,所述至少一个中央处理单元和所述安全元件的处理器通过进程间通信协议或中断指令来交互控制信息以实现利用该第三随机存储器作为中继来迀移所述第一临时数据。
[0023]根据第一方面或以上任一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第二安全应用软件为新启动的安全应用软件。可选地,所述至少一个中央处理单元可发送启动指令给所述安全元件,使得所述安全元件中的所述处理器启动第二安全应用软件。
[0024]根据第一方面或以上任一种可能的实现方式,在第一方面的第九种可能的实现方式中,所述第二安全应用软件为曾经被所述处理器暂停并被继续运行的安全应用软件;所述处理器用于当暂停所述第二安全应用软件时,将所述第二临时数据从所述第一随机存储器迀移至所述存储设备,以及当需要继续运行第二安全应用软件时,将所述第二临时数据从所述存储设备迀移回所述第一随机存储器。可选地,所述第二安全应用软件可以被多次暂停并在每次暂停时被所述处理器从所述第一随机存储器迀移至所述存储设备,每当需要重新运行所述第二安全应用软件时,所述处理器将第二临时数据迀移回所述第一随机存储器,实现对安全应用软件的灵活动态暂停和加载。
[0025]根据第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,所述处理器从所述第一随机存储器获取所述第二临时数据,并在将所述第二临时数据迀移至所述存储设备前,对所述第二临时数据做加密或消息认证码MAC(MeSSageAuthenticat1n Code,消息认证码)运算中的至少一项,以及从所述存储设备获取所述第二临时数据,并在将所述第二临时数据迀移回所述第一随机存储器前,对第二临时数据做解密或解MAC运算中的至少一项。由于在迀移所述第二临时数据前,所述处理器可以对该第二临时数据做加密或MAC运算,提高了安全性。当再次运行第二安全应用软件前,所述处理器对第二临时数据做解密或解MAC运算,只有通过解密或解MAC运算的第二临时数据会被继续使用。
[0026]根据第一方面的第九种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述装置还包括:加解密单元;所述处理器还用于从所述第一随机存储器获取所述第二临时数据,并在将所述第二临时数据迀移至所述存储设备前,将所述第二临时数据提供给所述加解密单元并从所述加解密单元接收安全处理后的所述第二临时数据,所述加解密单元用于对所述第二临时数据做加密或MAC运算中的至少一项安全处理以得到安全处理后的所述第二临时数据,以及所述处理器还用于从所述存储设备获取所述第二临时数据,并在将所述第二临时数据迀移回所述第一随机存储器前,将所述第二临时数据提供给所述加解密单元并从所述加解密单元接收解安全处理后的所述第二临时数据,所述加解密单元还用于对第二临时数据做解密或解MAC运算中的至少一项解安全处理以得到解安全处理后的所述第二临时数据。与之前提到的第十种实现方式不同,本实现方式中的加解密单元是一个独立于所述处理器的单元,专用于加解密或MAC、解MAC运算,性能更加优化。
[0027]根据第一方面的第十种或第^^一种可能的实现方式中的任一方式,在第一方面的第十二种可能的实现方式中,所述第二安全应用软件能够被所述处理器多次暂停并在每次暂停时被所述处理器从所述第一随机存储器迀移至所述存储设备,在每次暂停所述第二安全应用软件时对所述第二安全应用软件进行加密或解密使用不同密钥。即便是对于同一个安全应用软件,其每次被暂停运行时相关的临时数据做加密或解密所需要的密钥都是不同的,保证安全性。
[0028]根据第一方面或以上任一种可能的实现方式,在第一方面的第十三种可能的实现方式中,所述处理器还用于还用于当需要运行所述第二安全应用软件时接收所述至少一个中央处理单元发送的用户指令以激活所述第二安全应用软件的运行,所述用户指令被通过所述通用操作系统软件的用户界面(UI)下发的操作命令所触发的。
[0029]根据第一方面或以上任一种可能的实现方式,在第一方面的第十四种可能的实现方式中,至少一个安全应用软件包括:移动支付软件或用户识别模块S頂卡应用软件中的至少一个。可选地,所述装置内还可包括SM卡或近场通信(NFC)单元。所述NFC单元用于与外界设备交互移动支付相关的数据。可选地,所述S頂卡应用软件包括但不限于虚拟SM软件或通信运营商定制的S頂特性应用软件。
[0030]根据第一方面或以上任一种可能的实现方式,在第一方面的第十五种可能的实现方式中,所述至少一个中央处理单元所运行的通用操作系统软件与所述安全元件间存在安全隔离。可选地,所述安全隔离用于限制所述至少一个中央处理单元所运行的所述通用操作系统软件或基于所述通用操作系统软件的普通应用软件对所述安全元件或所述第一随机存储器的访问。所述限制包括禁止数据写入、数据读取或数据更改中的至少一项。
[0031 ] 可选地,所述装置还可进一步包括一个非掉电易失性存储器,例如只读存储器,用于存储所述至少一个中央处理单元或所述安全元件生成的数据结果。
[0032]可选地,所述安全元件还包括一个非掉电易失性存储器,例如只读存储器,用来存储安全操作系统软件,使得所述处理器能够从所述只读存储器读取安全操作系统软件并运行该安全操作系统软件。
[0033]可选地,所述装置中的各个部件是硬件,且每个部件包括多个晶体管或逻辑门电路。
[0034]第二方面,本发明实施例提供了一种控制多个安全应用软件的运行的方法,包括:由至少一个中央处理单元运行通用操作系统软件;由安全元件中的处理器运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;由安全元件中的第一随机存储器临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;当需要运行第二安全应用软件时,由所述处理器暂停运行所述至少一个安全应用软件中的第一安全应用软件,将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件;由所述第一随机存储器临时存储运行所述第二安全应用软件所产生的第二临时数据。
[0035]可选地,所述第二安全应用软件为曾经被所述处理器暂停并被继续运行的安全应用软件;所述方法还包括:当暂停所述第二安全应用软件时,由所述处理器从所述第一随机存储器迀移所述第二临时数据至所述存储设备;当需要继续运行第二安全应用软件时,由所述处理器将所述第二临时数据从所述存储设备迀移回所述第一随机存储器。
[0036]可选地,所述至少一个安全应用软件或第二安全应用软件中的每个软件占用所述存储设备中预设的空间资源(或叫通道)。
[0037]第三方面,本发明实施例提供了一种用于控制多个安全应用软件的运行的半导体芯片,所述半导体芯片包括安全元件和耦合于所述安全元件的至少一个中央处理单元;其中安全元件包括:处理器和第一随机存储器;所述至少一个中央处理单元,用于运行通用操作系统软件,并在通用操作系统软件的作用下与所述安全元件通信;所述处理器,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;所述处理器还用于暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述半导体芯片的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件,其中运行所述第二安全应用软件所产生的第二临时数据被临时存储于所述第一随机存储器。
[0038]可选地,所述至少一个安全应用软件或第二安全应用软件中的每个软件占用所述存储设备中预设的空间资源(或叫通道)。
[0039]第四方面,本发明实施例提供了一种计算机程序,所述计算机程序用于驱动处理器执行以下过程:运行计算机程序中包括的安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;当需要运行计算机程序中包括的第二安全应用软件时,暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述处理器对应的第一随机存储器迀移至外置于所述处理器所在的安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件,其中运行所述第二安全应用软件所产生的第二临时数据被临时存储于所述第一随机存储器。其中,所述安全元件包括:所述处理器和所述第一随机存储器。可选地,所述安全元件与运行通用操作系统软件的至少一个中央处理单元之间存在安全隔离。所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据。
[0040]可选地,所述计算机程序中还可包括所述通用操作系统软件,并用于驱动所述至少一个中央处理单元运行。
[0041]可选地,所述安全隔离用于限制所述至少一个中央处理单元所运行的所述通用操作系统软件或基于所述通用操作系统软件的普通应用软件对所述安全元件或所述第一随机存储器的访问。所述限制包括禁止数据写入、数据读取或数据更改中的至少一项。
[0042]第五方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有如第四方面所述的计算机程序。
[0043]第六方面,本发明实施例提供了一种安全元件,所述安全元件包括处理器和第一随机存储器。所述处理器,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件;所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;所述处理器还用于暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件,其中运行所述第二安全应用软件所产生的第二临时数据被临时存储于所述第一随机存储器。
[0044]本发明实施例提供的技术方案可在确保安全应用程序运行安全性的情况下降低安全元件的硬件实现成本和面积,更好地适应便携式电子设备小型化的需求。
【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例或现有技术的简化示意图,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0046]图1为现有技术提供的一种简化的用于移动支付场景下的能够运行安全移动支付应用软件的移动终端结构的简化示意图;
[0047]图2为本发明实施例提供的一种移动支付装置的结构的简化示意图;
[0048]图3为本发明实施例提供的一种控制多个安全应用软件的运行的移动支付装置的结构的简化示意图;
[0049]图4为本发明实施例提供的一种控制多个安全应用软件的具有安全隔离的装置的简化不意图;
[0050]图5是本发明实施例提供的一种控制多个安全应用软件的运行的方法的简要流程示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]图2为本发明实施例提供的一种移动支付装置20的简化的结构示意图。该移动支付装置20可以位于一个移动终端21内。该移动终端21可以是一个用户设备(UserEqUipment,UE),如手机、平板电脑或可穿戴设备等各种类型的便携式终端设备。该移动支付装置20具体可以是芯片或芯片组或搭载有芯片或芯片组的电路板。该芯片或芯片组或搭载有芯片或芯片组的电路板可在必要的软件驱动下工作。移动支付装置20可包括:近场通信单元201,通过运行短距离无线通信协议与位于移动终端21外的用于接入互联网以实现移动支付功能的支付终端,例如POS机,交互支付信息,以实现线下支付。移动通信单元202,通过运行蜂窝无线通信协议与无线接入网,具体如无线接入网中的基站交互支付信息,以便通过包括该基站的无线接入网接入互联网,以最终实现移动通信单元202与互联网中具有支付功能的服务器交互支付信息,从而实现线上支付。可以理解,该移动支付装置20可以包括近场通信单元201或移动通信单元202之一,即可实现线下支付或线上支付的任一种。其中,近场通信单元201运行的短距离无线通信协议可以采用射频识别(Rad1 FrequencyIdentificat 1n,RFID)技术,具体可支持各种类型的RFID协议,例如欧洲计算机制造联合会(European Computer Manufactures Associat1n,ECMA)标准协议,此外也不排除蓝牙通信、红外通信、无线保真(WiFi)协议等其他类型的短距离通信协议。移动通信单元202运行的蜂窝无线通信协议可以是GSM、UMTS、WiMAX或LTE等任一种或多种蜂窝无线通信协议,以实现通过该移动通信单元202与蜂窝移动通信网络中无线接入网的通信。移动通信单元202可通过读取该移动终端21或移动支付装置20内包括的S頂卡(图中未示出)的信息来实现对蜂窝移动通信网络的注册和认证。可以理解,无线接入网中的基站是一种实现上述通信功能的无线接入网中的网元,基站的形态可以有多种,如NodeB、eNodeB等。包括所述基站的无线接入网最终将连接到网络中的服务器,即云侧服务器,实现服务器与移动支付装置20的支付信息交互。近场通信单元201或移动通信单元202可以包括运行通信协议的基带单元。可选地,近场通信单元201或移动通信单元202可以进一步包括射频单元。射频单元可用于进行射频信号接收并将射频信号转化为基带信号以供上述基带单元处理。支付信息可以被包括在射频信号内,从而被近场通信单元201或移动通信单元202获取。
[0053]图2中的移动支付装置20中还包括存储设备203、安全元件204和至少一个中央处理单元205。至少一个中央处理单元205是通用中央处理单元,用于运行通用操作系统软件,如安卓操作系统、Windows操作系统或1S操作系统等通用的操作系统,这些操作系统可以用来支持一般的非安全类普通应用软件。中央处理单元205的数量越多,能够处理数据的能力越强。通用操作系统软件则是运行各种普通应用软件的通用软件平台。通用中央处理单元205可以基于ARM架构或英特尔X86架构或单字长定点指令平均执行速度(Mi 11 1nInstruct1ns Per Second,MIPS)架构等来实现,本实施例对此不作限制。通用中央处理单元205在该通用操作系统软件的作用下控制近场通信单元201、移动通信单元202、存储设备203和所述安全元件204。具体的控制过程可以包括:控制开启、控制关闭或控制进入或退出低功耗状态。因此,运行通用操作系统的中央处理单元205可以实现对移动支付装置20中其他各个部分的统一控制,使得这些部分正常上下电,进入或退出低功耗状态,如进入或退出睡眠状态等。近场通信单元201、移动通信单元202、存储设备203或安全元件204中的任一部件在低功耗状态时的功耗低于该部件正常工作时的功耗。此外,对任意部件的所述控制过程还可以包括其他控制操作,如控制工作状态。控制工作状态可以是调整该部件工作时的工作电压、时钟频率或信息处理速率等,本实施例对此不作限定。具体的控制过程可参见现有技术中通用中央处理单元对其他部件的控制操作。
[0054]在图2中,所述安全元件204与所述至少一个中央处理单元205位于所述移动支付装置20中的第一半导体芯片ICl内,该ICl也叫做移动支付装置20的主芯片。通过使用同一个半导体主芯片ICl集成了所述安全元件204与所述至少一个中央处理单元205,移动支付的硬件实现成本和面积将被降低。存储设备203位于第二半导体芯片IC2内,该存储设备203可存储所述至少一个中央处理单元205或所述安全元件204运行所生成的中间数据或临时数据,因此可以是一种掉电易失性存储设备,如SRAM、DRAM或SDRAM等随机存储器,并且优选地是DDR SDRAM。如图2所示,所述移动支付装置20还包括一个非掉电易失性存储器206。所述非掉电易失性存储器206位于所述移动支付装置20中的第三半导体芯片IC3内,该非掉电易失性存储器206用于存储所述至少一个中央处理单元205或所述安全元件204生成的数据结果,该非掉电易失性存储器206可以是回环保护存储分区(Replay Protect MemoryBlock,RPMB)存储器。数据结果不同于中间数据或临时数据,可以被长期保存。相反,临时数据或者叫做中间数据或内存数据,是运行一个软件所产生的过程数据,其无需被长期保存,可以是随着设备或装置掉电而丢失。该临时数据包括但不限于运行操作系统所产生的临时数据以及运行应用软件所产生的临时数据,具体可包括运行算法或进程产生的各类中间运算结果数据、或配置数据等。
[0055]在本发明的各个实施例中,启动一个应用软件表明该应用软件从关闭状态变为开启状态。对于关闭状态的应用软件,随机存储器或者叫内存中将不保留该软件的中间数据或临时数据。开启状态的应用软件可包括暂停状态和运行状态。暂停状态的应用软件的相关算法和进程不会被继续运算或执行,而是处于一种等待状态,相关临时数据此时不会发生变化。运行状态的应用软件表明该软件的算法或进程正在被运算或执行,并会基于运行的算法或进程产生新的临时数据或中间数据。
[0056]可选地,如图2所示,所述近场通信单元201可位于移动支付装置20中的另一第四半导体芯片IC4内。可以理解,除了采用图2所示的第四半导体芯片IC4来实现近场通信单元201外,近场通信单元201也可位于所述第一半导体芯片ICl内(图中未示出),以便进一步实现对主芯片ICl的集成度,降低实现成本。类似地,所述移动通信单元202可如图2所示独自位于移动支付装置20中的另一第五半导体芯片IC5内或也可位于所述第一半导体芯片ICl内。是否将近场通信单元201或移动通信单元202集成进入主芯片ICl取决于本领域技术人员的具体设计。
[0057]在本发明的各个实施例中,半导体芯片也简称为芯片,其可以是利用集成电路工艺制作在集成电路衬底(通常是例如硅一类的半导体材料)上的集成电路的集合,其外层通常被半导体封装材料封装。所述集成电路可以包括逻辑门电路、金属氧化物半导体(Metal-Oxide-Semiconductor,MOS)晶体管、双极晶体管或二极管等晶体管。半导体芯片可以独立工作或者在必要的驱动软件的作用下工作,实现通信、运算、或存储等各类功能。因此,本发明实施例中提到的装置的各个部件可以是硬件,每个部件可包括多个逻辑门电路或晶体管。
[0058]作为对图2中部分内容的细化,图3是本发明实施例提供的一种包括第一半导体芯片ICl和第二半导体芯片IC2的能够控制包括一个或多个移动支付软件在内的多个安全应用软件的运行的移动支付装置的简化的结构示意图,所述第一半导体芯片ICl包括:安全元件204和親合于所述安全元件204的一个或多个通用中央处理单元205。安全元件204包括:中央处理单元2041和随机存储器2042。通用中央处理单元205,例如可以是一个ARM处理器用于运行通用操作系统软件,如安卓系统,并在该通用操作系统软件的作用下与所述安全元件204通信。所述中央处理单元2041,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件。所述随机存储器2042,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据;当需要运行第二安全应用软件时,所述中央处理单元2041还用于暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述随机存储器2042迀移至位于第二半导体芯片上的存储设备203,并利用随机存储器2042继续运行第二安全应用软件。本实施例提到的至少一个安全应用软件和第二安全应用软件可以包括之前提到的移动支付软件或用户识别模块S頂卡应用软件中的至少一个。所述S頂卡应用软件包括但不限于虚拟SIM软件或通信运营商定制的S頂特性应用软件。因此,本实施例虽然主要以移动支付作为应用场景来介绍装置20,实际上的装置20不仅可以支持移动支付功能,也可以满足移动终端21的其他类型的安全需求。因此本实施例的移动支付装置20应被理解为是一种广义上的可移动安全装置。
[0059]可选地,当所述通用中央处理单元205与所述安全元件204通信时,所述通用中央处理单元205可控制所述安全元件204的运行。所述控制所述安全元件204的运行可包括开启所述安全元件204、关闭所述安全元件204、控制所述安全元件204进入低功耗状态、和调整所述安全元件204的工作电压、工作电流或时钟频率中的至少一项。所述通用中央处理单元205与所述安全元件204的通信可遵循IPC协议。
[0060]在本实施例中,通用中央处理单元205运行的通用操作系统软件与所述安全元件204之间存在安全隔离。在本揭露文件中,所述安全隔离是指限制对所述安全元件204的访问。因此安全隔离可以被理解为是一种系统间的访问权限控制手段。通用中央处理单元205运行的通用操作系统软件与所述安全元件204之间存在安全隔离是指,限制所述通用中央处理单元205所运行的所述通用操作系统软件或基于所述通用操作系统软件的普通应用软件对所述安全元件204或其中的随机存储器2041的访问。或者说,在所述安全隔离的影响下所述通用操作系统软件或普通应用软件无法访问所述安全元件204或所述随机存储器2041。假设具有多个基于通用操作系统软件的普通应用软件,则至少其中的部分应用软件对所述安全元件204的访问是被限制的。例如,由所述通用中央处理单元205运行的该通用操作系统软件或基于所述通用操作系统软件的至少一个普通应用软件不能读取或更改所述安全元件204正在执行的数据或所述随机存储器2041临时存储的数据,也不能向随机存储器2041写入数据,以实现安全性。
[0061 ]在本实施例中,所述中央处理器2041能够暂停至少一部分正在运行中的安全应用软件,使得所述随机存储器2042的至少部分内存空间被部分节省出来并被用于运行第二安全应用软件,利用需要运行的安全应用软件替换部分正在运行的安全应用软件,以及将被替换安全应用软件的运行产生的临时数据迀移至外部存储设备,从而避免消耗更多的所述随机存储器2042的内存空间,使得所述第一随机存储器的内存空间无需被设计的很大,从而降低安全元件的面积和成本。该方案尤其适用于移动支付领域,不同于通用中央处理单元205,安全元件204是一个专用于处理安全应用软件的处理设备,因此其体积和成本控制比较重要。本发明实施例能够较好解决相关问题。
[0062]具体地,该随机存储器2042可以是SRAM(静态随机存储器)、DRAM(动态随机存储器)或SDRAM(同步动态随机存储器)。位于第二半导体芯片IC2上的存储设备203通常也是随机存储器,可以是SRAM(静态随机存储器)、DRAM(动态随机存储器)或SDRAM(同步动态随机存储器)。优选地,存储设备203是一个DDR SDRAM(双倍速率同步动态随机存储器)。由于存储设备203是随机存储器,从随机存储器2042迀移数据到该存储设备203或从存储设备203迀移数据回到随机存储器2042的速度会很快,这种灵活的调入和调出方式可以实现多个安全应用软件中的任一个软件的随时暂停或重新运行,方便且灵活,无需每次需要运行时都重启安全应用软件,也无需在安全元件204内维护过多临时数据,降低安全元件204的成本和面积。
[0063]所述第二安全应用软件可以为新启动的安全应用软件或之前曾经被暂停的软件。当需要运行所述第二安全应用软件时,所述中央处理单元2041接收所述通用中央处理单元205发送的用户指令以激活所述第二安全应用软件的运行,所述用户指令被基于所述通用操作系统软件的用户界面(UI)下发的操作命令所触发的。该用户界面可以包括基于触摸屏、键盘、鼠标或其他输入方式的用户界面,可以检测到用户基于该用户界面的任何形式的信息输入。所述安全元件204中的中央处理单元2041和所述通用中央处理单元205可通过IPC规则或协议进行指令通信,或者可以实现数据交互。数据交互可通过如图3中的随机存储器207来实现,后续会对随机存储器207的功能做详细介绍。IPC协议可遵循现有的进程间通信协议,本实施例对此不作赘述。
[0064]如果所述第二安全应用软件为曾经被所述中央处理单元2041暂停并被继续运行的安全应用软件,当暂停所述第二安全应用软件时,所述第二安全应用软件对应的第二临时数据被所述中央处理单元2041从所述随机存储器2042迀移至所述存储设备203。当需要继续运行第二安全应用软件时,所述中央处理单元2041用于将所述第二临时数据从所述存储设备203迀移回所述随机存储器2042。因此所述第二安全应用软件可以被多次暂停,并在每次暂停、或重新运行或加载所述第二安全应用软件到安全元件204中时将相关临时数据在所述随机存储器2042和存储设备203之间传递。因此对于安全元件204而言,其同一时刻可以仅运行一个安全应用软件,并将其他暂停的安全应用软件的临时数据存入存储设备203,尽可能的降低了随机存储器2042的内存消耗,可以使得随机存储器2042的存储空间无需设计的很大,节省了随机存储器2042和安全元件的面积和成本。
[0065]可选地,所述中央处理单元2041可用于实现至少部分安全类功能。例如,当需要暂停所述第二安全应用软件时,所述中央处理单元2041还用于从随机存储器2042获取所述第二安全应用软件的第二临时数据,并在将所述第二临时数据迀移至所述存储设备203前,对所述第二临时数据做加密或MAC运算中的至少一项安全处理,提高了安全性。当需要继续或重新运行第二安全应用软件时,所述中央处理单元2041还用于从所述存储设备203获取所述第二临时数据,并在将所述第二临时数据迀移回所述随机存储器2042前,对第二临时数据做解密或解MAC运算中的至少一项安全处理,只有通过解密或解MAC运算的第二临时数据会被继续使用。在本实施例中,MAC运算的一个实施例是做哈希运算,相应地做解MAC运算可以是做解哈希运算。本实施例后续的方案主要以哈希或解哈希运算为例来介绍MAC运算或解MAC运算处理。可以理解,现有技术中已经提供了多种用于进行认证所使用的MAC运算或解MAC运算处理的算法,本实施例对这些算法不作赘述。
[0066]在一个替换的实现方式中,如图3所示,所述安全元件204中还包括加解密单元2043,其作用是用来做加解密、MAC或解MAC等安全运算处理等安全类功能。与前一种实现方式中直接通过所述中央处理单元2041进行安全运算处理不同,本实现方式中的加解密单元2043是一个独立于所述中央处理单元2041的单元,专用于加解密或MAC、解MAC等安全运算,性能更加优化。具体地,所述中央处理单元2041可在将所述第二临时数据迀移至所述存储设备203前,将所述第二临时数据提供给所述加解密单元2043,并并从所述加解密单元2043接收安全处理后的所述第二临时数据。所述中央处理单元2041可在将所述第二临时数据迀移回所述随机存储器2042前,将所述第二临时数据提供给所述加解密单元2043并从所述加解密单元2043接收解安全处理后的所述第二临时数据。所述加解密单元2043所执行的安全处理包括加密或MAC运算中的至少一项,所执行的解安全处理则包括解密或解MAC运算中的至少一项。
[0067]在另一种替换的实现方式中,如图3所示,所述安全元件204中还包括DMA(直接内存访问)控制器2044,用来控制实现在所述随机存储器2042和存储设备203之间的数据迀移。该DMA控制器2044是一个独立于中央处理单元2041的部件,专门用来做安全元件204内部临时数据至外部其他设备或接口的迀移,无需中央处理单元2041承担相应的数据迀移功能,中央处理单元2041在此情况下只需要做好安全应用软件的运行和处理,由DMA控制器2044实现数据迀移。可选地,所述安全元件204中的所述中央处理单元2041、加解密单元2043、和DMA控制器2044可以被视为一个整体,即进行处理运算功能的处理器,而随机存储器2042则作为该处理器的内存被使用。当中央处理单元2041需要暂停运行一个安全应用软件A时可触发所述随机存储器2042中临时存储的所述安全应用软件A的临时数据的迀移,具体地可以发送一个触发信号或中断信号给所述DMA控制器2044 AMA控制器2044基于所述触发信号或中断信号的触发将所述临时数据从所述随机存储器2042迀移至存储设备203。中央处理单元2041可以在所述迀移完成后利用所述随机存储器2042中因为迀移而被释放或节省的存储空间来运行其他安全应用软件B。
[0068]当一个或多个安全应用软件的临时数据被迀移至所述存储设备203时,相应临时数据可以被存放于存储设备203的一个安全存储区域中,该安全存储区域被专用于临时存储被所述中央处理单元2041暂停运行的一个或多个安全应用软件的临时数据。由于该存储设备203可以被所述安全元件204和所述通用中央处理单元205所共享。所述存储设备203可以同时存储所述通用中央处理单元205产生的临时数据或中间数据以及所述安全元件204所产生的临时数据。通过在所述存储设备203中划分出一个专用空间或区域,可以实现所述通用中央处理单元205产生的临时数据与所述安全元件204的临时数据的隔离,提高安全性。该被隔离的安全存储区域不能被所述通用中央处理单元205的通用操作系统软件或基于该通用操作系统软件的普通应用软件所访问。可选地,所述通用中央处理单元205可以在可信执行环境(Trust Execute Environment,TEE)下访问所述安全存储区域,实现对安全存储区域中数据的迀入或迀出。该被中央处理单元205执行的可信执行环境与同样被中央处理单元205运行的通用操作系统软件(如安卓系统环境)间可存在安全隔离,分别是两个独立的软件操作系统,虽然由同一个中央处理单元205运行,但通过安全隔离的作用,所述通用操作系统软件或基于该通用操作系统的的普通应用软件的运行程序不能访问该可信执行环境。
[0069]通常来说,由于存储设备203是一个DDRSDRAM,其存储空间很大,其专门划分出来的安全存储区可以远大于安全元件204内的随机存储器2042,因此基于本实施例提供的安全应用软件运行控制的装置或设备可以支持非常多数量的安全应用软件的开启。当多个安全应用软件均被开启,例如同时开启一百个运营商的SIM卡应用软件或一百个银行卡支付应用软件,此时装置或设备的安全元件204依然可以正常工作,因为同一时刻安全元件204内的中央处理单元2041只会运行最多预设数量的安全应用软件(优选仅有一个),其他安全应用软件将暂停并将相应的临时数据存入存储设备203安全存储区,实现对多个安全应用软件的动态暂停和恢复以及对相关临时数据的动态迀入和迀出,因此降低了安全元件204的成本和面积。
[0070]当需要关闭所述被所述中央处理单元2041暂停运行的一个或多个安全应用软件中的第三安全应用软件时,所述中央处理单元2041还用于控制所述存储设备203删除运行需要关闭的安全应用软件所产生的临时数据。
[0071]可选地,如果所述第二安全应用软件被所述中央处理单元2041多次暂停并重新运行并在所述存储设备203和所述随机存储器2042被多次传递,在每次暂停所述第二安全应用软件时,所述中央处理单元2041或加解密单元2043对所述第二安全应用软件进行加密或解密使用不同密钥,以保证安全性。
[0072]可选地,所述安全元件204还包括一个非掉电易失性存储器(图中未示出),例如只读存储器,用来存储安全操作系统软件,使得所述中央处理单元2041能够从所述只读存储器读取安全操作系统软件并运行该安全操作系统软件。该安全操作系统软件可以是片内操作系统(Chip Operating System,COS)。该COS也叫COS镜像,可以等效为是驻留智能卡或金融集成电路(Integrated Circuit,IC)卡内的操作系统软件,此时的安全元件204等效为是具有驻留智能卡或金融卡的功能,其用于向外界的POS机、读卡器或云侧的金融服务器提供刷卡等移动支付服务所需的数据,如银行金融业务相关的数据或用户个人的账户数据,例如个人账号、密码、银行服务器对个人账户进行验证所需的各类验证信息等。此外,COS镜像也是接收和处理外界支付信息,如金融服务器或者读卡器、POS机发给安全元件204的各种支付信息的操作平台,可用于执行外界发送的各种指令。当然该平台也可支持移动安全支付之外的其他安全类应用软件,如SIM卡应用软件。
[0073]需要说明的是,本实施的移动支付是一个广义上的定义,其不仅包括商业、金融上的移动支付业务,也包括公共交通、身份证、社保卡等其他类型的支付业务。也就是说,通过移动支付,移动终端可以与通信对端连接最终实现与服务器的交互支付信息,并实现与该移动终端内一个或多个账户相关联的数据交易、数据兑换或数据结算。数据交易、兑换或数据结算的单位可以不仅包括货币,也可以是虚拟货币、各类积分或信用额度等其他能够用于实现支付、兑换或交易结算的单位,本实施例对此不做限定。所述账户包括但不限于个人账户、团体账户或组织账户。相对于仅在固定终端上实施的支付行为,移动支付实现更加灵活,其执行主体装置为移动终端,可以更好满足随时随地执行支付的需求。
[0074]可以理解,本发明上述实施例主要以移动支付环境为例进行描述,实际上的安全元件204可以运行各类安全应用软件,而不仅限于移动支付应用软件或SIM卡相关的软件,也可包括各类安全级别高的定制软件。因此,安全应用软件可以是不同于普通应用软件,其仅能够运行在安全元件204中并与通用操作系统软件或环境实现隔离。在本实施例中,安全操作系统软件的安全级别高于通用操作系统软件,基于安全操作系统软件的安全应用软件的安全级别高于基于通用操作系统软件的普通应用软件。通过将两个操作系统隔离,保证安全操作系统软件环境不会被所述通用中央处理单元205运行的通用操作系统软件或普通应用软件随意访问。
[0075]需要说明的是,在本发明实施例中,通用中央处理单元205的数量可以是多个。多个通用中央处理单元205与移动支付装置20中其他部件,如安全元件204,交互数据可以是指:多个通用中央处理单元205中的任何一个或多个与该其他部件的数据交互。当移动支付装置20处于工作状态时,多个中央处理单元205可以同时开启或部分开启。
[0076]此外,所述移动支付装置20还可包括图像处理单元(GPU)、音频处理单元、功耗管理单元(PMU)或全球定位系统(GPS)等。该GPU也可位于主芯片ICl内。此外在移动终端21内,除了主要包括各类电路的移动支付装置20外,还可以包括用于输入的触摸屏、显示器以及其他必要的传感器,例如重力加速计、陀螺仪、或光传感器等,本实施例对这些本领域已有部件不作赘述。
[0077]进一步参见图3,第一半导体芯片ICl内还可包括随机存储器207和存储控制器208。通用中央处理单元205、随机存储器207和存储控制器208可以包含在一个通用处理器系统200中,该通用处理器系统200能够基于通用操作系统软件和普通应用软件运行,并且还可选择性的工作于TEE环境。由于该通用处理器系统200不能直接访问或直接读取安全元件204内的数据,通用处理器系统200通过随机存储器207与安全元件204交互数据,并遵循IPC协议。
[0078]当在安全元件204中的随机存储器2042和置于第二半导体芯片IC2上的存储设备203之间交互临时数据的时候,例如实现本实施例之前所述临时数据的迀移,所述数据迀移要经过随机存储器207。具体地,中央处理单元2041或DMA控制器2044用来从随机存储器2042读取需要暂停的安全应用软件的临时数据并向随机存储器207写入该临时数据。存储控制器208可以是一个DMA控制器,该DMA控制器可以在TEE环境下用来将随机存储器207的临时数据写入存储设备203的安全存储区域,以实现从安全元件204至存储设备203的临时数据的迀移。迀移完成之后该临时数据可以被中央处理单元2041或DMA控制器2044或存储控制器208从随机存储器2042中删除。可替换地,通用中央处理单元205可代替存储控制器208实现将相关数据写入存储设备203的安全存储区域的功能。因此本发明实施例中的中央处理单元2041或DMA控制器2044执行的数据迀移至存储设备203不仅包括直接向存储设备203迀移数据,也包括通过中断指令或IPC协议指令做控制以通过第三方随机存储器在机存储器2042和存储设备203间实现双向的临时数据迀移。
[0079]当一个安全应用软件被重新运行时,该安全应用软件对应的临时数据被所述通用中央处理单元205或存储控制器208读取并写入随机存储器207,安全元件204中的中央处理单元2041或DMA控制器2044从该随机存储器207进一步读取相关临时数据以实现将临时数据迀移回随机存储器2042。迀移完成之后该临时数据可以被中央处理单元2041或DMA控制器2044或存储控制器208从随机存储器2042中删除。在执行数据迀移过程中,随机存储器207起到了数据中继或转发的作用。在图3中,该随机存储器207位于通用处理器系统200,实际上,随机存储器207也可以位于安全元件204中,本实施例对此存储器207的位置不做限定。
[0080]在安全元件204或中央处理单元2041执行一个安全应用软件的暂停或重新运行时,该安全应用软件临时数据的迀移可能涉及安全元件204或中央处理单元2041与通用处理器系统200或通用中央处理单元205之间的指令交互。此时,中央处理单元2041或通用中央处理单元205可通过现有技术中常用的中断指令触发对方执行相应的迀移操作,如中央处理单元2041可以通过中断指令通知中央处理单元205需要迀移的数据已经写入随机存储器207,使得中央处理单元205可自己或控制存储控制器208来实现数据进一步迀移至存储设备203。反之,中央处理单元205或存储控制器208将存储设备203的数据写入随机存储器207后,可通过中央处理单元205发送中断指令给所述中央处理单元2041,以指示中央处理单元2041完成迀移。所述中央处理单元2041可自己或控制DMA控制器2044将随机存储器207中的数据迀移至随机存储器2042。或者,如果不采用中断指令交互控制信息,中央处理单元2041或通用中央处理单元205也可通过现有技术中常见的IPC协议实现信息交互以配合完成所述迀移操作。例如,所述通用中央处理单元205和中央处理单元2041之间可以通过中断指令或IPC协议指令交互信息,以指示对方本端已经实现数据迀移(迀移至或迀移出随机存储器207)并指示对方继续完成剩余的数据迀移。
[0081]一般地,假设一个安全应用软件的运行所产生的临时数据需要占用64KB的内存空间,可以在本实施例引入通道(slot)的概念,一个通道也就是运行一个应用软件所需占用的存储设备203中的空间资源。如果有多个应用软件被开启,则通用中央处理单元205或中央处理单元2041可在存储设备203中为每个应用软件预先分配一个通道。例如在安全元件204内部可以预设最大16个通道同时开启,每个通道容纳I个安全应用软件的运行,即存储设备203中有分别对应这16个软件的存储空间,用于在相应软件被暂停时临时存储相关软件的临时数据,即内存数据。结合图3,进一步如图4所示,提供了一个控制多个安全应用软件的运行的具有安全隔离的装置的实施例。该随机存储器2042内包括安全操作系统程序本身(COS镜像)的空间、全局数据空间和安全应用软件占用空间。COS镜像的空间大小通常是300KB左右。该COS镜像是不包括任何应用软件的安全操作系统程序本身。所述全局数据空间是运行该COS镜像所产生的中间数据所需的空间。
[0082]如图4,在存储设备203中,安全应用软件占用空间包括多个通道,每个通道容纳一个安全应用软件。比如通道3的已运行的应用A,只有等应用A运行结束或被关闭后,才可以将通道3分配给应用B,使得应用B在被暂停时的临时数据能够迀移到通道3。这样假设存储设备203最多支持16个通道,就表示最多有16个应用可以开启,可开启的应用数量上限可以被安全元件204或通用中央处理单元205所设定。安全元204或中央处理单元2041会根据外部输入的命令解析需要新开启哪个应用或需要关闭哪个应用。当然如果要支持的更多通道,则通用中央处理单元205可在存储设备203中分配更大的空间作为之前所提到的安全存储区域。随机存储器207作为中继在具有安全隔离的安全元件204和通用处理器系统200之间传递或交互数据,以实现将随机存储器2042中的安全应用软件空间中的临时数据迀移至任一通道,如通道3,或将通道3的数据迀移回该安全应用软件空间。
[0083]每一个被暂停的应用的数据在迀移前所经过的MAC算法或哈希算法可以包括SHA256算法,运算得到的哈希值被保存在随机存储器2042中,后续从存储设备203反向迀移所述数据时所述保存的哈希值被用于哈希校验或者叫解哈希。所述解哈希可确保被反向迀移的数据相对于迀移之前没有经过篡改。如果解哈希失败或者说校验失败,则执行所述解哈希的加解密单元2043或中央处理单元2041可以报错,该报错能够以警告信息的形式传输给通用中央处理单元205并可在基于通用操作系统的用户界面上显示。
[0084]由于安全性要求,除了哈希算法,还有一定的加密算法被应用于所述待迀移的数据。具体地,可采用对称加密算法如高级加密算法(Advanced Encrypt1n Standard,AES)256-CBC(Cipher Block Chaining,密码分组链接)算法做所述加密,用于加密的密钥(Key)仍然可以保存在随机存储器2042中。该密钥可以在每次进行所述迀移前随机生成,确保每个应用每次迀移所使用的密钥都互不相同。该密钥可以具体由所述中央处理单元2041或另一密钥生成器(图中未示出)来产生,本实施例对此不作限制。
[0085]图5是本发明实施例提供的一种控制多个安全应用软件的运行的方法的简要流程示意图,该方法可以由图2或图3所示的移动支付装置执行。其中,在S51中,由至少一个通用中央处理单元205运行通用操作系统软件。通用中央处理单元205可以在开机程序中从非掉电易失性存储器206或其他非掉电易失性存储器中加载该通用操作系统软件的程序代码并加以运行。在S52中,由安全元件204中的中央处理单元2041运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件。在启动程序中,当所述通用操作系统软件成功启动后或正在启动中时,安全操作系统软件可以被启动。一个或多个安全应用软件可以是默认随着安全操作系统软件一起被启动,或者可以基于用户的触发被启动。用户可以在基于通用操作系统软件的用户界面进行任一个安全应用软件的启动触发。该通过用户界面的触发被所述通用中央处理单元205检测并生成指令,该指令被传输给安全元件204中的中央处理单元2041以通知中央处理单元2041启动该安全应用软件。所述指令如之前实施例所述,可以是基于中断的指令或IPC协议指令。
[0086]进一步地,在S53中,假设当第一安全应用软件开始运行时,由安全元件204中的随机存储器2042临时存储运行所述安全操作系统软件和所述安全应用软件所产生的安全临时数据。
[0087]在S54中,当需要运行第二安全应用软件时,由所述中央处理单元2041暂停运行所述第一安全应用软件,将运行所述第一安全应用软件所产生的临时数据从所述随机存储器2042迀移至如图2或3所示的存储设备203,具体的迀移过程可参见之前实施,然后中央处理单元2041基于所述安全操作系统软件运行所述第二安全应用软件。假设安全元件204或其中的中央处理单元2041接收到来自中央处理单元205的应用选择命令(Select AID),该条命令由用户在用户界面上触发,用于选择启动一个新应用软件,通用中央处理单元205基于该触发发送指令(即选择命令)给中央处理单元2041。例如,该指令中带有通道X的指示信息(CHx),表示利用存储设备203中的该通道X为资源来新启动一个应用软件(即第二安全应用软件),则中央处理单元2041启动相应应用软件并利用安全元件204内部的随机存储器2042作为运行该应用软件所需的内存。当新应用软件被运行时,通道X没有被立即使用,其处于空闲状态。一旦后续该应用软件被暂停则通道X被用来存储该应用软件的临时数据。在此之前,中央处理单元2041或加解密单元2043将正在随机存储器2042中运行的还没结束的且对应通道y的应用软件(即第一安全应用软件)相关的临时数据做加密以及做哈希算法处理,处理后的数据被存放到外部存储设备203中对应的通道y中。内部随机存储器2042可用来保存加密密钥和哈希值的至少一项,以便后续在第二临时数据需要被迀移回所述随机存储器2042时将该加密密钥或哈希值用于做解密或解哈希处理。
[0088]在S55中,由所述随机存储器2042临时存储运行所述第二安全应用软件所产生的第二临时数据。也就是说,本来是用于临时存储所述第一安全应用软件的临时数据的空间被用于存储第二安全应用软件的临时数据,实现对正在运行的安全应用软件的替换。
[0089]进一步地,在S56中,所述被暂停的第一安全应用软件可以被关闭或完全停止。例如,通道y的上的相关应用软件需要停止掉时,中央处理单元2041可以接收来自通用中央处理单元205发送的停止指令,该指令可以由用户在用户界面触发,可包括需要停止的该应用软件对应的通道号y。这里的停止就是将存储设备203的通道y对应的临时数据删除,并将该临时数据对应的加密密钥和哈希值从随机存储器2042中删除。
[0090]在S54中,可替换地,第二安全应用软件可以不是新启动的应用软件,而是一个之前曾经被暂停且相关临时数据保存在存储设备203的某一个通道z中的应用软件。此时安全元件204或中央处理单元2041可接收通用中央处理单元205发送的APDU(Appl i cat 1nProtocol Data Unit,应用协议数据单元)命令而不再是选择命令,其指示了需要恢复运行的第二安全应用软件对应的通道号X。如果安全元件204或中央处理单元2041收到的包含通道号X的APDU命令,则对应通道y的正在被运行的安全应用软件的临时数据被加密和哈希运算处理,并将处理后的数据存放到外部存储设备203的y通道中,随机存储器2042仍然保存相应的加密加密密钥和哈希值。然后将存储设备203的X通道的临时数据迀移回安全元件204并做解密和哈希校验(解哈希)。解密且校验正确后,中央处理单元2041利用随机存储器2042的安全应用软件空间来运行该重新运行的应用软件。
[0091]应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。而且,本发明的各个实施例之前可以互相参考结合。例如,图5对应的方法实施例的部分步骤的详细实现可参照之前的其他实施例。
[0092]可以理解,之前图1至图4对应的实施例主要通过介绍装置20的硬件实现来描述本发明的一个或多个实现方式。图5对应的实施的方法的全部或部分步骤的相关功能也可以以软件功能单元的形式实现并作为独立的产品销售或使用,相关软件功能单元可以是计算机程序产品,可存储在一个计算机可读取存储介质中。该计算机程序产品可以包括之前实施例提到的通用操作系统软件、基于所述通用操作系统软件的普通应用软件、安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件中的全部或部分软件,以驱动装置20中的相关部件实现相关的处理方法或功能。基于这样的理解,该方法相应的技术方案的至少部分可以以计算机软件产品,即计算机代码的形式体现出来,该计算机代码可以被存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是之前提到的移动终端、或个人计算机等)执行相应方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read_Only Memory)、随机存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0093]以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。例如本发明实施例的附图中的各个部件具体形状或结构是可以根据实际应用场景进行调整的。
【主权项】
1.一种控制多个安全应用软件的运行的装置,其特征在于,包括:安全元件和耦合于所述安全元件的至少一个中央处理单元;其中, 所述安全元件包括:处理器和第一随机存储器; 所述至少一个中央处理单元,用于运行通用操作系统软件,并在所述通用操作系统软件的作用下与所述安全元件通信; 所述处理器,用于运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件; 所述第一随机存储器,用于临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据; 所述处理器还用于当需要运行第二安全应用软件时,暂停运行所述至少一个安全应用软件中的第一安全应用软件,控制将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件,其中运行所述第二安全应用软件所产生的第二临时数据被临时存储于所述第一随机存储器。2.根据权利要求1所述的装置,其特征在于,所述处理器包括第一处理单元,用于运行所述安全操作系统软件和基于所述安全操作系统软件的第一安全应用软件,并且还用于暂停运行所述第一安全应用软件,控制将所述第一临时数据迀移至所述存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件。3.根据权利要求1所述的装置,其特征在于,所述处理器包括第一处理单元和第二处理单元; 所述第一处理单元用于运行所述安全操作系统软件和基于所述安全操作系统软件的第一安全应用软件,以及当需要运行所述第二安全应用软件时,暂停运行所述第一安全应用软件并触发所述第一临时数据的迀移; 所述第二处理单元用于基于所述第一处理单元的触发,控制将所述第一临时数据迀移至所述存储设备; 所述第一处理单元还用于在所述第一临时数据迀移完成后基于安全操作系统软件运行所述第二安全应用软件。4.根据权利要求1至3中任一项所述的装置,其特征在于,所述安全元件与所述至少一个中央处理单元位于所述装置中的第一半导体芯片内。5.根据权利要求1至4中任一项所述的装置,其特征在于,所述存储设备位于所述装置中的第二半导体芯片内。6.根据权利要求1至5中任一项所述的装置,其特征在于,所述存储设备是第二随机存储器。7.根据权利要求1至6中任一项所述的装置,其特征在于,所述存储设备包括一个安全存储区域,该安全存储区域被专用于临时存储被所述处理器暂停运行的一个或多个安全应用软件的第三临时数据。8.根据权利要求7所述的装置,其特征在于,所述处理器还用于当需要关闭所述被所述处理器暂停运行的一个或多个安全应用软件中的第三安全应用软件时,控制所述存储设备从所述第三临时数据中删除运行所述第三安全应用软件所产生的第四临时数据。9.根据权利要求1至8中任一项所述的装置,其特征在于,所述装置还包括第三随机存储器,親合于所述安全元件; 所述第一临时数据被所述处理器从所述第一随机存储器迀移至所述第三随机存储器并被进一步从所述第三随机存储器迀移至所述存储设备。10.根据权利要求1至9中任一项所述的装置,其特征在于,所述第二安全应用软件为新启动的安全应用软件。11.根据权利要求1至9中任一项所述的装置,其特征在于,所述第二安全应用软件为曾经被所述处理器暂停并被继续运行的安全应用软件; 所述处理器用于当暂停所述第二安全应用软件时,将所述第二临时数据从所述第一随机存储器迀移至所述存储设备,以及 当需要继续运行第二安全应用软件时,将所述第二临时数据从所述存储设备迀移回所述第一随机存储器。12.根据权利要求11所述的装置,其特征在于,所述处理器还用于从所述第一随机存储器获取所述第二临时数据,并在将所述第二临时数据迀移至所述存储设备前,对所述第二临时数据做加密或消息认证码MAC运算中的至少一项,以及 从所述存储设备获取所述第二临时数据,并在将所述第二临时数据迀移回所述第一随机存储器前,对第二临时数据做解密或解MAC运算中的至少一项。13.根据权利要求11所述的装置,其特征在于,所述装置还包括:加解密单元; 所述处理器还用于从所述第一随机存储器获取所述第二临时数据,并在将所述第二临时数据迀移至所述存储设备前,将所述第二临时数据提供给所述加解密单元并从所述加解密单元接收安全处理后的所述第二临时数据,所述加解密单元用于对所述第二临时数据做加密或MAC运算中的至少一项安全处理以得到安全处理后的所述第二临时数据,以及 所述处理器还用于从所述存储设备获取所述第二临时数据,并在将所述第二临时数据迀移回所述第一随机存储器前,将所述第二临时数据提供给所述加解密单元并从所述加解密单元接收解安全处理后的所述第二临时数据,所述加解密单元还用于对第二临时数据做解密或解MAC运算中的至少一项解安全处理以得到解安全处理后的所述第二临时数据。14.根据权利要求12或13所述的装置,其特征在于,所述第二安全应用软件能够被所述处理器多次暂停并在每次暂停时被所述处理器从所述第一随机存储器迀移至所述存储设备,在每次暂停所述第二安全应用软件时对所述第二安全应用软件进行加密或解密使用不同密钥。15.根据权利要求1至14中任一项所述的装置,其特征在于,所述处理器还用于当需要运行所述第二安全应用软件时接收所述至少一个中央处理单元发送的用户指令以激活所述第二安全应用软件的运行,所述用户指令被通过所述通用操作系统软件的用户界面下发的操作命令所触发的。16.根据权利要求1至15中任一项所述的装置,其特征在于,至少一个安全应用软件包括:移动支付软件或用户识别模块S頂卡应用软件中的至少一个。17.根据权利要求1至16中的任一项所述的装置,其特征在于,所述至少一个中央处理单元所运行的通用操作系统软件与所述安全元件间存在安全隔离。18.一种控制多个安全应用软件的运行的方法,其特征在于,包括: 由至少一个中央处理单元运行通用操作系统软件; 由安全元件中的处理器运行安全操作系统软件和基于所述安全操作系统软件的至少一个安全应用软件; 由安全元件中的第一随机存储器临时存储运行所述安全操作系统软件和所述至少一个安全应用软件所产生的安全临时数据; 当需要运行第二安全应用软件时,由所述处理器暂停运行所述至少一个安全应用软件中的第一安全应用软件,将运行所述第一安全应用软件所产生的第一临时数据从所述第一随机存储器迀移至外置于所述安全元件的存储设备,并基于所述安全操作系统软件运行所述第二安全应用软件; 由所述第一随机存储器临时存储运行所述第二安全应用软件所产生的第二临时数据。19.根据权利要求18所述的方法,其特征在于,所述第二安全应用软件为曾经被所述处理器暂停并被继续运行的安全应用软件;所述方法还包括: 当暂停所述第二安全应用软件时,由所述处理器从所述第一随机存储器迀移所述第二临时数据至所述存储设备; 当需要继续运行第二安全应用软件时,由所述处理器将所述第二临时数据从所述存储设备迀移回所述第一随机存储器。20.根据权利要求18或19所述的方法,其特征在于,所述至少一个中央处理单元所运行的通用操作系统软件与所述安全元件间存在安全隔离。
【文档编号】G06F3/06GK105912272SQ201610232101
【公开日】2016年8月31日
【申请日】2016年4月14日
【发明人】潘时林
【申请人】华为技术有限公司