一种基于IntelSGX的Kerberos安全增强方法技术

技术编号:29048925 阅读:56 留言:0更新日期:2021-06-26 06:09
本发明专利技术公开了一种基于Intel SGX的Kerberos安全增强方法,包括以下步骤:(1)Kerberos认证系统的安全初始化。(2)KDC密钥分发中心的认证服务的安全执行。(3)认证服务结束后密钥的安全存储。通过引入Intel SGX硬件与SGX的可信空间机制构建安全的Kerberos身份认证系统中KDC密钥分发中心主密钥存储与使用环境。本方法分为三个模块:密钥安全初始化模块;密钥安全操作模块;密钥安全存储模块。该主密钥为仅由KDC持有的长期密钥,用于加密认证信息,因此需要安全执行环境,本方法能够保证其存储和运行安全,保障即使攻击者窃听信息也无法解密出票据信息,从而保证票据的传输和验证安全。证安全。证安全。

【技术实现步骤摘要】
一种基于Intel SGX的Kerberos安全增强方法


[0001]本方法涉及信息安全,Kerberos身份认证,Intel SGX技术

技术介绍

[0002]Kerberos协议是分布式网络中一种重要的基于可信第三方认证协议,广泛应用于各主流操作系统以及云计算、大数据、物联网等场景.Kerberos协议最初是在八十年代末由麻省理工学院开发出来的,其设计目标是通过密钥系统为客户端/服务器端应用程序提供有效的认证服务。Kerberos适于在公共网络上进行分布计算,使用了加密技术和分布式数据库技术,随着计算机网络的发展,安全问题日益突出。身份认证机制是网络安全的基础,也是通信安全的第一道屏障,身份信息一旦被假冒,将严重损害被假冒者的利益。
[0003]而Kerberos作为广泛使用的身份认证机制仍然存在一定的缺陷,Kerberos认证协议基于可信第三方,一般把可信第三方称为KDC(密钥分发中心),KDC提供了通信参与者之间身份的相互认证,KDC密钥分发中心负责密钥的存储管理,需要安全可信的环境。
[0004]当前通过为应用提供隔离的安全执行环境来保证应用安全的方式主要有软件和硬件的两种保护方式。主流的软件保护方式是通过虚拟化的技术提供可信的系统执行安全敏感性较高的应用程序,全(部分)同态加密的密码学手段也被应用于保护云计算平台的用户数据安全。硬件保护方式主要有安全协处理器,可信平台模块(Trusted Platform Module,TPM),ARM Trust Zone等相关技术。
[0005]英特尔SGX(Intel Software Guard Extensions)作为一种新的解决思路,是一套扩展的CPU指令,支持应用程序创建安全区(enclave),即应用程序地址中受保护的区域。安全区可以保障内部信息的机密性,完整性和可靠性,试图从软件角度访问安全区内存是不允许的。即使是高级特权软件(操作系统,虚拟机监控器等)也不允许访问。SGX技术中单个CPU可以运行多个安全enclaves,支持并发执行。因此SGX技术对API秘钥保护提供了新的可能。
[0006]SGX技术相对于以上技术的优势主要有以下几点。
[0007](1)广适用性和强运算性能。SGX技术可以在较小开销的前提下,实现指定关键代码数据的隐私性和完整性的保证。
[0008](2)小的可信计算基础。SGX技术的可信计算基础大小只包含处理器和Enclave中的代码,很大程度上增强了被保护代码数据的安全性能。
[0009]国内外研究者针对Kerberos协议的安全漏洞,提出了很多改进方案,主要有以下几种:
[0010](1)使用公钥加密方法对Kerberos协议进行扩充的方案,用来抵御口令猜测攻击。
[0011]将非对称密钥和签名算法引入Kerberos协议的初始认证阶段来解决密钥管理问题,但是需要的计算资源和通信带宽也大大增加,且需要PKI的支持,部署起来更困难。
[0012](2)在客户端通过增加随机数,或使用动态密钥来代替时间戳,或采用基于时间戳和MAC地址的双重验证,用来解决重放攻击问题。
[0013]但上述方法均增加了协议的计算复杂性和认证会话次数,取消时间戳机制,降低了Kerberos机制本身所具有的灵活性。
[0014]针对Kerberos的改进措施主要面向口令猜测和重放攻击,未关注Kerberos系统中KDC本身的安全问题。
[0015]通过分析Kerberos身份认证过程可知,KDC密钥分发中心的安全核心是TGS密钥,该密钥仅由KDC持有,用于加密和验证票据授权票据TGT(TGT包含了会话密钥和票据信息等重要信息),用于防止票据信息被篡改,一旦主密钥TGS密钥被获取,那么网络通信过程中票据中的用户信息、时间戳,以及会话密钥都可以随意获取和修改,涉及TGS密钥的主要有以下两个安全问题。
[0016](1)存储安全问题。相比短期的会话密钥,TGS密钥属于长期密钥,客户端和应用服务器之间进行消息交互中使用到KDC颁发的密钥加密,因此更需要保障隐蔽安全性。而密钥存储在数据库中,这样,一旦Kerberos数据库被攻击,攻击者就能对交互过程中的消息进行解密,系统的安全性受到了严重的威胁。
[0017](2)运行安全问题。KDC密钥中心在认证过程中,会涉及到使用TGS密钥在内存中进行加密与解密,此时针对于内存的攻击与监听都将威胁到密钥的安全。

技术实现思路

[0018]本专利技术的主要内容是通过使用Intel SGX技术的内存保护、数据加密技术,构建一个基于处理器可信的Kerberos身份认证系统。主要功能是保护Kerberos认证系统中的可信第三方KDC的TGS密钥的使用生命周期,具体指:
[0019](1)在SGX的内存保护区域中安全使用密钥。
[0020](2)对其使用后进行加密保存。
[0021]从而保障密钥使用生命周期的安全,进而防止获取和篡改票据信息,威胁Kerberos认证系统的安全。
[0022]为了实现上述专利技术目的:本专利技术提供了如下技术方案:一种基于SGX的Kerberos安全增强方法。在硬件层面上,中央处理器通过指令扩展和访问控制策略提供了EPC物理隔离内存区域,逻辑内存enclave存储程序和数据,通过内存映射存储在EPC中,实现内存隔离。内核层面上,SGX驱动为应用层提供创建enclave,数据密封等功能。应用层上,将KDC中涉及到TGS密钥的关键模块(初始化模块,使用模块,持久化存储模块)运行至安全区enclave中。该方案确保:尽可能减少性能开销,减少针对认证协议流程的修改。密封机制保障TGS密钥的持久化存储安全性,攻击者无法直接读取到明文的机密信息。内存隔离机制保障TGS密钥的动态安全,当KDC提供身份认证服务时无法通过操作系统或特权软件层面读取。
[0023]其特征在于,包括以下步骤:(1)Kerberos认证系统的安全初始化。(2)KDC密钥分发中心的认证服务的安全执行。(3)认证服务结束后密钥的安全存储。
[0024](1)Kerberos认证系统的初始化包括:客户和应用服务器各主体以及密钥分发中心KDC首先检测Kerberos程序是否正确,确认无误之后进行程序安全配置并启动,其中KDC在系统安全区内完成主密钥的初始化和安全存储;
[0025](2)KDC密钥分发中心的认证服务的安全执行包括:KDC进行认证服务,用户向KDC申请票据,KDC通过验证后授予用户票据,用户使用票据和应用服务器进行通信,其中KDC使
用主密钥加密票据信息的过程使用SGX来保证内存安全。
[0026](3)KDC认证服务结束后使用SGX加密封装主密钥包括:使用SGX密封技术加密结束使用的主密钥,将加密后的主密钥安全存储在数据库中。
[0027]进一步的,步骤(1)Kerberos认证系统初始化具体步骤包括:
[0028](1

1):领域中的每本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SGX的Kerberos安全增强方法,其特征在于,包括以下步骤:(1)Kerberos认证系统的安全初始化;(2)KDC密钥分发中心的认证服务的安全执行;(3)认证服务结束后密钥的安全存储;Kerberos认证系统的安全初始化步骤包括:客户和应用服务器各主体以及密钥分发中心KDC首先检测Kerberos程序是否正确,确认无误之后进行程序安全配置并启动,其中KDC在系统安全区内完成主密钥的初始化和安全存储;KDC密钥分发中心的认证服务的安全执行步骤包括:KDC进行认证服务,用户向KDC申请票据,KDC通过验证后授予用户票据,用户使用票据和应用服务器进行通信,其中KDC使用主密钥加密票据信息的过程使用SGX来保证内存安全;KDC认证服务结束后使用SGX加密封装主密钥步骤包括:使用SGX密封技术加密结束使用的主密钥,将加密后的主密钥安全存储在数据库中。2.根据权利要求1所述的基于SGX的Kerberos安全增强方法,其特征在于,所述Kerberos认证系统的安全初始化具体步骤包括:步骤1:领域中的每个主体,即用户和应用服务器部署Kerberos程序,部署完毕后检查该程序是否已经遭到篡改;检查方式包括但不限于计算程序的哈希摘要值,并与该程序完成和发布版本的哈希摘要进行比对;检查无误后进入下一步,否则终止后续流程;步骤2:用户进行程序配置,键入用户密码,程序通过单向哈希生成用户密钥,用于Kerberos身份验证;步骤3:管理员在KDC部署Kerberos程序,部署完毕后检查该程序是否已经遭到篡改,检查无误后进入下一步,否则终止后续流程;步骤4:管理员进行程序配置,创建Kerberos数据库,数据库包含所有主体,主体密码;由管理员键入主体信息;步骤5:数据库中内置的krbtgt主体对应的密钥即为TGS密钥,由管理员键入密码字段;步骤6:创建内存安全区,并调用Ecall可信接口函数,进入内存安全区,密码字段作为函数输入参数传入;步骤7:在SGX安全区生成执行由密码字段派生TGS密钥的算法,密钥生成使用SGX加密技术加密后再保存至Kerberos数据库中。3.根据权利要求1所述的基于SGX的Kerberos安全增强方法,其特征在于,所述KDC密钥分发中心的认证服务的安全执行步骤具体包括:步骤(2)KDC密钥分发中心的认证服务的安全执行具体步骤包括:步骤1:客户端C向KDC的认证服务器AS发出认证请求;C

AS:K
C
{ID
C
||ID TGS
},Client使用自己的密钥K
C
对其进行加密,请求包含Client的基本身份信息ID
C
以及KDC的票据授权服务器TGS的基本信息ID
TGS
等;步骤2:KDC验证步骤(2

1)的认证请求;KDC通过数据库获得主体C对应的K
C
解密请求,验证请求信息是否与数据库中主体信息一致,若不一致,认证服务结束;步骤3:验证通过后,客户端C得到访问票据授权服务器TGS的票据授权票据TGT;AS

Client:K
C
{SK
C,TGS
||ID
TGS
},TGT;其中SK
C,TGS
为客户端与TGS服务...

【专利技术属性】
技术研发人员:王冠苗艺雪
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1