CN106603487B - 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法 - Google Patents

一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法 Download PDF

Info

Publication number
CN106603487B
CN106603487B CN201610960649.7A CN201610960649A CN106603487B CN 106603487 B CN106603487 B CN 106603487B CN 201610960649 A CN201610960649 A CN 201610960649A CN 106603487 B CN106603487 B CN 106603487B
Authority
CN
China
Prior art keywords
tls protocol
security
client
server
certificate
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
Application number
CN201610960649.7A
Other languages
English (en)
Other versions
CN106603487A (zh
Inventor
王定健
陈鲁
符兴斌
李锁在
孟亚平
陶亮
吴伟
袁野
夏常钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chinasoft Information System Engineering Co ltd
Original Assignee
Chinasoft Information System Engineering Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chinasoft Information System Engineering Co ltd filed Critical Chinasoft Information System Engineering Co ltd
Priority to CN201610960649.7A priority Critical patent/CN106603487B/zh
Publication of CN106603487A publication Critical patent/CN106603487A/zh
Application granted granted Critical
Publication of CN106603487B publication Critical patent/CN106603487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,首先,构建一个TLS协议安全代理组件的可信执行环境,即安全内核;其次,构建一个TLS协议处理模块运行的通用运行环境,即通用操作系统内核;最后,构建一个安全监控器,负责在两个运行环境之间进行上下文切换,运行于CPU安全核;本发明的优点在于:通过安全改进TLS握手协议的处理流程,扩展TLS在通信平台完整性认证方面的缺失,有效解决了由于TLS协议实现层次太高、独立性不够、平台认证缺失等问题带来的安全隐患,提升计算机通信双方在数据加密传输、平台身份认证方面的安全性。

Description

一种基于CPU时空隔离机制对TLS协议处理进行安全改进的 方法
技术领域
本发明涉及一种TLS协议安全改进,具体地说是一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,属于TLS协议安全改进领域。
背景技术
随着信息技术的不断发展,国民经济及国防军工信息化技术运用的普及,越来越多的用户利用网络来进行数据通信,特别是在电子商务领域,需要在交易过程中传输大量的敏感信息。在这样的情况下,如何确保数据传输的完整性和保密性,平台交互的真实性和可认证性,对涉及到计算机安全通信服务的软件供应商、用户来说至关重要。当前,安全通信软件主要都是利用TLS或者IPSec协议与对应的服务器建立一个安全的通道。然而,这并不能保证用户数据的安全通信。因为,这些协议虽然会在授权计算机之间传递敏感数据,但是它们并不能检测到终端是否被恶意程序攻击,安全通道建立本身可能就基于计算机的非安全状态。同时,基于TLS协议建立计算机之间的安全通道过程中,证书链的管理、预主密钥与会话密钥的生成、数据的加解密等作为敏感操作都是通过操作系统内核的网络子系统请求调用密码服务模块完成,然而这个处理过程中,计算机可能已经受到了恶意攻击,所有敏感操作的数据可能会被窃取。此时,攻击者不仅可以利用这些信息欺骗通信双方,还可以偷窥传输的敏感数据。
当前,基于TLS协议的应用技术方案有:1、基于加密协处理器硬件实现,通过加密协处理器对转发数据包进行安全处理,降低了加解密操作对系统性能的损耗,也是使得TLS协议处理整体安全性得到了增强,但是无法保证通信对方身份的真实性和平台的安全性。2、基于TPM对TLS协议的安全扩展,通过扩展TLS握手协议,提供基于TPM的TLS协议平台完整性认证,密钥生成和数据加解密,确保通信对方身份的真实性和平台安全性。但是这些方案在协议处理上是本质相同的,比如,基于TLS协议的应用通过TSS(TPM 软件协议栈)定义的接口访问TPM或者请求TPM提供安全服务时,其协议处理上并没有独立于操作系统,所有发送和接收的数据包都需要在操作系统用户态和内核态交互,并通过网络驱动与TDDL(TPM设备驱动库)封装处理后,发往物理网卡。如果操作系统或更低层遭到攻击而发生权限泄露,那么整个基于TPM的密码系统都会受到威胁,进而导致TLS协议的整体安全性也将受到威胁。
从协议处理各要素、各环节可能存在的安全问题出发,通过对现有基于TLS协议应用方案的研究分析,基于密码协处理器的TLS协议无法完成通信对方平台安全性验证,就TLS协议本身的安全性来说,防护能力有限。基于TPM的TLS协议扩展,可以有效地阻断通信过程中存在的中间人攻击问题。但是,由于在协议处理过程中,以上方案很大程度上都存在系统底层绕过、密钥窃取的安全风险。
发明内容
为了解决上述问题,本发明设计了一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,通过安全改进TLS握手协议的处理流程,扩展TLS在通信平台完整性认证方面的缺失,有效解决了由于TLS协议实现层次太高、独立性不够、平台认证缺失等问题带来的安全隐患,提升计算机通信双方在数据加密传输、平台身份认证方面的安全性。
本发明的技术方案为:
一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,具体操作为:
首先,构建一个TLS协议安全代理组件的可信执行环境,即安全内核;安全内核提供基本的内存管理、任务调度、中断处理、密码算法服、密钥管理及TEE会话核心框架,通过CPU时空隔离特性,运行于CPU安全核;同时,在可行执行环境中应提供TLS协议安全代理模块、证书管理模块、平台信息管理模块;
其次,构建一个TLS协议处理模块运行的通用运行环境,即通用操作系统内核,运行于CPU普通核,并提供TLS协议处理模块;
最后,构建一个安全监控器,负责在两个运行环境之间进行上下文切换,运行于CPU安全核;基于CPU时空隔离机制的通用运行环境与可信执行环境物理隔离,具有独立于通用操作系统的安全性;其中,可信执行环境本身就为TLS协议安全代理组件提供了一个隔离、安全、可靠的运行环境。
假设通信双方平台都支持基于CPU时空机制可信执行环境的TLS协议安全代理模块,并且在通信开始之前,双方都具有基于CPU信任根的身份密钥AIK和AIK身份证书。同时,为了保证现有TLS协议的兼容性,本专利中假设了TLS记录层可以识别的新的记录内容类型,即本专利中握手协议对应的类型值为48。
其中,所述TLS协议处理流程如下:
(1)在通用运行环境下,客户端应用请求建立基于TLS协议的安全通道,发送Client Hello消息,包括客户端系统版本、32字节随机数、会话ID、Cipher Suites列表及压缩算法列表;
(2)在通用运行环境下,服务器端接收Client Hello消息后,首先检查客户端会话ID,判断客户端是否复用之前的会话,如果服务器复用之前的会话,那么服务器端回复Server Hello消息,包括服务器端系统版本、32字节随机数、会话ID、已选择的Cipher Spec和压缩算法;如果服务器不复用之前的会话,则返回一个不同于客户端的会话ID;
(3)服务器端TLS协议处理模块通过安全监控器与可信执行环境中的TLS协议安全代理模块建立链接会话;此时,CPU状态切换至安全核状态,可信执行环境下的TLS协议安全代理模块读取证书Certificate至共享缓冲区,包括一个X509的证书链,分别是服务器证书和签发服务器端证书的CA证书;
(4)同时,在可信执行环境下,TLS协议安全代理模块还读取了基于CPU信任根的AIK身份证书和签发AIK证书的CA证书的X509证书链,并请求安全内核中的密码算法模块用AIK私钥计算了平台状态信息P1的签名,即包括硬件平台配置信息、BIOS、操作系统安全内核和通用内核、TLS协议代理模块、TLS协议处理模块的AIK签名,并发送至共享缓冲区;会话关闭,通用运行环境下的TLS协议处理模块读取共享缓冲区数据,分别封装成AIKCredential和Mertics Verify消息发送至客户端;
(5)客户端接收到服务器端发送过来AIK Credential和Mertics Verify消息后,对服务器端证书信息进行验证,验证通过后,利用AIK身份证书中的AIK公钥,对平台状态信息P1进行验证;如果验证通过,则表明服务器端可信;此时,客户端还必须通过一个存储平台状态信息P1的数据库来判断服务器端是否安全(此处,默认存储平台度量信息的数据库自身安全);
(6)同理,在可信执行环境下,客户端发送其X509证书链、AIK身份证书链和平台状态信息P2,并封装成AIK Credential和Mertics Verify消息;服务器端接收到客户端的信息后,进行验证;如果验证失败,则关闭客户端和服务器端的会话链接,发送告警信息;
(7)如果在通用运行环境下的服务器端对客户端验证通过,则CPU状态切换至安全核,在可信执行环境下的TLS协议安全代理模块请求安全内核中的密钥管理模块生成临时的RSA的MSK公私钥对,并将公钥Public_MSK的参数信息(指数、模)、服务器证书对应的私钥对参数的签名封装在Server Key Exchange消息,并发送至共享缓冲区;此时,会话关闭,CPU状态切换至通用核,通用运行环境下的TLS协议处理模块读取Server Key Exchange消息,发送至客户端;
(8)通用环境下的客户端收到Server Key Exchange消息后,CPU状态切换至安全核,可信执行环境的TLS协议安全代理模块请求生成48字节的预主密钥PMS,利用Public_MSK对(PMS⊕P1)进行加密,将加密结果发送至共享缓冲区,关闭会话;此时,TLS协议处理模块读取加密结构,并封装在Client Key Exchange消息中发送至服务器端;
(9)服务器端接收到Client Key Exchange消息后,CPU状态切换至安全核,可信执行环境下的TLS协议代理模块利用当前平台状态信息P1和Private_MSK解封预主密钥PMS;此时,双方共享了48字节的预主密钥PMS;
(10)此时,可信执行环境下的客户端和服务器端分别利用协商出来的CipherSpec和预主密钥PMS计算主密钥MS,并初始化连接状态;
(11)可信执行环境下的客户端使用之前双方发送和接收的所有消息,使用客户端身份证书对应的私钥进行签名,并封装在Finished消息中,完成对传输消息的完整性验证;同理,服务器端发送Finished消息完成验证;
(12)当通信双方协商一致,经过验证之后,通信双方便使用新的TLS记录层处理参数,发送和接收新的应用层数据包;此时,应用数据包的处理将使用通信双方协商的主密钥MS进行加密处理。其中,加密过程将基于CPU时空隔离机制在可信执行环境中执行,确保主密钥MS的安全性。
本发明基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,包括以下功能模块:
TLS协议处理模块:客户端应用通过套接字Scoket层请求TLS协议处理模块与服务器端建立安全通道;通用运行环境下的TLS协议处理模块主要负责通过安全监控器与TLS协议安全代理模块建立会话链接,并请求相关的安全服务;除此之外,TLS协议处理模块还要负责封装安全通道建立过程中的各种消息,具体包括Server/Client Hello、Certificte、AIK Credential、Mertics Verify、Server/Client Key Exchange、Finished等(此处,只是列出了TLS协议握手过程中需要发送的消息),并且最终通过网络驱动程序发送至物理网卡。
TLS协议安全代理模块:可信执行环境下的TLS协议安全代理模块负责为TLS协议处理模块提供安全服务,包括服务器端/客户端身份证书的X509证书链读取、AIK身份证书的X509证书链读取、基于AIK签名的平台状态信息读取、密钥交换协商、预主密钥PMS生成、主密钥MS生成、预主密钥PMS解封、传输数据加/解密操作;同时,TLS协议安全代理模块通过调用密码算法服务模块、密钥管理模块、证书管理模块、平台状态信息管理模块提供的服务,以满足TLS协议安全处理的需求。
密码算法服务模块:可信执行环境下的密码算法服务模块属于安全内核,主要负责待传输的数据加/解密、密钥交换协商、签名、哈希等算法的具体执行,为TLS协议安全代理模块提供安全调用接口。
密钥管理模块:可信执行环境下的密钥管理模块属于安全内核,主要负责为TLS协议安全代理模块提供安全调用接口,提供临时密钥、预主密钥PMS、主密钥MS的生成、管理和维护。
证书管理模块:可信执行环境下的证书管理模块主要负责管理和维护通用运行环境下的用户和应用的证书;此处,主要用于管理服务器端/客户端身份证书的X509证书链、AIK身份证书的X509证书链,为TLS协议安全代理模块提供证书服务,防止证书被非授权访问和非法篡改。
平台状态管理模块:可信执行环境下的平台状态管理模块,主要负责管理基于CPU信任根的平台完整性信息;此处,主要通过TLS协议安全代理模块为客户端和服务器端提供平台远程认证功能;确保通信双方都处于安全状态下建立安全通道。
本发明以CPU安全核、CPU信任根、可信执行环境安全内核、TLS协议安全代理组件安全紧耦合为基本思想,突出系统实现的整体性和软硬件协同性,力图基于CPU时空隔离构建的可信执行环境来确保基于TLS协议的通信双方在建立会话之前、会话之中通信对方身份的真实性、通信平台的安全性、数据包封装处理过程的安全性和数据传输的保密性。
CPU时空隔离机制是指利用CPU虚拟化技术以时间片的方式运行两个不同状态的CPU虚拟核,通常划分为安全核和普通核;通过内存管理单元MMU对系统内存域进行空间划分,配置内存控制相关的寄存器以确保不同内存区域的访问权限,达到访问控制内存隔离的效果。
CPU信任根是指由CPU供应商在生产制造过程中,通过注入的CPU UID(CPU唯一标识符)所生成的CPU报告根密钥EK和存储根密钥SRK,其中CPU度量根由CPU片内安全ROM提供。
基于CPU时空隔离机制,能够为系统提供两种运行环境,即通用运行环境REE和可信执行环境TEE;其中,通用运行环境由通用操作系统环境组成,比如linux、Windows等操作系统环境;可信执行环境由操作系统安全内核和安全服务组件构成;安全服务组件为通用执行环境提供基本的安全服务,如数据加解密、安全策略配置等基本安全功能,可根据实际应用场景和系统安全需求,安全软件服务供应商自定义。
与TLS协议的处理方法相比,本发明基于CPU时空隔离机制对TLS协议处理进行安全改进的方法有如下优点:
1、可以有效地解决由于系统漏洞提权而引发的TLS协议密钥泄露所带来的安全隐患,提升基于TLS协议建立安全通道时数据的保密性;
2、可以有效地解决基于TLS协议建立安全通道过程中,通信双方的身份伪造问题,防止中间人攻击,提升基于TLS协议建立安全通道时通信双方身份认证的安全性和平台完整性;
3、可以确保通信双方安全通道的建立是处于系统安全状态下进行的,抑制木马、蠕虫、病毒等恶意程序的传播,防止对通信对方造成影响。
附图说明
图1为本发明系统整体架构图(图中:ELn代表CPU运行状态特权级,n=0,1,3)。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,具体操作为:
首先,构建一个TLS协议安全代理组件的可信执行环境,即安全内核;安全内核提供基本的内存管理、任务调度、中断处理、密码算法服、密钥管理及TEE会话核心框架,通过CPU时空隔离特性,运行于CPU安全核;同时,在可行执行环境中应提供TLS协议安全代理模块、证书管理模块、平台信息管理模块;
其次,构建一个TLS协议处理模块运行的通用运行环境,即通用操作系统内核,运行于CPU普通核,并提供TLS协议处理模块;
最后,构建一个安全监控器,负责在两个运行环境之间进行上下文切换,运行于CPU安全核;基于CPU时空隔离机制的通用运行环境与可信执行环境物理隔离,具有独立于通用操作系统的安全性;其中,可信执行环境本身就为TLS协议安全代理组件提供了一个隔离、安全、可靠的运行环境。(系统整体架构见附图1)
假设通信双方平台都支持基于CPU时空机制可信执行环境的TLS协议安全代理模块,并且在通信开始之前,双方都具有基于CPU信任根的身份密钥AIK和AIK身份证书。同时,为了保证现有TLS协议的兼容性,本专利中假设了TLS记录层可以识别的新的记录内容类型,即本专利中握手协议对应的类型值为48。
其中,所述TLS协议处理流程如下:
(1)在通用运行环境下,客户端应用请求建立基于TLS协议的安全通道,发送Client Hello消息,包括客户端系统版本、32字节随机数、会话ID、Cipher Suites列表及压缩算法列表;
(2)在通用运行环境下,服务器端接收Client Hello消息后,首先检查客户端会话ID,判断客户端是否复用之前的会话,如果服务器复用之前的会话,那么服务器端回复Server Hello消息,包括服务器端系统版本、32字节随机数、会话ID、已选择的Cipher Spec和压缩算法;如果服务器不复用之前的会话,则返回一个不同于客户端的会话ID;
(3)服务器端TLS协议处理模块通过安全监控器与可信执行环境中的TLS协议安全代理模块建立链接会话;此时,CPU状态切换至安全核状态,可信执行环境下的TLS协议安全代理模块读取证书Certificate至共享缓冲区,包括一个X509的证书链,分别是服务器证书和签发服务器端证书的CA证书;
(4)同时,在可信执行环境下,TLS协议安全代理模块还读取了基于CPU信任根的AIK身份证书和签发AIK证书的CA证书的X509证书链,并请求安全内核中的密码算法模块用AIK私钥计算了平台状态信息P1的签名,即包括硬件平台配置信息、BIOS、操作系统安全内核和通用内核、TLS协议代理模块、TLS协议处理模块的AIK签名,并发送至共享缓冲区;会话关闭,通用运行环境下的TLS协议处理模块读取共享缓冲区数据,分别封装成AIKCredential和Mertics Verify消息发送至客户端;
(5)客户端接收到服务器端发送过来AIK Credential和Mertics Verify消息后,对服务器端证书信息进行验证,验证通过后,利用AIK身份证书中的AIK公钥,对平台状态信息P1进行验证;如果验证通过,则表明服务器端可信;此时,客户端还必须通过一个存储平台状态信息P1的数据库来判断服务器端是否安全(此处,默认存储平台度量信息的数据库自身安全);
(6)同理,在可信执行环境下,客户端发送其X509证书链、AIK身份证书链和平台状态信息P2,并封装成AIK Credential和Mertics Verify消息;服务器端接收到客户端的信息后,进行验证;如果验证失败,则关闭客户端和服务器端的会话链接,发送告警信息;
(7)如果在通用运行环境下的服务器端对客户端验证通过,则CPU状态切换至安全核,在可信执行环境下的TLS协议安全代理模块请求安全内核中的密钥管理模块生成临时的RSA的MSK公私钥对,并将公钥Public_MSK的参数信息(指数、模)、服务器证书对应的私钥对参数的签名封装在Server Key Exchange消息,并发送至共享缓冲区;此时,会话关闭,CPU状态切换至通用核,通用运行环境下的TLS协议处理模块读取Server Key Exchange消息,发送至客户端;
(8)通用环境下的客户端收到Server Key Exchange消息后,CPU状态切换至安全核,可信执行环境的TLS协议安全代理模块请求生成48字节的预主密钥PMS,利用Public_MSK对(PMS⊕P1)进行加密,将加密结果发送至共享缓冲区,关闭会话;此时,TLS协议处理模块读取加密结构,并封装在Client Key Exchange消息中发送至服务器端;
(9)服务器端接收到Client Key Exchange消息后,CPU状态切换至安全核,可信执行环境下的TLS协议代理模块利用当前平台状态信息P1和Private_MSK解封预主密钥PMS;此时,双方共享了48字节的预主密钥PMS;
(10)此时,可信执行环境下的客户端和服务器端分别利用协商出来的CipherSpec和预主密钥PMS计算主密钥MS,并初始化连接状态;
(11)可信执行环境下的客户端使用之前双方发送和接收的所有消息,使用客户端身份证书对应的私钥进行签名,并封装在Finished消息中,完成对传输消息的完整性验证;同理,服务器端发送Finished消息完成验证;
(12)当通信双方协商一致,经过验证之后,通信双方便使用新的TLS记录层处理参数,发送和接收新的应用层数据包;此时,应用数据包的处理将使用通信双方协商的主密钥MS进行加密处理。其中,加密过程将基于CPU时空隔离机制在可信执行环境中执行,确保主密钥MS的安全性。
本发明基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,包括以下功能模块:
TLS协议处理模块:客户端应用通过套接字Scoket层请求TLS协议处理模块与服务器端建立安全通道;通用运行环境下的TLS协议处理模块主要负责通过安全监控器与TLS协议安全代理模块建立会话链接,并请求相关的安全服务;除此之外,TLS协议处理模块还要负责封装安全通道建立过程中的各种消息,具体包括Server/Client Hello、Certificte、AIK Credential、Mertics Verify、Server/Client Key Exchange、Finished等(此处,只是列出了TLS协议握手过程中需要发送的消息),并且最终通过网络驱动程序发送至物理网卡。
TLS协议安全代理模块:可信执行环境下的TLS协议安全代理模块负责为TLS协议处理模块提供安全服务,包括服务器端/客户端身份证书的X509证书链读取、AIK身份证书的X509证书链读取、基于AIK签名的平台状态信息读取、密钥交换协商、预主密钥PMS生成、主密钥MS生成、预主密钥PMS解封、传输数据加/解密操作;同时,TLS协议安全代理模块通过调用密码算法服务模块、密钥管理模块、证书管理模块、平台状态信息管理模块提供的服务,以满足TLS协议安全处理的需求。
密码算法服务模块:可信执行环境下的密码算法服务模块属于安全内核,主要负责待传输的数据加/解密、密钥交换协商、签名、哈希等算法的具体执行,为TLS协议安全代理模块提供安全调用接口。
密钥管理模块:可信执行环境下的密钥管理模块属于安全内核,主要负责为TLS协议安全代理模块提供安全调用接口,提供临时密钥、预主密钥PMS、主密钥MS的生成、管理和维护。
证书管理模块:可信执行环境下的证书管理模块主要负责管理和维护通用运行环境下的用户和应用的证书;此处,主要用于管理服务器端/客户端身份证书的X509证书链、AIK身份证书的X509证书链,为TLS协议安全代理模块提供证书服务,防止证书被非授权访问和非法篡改。
平台状态管理模块:可信执行环境下的平台状态管理模块,主要负责管理基于CPU信任根的平台完整性信息;此处,主要通过TLS协议安全代理模块为客户端和服务器端提供平台远程认证功能;确保通信双方都处于安全状态下建立安全通道。
本发明以CPU安全核、CPU信任根、可信执行环境安全内核、TLS协议安全代理组件安全紧耦合为基本思想,突出系统实现的整体性和软硬件协同性,力图基于CPU时空隔离构建的可信执行环境来确保基于TLS协议的通信双方在建立会话之前、会话之中通信对方身份的真实性、通信平台的安全性、数据包封装处理过程的安全性和数据传输的保密性。

Claims (1)

1.一种基于CPU时空隔离机制对TLS协议处理进行安全改进的方法,其特征在于,具体操作为:
首先,构建一个TLS协议安全代理组件的可信执行环境,即安全内核;安全内核提供基本的内存管理、任务调度、中断处理、密码算法服务、密钥管理及TEE会话核心框架,通过CPU时空隔离特性,运行于CPU安全核;同时,在可信执行环境中应提供TLS协议安全代理模块、证书管理模块、平台信息管理模块;
其次,构建一个TLS协议处理模块运行的通用运行环境,即通用操作系统内核,运行于CPU普通核,并提供TLS协议处理模块;
最后,构建一个安全监控器,负责在两个运行环境之间进行上下文切换,运行于CPU安全核;基于CPU时空隔离机制的通用运行环境与可信执行环境物理隔离,具有独立于通用操作系统的安全性;其中,可信执行环境本身就为TLS协议安全代理组件提供了一个隔离、安全、可靠的运行环境;
假设通信双方平台都支持基于CPU时空机制可信执行环境的TLS协议安全代理模块,并且在通信开始之前,双方都具有基于CPU信任根的身份密钥AIK和AIK身份证书;同时,为了保证现有TLS协议的兼容性,假设了TLS记录层可以识别的新的记录内容类型,即握手协议对应的类型值为48;
所述TLS协议处理流程如下:
(1)在通用运行环境下,客户端应用请求建立基于TLS协议的安全通道,发送ClientHello消息,包括客户端系统版本、32字节随机数、会话ID、Cipher Suites列表及压缩算法列表;
(2)在通用运行环境下,服务器端接收Client Hello消息后,首先检查客户端会话ID,判断客户端是否复用之前的会话,如果服务器复用之前的会话,那么服务器端回复ServerHello消息,包括服务器端系统版本、32字节随机数、会话ID、已选择的Cipher Spec和压缩算法;如果服务器不复用之前的会话,则返回一个不同于客户端的会话ID;
(3)服务器端TLS协议处理模块通过安全监控器与可信执行环境中的TLS协议安全代理模块建立链接会话;此时,CPU状态切换至安全核状态,可信执行环境下的TLS协议安全代理模块读取证书Certificate至共享缓冲区,包括一个X509的证书链,分别是服务器证书和签发服务器端证书的CA证书;
(4)同时,在可信执行环境下,TLS协议安全代理模块还读取了基于CPU信任根的AIK身份证书和签发AIK证书的CA证书的X509证书链,并请求安全内核中的密码算法模块用AIK私钥计算了平台状态信息P1的签名,即包括硬件平台配置信息、BIOS、操作系统安全内核和通用内核、TLS协议代理模块、TLS协议处理模块的AIK签名,并发送至共享缓冲区;会话关闭,通用运行环境下的TLS协议处理模块读取共享缓冲区数据,分别封装成AIK Credential和Mertics Verify消息发送至客户端;
(5)客户端接收到服务器端发送过来AIK Credential和Mertics Verify消息后,对服务器端证书信息进行验证,验证通过后,利用AIK身份证书中的AIK公钥,对平台状态信息P1进行验证;如果验证通过,则表明服务器端可信;此时,客户端还必须通过一个存储平台状态信息P1的数据库来判断服务器端是否安全,此处,默认存储平台度量信息的数据库自身安全;
(6)同理,在可信执行环境下,客户端发送其X509证书链、AIK身份证书链和平台状态信息P2,并封装成AIK Credential和Mertics Verify消息;服务器端接收到客户端的信息后,进行验证;如果验证失败,则关闭客户端和服务器端的会话链接,发送告警信息;
(7)如果在通用运行环境下的服务器端对客户端验证通过,则CPU状态切换至安全核,在可信执行环境下的TLS协议安全代理模块请求安全内核中的密钥管理模块生成临时的RSA的MSK公私钥对,并将公钥Public_MSK的参数信息、服务器证书对应的私钥对参数的签名封装在Server Key Exchange消息,并发送至共享缓冲区;此时,会话关闭,CPU状态切换至通用核,通用运行环境下的TLS协议处理模块读取Server Key Exchange消息,发送至客户端;
(8)通用环境下的客户端收到Server Key Exchange消息后,CPU状态切换至安全核,可信执行环境的TLS协议安全代理模块请求生成48字节的预主密钥PMS,利用Public_MSK对(PMS⊕P1)进行加密,将加密结果发送至共享缓冲区,关闭会话;此时,TLS协议处理模块读取加密结构,并封装在Client Key Exchange消息中发送至服务器端;
(9)服务器端接收到Client Key Exchange消息后,CPU状态切换至安全核,可信执行环境下的TLS协议代理模块利用当前平台状态信息P1和Private_MSK解封预主密钥PMS;此时,双方共享了48字节的预主密钥PMS;
(10)此时,可信执行环境下的客户端和服务器端分别利用协商出来的Cipher Spec和预主密钥PMS计算主密钥MS,并初始化连接状态;
(11)可信执行环境下的客户端使用之前双方发送和接收的所有消息,使用客户端身份证书对应的私钥进行签名,并封装在Finished消息中,完成对传输消息的完整性验证;同理,服务器端发送Finished消息完成验证;
(12)当通信双方协商一致,经过验证之后,通信双方便使用新的TLS记录层处理参数,发送和接收新的应用层数据包;此时,应用数据包的处理将使用通信双方协商的主密钥MS进行加密处理;其中,加密过程将基于CPU时空隔离机制在可信执行环境中执行,确保主密钥MS的安全性;
包括以下功能模块:
TLS协议处理模块:客户端应用通过套接字Scoket层请求TLS协议处理模块与服务器端建立安全通道;通用运行环境下的TLS协议处理模块主要负责通过安全监控器与TLS协议安全代理模块建立会话链接,并请求相关的安全服务;除此之外,TLS协议处理模块还要负责封装安全通道建立过程中的各种消息,具体包括Server/Client Hello、Certificte、AIKCredential、Mertics Verify、Server/Client Key Exchange、Finished,并且最终通过网络驱动程序发送至物理网卡;
TLS协议安全代理模块:可信执行环境下的TLS协议安全代理模块负责为TLS协议处理模块提供安全服务,包括服务器端/客户端身份证书的X509证书链读取、AIK身份证书的X509证书链读取、基于AIK签名的平台状态信息读取、密钥交换协商、预主密钥PMS生成、主密钥MS生成、预主密钥PMS解封、传输数据加/解密操作;同时,TLS协议安全代理模块通过调用密码算法服务模块、密钥管理模块、证书管理模块、平台状态信息管理模块提供的服务,以满足TLS协议安全处理的需求;
密码算法服务模块:可信执行环境下的密码算法服务模块属于安全内核,主要负责待传输的数据加/解密、密钥交换协商、签名、哈希等算法的具体执行,为TLS协议安全代理模块提供安全调用接口; 密钥管理模块:可信执行环境下的密钥管理模块属于安全内核,主要负责为TLS协议安全代理模块提供安全调用接口,提供临时密钥、预主密钥PMS、主密钥MS的生成、管理和维护;
证书管理模块:可信执行环境下的证书管理模块主要负责管理和维护通用运行环境下的用户和应用的证书;此处,主要用于管理服务器端/客户端身份证书的X509证书链、AIK身份证书的X509证书链,为TLS协议安全代理模块提供证书服务,防止证书被非授权访问和非法篡改;
平台状态管理模块:可信执行环境下的平台状态管理模块,主要负责管理基于CPU信任根的平台完整性信息;此处,主要通过TLS协议安全代理模块为客户端和服务器端提供平台远程认证功能;确保通信双方都处于安全状态下建立安全通道。
CN201610960649.7A 2016-11-04 2016-11-04 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法 Active CN106603487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610960649.7A CN106603487B (zh) 2016-11-04 2016-11-04 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610960649.7A CN106603487B (zh) 2016-11-04 2016-11-04 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法

Publications (2)

Publication Number Publication Date
CN106603487A CN106603487A (zh) 2017-04-26
CN106603487B true CN106603487B (zh) 2020-05-19

Family

ID=58590478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610960649.7A Active CN106603487B (zh) 2016-11-04 2016-11-04 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法

Country Status (1)

Country Link
CN (1) CN106603487B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117625B (zh) * 2017-06-22 2020-11-06 华为技术有限公司 Ai软件系统安全状态的确定方法及装置
CN111159718B (zh) * 2019-12-31 2022-10-28 青岛海尔科技有限公司 用于漏洞修复的方法及装置、家电设备
CN111416713B (zh) * 2020-04-01 2023-04-28 中国人民解放军国防科技大学 基于tee的密码服务资源安全扩展方法及系统
CN112134777B (zh) * 2020-09-09 2022-02-01 中国科学院信息工程研究所 一种可信IPSec模组与VPN隧道构建方法
CN112187734B (zh) * 2020-09-09 2021-12-14 中国科学院信息工程研究所 一种IPSec组件架构及VPN隧道建立方法
CN112583894A (zh) * 2020-11-24 2021-03-30 福建联迪商用设备有限公司 一种Android终端安全连接的方法及终端
CN112580056B (zh) * 2020-12-14 2023-09-19 中国科学院信息工程研究所 一种终端设备、数据加密方法、解密方法、及电子设备
CN114996719B (zh) * 2022-07-28 2022-11-04 杭州锘崴信息科技有限公司 可信处理单元的隐私数据及金融隐私数据的安全分析方法
CN116055215B (zh) * 2023-03-02 2024-03-15 上海弘积信息科技有限公司 一种基于网络安全传输协议的通信方法、系统及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714459A (zh) * 2013-12-26 2014-04-09 电子科技大学 一种智能终端安全支付系统及方法
CN105488388A (zh) * 2015-12-22 2016-04-13 中软信息系统工程有限公司 一种基于cpu时空隔离机制实现应用软件行为监控系统的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375221B1 (en) * 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714459A (zh) * 2013-12-26 2014-04-09 电子科技大学 一种智能终端安全支付系统及方法
CN105488388A (zh) * 2015-12-22 2016-04-13 中软信息系统工程有限公司 一种基于cpu时空隔离机制实现应用软件行为监控系统的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于TrustZone的TLS安全性增强;穆振;《中国优秀硕士学位论文全文数据库》;20160715;正文第2-3章 *
基于可信应用的可信计算实现方案;赵义龙;《中国优秀硕士学位论文全文数据库》;20130815;正文第2.3.2节 *

Also Published As

Publication number Publication date
CN106603487A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN106603487B (zh) 一种基于cpu时空隔离机制对tls协议处理进行安全改进的方法
CN109361668B (zh) 一种数据可信传输方法
JP6612322B2 (ja) データ処理方法およびデータ処理装置
KR100879907B1 (ko) 컴퓨팅 디바이스의 보안을 위한 방법 및 시스템
Kim et al. Sgx-tor: A secure and practical tor anonymity network with sgx enclaves
US20130290718A1 (en) Mobile storage device and the data processing system and method based thereon
CN101809964A (zh) 信息交换安全化方法、设备、及相应的计算机程序产品
CN108718233B (zh) 一种加密方法、计算机设备及存储介质
CN112087304B (zh) 可信计算环境的异构融合方法、装置及相关设备
CN100550030C (zh) 在便携式终端主机上添加可信平台的方法
CN114357492B (zh) 一种基于区块链的医疗数据隐私融合方法及装置
CN113726733B (zh) 一种基于可信执行环境的加密智能合约隐私保护方法
CN112765637A (zh) 数据处理方法、密码服务装置和电子设备
CN211352206U (zh) 基于量子密钥分发的IPSec VPN密码机
CN112733129B (zh) 一种服务器带外管理的可信接入方法
CN113904767A (zh) 一种基于ssl建立通信的系统
Pop et al. Secure migration of WebAssembly-based mobile agents between secure enclaves
CN101834852B (zh) 一种保护平台信息的可信OpenSSH的实现方法
CN115333779A (zh) 一种验证数据的方法、装置及电子设备
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
Hein et al. An autonomous attestation token to secure mobile agents in disaster response
CN112350922A (zh) 一种邮件处理的方法、装置、服务器及存储介质
CN112311752A (zh) 一种物联网智能表计安全系统及实现方法
Takesue A scheme for protecting the information leakage via portable devices
WO2023130970A1 (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