CN111201553B - 一种安全元件及相关设备 - Google Patents
一种安全元件及相关设备 Download PDFInfo
- Publication number
- CN111201553B CN111201553B CN201780095768.3A CN201780095768A CN111201553B CN 111201553 B CN111201553 B CN 111201553B CN 201780095768 A CN201780095768 A CN 201780095768A CN 111201553 B CN111201553 B CN 111201553B
- Authority
- CN
- China
- Prior art keywords
- security
- segment
- memory
- page
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011068 loading method Methods 0.000 claims abstract description 148
- 238000012545 processing Methods 0.000 claims abstract description 142
- 239000004065 semiconductor Substances 0.000 claims abstract description 23
- 230000036961 partial effect Effects 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims description 51
- 238000003672 processing method Methods 0.000 claims description 7
- 238000010295 mobile communication Methods 0.000 abstract description 7
- 238000000034 method Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 29
- 238000013507 mapping Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000013508 migration Methods 0.000 description 11
- 230000005012 migration Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 101100127285 Drosophila melanogaster unc-104 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07G—REGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
- G07G1/00—Cash registers
- G07G1/12—Cash registers electronically operated
- G07G1/14—Systems including one or more distant stations co-operating with a central processing unit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种安全元件(101)及相关设备,涉及移动通信领域。该安全元件(101)包括:处理器(1011)和存储器(1012),所述处理器(1011)和所述存储器(1012)集成在半导体芯片内;所述存储器(1012),用于为所述处理器(1011)加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器(1012)中;所述处理器(1011),用于:将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;对所述多页的每页进行安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器(108,109)中。
Description
技术领域
本申请涉及移动通信技术领域,尤其涉及一种安全元件及相关设备。
背景技术
移动支付(Mobile Payment)是指允许用户使用移动终端,例如手机、平板电脑、或可穿戴装置等,对所消费的商品或服务进行账务支付的一种服务方式。通过移动终端实现移动支付目前有三种方式,分别是安全数据(Secure Digital,SD)卡方案、用户识别模块(Subscriber Identity Module,SIM)方案、或近场通信(Near Field Communication,NFC)结合安全元件(Secure Element,SE)的全终端解决方案。目前近场通信结合安全元件的全终端解决方案越来越成为实现移动支付方案的主流。
随着移动应用场景的发展,安全元件运行的应用软件种类越来越多,系统的业务需求也在不断增长,比如,并发应用越来越多,即同时支持多通道应用处理;越来越多的平台功能导致系统镜像(OS image)越来越大等。所以,导致安全元件中用于运行相应应用软件或操作系统的内存空间的需求也在变大,而安全元件的运行空间只能是内部RAM,不能直接访问外部更大存储,因此不能满足当前业务增长的需求。针对该缺陷,可以利用内存管理单元(Memory Management Unit,MMU)或专用地址映射模块实现动态加载;基本流程如下:
1、将基本程序加载到安全元件内部RAM中运行,这部分程序常驻内部RAM空间;
2、配置MMU或地址映射单元配置,使得合法地址得以转换;这块视硬件的设计,可以用页表将虚拟地址全部覆盖,但只有真正映射的部分才占用内部RAM的物理地址,也可以只配置合法的地址映射;
3、处理器运行时,当取指令或取数据取到未映射的地址或非法地址,会进行异常处理,比如硬件fault异常或地址转换异常;
4、异常中断时处理器会将上下文压栈,进入异常处理函数入口,在异常处理函数中根据未映射的地址,将外部DDR或存储器的相应数据按页大小搬运到内部RAM中,同时配置页表将未映射的地址配置成合法映射;
5、回到中断前的上下文,由于地址映射已经合法,故程序会正常执行下去。
以上利用动态加载技术,解决了安全元件中业务规模增大,内存不够用的问题,但是如何有效保证动态加载至安全元件中的程序的安全性,是亟待解决的问题。
发明内容
本发明实施例提供了一种安全元件及相关设备,以保证运安全元件的安全操作系统,在动态加载至安全元件的存储器中时得以安全运行。
第一方面,本发明实施例提供了一种安全元件,可包括:处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;所述处理器用于:将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;对所述多页的每页进行安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
通过第一方面提供的技术方案,安全元件的处理器能够对安全操作系统的动态加载部分进行多页划分,并对多页中的每一页进行安全处理,然后存储至安全元件的外部存储器中,以保证在该动态加载部分从外部存储器加载至安全元件的存储器中时得以安全运行。
第二方面,本发明实施例提供了一种安全元件,可包括:处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段;其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中,所述系统镜像动态加载段被分为多页,且所述多页的每页内容均已经过安全处理;所述处理器,用于:在运行所述安全操作系统时,将所述多页的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
通过第二方面提供的技术方案,安全元件的处理器能够对已经经过安全处理的系统镜像动态加载段的多页进行安全校验,以保证该动态加载部分从外部存储器加载至安全元件的存储器中时得以安全运行。
第三方面,本发明实施例提供了一种安全元件,可包括:处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;所述处理器,用于:从外部的存储器中获取系统镜像常驻段;对所述系统镜像常驻段进行安全验证;将经过所述安全验证后的所述系统镜像常驻段迁移至所述存储器中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;所述存储器,用于为所述处理器运行安全程序提供所述存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括所述系统镜像常驻段和系统镜像动态加载段,所述系统镜像动态加载段被分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;所述处理器,还用于:从外部的存储器中获取所述多页;对所述多页的每页进行安全验证;将经过所述安全验证后的所述每页迁移至所述存储器中;利用所述存储器提供的存储空间运行安全程序。
通过第三方面提供的技术方案,安全元件的处理器能够对已经经过安全处理的系统镜像动态加载段的多页进行安全校验,以保证该动态加载部分从外部存储器加载至安全元件的存储器中时得以安全运行。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全处理包括:加密和生成消息认证码MAC;其中,每页的加密密钥与所述页的虚拟地址相关联,不同页的加密密钥不同。在该实现方式中,对系统镜像动态加载段划分的多页中的每一页进行加密和加MAC,可以保证每一页的私密性和合法性,并且由于每页的加密密钥与每一页的虚拟地址相关联,不仅保证每页的加密密钥不同,从而更有力的保证私密性,还可以保证每个密钥有据可循,避免密钥丢失导致的错误,还可以避免数据地址混淆产生的错误。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全处理还包括:对所述多页的多个MAC整体加密;或者对所述多页的每页的MAC分别加密,且不同MAC的加密密钥不同。该实现方式,可以保证系统镜像动态加载段的多页中的每一页对应的MAC的私密性。并且当对多页的MAC进行整体加密时,可以整体存放在安全元件的外部存储器中;当每页分别使用不用的密钥加密时,也可以分开存放在安全元件的外部存储器中。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全元件还包括一次性可编程OTP;所述多页的每页的加密密钥与所述OTP的计数count值相关联;和/或所述多页的每页的MAC与所述安全元件的OTP的count值相关联。该实现方式,可以防止网络攻击者使用每页加密密钥的历史版本的或者每页对应的MAC的历史版本进行替换,防止回退。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全操作系统的镜像还包括对所述系统镜像常驻段的第一签名,以及对所述系统镜像常驻段、所述第一签名和所述系统镜像动态加载段的第二签名;所述处理器还用于:校验所述第二签名,并在所述第二签名的校验通过后,对所述系统镜像常驻段和所述第一签名整体加密,并将所述整体加密后的内容迁移至所述安全元件外部的存储器中。在该实现方式中,通过在服务器端对安全操作系统的镜像进行二次签名和加密,以将在服务器端划分好的系统镜像常驻段和系统镜像动态加载段进行合法性的分开保护,便于安全元件在进行合法性校验时,可以分开处理。不仅由于多了一次针对系统镜像常驻段的签名,从而更好的保证了系统镜像常驻段的安全性,而且,在安全元件首次加载并存储该系统镜像常驻段时,无需再重新进行签名,节省了安全元件的处理器的安全处理操作。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述处理器还用于:在所述存储器提供的存储空间中配置至少一个页框,所述至少一个页框中的每个页框被用于存储所述多页中的至少一页,且所述至少一个页框包含的页的个数小于所述多页包含的页的个数。该实现方式,在安全元件的存储器中预留较少的虚拟地址空间,用于为安全操作系统的系统镜像的动态加载部分预留灵活运行空间,不仅可以减少安全操作系统运行时存储器中所占用的空间,还可以灵活的加载需要运行的系统镜像的动态加载段中的页。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述处理器还用于:将所述至少一个页框配置为在所述处理器处于特权模式时允许读写。在该实现方式中,由于页框的作用是用于安全操作系统的动态加载段的分页加载,因此该页框可能会被频繁的读写、替换,因此被网络攻击者攻击的可能性也大大增加,但如果将该页框的属性配置为特权模式下才允许读写,那么则在该特权模式下,该页框由于属性设置,被或者攻击读写(窃取或篡改)的可能性将大大降低,因此可以进一步保证系统镜像动态加载段的加载运行的安全性。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述处理器还用于:在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。在该实现方式中,当安全元件中的处理器在需要读取系统镜像动态加载段中的多页中的任意一页时,则需要从外部存储器中读取该页,并进行安全验证,只有安全验证通过的页对应的数据才可以进行有效的物理地址映射,从而使得处理器可以有效读取到该页对应的数据。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,当所述安全处理包括加密和生成MAC时,所述安全验证包括:解密和验证MAC。在该实现方式中,安全元件中可以在安装或者升级安全操作系统时对系统镜像动态加载段进行分页加密和生成MAC,并且在启动加系统镜像的动态加载段中的任意一页时,需要进行对应的解密和验证MAC,以保证加载和运行于安全元件中的安全操作系统的安全性。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全程序还包括安全应用程序,所述安全应用程序包括应用程序常驻段和应用程序动态加载段,其中,所述应用程序常驻段在所述处理器运行所述安全应用程序时,常驻在所述存储器中;所述处理器还用于:将所述应用程序动态加载段分为多页,所述多页的每页包含所述应用程序动态加载段的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。在该实现方式中,依据上述第一方面中任意一项对安全操作系统的动态加载段的分页安全处理以及分页安全校验,也可以应用到对安全有需求,或者说是需要运行于安全元件中的安全应用程序中,即对安全应用程序划分的常驻段以及动态加载段中的动态加载段进行分页安全处理,相关的安全处理以及后续的安全校验的实现方式和有益效果,可以参考上述第一方面中任意一项实现方式的相关描述,在此不再赘述。
结合上述第一方面、第二方面或第三方面,在一种可能的实现方式中,所述安全程序还包括安全应用程序,所述处理器还用于:将所述安全应用程序分为多页,所述多页的每页包含所述安全应用程序的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。在该在该实现方式中,依据上述第一方面中任意一项对安全操作系统的动态加载段的分页安全处理以及分页安全校验,也可以应用到对安全有需求,或者说是需要运行于安全元件中的安全应用程序中,即将整个安全应用程序只划分为动态加载段进行安全处理,相关的安全处理以及后续的安全校验的实现方式和有益效果,可以参考上述第一方面中任意一项实现方式的相关描述,在此不再赘述。
第四方面,本发明实施例提供了一种计算设备,可包括:处理器和存储器;所述存储器,用于为所述处理器的运行提供存储空间;所述处理器,用于:将安全操作系统的镜像分为系统镜像常驻段和系统镜像动态加载段;对所述系统镜像常驻段生成第一签名;对所述系统镜像常驻段,所述第一签名和所述系统镜像动态加载段生成第二签名;其中,所述安全操作系统为设置于终端设备内部的安全元件所运行的操作系统。
通过第四方面提供的技术方案,计算机设备的处理器能够对安全操作系统的镜像进行划分,并且对划分的系统镜像常驻段和镜像动态加载段进行二次签名和加密,以保证该安全操作系统的镜像的安全性。
在一种可能的实现方式中,所述处理器,还用于控制所述计算设备向所述终端设备发送所述系统镜像常驻段,所述第一签名,所述系统镜像动态加载段,以及所述第二签名。该实现方式,计算机设备可以将安全操作系统的镜像安全的传输至终端设备侧。
第五方面,本发明实施例提供了一种安全处理方法,可包括:
终端设备将系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容,其中,所述系统镜像动态加载段为安全程序中包括的安全操作系统的部分镜像,所述安全操作系统的镜像包括系统镜像常驻段和所述系统镜像动态加载段,其中,所述系统镜像常驻段在所述终端设备的安全元件的处理器中运行所述安全操作系统时,常驻在所述安全元件的存储器中;所述终端设备对所述多页的每页进行安全处理;所述终端设备将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;所述终端设备在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
第六方面,本发明实施例提供了一种安全处理方法,可包括:
终端设备接收服务器发送的安全程序,所述终端设备包括安全元件,所述安全元件包括处理器和存储器,所述处理器和所述存储器集成在半导体芯片内,所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;
所述终端设备将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;
所述终端设备对所述多页的每页进行安全处理;
所述终端设备将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;
所述终端设备在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
第七方面,本发明实施例提供了一种安全处理方法,可包括:
终端设备接收服务器发送的安全程序,所述终端设备包括安全元件,所述安全元件包括处理器和存储器,所述处理器和所述存储器集成在半导体芯片内,所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;所述终端设备通过所述处理器将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;所述终端设备通过所述处理器对所述多页的每页进行安全处理;所述终端设备通过所述处理器将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;所述终端设备通过所述处理器在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
通过第七方面提供的技术方案,终端设备中的安全元件的处理器能够对安全操作系统的动态加载部分进行多页划分,并对多页中的每一页进行安全处理,然后存储至安全元件的外部存储器中,以保证在该动态加载部分在终端设备中得以安全运行。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全处理包括:加密和生成消息认证码MAC;其中,每页的加密密钥与所述页的虚拟地址相关联,不同页的加密密钥不同。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全处理还包括:对所述多页的多个MAC整体加密;或者对所述多页的每页的MAC分别加密,且不同MAC的加密密钥不同。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全元件还包括一次性可编程OTP;所述多页的每页的加密密钥与所述OTP的计数count值相关联;和/或所述多页的每页的MAC与所述安全元件的OTP的count值相关联。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全操作系统的镜像还包括对所述系统镜像常驻段的第一签名,以及对所述系统镜像常驻段、所述第一签名和所述系统镜像动态加载段的第二签名;所述方法还包括:所述终端设备校验所述第二签名,并在所述第二签名的校验通过后,对所述系统镜像常驻段和所述第一签名整体加密,并将所述整体加密后的内容迁移至所述安全元件外部的存储器中。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述方法还包括:所述终端设备在所述存储器提供的存储空间中配置至少一个页框,所述至少一个页框中的每个页框被用于存储所述多页中的至少一页,且所述至少一个页框包含的页的个数小于所述多页包含的页的个数。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述方法还包括:所述终端设备将所述至少一个页框配置为在所述处理器处于特权模式时允许读写。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述方法还包括:在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,当所述安全处理包括加密和生成MAC时,所述安全验证包括:解密和验证MAC。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全程序还包括安全应用程序,所述安全应用程序包括应用程序常驻段和应用程序动态加载段,其中,所述应用程序常驻段在所述处理器运行所述安全应用程序时,常驻在所述存储器中;
所述方法还包括:所述终端设备将所述应用程序动态加载段分为多页,所述多页的每页包含所述应用程序动态加载段的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
结合上述第五方面、第六方面或第七方面,在一种可能的实现方式中,所述安全程序还包括安全应用程序,所述方法还包括:所述终端设备将所述安全应用程序分为多页,所述多页的每页包含所述安全应用程序的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
第八方面,本申请提供一种半导体芯片,可包括:
上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件、耦合于所述安全元件的中央处理单元以及所述安全元件外部的存储器。
第九方面,本申请提供一种半导体芯片,可包括:
上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件。
第十方面,本申请提供一种片上系统SoC芯片,该SoC芯片包括上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件、耦合于所述安全元件的中央处理单元和所述安全元件的外部存储器。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第十一方面,本申请提供一种芯片系统,该芯片系统包括:包含上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件的芯片,以及包含耦合于所述安全元件的中央处理单元和所述安全元件的外部存储器的第二芯片。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第十二方面,本申请提供一种芯片系统,该芯片系统包括包含上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件以及耦合于所述安全元件的中央处理单元的第三芯片,和包含所述安全元件的外部存储器的第四芯片。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第十三方面,本申请提供一种终端设备,该终端设备包括安全元件、耦合于所述安全元件的中央处理单元和所述安全元件的外部存储器;所述安全元件包括处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;所述处理器,用于:将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;对所述多页的每页进行安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
第十四方面,本申请提供一种终端设备,该终端设备包括安全元件、耦合于所述安全元件的中央处理单元和所述安全元件的外部存储器;所述安全元件可包括:处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段;其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中,所述系统镜像动态加载段被分为多页,且所述多页的每页内容均已经过安全处理;所述处理器,用于:在运行所述安全操作系统时,将所述多页的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
第十五方面,本申请提供一种终端设备,该终端设备包括上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件,以及所述安全元件的所述外部存储器,其中,所述安全元件与所述安全元件外部的存储器被设置在不同的半导体芯片内。
第十六方面,本申请提供一种终端设备,该终端设备中包括上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件、所述安全元件的所述外部存储器,以及耦合于所述安全元件的中央处理单元。所述外部存储器用于存储安全程序和其它必要的程序指令和数据,所述中央处理单元用于运行该终端设备必要的通用操作系统,且用于与安全元件耦合完成安全操作系统在安全元件中的安装与运行。该终端设备还可以包括通信接口,用于该终端设备与其他设备或通信网络通信。
第十七方面,本申请提供一种计算机存储介质,用于储存为上述第十三方面至第十六方面提供的终端设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第十八方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面、第二方面和第三方面以及结合上述三个方面中的任意一种实现方式所提供的安全元件中的处理器和存储器所执行的流程,或者执行上述第五方面至第七方面以及结合上述方面的任意一种实现方式所提供的安全处理方法的流程。
附图说明
图1是本发明实施例提供的一种安全程序的安装升级系统架构图;
图2是本发明实施例提供的一种包括安全元件和中央处理单元的简化的终端设备的结构示意图;
图3a为本发明实施例提供的一种安全处理方法的流程示意图;
图3b为本发明实施例提供的通用镜像结构示意图;
图4为本发明实施例提供的一种系统镜像二次签名示意图;
图5为本发明实施例提供的系统镜像迁移至外部存储中的结构示意图;
图6为本发明实施例提供的外部存储器和安全元件的存储器之间的映射关系示意图;
图7为本发明实施例提供的根据虚拟地址进行分页加密的示意图;
图8为本发明实施例提供的MAC整体加密的示意图;
图9为本发明实施例提供的系统镜像从外部存储器迁移至安全元件的存储器的映射关系图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)、系统级芯片(System on Chip,SoC),SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
(2)、随机存取存储器(Random Access Memory,RAM),它相当于PC机上的移动存储,用来存储和保存数据的。它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)。
(3)、内存管理单元(Memory Management Unit,MMU),它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。
(4)、双倍速率同步动态随机存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM),简称DDR,本申请中的DDR是与安全元件分布在不同半导体上的存储器,本申请中的安全元件中的处理器不能直接读取该DDR内存储的数据,需要在外部元器件IPC&RAM或者是中央处理器CPU等子系统协助访问。
(5)、分页技术,虚拟内存管理技术中最常见的是分页(paging)技术,MMU就是该技术的硬件实现。虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页框(frame),页和页框的大小必须相同,页与页框之间在MMU的调度下进行映射。
(6)、物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。
(7)、物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32bits地址线的x86处理器中,物理地址空间是2的32次方,即4GB,但物理RAM一般不能上到4GB,因为还有一部分要给总线用(总线上还挂着别的许多设备)。在PC机中,一般是把低端物理地址给RAM用,高端物理地址给总线用。
(8)、内存管理单元(Memory Management Unit,MMU)它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。本申请中的安全元件中的处理器中包含该MMU。
(9)、消息验证码(message authentication code,MAC),MAC是通信实体双方使用的一种验证机制,是保证消息数据完整性的一种工具。MAC类似于摘要算法,但是它在计算的时候还要采用一个密钥,因此MAC是基于密钥和消息摘要所获得的一个值,实际上是对消息本身产生一个冗余的信息,可用于数据源认证和完整性校验。
(10)、操作系统的镜像文件:是对操作系统的所有数据克隆获得的文件。通常地,操作系统的镜像文件的文件后缀是″.ISO″,可以利用ULtraISO、PowerISO等软件进行编辑处理。操作系统的镜像文件中包含系统文件、引导文件、分区表信息等,这样操作系统的镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。
(11)、非对称加密,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey),简称公钥和私钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥向其它方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
(12)、对称加密,又称为对称密钥加密或专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。即加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。
(13)数字签名,简称签名。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过。因此数字签名能够验证信息的完整性。数字签名是个加密的过程,数字签名验证是个解密的过程。
从上述对对称密钥算法和非对称密钥算法的描述中可看出,对称密钥加解密使用的同一个密钥,或者能从加密密钥很容易推出解密密钥;对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等特点,非对称密钥算法具有加解密速度慢的特点,密钥尺寸大,发展历史较短等特点。
为了便于理解本发明实施例,本发明实施例提供一种系统架构进行描述。图1是本发明实施例提供的一种安全程序的安装升级系统架构图,请参阅图1,该系统架构中可包括终端设备10和服务器11,终端设备10通过服务器11获取安全程序从而进行安全程序的安装、运行或升级。终端设备10中可包括安全元件101,可选地,还可以包括移动通信单元/无线通信单元102和中央处理单元103。可选地,如图1所示,安全元件101、中央处理单元103和移动通信单元/无线通信单元102可以位于一个集成电路衬底上,即成为一块主芯片105上。安全元件101具体通过串行外设接口(Serial Peripheral Interface,SPI)与主芯片105中的中央处理单元103通信。其中,
安全元件101,即为本申请中安全元件,可以是与一个独立的中央处理单元(Central Processing Unit,CPU)103相耦合的部件,用于运行安全业务相关的各类功能,例如,运行安全程序(包括安全操作系统和安全应用程序),并存储与运行安全程序相关的密钥、证书等数据等。
移动通信单元/无线通信单元102,用于中央处理单元103通过无线接入网(RadioAccess Network,RAN)12利用移动通信网络从服务器11处获取安全程序,或者通过无线网络14从服务器处获取安全程序,所述互联网与位于互联网中的服务器11连接。此时,移动通信单元102可以是一个运行无线蜂窝通信协议的单元,用于将移动终端设备10通过蜂窝无线通信链路13接入互联网;或者无线通信单元102是一个运行无线网络通信协议的单元,用于将移动终端设备10通过无线网络通信链路14接入互联网。移动通信单元102具体可运行全球移动通信(Global System for Mobile,GSM)、通用移动通信系统(Universal MobileTelecommunications System,UMTS)、全球微波互联接入(Worldwide Interoperabilityfor Microwave Access,WiMAX)或长期演进(Long Term Evolution,LTE)等蜂窝无线通信协议以实现移动终端设备10的移动互联网功能;或者,无线通信单元102具体可以运行蓝牙通信、红外通信、无线保真(Wireless Fidelity,WiFi)协议以实现移动终端设备10的无线互联网功能。
中央处理单元103,用于从服务器11侧获取安全程序。且运行有操作系统软件1031,例如安卓(Android)、IOS等系统软件,其用于耦合并配合安全元件101进行相关的安全业务,例如,控制打开或关闭安全元件101、将安全程序传输给安全元件进行安装、运行或升级等。
此外,终端设备10可进一步包括输入单元104,输入单元104可以是触摸屏,用于通过一个用户界面(User Interface,UI)来与用户交互消息,使得用户可以通过UI在输入单元104上输入操作指令,以便指示操作系统软件1031和相关应用软件执行相关操作,如安全操作系统/安全应用程序的下载、更新、升级等。
服务器11,可用于对安全操作系统的镜像,包括系统镜像常驻段和系统镜像动态加载段,或者安全应用程序包括应用程序常驻段和应用程序动态加载段进行安全处理,并进行存储。
作为对图1中部分内容的细化,图2是本发明实施例提供的一种包括安全元件和中央处理单元的简化的终端设备的结构示意图,该安全元件和中央处理单元可以位于一个终端设备10内。该终端设备10可以是一个用户设备(User Equipment,UE),如手机、平板电脑等各种类型的便携式终端设备。该终端设备10包括第一半导体芯片IC1和第二半导体芯片IC2,所述第一半导体芯片IC1包括:安全元件101和耦合于所述安全元件101的一个或多个通用中央处理单元103。安全元件101包括处理器1011和存储器1012,可选地还包括DMA(直接内存访问)控制器1013和安全处理单元1014。其中,
处理器1011,用于安装或运行安全操作系统软件和基于所述安全操作系统软件的安全应用程序。以及对安全操作系统进行安全处理和安全校验。
存储器1012,用于临时存储运行所述安全操作系统软件和所述安全应用程序所产生的安全临时数据;可以理解为安全元件中的RAM,即存储器1012为所述处理器1011提供运行所述安全操作系统或者安全应用程序所需的内存空间。该存储器1012可以是一个易失性存储器(Random Access Memory,RAM)。
可选地,如图2所示,所述安全元件101中还包括DMA(直接内存访问)控制器1013,用来控制实现在所述存储器1012和外部存储器108/109之间的数据迁移。该DMA控制器1013是一个独立于处理器1011的部件,专门用来做安全元件101内部临时数据至外部其他设备或接口的迁移,无需处理器1011承担相应的数据迁移功能,处理器1011在此情况下只需要做好安全程序的运行和处理,由DMA控制器1013实现数据迁移。进一步地,所述安全元件101中还可以包括安全处理单元1014,其作用是用来做加解密、MAC或解MAC等安全运算处理等安全类功能。与前述实现方式中直接通过所述处理器1011进行安全处理和安全校验不同,本实现方式中的安全处理单元1014是一个独立于所述处理器1011的单元,专用于加解密或MAC、解MAC等安全运算,性能更加优化。可选地,所述安全元件101中的所述处理器1011、DMA控制器1013和安全处理单元1014可以被视为一个整体,即带有处理运算功能的处理器1011,而存储器1012则作为该处理器的内存被使用。
中央处理单元103,例如,可以是一个ARM处理器用于运行通用操作系统软件,如安卓系统,并在该通用操作系统软件的作用下与所述安全元件101通信。进一步参见图2,第一半导体芯片IC1内还可包括存储控制器106和随机存储器107。中央处理单元103、随机存储器107和存储控制器106可以包含在一个通用处理器系统100中,该通用处理器系统100能够基于通用操作系统软件和普通应用软件运行,并且还可选择性的工作于TEE环境。由于该通用处理器系统100不能直接访问或直接读取安全元件101内的数据,通用处理器系统100通过随机存储器107与安全元件101交互数据,并遵循IPC协议。
进一步参见图2,相关存储设备位于第二半导体芯片IC2内,该存储设备可存储所述至少一个中央处理单元103运行的通用操作系统,和所述安全元件101运行的安全操作系统,或者上述操作系统运行时的中间数据或临时数据。因此外部存储设备可以为外部存储器108(外部非易失性存储器NVM),例如,可以是回环保护存储分区(Replay ProtectMemory Block,RPMB)存储器。进一步地,存储设备还可以包括外部存储器109(易失性存储设备),可以为外部DDR,如SRAM(静态随机存储器)、DRAM(动态随机存储器)或SDRAM(同步动态随机存储器)等随机存储器,并且优选地是DDR SDRAM。
需要说明的是,当在安全元件101中的存储器1012和置于第二半导体芯片IC2上的外部存储器108/109之间交互相关安全数据的时候,例如实现本发明实施例所述的安全操作系统的系统镜像常驻段和系统镜像动态加载段等的迁移,所述数据迁移要经过随机存储器107。具体地,处理器1011或DMA控制器1013用来从存储器1012读取安全程序的数据并向随机存储器107写入该数据。存储控制器106可以是一个DMA控制器,该DMA控制器可以在TEE环境下用来将随机存储器107的临时数据写入外部存储器108/109中,以实现从安全元件101至外部存储器108/109的临时数据的迁移。迁移完成之后该临时数据可以被处理器1011或DMA控制器1013或存储控制器106从存储器1012中删除。可替换地,中央处理单元103可代替存储控制器106实现将相关数据写入外部存储器108/109的安全存储区域的功能。因此本发明实施例中的处理器1011或DMA控制器1013执行的数据迁移至外部存储器108/109不仅包括直接向外部存储器108/109迁移数据,也包括通过中断指令或IPC协议指令做控制以通过第三方随机存储器在存储器1012和外部存储器108/109间实现双向的数据迁移。
可选地,在图2中,该随机存储器107位于通用处理器系统100,实际上,随机存储器107也可以位于安全元件101中,本实施例对此随机存储器107的位置不做限定。
还需要说明的是,在本申请中,通用中央处理单元103运行的通用操作系统软件与所述安全元件101之间存在安全隔离。在本揭露文件中,所述安全隔离是指限制对所述安全元件101的访问。因此安全隔离可以被理解为是一种系统间的访问权限控制手段。通用中央处理单元103运行的通用操作系统软件与所述安全元件101之间存在安全隔离是指,限制所述通用中央处理单元103所运行的所述通用操作系统软件或基于所述通用操作系统软件的普通应用软件对所述安全元件101或其中的存储器1012的访问。或者说,在所述安全隔离的影响下所述通用操作系统软件或普通应用软件无法访问所述安全元件101或所述存储器1012。假设具有多个基于通用操作系统软件的普通应用软件,则至少其中的部分应用软件对所述安全元件101的访问是被限制的。例如,由所述通用中央处理单元103运行的该通用操作系统软件或基于所述通用操作系统软件的至少一个普通应用软件不能读取或更改所述安全元件101正在执行的数据或所述存储器1012临时存储的数据,也不能向存储器1012写入数据,以实现安全性。
可以理解的是,本发明实施例具体所应用的系统架构包括但不仅限于基于图1中的安全程序的安装升级系统架构,只要可以应用本申请中的安全元件进行安全程序的相关处理的架构均属于本申请所保护和涵盖的范围。
下面将结合图1和图2对应的终端设备的结构以及安全元件的结构,对安全元件101中的处理器1011和存储器1012的功能,进行进一步地说明。可以理解的是,基于上述图2中的安全元件101的结构,部分由处理器1011或者存储器1012执行或完成的功能也可以是安全元件1013中的直接内存访问控制器1013或安全处理单元1014来完成的,后续不再赘述。
在本申请中,安全元件所需要加载和运行的安全操作系统,为计算设备(例如服务器或者云端服务器等为手机的安全元件提供安全操作系统的服务商设备)针对还没有安装安全操作系统的终端设备,提供的安全操作系统。并且,在终端设备的后续使用过程当中,针对安全操作系统的升级、更新等操作(即第一次安装或者是系统升级),都需要服务器提供对应的安全操作系统。
为便于说明,本实施例给出了一个如图3a所示的一种安全处理方法的流程图。在相关流程中,服务器与终端设备之间进行安全程序的传输,之后终端设备通过内部的安全元件中的处理器对接收到的安全程序进行安全处理。所述安全处理流程的简要步骤可包括:
S301:终端设备接收服务器发送的安全程序。
其中,所述终端设备包括安全元件,所述安全元件包括处理器和存储器,所述处理器和所述存储器集成在半导体芯片内,所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中。
S302:所述终端设备通过所述处理器将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容。
S303:所述终端设备通过所述处理器对所述多页的每页进行安全处理。
S304:所述终端设备通过所述处理器将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
S305:所述终端设备通过所述处理器在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
基于上述方法流程,以下对上述方法流程中所涉及到的执行主体服务器以及终端设备(安全元件)对应的功能进行描述。需要说明的是,本申请中所提供的计算机设备可以为上述服务器。
本申请中,服务器(本申请中计算机设备中的一种)可包括:处理器和存储器;所述存储器用于为所述处理器的运行提供存储空间;所述处理器用于:将安全操作系统的镜像分为系统镜像常驻段和系统镜像动态加载段;对所述系统镜像常驻段生成第一签名;对所述系统镜像常驻段,所述第一签名和所述系统镜像动态加载段生成第二签名;其中,所述安全操作系统为设置于终端设备内部的安全元件所运行的操作系统。
在一种可能的实现方式中,所述处理器还用于控制所述计算设备向所述终端设备发送所述系统镜像常驻段,所述第一签名,所述系统镜像动态加载段,以及所述第二签名。
例如,本申请中的以服务器可以将该安全操作系统的镜像文件中的RO Data段和Text段进行系统镜像常驻段和系统镜像动态加载段的划分,数据段则不进行划分,即后续直接加载到安全元件的RAM中的只有系统镜像常驻段,而系统镜像动态加载段只有在需要执行对应功能的时候才加载对应的部分数据到安全元件的RAM中。而具体的划分标准则可以按照操作系统中的功能,例如,系统启动后必须的功能对应的代码和数据则为常驻段,可能会使用到的功能则为系统镜像动态加载段,不仅节省了OS在加载过程中占用RAM的大小,并且随着镜像越大,可以将增加的功能部分尽量放在系统镜像动态加载段,常驻部分则可以保持不变,从而使得RAM内的系统镜像区大小趋于固定。
针对上述涉及的为何只对镜像文件中的RO Data段和Text段进行常驻段和动态加载段的划分,以下进行说明。由于现有技术中,可执行程序包括以符号开始的块(BlockStarted by Symbol segment,BSS segment)段、数据段、代码段(也称文本段)。因此通用镜像主要包括,数据段、只读数据段以及程序执行指令段,如图3b所示,图3b为本发明实施例所提供的通用镜像结构示意图,其中,
(1)数据段,包括读写数据段(Read-Write Data segment,RW Data segment)和BSS段。其中,
RW Data又称已初始化的数据,RW Data段表示可以读也可以写的数据区,通常用来存放已初始化的全局变量和局部静态变量。并且,RW Data段占用空间很小。
BSS又称未初始化的数据,BSS段是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是可读写的,在程序执行之前BSS段会自动清0。并且,BSS段占用空间很小。
例如:在函数中定义static char b[100]={“ABCDEFG”};读写数据区的特点是必须在程序经过初始化,如果只定义,没初始值,则不会生成读写数据区,而会定位为未初始化数据区(BSS)。
(2)只读数据段(Read-only Data segment,RO Data segment),RO Data段的特点是在运行中不需要改变。包括只读全局变量,只读局部变量,通常程序中使用的常量等会在编译时被放入到只读数据区。
(3)程序执行指令段,简称代码段(Text/Code segment),代码段由各个函数产生,函数的每一个语句将最终经过编绎和汇编生成二进制机器代码(具体生生哪种体系结构的机器代码由编译器决定)。占用的空间很大,且属于只读性质的,不能被修改,通常包含一些字符串常量。
以上为通用镜像文件中所包含的内容,基于上述,由于数据段整体占用空间较小,且均为可读可写区域,因此在程序运行过程中对应的数据可能会发生变化。所以本申请不针对该部分再划分为系统镜像常驻段或系统镜像动态加载段,而是加载后直接读取到RAM中,以免频繁的I/O读取,导致运行效率低下。而由于RO Data段和Text段,都为只读性质的,且RO Data段和Text段占用空间较大,因此将该部分划分为系统镜像常驻段和系统镜像动态加载段。当然,可以理解的是,对于上述数据段也可以采用本申请中的动态加载方法,具体的实施方式,可以参照系统镜像动态加载方式的相关描述,在次不再赘述。
综上,本申请中操作系统镜像(Operating System,OS image)在初始化后,在RAM中所占用的操作系统镜像(Operating System,OS image)区,可以包含数据段、RO Data系统镜像动态加载段、RO Data系统镜像常驻段、Text系统镜像动态加载段和Text系统镜像常驻段。具体地,数据段、RO Data系统镜像常驻段以及Text系统镜像常驻段,可以在OS启动后固定映射在物理内存中,占用实际物理空间。例如,处理地址的异常中断的函数必须常驻内存区,热点函数以及热点只读数据段也需要常驻内存区,避免执行性能高要求的功能时要不断切换从外部加载数据,影响实时性能。又例如,由于OS中,通常有一些内核的主要模块(或组件),比如:存储管理、进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等”。这些都可以作为系统镜像文件中的系统镜像常驻段。
RO Data系统镜像动态加载段和Text系统镜像动态加载段,初始化时可以先不加载至内存,即不加载进物理空间。例如,操作系统镜像文件中的系统镜像动态加载段可以包括系统管理麦克风、管理摄像头、管理音频、计算器、蓝牙等对应的程序或数据。当处理器需要执行到对应的RO Data系统镜像动态加载段和/或Text系统镜像动态加载段时,才从外部存储器加载至安全元件的RAM中。可以理解的是,此时,需要在安全元件的RAM中为这些动态加载的RO Data段和/或Text段提前预留固定pages(pages数目固定且较小)即RAM中仅保留固定数的pages空间。
进一步地,服务器端在对安全操作系统镜像进行了系统镜像常驻段和系统镜像动态加载段的划分之后,还需要对安全操作系统镜像经过安全处理,即保证安全操作系统源头的安全性。针对服务器制作安全操作系统镜像的过程,服务器可以执行并完成如下功能。
可选地,安全操作系统的镜像还包括对系统镜像常驻段的第一签名,以及对系统镜像常驻段、第一签名和系统镜像动态加载段的第二签名。即服务器针对安全操作系统镜像需要制作两道签名;如图4所示,图4为本发明实施例所提供的一种系统镜像二次签名示意图。首先,对镜像1(包括系统镜像常驻段和固定映射区域填充值)的范围做一次镜像签名(镜像1签名);再将镜像1,镜像1签名,动态加载段作为镜像2,做第二次签名(镜像2签名),然后再对镜像2和签名2(也即是整体镜像+签名1+签名2)整体做一次加密(可用对称密钥加密)。其中,签名1和签名2均为非对称密钥,服务器端持有私钥进行签名,安全元件的处理器持有公钥进行校验。
至此,针对服务器侧来说,完成了包括了划分安全操作系统的镜像并进行签名加密的过程;而对于终端设备侧(后续以手机为例)来说,从使用的时序来看,可以包括安装安全操作系统、启动运行安全操作系统,升级安全操作系统等过程。
针对手机侧(安全元件)中的安全元件安装或升级上述安全操作系统的过程来说,由于手机侧从服务器下载安全操作系统镜像文件,需要经过安全元件的处理器的校验(如此,才可以确定该系统镜像的合法性),所以必须先经过加载到安全元件的存储器(可选地,以RAM为例)中,再烧写至安全元件的外部存储器(可选地,以NVM为例)中。在该过程中,安全元件首先需要对加载进处理器中的安全操作系统进行解密和校验,其中,处理器可执行或者完成以下功能。
在一种可能的实现方式中,安全操作系统的镜像还包括对系统镜像常驻段的第一签名,以及对系统镜像常驻段、第一签名和系统镜像动态加载段的第二签名;安全元件的处理器还用于:校验第二签名,并在第二签名的校验通过后,对系统镜像常驻段和第一签名整体加密,并将整体加密后的内容迁移至安全元件外部的存储器中。具体地,由于在服务器端,已经将安全操作系统的镜像文件划分为常驻段和系统镜像动态加载段,并且经过两次签名和一次加密,因此,进一步地,对于手机侧来说,手机在获取到该安全操作系统的镜像文件之后,需要将经过签名和加密的安全操作系统镜像进行解密和校验,以验证从服务器端获取的安全程序是合法完整的。例如,安全元件中的处理器1011将通过通用处理器系统100获得的上述经过签名和加密的镜像文件,整体加载到安全元件内部的RAM 1012中,先利用安全元件内部存储的对称密钥进行整体解密,再通过事先所持有的公钥(即提前知道的,事先与服务器协商好)校验第二签名的,以验证镜像文件的合法性(包括真实性和完整性)。进一步地,在上述安全元件在对加载进处理器中的安全操作系统进行解密和校验之后,仍然需要在内部保证安全操作系统镜像在手机内部的安全,包括保证操作系统的升级安全以及操作系统的加载运行安全等。因此,安全元件的处理器需要在将安全操作系统烧录至安全元件的外部存储器中时,重新对系统镜像常驻段和系统镜像动态加载段分别做安全处理,可以执行或者完成以下功能。
针对系统镜像常驻段:
镜像2签名校验通过后,针对镜像1,由于进行上述整体解密后,此时解密后的文件包括(明文镜像1+镜像1签名),若直接烧写到外部NVM中,此时虽然可以保证镜像1的合法性,但无法保证镜像1的私密性。因此,需要在烧写至NVM之前,在安全元件的处理器中对(明文镜像1+镜像1签名)进行重新加密。其中,重新加密仍然可以使用对称密钥进行加密,并且,该对称密钥可以是存储在安全元件内部的本地密钥。至此,安全元件中的处理器完成了将镜像1以先签名后加密的形式,烧写并存储在NVM中的过程。
针对系统镜像动态加载段:
镜像2签名校验通过后,针对镜像1’(镜像2中除去镜像1以及签名1部分),由于进行上述整体解密且校验了签名2之后,此时只有明文镜像1’。因此在将镜像1’部分烧写至NVM之前,在安全元件中的处理器需要对明文镜像1’同样进行加密和签名的处理,以保证镜像1’部分存储在NVM中的合法性和私密性。但是不同于上述镜像1,直接对其整体的进行签名和加密,因为镜像1中的文件是常驻内存区域,在后续启动加载过程中,只需要直接将其从NVM中加载至RAM中即可,而镜像1’中的是系统镜像动态加载段,该区域内的代码段或者RO-DATA,是在启动后,被灵活动态调度至内存中运行的,因此极有可能每次只取其中一小段,或者几小段。所以,为了保障系统镜像动态加载段的代码段或者RO-DATA的安全性,本申请提供一种分页加密的方式对该系统镜像动态加载段内的所有数据进行划分,并将划分后的页分别进行安全处理再存储。如图5所示,图5为本发明实施例所提供的系统镜像迁移至外部存储中的结构示意图。
在一种可能的实现方式中,处理器可以用于将系统镜像动态加载段分为多页,多页的每页包含系统镜像动态加载段的部分内容;处理器还对多页的每页进行安全处理;将经过安全处理后的每页迁移至安全元件外部的存储器中。可选地,安全处理包括:加密和生成消息认证码MAC。由于其中的MAC的作用类似于签名,只是由于采用的是对称密钥,所以计算量和计算复杂度相较于签名的非对称密钥,会大大减小,适用于本申请中的分页加密(因为分页之后加密次数多)。
该镜像1’部分在安全元件内安全元件的处理器经过分页加密,并且经过MAC处理之后,至此,已经完成了对镜像1’的加密和加MAC操作,此时,安全元件的处理器将该经过安全处理的镜像1’烧写至NVM中。可选地,在烧写到NVM中时,可以将分页加密区与分页加密的MAC数据分开存放,即可以将所有分页的MAC整体存放在不同于分页加密区的其它区域。如图6所示,图6为本发明实施例提供的外部存储器和安全元件的存储器之间的映射关系示意图,图中的MAC可以理解为分开存储和分开获取。在一种可能的实现方式中,安全处理还包括:对多页的多个MAC整体加密;或者对多页的每页的MAC分别加密,且不同MAC的加密密钥不同。具体地,处理器可以对MAC本身进行私密性保护,进一步保证系统镜像动态加载段的安全性。
以下示例性说明本申请中是如何对系统镜像动态加载段进行分页加密和MAC的。
首先,安全元件中的处理器将系统镜像动态加载段中的镜像文件1’按照每一页(page)4K字节(可以理解的是也可以为其它字节)来划分,例如,系统镜像动态加载段的镜像大小为100K,则该镜像可以被分为25页。
然后,针对镜像1’中的分页,每一页都计算MAC,可选地可以采用对称密钥以及AES-CMAC算法或者SHA256算法。对分页做MAC,例如,4K明文做MAC后,MAC为32字节/16字节,再加密变成32/16字节的密文。最终,对于100KB镜像,MAC约800/400字节。然后,对每一页的4K明文进行加密,例如,加密之后成为4K密文,可选地,该加密密钥为对称密钥,并且保存在安全元件的内部。可选地,对于镜像1’中的分页,分页本身需要加密,分页对应的MAC也需要加密,并且分页本身加密的密钥与MAC加密的密钥可以相同,也可以不同。若密钥相同,则可以直接将(分页明文+MAC)整体加密;若密钥不同,则将分页明文进行加密,然后再对计算出来的MAC进行加密。例如,如果整个MAC区域较小,也可以启动时一次性MAC区全部搬到安全元件RAM的固定位置并校验成功后常驻,避免每次缺页中断都搬运并校验,提升性能。
进一步地,每一页加密的密钥都与该页的虚拟地址相关联,不同页的加密密钥不同。可以防止出现页之间的错误解密,导致解密混乱,进一步保证安全。例如
1、安全元件(假设为安全元件芯片)内部有每台设备唯一的对称密钥Kroot,这个密钥是仅安全元件内部可以获取,外部无法获取。
2、每页的数据密钥,可以采用如图7所示的方式进行处理,图7为本发明实施例所提供的根据虚拟地址进行分页加密的示意图。
3、首先Kroot和固定的常量Idyn进行高级加密标准(Advanced EncryptionStandard,AES)运算,派生出Kdyn;这个Kdyn就是用于动态加载分页的主密钥。
4、每个页的密钥用它地址的值与Kdyn进行AES再次运算派生即可得到每页的不同key。
再进一步地,在分页加密和计算MAC的过程中,都需要使用安全元件内部的一次性可编程(One Time Programmable,OTP)的镜像防回退区段的技术函数count值带入,防止回退。
在一种可能的实现方式中,安全元件还包括一次性可编程芯片OTP;多页的每页的加密密钥与OTP的计数count值相关联;和/或多页的每页的MAC与安全元件的OTP的count值相关联。分页数据安全处理:MAC和OTP的count值参与计算的方法:
1、安全元件内部有每台设备唯一的对称密钥Kroot,这个密钥是仅安全元件内部可以获取,外部无法获取。
2、MAC区域作为一个整体进行加密即可,一种方案是将MAC区加密的Key与OTPcount关联。如图8所示,图8为本发明实施例所提供的MAC整体加密的示意图。
3、首先Kroot和固定的常量Imac(与上述Idyn不同)进行AES运算,派生出Kmac_1;然后Kmac_1和OTP count value再次用AES运算派生Kmac,作为MAC的加密密钥即可。
需要说明的是,与count关联的方式有很多种。比如otp count和4K的分页内容进行异或,或其他逻辑计算后再用sha256等MAC算法进行计算;或者将4K分页内容的SHA256值Hash后的结果与OTP count异或都可以。
至此,安全元件的处理器已经完成了(镜像1+镜像1签名)的加密,以及多个(镜像1’的分页加密+MAC)的全部烧写。即手机从服务器端获取了安全操作系统镜像并在安全元件的RAM内经过安全验证,再烧写至NVM中。因此,NVM中存储有上述经过签名加密的镜像1和经过分页加密加MAC的镜像1’。
针对手机侧中的安全元件在安装或升级了上述安全操作系统的过程之后,需要运行安全操作系统时,则将存储于安全元件的外部存储器中的操作系统镜像加载至安全元件的存储器中运行。但是由于为了保证安全操作系统的安全性,因此之前在烧录进安全元件的外部存储器中时已经经过了安全处理,因此再次启动运行时,需要将加载进存储器中的镜像进行安全校验。以下针对当镜像1和镜像1’对应的操作系统部分需要启动时,是如何进行安全加载的分别进行阐述。在该过程中,安全元件首先需要对加载进处理器中的安全操作系统进行解密和校验,其中,处理器可执行或者完成以下功能。
在一种可能的实现方式中,当所述安全处理包括加密和生成MAC时,所述安全验证包括:解密和验证MAC。
例如,安全操作系统启动时,安全元件的处理器会将经过加密的(镜像+镜像1签名)直接加载到安全元件内部的RAM。而对于多个(镜像1’的分页加密+MAC(加密))则暂时先不加载到处理器中。原因在于,安全元件内的RAM的大小有限,但是系统镜像却越来越大,所以,在本申请中,将操作系统镜像文件(除数据段以外)分为了系统镜像常驻段和系统镜像动态加载段,系统镜像常驻段则在镜像1中,在系统启动时直接加载到安全元件的RAM中,而系统镜像动态加载段则在镜像1’中,在操作系统启动时暂时先不加载至安全元件的RAM中,而是加载到外部易失性存储器NVM中,等需要加载的时候,从外部易失性存储器(例如DDR)中加载至内部RAM中;或者,系统镜像动态加载段在镜像1’中,在操作系统启动时暂时先不加载至安全元件的RAM中,是保留在外部NVM中,等需要加载的时候,直接从外部NVM中加载至安全元件的RAM中。图9为本发明实施例所提供的系统镜像从外部存储器迁移至安全元件的存储器的映射关系图。
具体地,针对安全操作系统启动时,对于镜像1来说。
在一种可能的实现方式中,安全元件的处理器用于将所述经过加密的(镜像+镜像1签名)直接从外部NVM中整体加载到内部RAM中,实际占用内部RAM空间。然后利用安全元件内部存储的对称密钥,对其进行解密,然后利用与签名1对应的公钥进行校验。当解密和校验均通过后,则对RAM中的MMU页表进行同步配置,将加载进RAM中的镜像1部分中的代码段和RO-DATA段的所有虚拟地址全部映射到安全元件内部的有效物理页,至此,安全元件的处理器可以正常运行该镜像1对应的代码段和RO-DATA段。
其次,针对安全操作系统启动时,对于镜像1’来说;
在一种可能的实现方式中,所述处理器用于:在存储器提供的存储空间中配置至少一个页框,至少一个页框中的每个页框被用于存储多页中的至少的一页,且至少一个页框包含的页的个数小于多页包含的页的个数。进一步地,所述处理器还用于:在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。具体地,处理器在加载动态加载段中的某一页,并判断出所述该的虚拟地址在存储器中未有效映射时,从外部存储器中获取该页中数据,并该页中的数据加载至存储器中的指定物理页框中,以及将该对应的MAC加载至存储器中;并进行解密和计算MAC,当MAC匹配后,将该页的虚拟地址映射到该指定物理页框对应的物理地址。
假设,安全元件的处理器会将所述多个(镜像1’的分页加密+MAC(加密))直接从外部NVM整体加载到外部DDR中,此时不需要进行任何的校验和解密的处理。因为本申请中的所有加密解密以及签名和校验都只在安全元件的内部的处理器中来做的。
假设,将所述多个(镜像1’的分页加密+MAC(加密))继续存储在外部NVM中,不作任何处理,只在真正需要加载的时候,才从NVM中直接加载至内部RAM中。
当安全元件的处理器运行到系统镜像动态加载段时,由于处理器中该当程序执行到动态代码段或获取动态RO-DATA段后,地址未有效映射,出现硬件Halt或缺页异常中断(根据安全元件的MMU或地址映射设计报错方式不一样);安全元件的处理器中的MMU的调用中断处理函数,判断缺页映射的地址,即此时处理器基于ARM的机制获知到对应的缺页的虚拟地址,并从DDR或者NVM中,查找到将该page对应的数据,再从DDR或者NVM中将目标页搬运到安全元件RAM的固定page区,最终将该目标页对应的MAC或者所有的MAC加载到安全元件中的RAM中的指定物理空间,解密该页并计算MAC,解密和校验通过后,则有效并放入固定pages的一页,再配置MMU表,将该目标页的虚拟地址映射到该物理page,即固定pages区,最终完成虚拟地址与物理地址的映射。最后,安全元件中的处理器回到异常中断的上下文,程序正常运行。
可选地,也可以在安全操作系统升级时,先将整个镜像文件全部烧写到外部存储器中,此时不进行解密和校验,等到需要系统启动的时候,再将整个镜像文件全部加载到内存中,先进行解密,然后验证签名2,认证通过后,需要再次验证镜像1的签名。并且此时,镜像1(系统镜像常驻段)已经可以正常运行之后,将经过解密和校验的镜像2系统镜像动态加载段,进行分页加密和MAC,然后存储至外部NVM或者DDR中,释放RAM的空间,等到需要加载时,则再次加载,解密以及校验,再正常运行。
需要说明的是,本申请中的系统升级是指,升级整个安全操作系统对应的系统镜像。而针对以打补丁方式的更新,则也可以在服务器端,将需要更新的补丁以系统镜像常驻段和系统镜像动态加载段进行划分,从而在更新的时候可以参照上述安全元件进行动态加载以及安全处理等操作。
至此,安全元件的处理器完成了安全操作系统的安装、启动运行等操作。
针对上述任一种实施方式,在一种可能的实现方式中,由于处理器一般由USER模式和Privilege模式即特权模式。为了系统安全,上述至少一个页框(固定pages)可选的,也可以为所有页框的内存属性需要配置为特权模式下可以读写,地址映射表即MMU的页表区段,MMU的寄存器配置也是仅特权模式可以访问;本发明中同时要求系统的内核处理MMU页表配置,其他所有程序均放在USER态。
针对上述任一种实施方式,进一步地,所述系统镜像动态加载段包括代码系统镜像动态加载段和只读数据系统镜像动态加载段;和/或,所述常系统镜像常驻段包括代码系统镜像常驻段段和只读数据系统镜像常驻段。即进一步的,将系统镜像常驻段和系统镜像动态加载段进一步细化为,代码段和只读数据段,以便于更有效的命中需要加载的代码段或者只读数据,提升读取加载效率。
可以理解的是,当安全程序还包括安全应用程序,在一种可能的实现方式中,所述安全应用程序包括应用程序常驻段和应用程序动态加载段,其中,所述应用程序常驻段在所述处理器运行所述安全应用程序时,常驻在所述存储器中;所述处理器还用于:将所述应用程序动态加载段分为多页,所述多页的每页包含所述应用程序动态加载段的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。即针对安全应用程序而言,针对其常驻段以及动态加载段的划分以及安全处理和校验,可以参照上述安全元件中对系统镜像常驻段以及动态加载段的相关处理,在此不再赘述。
在另一种可能的实现方式中,所述安全程序还包括安全应用程序,所述处理器还用于:将所述安全应用程序分为多页,所述多页的每页包含所述安全应用程序的部分内容;对所述多页的每页进行所述安全处理;将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。即针对安全应用程序而言,针对划分的动态加载段以及安全处理和校验,可以参照上述安全元件中对系统镜像动态加载段的相关处理,在此不再赘述。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。例如本发明实施例的附图中的各个部件具体形状或结构是可以根据实际应用场景进行调整的。
Claims (14)
1.一种安全元件,其特征在于,包括:
处理器和存储器,所述处理器和所述存储器集成在半导体芯片内;
所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;
所述处理器,用于:
将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;
对所述多页的每页进行安全处理;
将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;
所述安全处理包括:加密和生成消息认证码MAC;
其中,每页的加密密钥与所述页的虚拟地址相关联,不同页的加密密钥不同;
所述安全操作系统的镜像还包括对所述系统镜像常驻段的第一签名,以及对所述系统镜像常驻段、所述第一签名和所述系统镜像动态加载段的第二签名;
所述处理器还用于:
校验所述第二签名,并在所述第二签名的校验通过后,对所述系统镜像常驻段和所述第一签名整体加密,并将所述整体加密后的内容迁移至所述安全元件外部的存储器中。
2.如权利要求1所述的安全元件,其特征在于:
所述安全处理还包括:
对所述多页的多个MAC整体加密;或者
对所述多页的每页的MAC分别加密,且不同MAC的加密密钥不同。
3.如权利要求1至2中任一所述的安全元件,其特征在于,所述安全元件还包括一次性可编程OTP;
所述多页的每页的加密密钥与所述OTP的计数count值相关联;和/或
所述多页的每页的MAC与所述安全元件的OTP的count值相关联。
4.如权利要求1至3中任一所述的安全元件,其特征在于:
所述处理器还用于:
在所述存储器提供的存储空间中配置至少一个页框,所述至少一个页框中的每个页框被用于存储所述多页中的至少一页,且所述至少一个页框包含的页的个数小于所述多页包含的页的个数。
5.如权利要求4所述的安全元件,其特征在于:
所述处理器还用于:
将所述至少一个页框配置为在所述处理器处于特权模式时允许读写。
6.如权利要求1至5中任一所述的安全元件,其特征在于:
所述处理器还用于:
在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
7.如权利要求6所述的安全元件,其特征在于:
当所述安全处理包括加密和生成MAC时,所述安全验证包括:解密和验证MAC。
8.如权利要求1至7中任一所述的安全元件,其特征在于:
所述安全程序还包括安全应用程序,所述安全应用程序包括应用程序常驻段和应用程序动态加载段,其中,所述应用程序常驻段在所述处理器运行所述安全应用程序时,常驻在所述存储器中;
所述处理器还用于:
将所述应用程序动态加载段分为多页,所述多页的每页包含所述应用程序动态加载段的部分内容;
对所述多页的每页进行所述安全处理;
将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
9.如权利要求1至7中任一所述的安全元件,其特征在于:
所述安全程序还包括安全应用程序,所述处理器还用于:
将所述安全应用程序分为多页,所述多页的每页包含所述安全应用程序的部分内容;
对所述多页的每页进行所述安全处理;
将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中。
10.一种半导体芯片,其特征在于,包括:
如权利要求1至9中任一所述的安全元件、耦合于所述安全元件的中央处理单元以及所述安全元件外部的存储器。
11.一种终端设备,其特征在于,包括:
如权利要求1至9任一所述的安全元件,以及所述安全元件外部的存储器,其中,所述安全元件与所述安全元件外部的存储器被设置在不同的半导体芯片内。
12.一种计算设备,其特征在于,包括:
处理器和存储器;
所述存储器,用于为所述处理器的运行提供存储空间;
所述处理器,用于:
将安全操作系统的镜像分为系统镜像常驻段和系统镜像动态加载段;
对所述系统镜像常驻段生成第一签名;
对所述系统镜像常驻段,所述第一签名和所述系统镜像动态加载段生成第二签名;
其中,所述安全操作系统为设置于终端设备内部的安全元件所运行的操作系统;
所述系统镜像常驻段在所述安全元件运行所述安全操作系统时,常驻在所述安全元件内部的存储器中;所述系统镜像动态加载段用于所述安全元件将所述系统镜像动态加载段分为多页,以及针对所述多页中的每页进行安全处理,并将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;所述安全处理包括:加密和生成消息认证码MAC;其中,每页的加密密钥与所述页的虚拟地址相关联,不同页的加密密钥不同;
所述安全操作系统的镜像还包括对所述系统镜像常驻段的第一签名,以及对所述系统镜像常驻段、所述第一签名和所述系统镜像动态加载段的第二签名;
所述处理器还用于:
校验所述第二签名,并在所述第二签名的校验通过后,对所述系统镜像常驻段和所述第一签名整体加密,并将所述整体加密后的内容迁移至所述安全元件外部的存储器中。
13.根据权利要求12所述的计算设备,其特征在于:
所述处理器,还用于控制所述计算设备向所述终端设备发送所述系统镜像常驻段,所述第一签名,所述系统镜像动态加载段,以及所述第二签名。
14.一种安全处理方法,其特征在于,包括:
终端设备接收服务器发送的安全程序,所述终端设备包括安全元件,所述安全元件包括处理器和存储器,所述处理器和所述存储器集成在半导体芯片内,所述存储器,用于为所述处理器加载和运行安全程序提供存储空间,所述安全程序包括安全操作系统的镜像,所述安全操作系统的镜像包括系统镜像常驻段和系统镜像动态加载段,其中,所述系统镜像常驻段在所述处理器运行所述安全操作系统时,常驻在所述存储器中;所述安全操作系统的镜像还包括对所述系统镜像常驻段的第一签名,以及对所述系统镜像常驻段、所述第一签名和所述系统镜像动态加载段的第二签名;所述处理器还用于:校验所述第二签名,并在所述第二签名的校验通过后,对所述系统镜像常驻段和所述第一签名整体加密,并将所述整体加密后的内容迁移至所述安全元件外部的存储器中;
所述终端设备将所述系统镜像动态加载段分为多页,所述多页的每页包含所述系统镜像动态加载段的部分内容;
所述终端设备对所述多页的每页进行安全处理;所述安全处理包括:加密和生成消息认证码MAC;其中,每页的加密密钥与所述页的虚拟地址相关联,不同页的加密密钥不同;
所述终端设备将经过所述安全处理后的每页迁移至所述安全元件外部的存储器中;
所述终端设备在运行所述安全操作系统时,将所述经过所述安全处理后的至少一页加载到所述存储器中,并对所述至少一页进行安全验证,所述安全验证为所述安全处理的逆操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/106396 WO2019075622A1 (zh) | 2017-10-16 | 2017-10-16 | 一种安全元件及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111201553A CN111201553A (zh) | 2020-05-26 |
CN111201553B true CN111201553B (zh) | 2022-04-22 |
Family
ID=66173042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780095768.3A Active CN111201553B (zh) | 2017-10-16 | 2017-10-16 | 一种安全元件及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11455430B2 (zh) |
EP (1) | EP3690836A4 (zh) |
CN (1) | CN111201553B (zh) |
WO (1) | WO2019075622A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734678B2 (en) * | 2016-01-25 | 2023-08-22 | Apple Inc. | Document importation into secure element |
CN107797820B (zh) * | 2017-11-13 | 2021-03-23 | 北京百度网讯科技有限公司 | 用于生成补丁的方法和装置 |
US11502832B2 (en) * | 2020-06-04 | 2022-11-15 | PUFsecurity Corporation | Electronic device capable of protecting confidential data |
WO2022088194A1 (zh) * | 2020-11-02 | 2022-05-05 | 华为技术有限公司 | 一种安全处理装置、安全处理方法及相关设备 |
FR3125902A1 (fr) * | 2021-07-30 | 2023-02-03 | Idemia France | Element securise pre-personalise et personnalisation embarquee |
US20220014381A1 (en) * | 2021-09-22 | 2022-01-13 | Intel Corporation | Message authentication code (mac) generation for live migration of encrypted virtual machiness |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149688A (zh) * | 2006-09-19 | 2008-03-26 | 株式会社理光 | 虚拟化系统、内存管理方法及控制程序 |
CN102595404A (zh) * | 2010-10-28 | 2012-07-18 | 苹果公司 | 用于存储和执行访问控制客户端的方法及装置 |
CN104778794A (zh) * | 2015-04-24 | 2015-07-15 | 华为技术有限公司 | 移动支付装置和方法 |
US9165143B1 (en) * | 2013-03-15 | 2015-10-20 | Xilinx, Inc. | Image file generation and loading |
CN105989306A (zh) * | 2015-02-13 | 2016-10-05 | 中兴通讯股份有限公司 | 操作系统的文件签名方法、文件校验方法及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW408286B (en) * | 1998-12-18 | 2000-10-11 | Inventec Corp | Software pre-installation method |
JP4736370B2 (ja) * | 2004-07-27 | 2011-07-27 | 株式会社日立製作所 | ホスティング環境構築方法および計算機システム |
DE102006046456B4 (de) * | 2006-09-29 | 2009-11-05 | Infineon Technologies Ag | Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte |
US8037243B1 (en) * | 2007-03-19 | 2011-10-11 | Emc Corporation | Installing data storage system software on disk drive systems |
US8726042B2 (en) * | 2008-02-29 | 2014-05-13 | Microsoft Corporation | Tamper resistant memory protection |
EP2681701A4 (en) | 2011-03-04 | 2014-08-20 | Visa Int Service Ass | INTEGRATION OF PAYMENT OPTIONS IN SAFE ITEMS OF COMPUTERS |
JP6181004B2 (ja) * | 2014-06-20 | 2017-08-16 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
US9690922B2 (en) * | 2014-07-28 | 2017-06-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device |
US10606501B2 (en) * | 2015-12-04 | 2020-03-31 | International Business Machines Corporation | Management of paging in compressed storage |
US10659234B2 (en) * | 2016-02-10 | 2020-05-19 | Cisco Technology, Inc. | Dual-signed executable images for customer-provided integrity |
CN105678191B (zh) * | 2016-03-02 | 2018-11-13 | 上海瓶钵信息科技有限公司 | 利用SoC内部存储提高系统安全性的方法、终端与系统 |
US10175995B1 (en) * | 2016-03-25 | 2019-01-08 | Amazon Technologies, Inc. | Device hibernation control |
CN105912272B (zh) * | 2016-04-14 | 2019-03-01 | 华为技术有限公司 | 一种控制多个安全应用软件的运行的装置和方法 |
CN106127483A (zh) * | 2016-06-30 | 2016-11-16 | 华为技术有限公司 | 移动支付方法、片上系统及终端 |
EP3506553A4 (en) * | 2016-08-29 | 2020-04-29 | Kddi Corporation | VEHICLE INFORMATION COLLECTION SYSTEM, ON-BOARD COMPUTER, VEHICLE INFORMATION COLLECTION DEVICE, VEHICLE INFORMATION COLLECTION METHOD, AND COMPUTER PROGRAM |
US10114768B2 (en) * | 2016-08-29 | 2018-10-30 | Intel Corporation | Enhance memory access permission based on per-page current privilege level |
-
2017
- 2017-10-16 EP EP17928957.4A patent/EP3690836A4/en active Pending
- 2017-10-16 WO PCT/CN2017/106396 patent/WO2019075622A1/zh unknown
- 2017-10-16 CN CN201780095768.3A patent/CN111201553B/zh active Active
-
2020
- 2020-04-15 US US16/849,318 patent/US11455430B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149688A (zh) * | 2006-09-19 | 2008-03-26 | 株式会社理光 | 虚拟化系统、内存管理方法及控制程序 |
CN102595404A (zh) * | 2010-10-28 | 2012-07-18 | 苹果公司 | 用于存储和执行访问控制客户端的方法及装置 |
US9165143B1 (en) * | 2013-03-15 | 2015-10-20 | Xilinx, Inc. | Image file generation and loading |
CN105989306A (zh) * | 2015-02-13 | 2016-10-05 | 中兴通讯股份有限公司 | 操作系统的文件签名方法、文件校验方法及装置 |
CN104778794A (zh) * | 2015-04-24 | 2015-07-15 | 华为技术有限公司 | 移动支付装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3690836A1 (en) | 2020-08-05 |
WO2019075622A1 (zh) | 2019-04-25 |
EP3690836A4 (en) | 2020-10-14 |
US11455430B2 (en) | 2022-09-27 |
CN111201553A (zh) | 2020-05-26 |
US20200242274A1 (en) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783081B2 (en) | Secure public cloud | |
CN111201553B (zh) | 一种安全元件及相关设备 | |
CN111638943B (zh) | 具有受保护的访客机验证主机控制的装置和方法 | |
US11520611B2 (en) | Secure public cloud using extended paging and memory integrity | |
US20200349265A1 (en) | Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine | |
CN109542518B (zh) | 芯片和启动芯片的方法 | |
WO2020042778A1 (zh) | 固件升级方法及装置 | |
US9081596B2 (en) | Information processing device, virtual machine creation method, and application distribution system | |
US20150095652A1 (en) | Encryption and decryption processing method, apparatus, and device | |
CN107995230B (zh) | 一种下载方法及终端 | |
US10824766B2 (en) | Technologies for authenticated USB device policy enforcement | |
US20090187898A1 (en) | Method for securely updating an autorun program and portable electronic entity executing it | |
KR20170138412A (ko) | 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스 | |
JPWO2018092289A1 (ja) | 情報処理装置 | |
CN118504005A (zh) | 密钥管理方法、装置、片上系统、计算设备及存储介质 | |
CN118550647A (zh) | 安全虚拟机的数据共享方法及相关装置 | |
CN117272377A (zh) | 权限数据处理方法、装置及电子设备 | |
CN118502881A (zh) | 一种密钥管理方法及片上系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |