CN103607279A - 基于多核处理器的密钥保护方法及系统 - Google Patents
基于多核处理器的密钥保护方法及系统 Download PDFInfo
- Publication number
- CN103607279A CN103607279A CN201310565691.5A CN201310565691A CN103607279A CN 103607279 A CN103607279 A CN 103607279A CN 201310565691 A CN201310565691 A CN 201310565691A CN 103607279 A CN103607279 A CN 103607279A
- Authority
- CN
- China
- Prior art keywords
- crypto
- core
- cache memory
- operation core
- private key
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000015654 memory Effects 0.000 claims abstract description 155
- 230000008569 process Effects 0.000 claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 26
- 230000003068 static effect Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012795 verification 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/72—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 in cryptographic circuits
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于多核处理器的密钥保护方法及系统,通过设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,该密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算,并将私钥以及计算过程中使用的中间变量存放于该核独占的高速缓冲存储器中,可以防止攻击者直接从物理内存中窃取私钥信息,从而保障公钥密码算法在计算机系统环境下实现的安全性。
Description
技术领域
本发明涉及计算机安全领域,特别涉及基于多核处理器的密钥保护方法及系统。
背景技术
现有常用的密码算法主要包括对称密码算法和公钥密码算法两种。其中,对称密码算法使用同一密钥做加密和解密运算,通信双方必须保管好他们共同的密钥,主要用于快速的数据加解密。在公钥密码算法中,其密钥是成对生成的,每对密钥由公钥和私钥组成;在实际应用中,公钥是公开的,而私钥则由用户自己保存;在签名系统中,用私钥对消息进行加密,得到数字签名;用公钥对数字签名进行解密,以验证数字签名;在加密系统中,用公钥对数据进行加密,得到密文数据;用私钥对密文进行解密,得到明文数据。
随着互联网技术的发展,电子交易活动与电子事物处理已经成为人们日常生活必不可少的一部分。为了保障这些网络应用的真实性、保密性、完整性以及可追究性等安全特性,以数字证书为核心的密码技术广泛应用于网络信息系统。数字证书采用了公钥密码体制,将公钥与持有者的真实身份进行绑定,从而实现了网络用户身份信息的标识,为网络安全通信提供了电子认证。
保证数字证书所对应的私钥信息的机密性是实现安全通信的前提条件。私钥的存储需要防止非授权访问,从而避免被攻击者窃取并伪造数字签名。私钥的存储介质有很多种,例如软盘、智能卡、USB Key和计算机硬盘等。如果使用软盘或存储型IC卡来保存私钥,这两种介质在使用时才与计算机相连,但由于它们不具备计算能力,在进行加密计算时,私钥会被复制出存储介质进入计算机,安全性与计算机硬盘直接存储并没有本质的提升。使用USB Key和智能卡存储私钥则可以保证较高的安全性,因为在使用过程中私钥可以不出存储介质,攻击者无法截获私钥。但是这类由外部介质存储私钥的方法会给用户的使用带来了很大不便,用户需要随身携带存储介质。
为解决上述存储私钥的外部介质使用不便的问题,现有技术一般采用将私钥存放在计算机硬盘的方法。具体的,由用户直接控制计算机生成私钥,私钥以口令保护的形式储存于计算机硬盘中;当需要使用私钥时,经口令解密的私钥被读取到计算机内存中,然后执行计算。但是在计算机内存中的私钥存在安全隐患,攻击者可以通过非法内存读取、冷启动等攻击窃取私钥。其中,非法内存读取利用了操作系统的系统调用实现中的漏洞,攻击者可以随机地读取内存,从而获得私钥信息;而冷启动攻击则利用了动态随机访问内存(DRAM)的剩余特性(remanence effect),即掉电之后存储内容随时间慢慢消失,整个过程持续好几秒,如果利用制冷剂可以将时间延长到几小时,攻击者可以在计算机运行或挂起时,直接关机,把内存拔下来,并插入一个通过恶意U盘启动的计算机,该计算机的启动程序可以直接把保存在目标内存的内容复制出来,从而获取内存中的信息映像。为了消除这些隐患,在方便用户使用的前提下,如何在计算机环境下安全实现密码算法成为关键问题。
为了应对上述在计算机环境下的安全问题,现有的方案提出把用于磁盘加密的对称密钥存放在处理器寄存器中。但是由于寄存器容量较小,因此只能存放短的对称密钥,不适用于公钥密码算法。在此基础上,随着CPU技术的发展,支持高级矢量扩展指令集(AVX)的寄存器,如YMM,开始广泛部署,这些寄存器可以提供更大的存储空间,从而支持2048比特的RSA运算;但是这种方案也有很多不足:(1)可扩展性差,仅仅可以完成基本的运算,如果要支持更多安全功能,比如抗侧信道攻击,或者支持运算加密,比如中国剩余定理,将很困难;(2)如果要支持更长的密钥,只能依赖CPU厂商来提供;(3)平台依赖性大,由于直接操作寄存器,高级语言比如C将不能支持;(4)需要禁用AVX或者SSE功能,这将对CPU处理数据密集型程序和图形处理程序的性能产生非常大的影响,因为这些程序需要这些寄存器进行运算加速。
还有一种方案是把密钥存放在内核态,用户不能直接操作密钥,但是这种方案不能抵抗针对物理内存的攻击,比如冷启动。考虑到公钥密码算法的密钥比较长,例如RSA算法,证书认证机构应用都要求在2048位以上,公钥密码算法的安全实现需要足够的存储容量来存放私钥。
目前,多核处理器已经得到广泛的应用,每个CPU核拥有独占的cache(高速缓冲存储器)或几个CPU核共享一些cache。cache又称高速缓冲存储器,在计算机存储系统的层次结构中,它是介于CPU和主存储器之间的高速小容量存储器。CPU核以及它们独占的cache可以构成一个相对独立的环境。比起CPU寄存器,cache的存储容量要大得多,足够存放公钥密码算法的密钥,并且可以提供各种安全增强和运算加速的算法。
发明内容
本发明针对在计算机系统环境下实现公钥密码算法的特点以及安全因素,提出了基于多核处理器的密钥保护方法和系统,以保障公钥密码算法在计算机系统环境下实现的安全性。
为实现上述目的,本发明提供了一种基于多核处理器的密钥保护方法,包括:
设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算;
利用所述密码运算核执行公钥密码运算;其中,私钥以及计算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器。
进一步,私钥存储于所述密码运算核独占的高速缓冲存储器的步骤包括:
公钥密码算法的私钥以口令保护的形式保存于硬盘;
密码运算核读取计算输入数据,加载密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥;
所述密码运算核利用用户输入的口令解密以口令保护的所述私钥,并将所述私钥的明文存储于所述密码运算核的高速缓冲存储器中用于计算。
进一步,公钥密码运算包括公钥操作运算和私钥操作运算,所述私钥操作运算包括数字签名和/或解密步骤:
利用私钥进行数字签名和/或解密运算,并将计算过程中产生的中间数据变量和计算结果存储于所述密码运算核独占的高速缓冲存储器;
将所述计算结果同步至计算机内存,并将所述密码运算核独占的高速缓冲存储器执行数据清空操作。
进一步,将计算过程中产生的中间数据变量存储于所述密码运算核独占的高速缓冲存储器的步骤包括:
在利用私钥进行数字签名和/或解密运算之前,将所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;
将计算过程中产生的中间数据变量和计算结果存储于所述高速缓冲存储器的地址连续的静态缓冲区中。
进一步,在所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前还包括:
屏蔽所述密码运算核的可屏蔽中断,并禁止操作系统抢占所述密码运算核;
将多核处理器中所有核独占的高速缓冲存储器的内容写回内存;
将所述地址连续的静态缓冲区放入密码运算核独占的高速缓冲存储器;
禁止除所述密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换。
进一步,将所述计算结果同步至计算机内存,并在所述密码运算核独占的高速缓冲存储器执行数据清空操作时,同时清空通用寄存器,在将所述密码运算核独占的高速缓冲存储器执行数据清空操作完成后,恢复除密码运算核外所有核正常访问高速缓冲存储器的功能。
本发明还提供了一种基于多核处理器的密钥保护系统,包括:
用于设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算的第一模块;
用于利用所述密码运算核执行公钥密码运算,并将私钥以及运算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器的第二模块。
进一步,用于将公钥密码算法的私钥以口令保护的形式保存于硬盘的第一子模块;
用于控制密码计算核读取计算输入数据,加载密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥的第二子模块;
用于控制所述密码运算核利用用户输入的口令解密以口令保护的所述私钥,并将所述私钥的明文存储于所述密码运算核的高速缓冲存储器中用于计算的第三子模块。
进一步,所述第三子模块进一步用于利用私钥进行数字签名和/或解密运算,并将运算过程中产生的中间数据变量和计算结果存储于所述密码运算核独占的高速缓冲存储器,以及用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作。
进一步,所述第三子模块进一步用于在利用私钥进行数字签名和/或解密运算之前,将所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;以及,用于将计算过程中产生的中间数据变量和计算结果存储于所述高速缓冲存储器的地址连续的静态缓冲区中。
进一步,所述第三子模块进一步用于在所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前,屏蔽所述密码运算核的可屏蔽中断,并禁止操作系统抢占所述密码运算核,将多核处理器中所有核独占的高速缓冲存储器的内容写回内存,将所述地址连续的静态缓冲区放入密码运算核独占的高速缓冲存储器,禁止除所述密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换。
进一步,所述第三子模块进一步用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作时,同时清空通用寄存器,然后恢复除所述密码运算核外的其他核正常访问高速缓冲存储器的功能。
采用本发明提供的多核处理器的密钥保护方法及系统,通过设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,该密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算,并将私钥以及计算过程中使用的中间变量存放于该核独占的高速缓冲存储器中,可以防止攻击者直接从物理内存中窃取私钥信息,从而保障公钥密码算法在计算机系统环境下实现的安全性。
附图说明
图1为本发明基于多核处理器的密钥保护方法典型实施例的流程示意图;
图2为图1实施例中将中间数据变量存储于高速缓冲存储器的流程示意图;
图3为本发明一种基于多核处理器的密钥保护系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明是基于以下考虑实现的:
在现有技术中,多核处理器已经得到广泛的应用,每个内核拥有独占的高速缓冲存储器或几个内核共享一些高速缓冲存储器。在计算机存储系统的层次结构中,高速缓冲存储器是介于CPU和主存储器之间的高速小容量存储器。CPU的核以及它们独占的高速缓冲存储器可以构成一个相对独立的环境;而且,比起CPU寄存器,高速缓冲存储器的存储容量要大得多,足够存放公钥密码算法的密钥,并且可以提供各种安全增强和运算加速的运算。
具体的,在典型的多处理器(multiple-process)结构中,每个物理核心拥有一套自己的寄存器,这包括通用寄存器eax、ebx、ecx、edx等,还有段寄存器CS、DS等,以及状态寄存器、控制寄存器、型号相关寄存器(Model Specific Register)、扩展指令集寄存器XMM、YMM等。在一个物理核心中,由于资源受限,不可能实现大量的寄存器,并且这些寄存器中,有很多都是有专门用途的,不能用于通用的计算过程(比如esp和ebp一般用于跟踪程序的栈帧)。寄存器的访问通过寄存器名指定,每个核心的上下文环境互不影响,需要靠共享的总线来传递消息。
每个物理核心同时也会有自己的片上高速缓冲存储器,高速缓冲存储器使用随机访问内存(RAM)的物理地址作为索引,可以缓存本核心最近经常访问的物理内存,所以,对程序来说,其使用限制较小:随机访问内存上的数据都可以存在于高速缓冲存储器。如果该核心上配置了正确的高速缓冲存储器访问模式,那么应用层的程序可以透明的使用高速缓冲存储器。典型地,如果该核心配置了写回模式(write-back)访问,每次内存访问(包括读和写)都将会发生在高速缓冲存储器中(如果高速缓冲存储器没有缓冲该地址,需要先把该地址读进高速缓冲存储器);而如果该核心配置了不可缓存模式(uncachable)访问,每次内存访问将绕过高速缓冲存储器,直接访问主随机访问内存。相比寄存器资源,一个典型的中央处理单元拥有大量的高速缓冲存储器:每个物理核心独占32KB的一级高速缓冲存储器和256KB的二级高速缓冲存储器,而所有的核心共享8MB的三级高速缓冲存储器。
而本申请所应对的冷启动(Cold boot)攻击一般是针对物理的内存模块的,而片上的高速缓冲存储器通常在中央处理单元中集成,所以出现在高速缓冲存储器里面的敏感数据如私钥明文,依靠Cold boot攻击是无法获取的。
在此基础上,仅保护经解密的私钥明文仍不足以保证私钥信息的安全,私钥计算的过程涉及到一些中间的数据变量,攻击者有可能从这些变量中获取敏感数据。因此,还必须保证中间的数据变量只储存在高速缓冲存储器中。
基于上述考虑,本申请提供了一种基于多核处理器的密钥保护方法,包括:
设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算;
利用所述密码运算核执行公钥密码算法的计算;其中,私钥以及计算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器
具体的,以下结合实施例,对本发明提供的密钥保护方法进行详细描述:
如图1所示,首先,设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,该密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算;作为具体实现,为了隔离用于公钥密码运算进程,可以使用操作系统现有的一些机制:如更改公钥密码运算进程的CPU亲和力(affinity),使得公钥密码运算进程只能在指定的密码运算核运行,以使其他系统/应用进程不能在密码运算核上运行;还可以配置操作系统的调度域,把指定的密码运算核作为与操作系统相独立的域,即操作系统的所有任务进程不能在该域执行,除非显式地调度任务进程(例如,在linux下可以使用sched_setaffinity系统调用,或在内核态使用set_cpus_allowed_prt函数),因此,每次在启动公钥密码运算进程的时候,要将公钥密码运算进程显示地调度到该域;由此,使密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算;
然后,将公钥密码算法的私钥以口令保护的形式保存于硬盘;
密码计算核读取计算输入数据,加密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥;
密码运算核利用用户输入的口令解密以口令保护的私钥,并将私钥的明文存储于密码运算核的高速缓冲存储器中用于计算;
需要说明的是,常规的公钥密码运算包括公钥操作运算和私钥操作运算,私钥操作运算包括数字签名和/或解密运算,在进行私钥操作运算时,为了加快运算速度,通常除了N、d等基本私钥外,私钥还包括d、p、q、d(mod p)、d(mod q)、q-1(mod p)等辅助数据,这些数据可以用在中国剩余定理加速算法上,因此,上述辅助数据也作为私钥的一部分需要存储于高速缓冲存储器中。
在进行公钥密码运算时,计算过程中还会有各种中间变量,这些中间变量通常包含关于私钥的部分信息,为了进一步保障公钥密码运算在计算机系统环境下实现的安全性,需要避免这些中间数据变量被攻击者获取,进而依据这些中间数据变量推导出私钥。
在本实施例中,为了避免上述问题,进一步将运算过程中产生的中间数据变量存储于密码运算核独占的高速缓冲存储器中。
一般地,现有的操作系统为数据变量分配地址空间,主要有如下两种方式:栈和堆。栈采用静态的地址空间分配方法,在程序调用函数的时候,函数的自动变量、函数参数、返回值等数据存在于由操作系统指定的栈空间中;堆采用动态的地址空间分配方法,在计算机程序运行期间分配使用,分配的地址空间是不连续且不确定的。如果无法保证上述两种方式存储的数据变量不被泄漏到内存中,攻击者可能会通过这些数据获取敏感信息。
为了集中管理高速缓冲存储器映射的地址空间,需要避免采用不连续且不确定的堆分配方法。此外,栈分配的地址空间虽然是连续的,但程序无法控制栈的分配位置,因此,无法确保地址空间都放在高速缓冲存储器中。鉴于此,本发明的技术方案采用静态的栈地址空间分配方法。
具体的,如图2所示,在利用私钥进行数字签名和/或解密运算之前,先将密码运算核的栈指针寄存器和扩展基址指针寄存器指向密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;然后将运算过程中产生的中间数据变量和计算结果存储于高速缓冲存储器的地址连续的静态缓冲区中,由此完成中间数据变量的存储;
进一步,由于在计算过程中,进程切换会使得通用寄存器的数据内容换出到内存;而且如果其他进程同时大量使用内存,高速缓冲存储器中的数据会同步到内存。为了防止这种情况发生,在本实施例中,在密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前,进一步屏蔽密码运算核的可屏蔽中断,并禁止操作系统抢占密码运算核,使得整个计算过程是原子的;进入原子操作后,通过wbinvd指令,把CPU其他核上的高速缓冲存储器的内容写回内存,同时让其它核进入no-fill模式,可通过寄存器cr0设置进入no-fill模式,在该模式下,禁止除密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换;
计算结束后,把存储于高速缓冲存储器中存储的计算结果同步到内存(可采用通过clflush指令)后,为保证所有的敏感数据都不会被同步到内存,需要密码运算核独占的高速缓冲存储器执行数据清空操作,如执行invd指令,把密码运算核的高速缓冲存储器中的数据清空;此外,由于通用寄存器也可能存在中间变量,还需要同时清空通用寄存器;在将所述密码运算核独占的高速缓冲存储器执行数据清空操作完成后,恢复除密码运算核外所有核正常访问高速缓冲存储器的功能。
本发明对应上述方法,还提供了一种基于多核处理器的密钥保护系统,如图3所示,包括:
用于设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算的第一模块;
用于利用所述密码运算核执行公钥密码运算,并将私钥以及运算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器的第二模块。
进一步,用于将公钥密码算法的私钥以口令保护的形式保存于硬盘的第一子模块;
用于控制密码计算核读取计算输入数据,加载密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥的第二子模块;
用于控制所述密码运算核利用用户输入的口令解密以口令保护的所述私钥,并将所述私钥的明文存储于所述密码运算核的高速缓冲存储器中用于计算的第三子模块。
进一步,所述第三子模块进一步用于利用私钥进行数字签名和/或解密运算,并将运算过程中产生的中间数据变量和计算结果存储于所述密码运算核独占的高速缓冲存储器,以及用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作。
进一步,所述第三子模块进一步用于在利用私钥进行数字签名和/或解密运算之前,将所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;以及,用于将计算过程中产生的中间数据变量和计算结果存储于所述高速缓冲存储器的地址连续的静态缓冲区中。
进一步,所述第三子模块进一步用于在所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前,屏蔽所述密码运算核的可屏蔽中断,并禁止操作系统抢占所述密码运算核,将多核处理器中所有核独占的高速缓冲存储器的内容写回内存,将所述地址连续的静态缓冲区放入密码运算核独占的高速缓冲存储器,禁止除所述密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换。
进一步,所述第三子模块进一步用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作时,同时清空通用寄存器,然后恢复除所述密码运算核外的其他核正常访问高速缓冲存储器的功能。
在这里需要说明的是,对应上述多核处理器的密钥保护方法的各个步骤,在本发明提供的基于多核处理器的密钥保护系统中的各模块及其子模块的功能,本领域技术人员可通过在硬件基础上通过计算机软件的方式实现,在此不再赘述。
综上所述,采用本发明提供的多核处理器的密钥保护方法及系统,通过设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,该密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算,并将私钥以及计算过程中使用的中间变量存放于该核独占的高速缓冲存储器中,可以防止攻击者直接从物理内存中窃取私钥信息,从而保障公钥密码算法在计算机系统环境下实现的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种基于多核处理器的密钥保护方法,其特征在于,包括:
设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算;
利用所述密码运算核执行公钥密码运算;其中,私钥以及运算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器。
2.根据权利要求1所述的方法,其特征在于,私钥存储于所述密码运算核独占的高速缓冲存储器的步骤包括:
公钥密码算法的私钥以口令保护的形式保存于硬盘;
密码运算核读取计算输入数据,加载密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥;
所述密码运算核利用用户输入的口令解密以口令保护的所述私钥,并将所述私钥的明文存储于所述密码运算核的高速缓冲存储器中用于计算。
3.根据权利要求2所述的方法,其特征在于,公钥密码运算包括公钥操作运算和私钥操作运算,所述私钥操作运算包括数字签名和/或解密步骤:
利用私钥进行数字签名和/或解密运算,并将计算过程中产生的中间数据变量和计算结果存储于所述密码运算核独占的高速缓冲存储器;
将所述计算结果同步至计算机内存,并将所述密码运算核独占的高速缓冲存储器执行数据清空操作。
4.根据权利要求3所述的方法,其特征在于,将计算过程中产生的中间数据变量存储于所述密码运算核独占的高速缓冲存储器的步骤包括:
在利用私钥进行数字签名和/或解密运算之前,将所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;
将计算过程中产生的中间数据变量和计算结果存储于所述高速缓冲存储器的地址连续的静态缓冲区中。
5.根据权利要求4所述的方法,其特征在于,在所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前还包括:
屏蔽所述密码运算核的可屏蔽中断,并禁止操作系统抢占所述密码运算核;
将多核处理器中所有核独占的高速缓冲存储器的内容写回内存;
将所述地址连续的静态缓冲区放入密码运算核独占的高速缓冲存储器;
禁止除所述密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换。
6.根据权利要求5所述的方法,其特征在于,将所述计算结果同步至计算机内存,并在所述密码运算核独占的高速缓冲存储器执行数据清空操作时,同时清空通用寄存器,在将所述密码运算核独占的高速缓冲存储器执行数据清空操作完成后,恢复除密码运算核外所有核正常访问高速缓冲存储器的功能。
7.一种基于多核处理器的密钥保护系统,其特征在于,包括:
用于设置承载于多核处理器的操作系统,使多核处理器中的一个核作为密码运算核,所述密码运算核被禁止运行操作系统的其它进程、并被专用于执行公钥密码运算的第一模块;
用于利用所述密码运算核执行公钥密码运算,并将私钥以及运算过程中使用的中间数据变量存储于所述密码运算核独占的高速缓冲存储器的第二模块。
8.根据权利要求7所述的系统,其特征在于,所述第二模块包括:
用于将公钥密码算法的私钥以口令保护的形式保存于硬盘的第一子模块;
用于控制密码计算核读取计算输入数据,加载密码计算调度程序,并提供用户输入口令的操作界面,同时从所述硬盘中读取以口令保护的所述私钥的第二子模块;
用于控制所述密码运算核利用用户输入的口令解密以口令保护的所述私钥,并将所述私钥的明文存储于所述密码运算核的高速缓冲存储器中用于计算的第三子模块。
9.根据权利要求8所述的系统,其特征在于,所述第三子模块进一步用于利用私钥进行数字签名和/或解密运算,并将运算过程中产生的中间数据变量和计算结果存储于所述密码运算核独占的高速缓冲存储器,以及用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作。
10.根据权利要求9所述的系统,其特征在于,所述第三子模块进一步用于在利用私钥进行数字签名和/或解密运算之前,将所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区;以及,用于将计算过程中产生的中间数据变量和计算结果存储于所述高速缓冲存储器的地址连续的静态缓冲区中。
11.根据权利要求10所述的系统,其特征在于,所述第三子模块进一步用于在所述密码运算核的扩展栈指针寄存器和扩展基址指针寄存器指向所述密码运算核独占的高速缓冲存储器的一个地址连续的静态缓冲区之前,屏蔽所述密码运算核的可屏蔽中断,并禁止操作系统抢占所述密码运算核,将多核处理器中所有核独占的高速缓冲存储器的内容写回内存,将所述地址连续的静态缓冲区放入密码运算核独占的高速缓冲存储器,禁止除所述密码运算核独占的高速缓冲存储器外的高速缓冲存储器的内容被替换。
12.根据权利要求11所述的系统,其特征在于,所述第三子模块进一步用于将所述计算结果同步至计算机内存,并所述密码运算核独占的高速缓冲存储器执行数据清空操作时,同时清空通用寄存器,然后恢复除所述密码运算核外的其他核正常访问高速缓冲存储器的功能。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310565691.5A CN103607279B (zh) | 2013-11-14 | 2013-11-14 | 基于多核处理器的密钥保护方法及系统 |
PCT/CN2014/075042 WO2015070560A1 (zh) | 2013-11-14 | 2014-04-10 | 基于多核处理器的密钥保护方法及系统 |
US14/744,803 US9898624B2 (en) | 2013-11-14 | 2015-06-19 | Multi-core processor based key protection method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310565691.5A CN103607279B (zh) | 2013-11-14 | 2013-11-14 | 基于多核处理器的密钥保护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103607279A true CN103607279A (zh) | 2014-02-26 |
CN103607279B CN103607279B (zh) | 2017-01-04 |
Family
ID=50125480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310565691.5A Expired - Fee Related CN103607279B (zh) | 2013-11-14 | 2013-11-14 | 基于多核处理器的密钥保护方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9898624B2 (zh) |
CN (1) | CN103607279B (zh) |
WO (1) | WO2015070560A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015070560A1 (zh) * | 2013-11-14 | 2015-05-21 | 中国科学院数据与通信保护研究教育中心 | 基于多核处理器的密钥保护方法及系统 |
CN104883256A (zh) * | 2014-02-27 | 2015-09-02 | 中国科学院数据与通信保护研究教育中心 | 一种抵抗物理攻击和系统攻击的密钥保护方法 |
CN105187203A (zh) * | 2015-09-22 | 2015-12-23 | 中国科学院信息工程研究所 | 一种无线设备间基于接收信号强度的共享密钥建立方法 |
CN106663177A (zh) * | 2014-08-20 | 2017-05-10 | 英特尔公司 | 加密代码执行 |
CN106788975A (zh) * | 2016-12-28 | 2017-05-31 | 北京天融信网络安全技术有限公司 | 基于sm4密码算法的加解密装置 |
CN110210214A (zh) * | 2019-06-03 | 2019-09-06 | 成都海光集成电路设计有限公司 | 处理器核心隔离方法及装置 |
CN111859416A (zh) * | 2020-06-23 | 2020-10-30 | 天地融科技股份有限公司 | 一种安全显示控制的方法及装置 |
CN114598468A (zh) * | 2022-03-16 | 2022-06-07 | 海光信息技术股份有限公司 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
CN116684074A (zh) * | 2023-07-25 | 2023-09-01 | 杭州海康威视数字技术股份有限公司 | 硬件密码模组多核调度算法驱动方法、装置及电子设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9319393B2 (en) | 2013-05-30 | 2016-04-19 | Applied Invention, Llc | Security information caching on authentication token |
US9514789B2 (en) * | 2013-06-27 | 2016-12-06 | Steven Bress | Systems and methods for safely moving short term memory devices while preserving, protecting and examining their digital data |
KR101442539B1 (ko) * | 2013-12-31 | 2014-09-26 | 권용구 | 보안저장장치를 구비하는 저장 시스템 및 그 관리 방법 |
CN109426742B (zh) * | 2017-08-23 | 2022-04-22 | 深圳市中兴微电子技术有限公司 | 一种基于可信执行环境的安全内存动态管理系统及方法 |
US10482258B2 (en) | 2017-09-29 | 2019-11-19 | Nxp Usa, Inc. | Method for securing runtime execution flow |
CN113726528B (zh) * | 2021-11-02 | 2022-02-18 | 深圳奥联信息安全技术有限公司 | 一种基于骨声纹的密钥保护方法及系统 |
CN114172644B (zh) * | 2021-12-03 | 2023-04-25 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及系统 |
US20230393762A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Verified key replacement in secure memory devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093505A1 (en) * | 2002-07-09 | 2004-05-13 | Fujitsu Limited | Open generic tamper resistant CPU and application system thereof |
US20080075291A1 (en) * | 2006-09-21 | 2008-03-27 | International Business Machines Corporation | Managing device keys in cryptographic communication |
CN101308536A (zh) * | 2007-05-16 | 2008-11-19 | 许丰 | 双核安全控制方法及装置 |
CN101741559A (zh) * | 2008-11-10 | 2010-06-16 | 广州信睿网络科技有限公司 | 一种无密钥泄露的变色龙数字签名方法 |
CN102103673A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 在隐藏执行环境中提供完整性验证和证明 |
CN102694649A (zh) * | 2012-05-29 | 2012-09-26 | 北京大学 | 一种抵御冷启动攻击的公钥密码实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4263976B2 (ja) * | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
CN101170406B (zh) * | 2006-10-27 | 2010-10-06 | 北京中电华大电子设计有限责任公司 | 双核公钥密码算法运算协处理器的一种实现方法 |
US20120331308A1 (en) * | 2011-06-22 | 2012-12-27 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
CN103607279B (zh) * | 2013-11-14 | 2017-01-04 | 中国科学院数据与通信保护研究教育中心 | 基于多核处理器的密钥保护方法及系统 |
-
2013
- 2013-11-14 CN CN201310565691.5A patent/CN103607279B/zh not_active Expired - Fee Related
-
2014
- 2014-04-10 WO PCT/CN2014/075042 patent/WO2015070560A1/zh active Application Filing
-
2015
- 2015-06-19 US US14/744,803 patent/US9898624B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093505A1 (en) * | 2002-07-09 | 2004-05-13 | Fujitsu Limited | Open generic tamper resistant CPU and application system thereof |
US20080075291A1 (en) * | 2006-09-21 | 2008-03-27 | International Business Machines Corporation | Managing device keys in cryptographic communication |
CN101308536A (zh) * | 2007-05-16 | 2008-11-19 | 许丰 | 双核安全控制方法及装置 |
CN101741559A (zh) * | 2008-11-10 | 2010-06-16 | 广州信睿网络科技有限公司 | 一种无密钥泄露的变色龙数字签名方法 |
CN102103673A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 在隐藏执行环境中提供完整性验证和证明 |
CN102694649A (zh) * | 2012-05-29 | 2012-09-26 | 北京大学 | 一种抵御冷启动攻击的公钥密码实现方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015070560A1 (zh) * | 2013-11-14 | 2015-05-21 | 中国科学院数据与通信保护研究教育中心 | 基于多核处理器的密钥保护方法及系统 |
US9898624B2 (en) | 2013-11-14 | 2018-02-20 | Data Assurance and Communication Security Center, Chinese Academy of Sciencess | Multi-core processor based key protection method and system |
US10313111B2 (en) | 2014-02-27 | 2019-06-04 | Data Assurance And Communication Security Research Center, Chinese Academy Of Sciences | Key protecting method and apparatus |
CN104883256A (zh) * | 2014-02-27 | 2015-09-02 | 中国科学院数据与通信保护研究教育中心 | 一种抵抗物理攻击和系统攻击的密钥保护方法 |
EP3113406A4 (en) * | 2014-02-27 | 2017-11-01 | Data Assurance and Communication Security Research Center, Chinese Academy of Sciences | Key protecting method and apparatus |
CN104883256B (zh) * | 2014-02-27 | 2019-02-01 | 中国科学院数据与通信保护研究教育中心 | 一种抵抗物理攻击和系统攻击的密钥保护方法 |
CN106663177A (zh) * | 2014-08-20 | 2017-05-10 | 英特尔公司 | 加密代码执行 |
CN105187203A (zh) * | 2015-09-22 | 2015-12-23 | 中国科学院信息工程研究所 | 一种无线设备间基于接收信号强度的共享密钥建立方法 |
CN105187203B (zh) * | 2015-09-22 | 2018-05-11 | 中国科学院信息工程研究所 | 一种无线设备间基于接收信号强度的共享密钥建立方法 |
CN106788975A (zh) * | 2016-12-28 | 2017-05-31 | 北京天融信网络安全技术有限公司 | 基于sm4密码算法的加解密装置 |
CN110210214A (zh) * | 2019-06-03 | 2019-09-06 | 成都海光集成电路设计有限公司 | 处理器核心隔离方法及装置 |
CN111859416A (zh) * | 2020-06-23 | 2020-10-30 | 天地融科技股份有限公司 | 一种安全显示控制的方法及装置 |
CN111859416B (zh) * | 2020-06-23 | 2024-05-24 | 天地融科技股份有限公司 | 一种安全显示控制的方法及装置 |
CN114598468A (zh) * | 2022-03-16 | 2022-06-07 | 海光信息技术股份有限公司 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
CN114598468B (zh) * | 2022-03-16 | 2024-01-19 | 海光信息技术股份有限公司 | 密钥配置方法、数据传输方法、处理器、系统及相关设备 |
CN116684074A (zh) * | 2023-07-25 | 2023-09-01 | 杭州海康威视数字技术股份有限公司 | 硬件密码模组多核调度算法驱动方法、装置及电子设备 |
CN116684074B (zh) * | 2023-07-25 | 2023-10-20 | 杭州海康威视数字技术股份有限公司 | 硬件密码模组多核调度算法驱动方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015070560A1 (zh) | 2015-05-21 |
CN103607279B (zh) | 2017-01-04 |
US20150310231A1 (en) | 2015-10-29 |
US9898624B2 (en) | 2018-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103607279B (zh) | 基于多核处理器的密钥保护方法及系统 | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
CN109858265A (zh) | 一种加密方法、装置及相关设备 | |
TWI245182B (en) | Method, chipset, system and recording medium for responding to a sleep attack | |
CN104883256B (zh) | 一种抵抗物理攻击和系统攻击的密钥保护方法 | |
US7073059B2 (en) | Secure machine platform that interfaces to operating systems and customized control programs | |
KR101565223B1 (ko) | 인플레이스 암호화 시스템 및 방법 | |
CN102750233B (zh) | 加密和存储机密数据 | |
US8095802B2 (en) | System and method for securely saving a program context to a shared memory | |
US7945789B2 (en) | System and method for securely restoring a program context from a shared memory | |
EP3667535B1 (en) | Storage data encryption and decryption device and method | |
JP2005327255A5 (zh) | ||
CN103038746A (zh) | 用于基础设施即服务云环境中的可信执行的方法和装置 | |
CN103221961A (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
KR20140099325A (ko) | 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법 | |
CN105678173B (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN106687938A (zh) | 跨电源周期维护安全处理环境 | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
Yu et al. | Mobihydra: Pragmatic and multi-level plausibly deniable encryption storage for mobile devices | |
Buhren et al. | Fault attacks on encrypted general purpose compute platforms | |
Chang et al. | User-friendly deniable storage for mobile devices | |
Zhang et al. | SoftME: A Software‐Based Memory Protection Approach for TEE System to Resist Physical Attacks | |
CN110855429A (zh) | 一种基于tpm的软件密钥保护方法 | |
Bazm et al. | Side channels in the cloud: Isolation challenges, attacks, and countermeasures | |
Fu et al. | RegKey: a register-based implementation of ECC signature algorithms against one-shot memory disclosure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170104 |
|
CF01 | Termination of patent right due to non-payment of annual fee |