CN111475782A - 基于sgx软件扩展指令的api密钥保护方法及系统 - Google Patents

基于sgx软件扩展指令的api密钥保护方法及系统 Download PDF

Info

Publication number
CN111475782A
CN111475782A CN202010271832.2A CN202010271832A CN111475782A CN 111475782 A CN111475782 A CN 111475782A CN 202010271832 A CN202010271832 A CN 202010271832A CN 111475782 A CN111475782 A CN 111475782A
Authority
CN
China
Prior art keywords
api
signature
sgx
remote authentication
api 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
Application number
CN202010271832.2A
Other languages
English (en)
Other versions
CN111475782B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202010271832.2A priority Critical patent/CN111475782B/zh
Publication of CN111475782A publication Critical patent/CN111475782A/zh
Application granted granted Critical
Publication of CN111475782B publication Critical patent/CN111475782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SGX软件扩展指令的API密钥保护方法,其包括以下步骤:(1)API密钥保护系统初始化、(2)远程认证与API密钥导入、(3)API请求签名与签名信息导出;该方法通过引入Intel SGX硬件与SGX的可信空间机制构建安全的API密钥存储与使用环境,为用户API密钥提供保护;本发明还公开了基于SGX软件扩展指令的API密钥保护系统,其包括用于与用户可信设备协作完成SGX远程认证的远程认证模块;用于在SGX安全区内对已经获取的API密钥进行存储与管理的密钥管理模块;用于向用户程序提供可信时间戳的可信时间模块;以及用于根据用户程序的请求与API密钥生成有效签名的签名模块。

Description

基于SGX软件扩展指令的API密钥保护方法及系统
技术领域
本发明涉及信息安全领域,具体涉及一种基于SGX软件扩展指令的API密钥保护方法及系统。
背景技术
API密钥,即应用程序接口密钥,用于确定调用应用程序服务的用户身份,多由应用程序开发人员申请,并由程序进行使用,在跨服务应用程序以及云场景中使用广泛。一般API密钥成对出现,分为Access Key和Secret Key,分别用于表示用户ID和进行签名计算。签名计算一般采用哈希消息认证码算法(如HMAC-256),计算结果作为签名输出。上述密钥对中,用于签名计算的密钥尤其重要,并需要进行严密的安全保护,避免在公开网络中传播。发送调用请求的程序使用API密钥为请求消息计算签名,服务端程序通过对签名进行验证来确认调用请求源的身份,并提供与请求相应的服务。
在此种情境下,API密钥代表了用户身份,在权限上与用户账号和密码等同;API密钥一旦丢失,便会带来一系列安全隐患,如产生预料之外的服务费用、用户隐私泄露、用户资产失窃等。例如,在2018年3月及7月的币安交易所安全事件中,攻击者疑似利用窃取的API密钥进行恶意程序化交易以操纵币价,在没有窃取任何用户区块链账户密钥(用于实际控制区块链资产)的情况下获取巨额利益,并给全球数字货币市场带来了极其恶劣的影响。因此,保护API密钥具有十分重要的意义,特别是在云场景等用户无法完全确认或掌控程序运行环境安全的场景中。
然而,目前缺乏针对API密钥的可靠安全保护机制。明文存储以及密钥信息硬编码等情况屡见不鲜,仅仅是代码的公开就可能造成密钥泄露,安全隐患极大。为了实施API密钥保护,一种常见的策略是通过配置文件的方法进行API密钥管理:开发者将API密钥存储在系统配置文件中,程序代码通过读取配置文件获取API密钥。另一种受到推荐的方法是将密钥隐藏在环境变量中,即使代码信息公开也不会泄露API密钥。上述的各种方法在一定程度上可以提高API密钥的安全性,但均无法做到完备的保护,API密钥明文内容均暴露在实际密钥使用程序的运行环境中,这给了攻击者可乘之机,仍存在不可忽视的安全隐患。如果通过加密的方式保护程序使用的API密钥,则又会引入新的待保护加密密钥或口令;由于API密钥多为程序使用,很多使用场景中的程序无法实时向用户请求口令(如频繁访问云数据库的Web后台程序),这便会不可避免地引发循环加密问题。当开发者的程序本身也运行在云环境中时,云的安全与否也为API密钥的使用引入了不确定因素。
Barbican作为OpenStack社区的官方项目,提供了密钥管理与安全存储功能,为程序提供基于加密保护的密钥、证书、二进制文件保护等功能。然而,Barbican基于软件方法保护API密钥,无法有效应对拥有高级权限的系统攻击。使用安全硬件模块(HSM)可以提供几乎完备的API密钥保护,但硬件成本高昂,不适用于个人开发者或小型团队。现有基于安全元件(SE)的API密钥保护机制仍然需要人工认证环节,因而不适用于有大规模API访问需求的自动化程序。
英特尔SGX(Intel Software Guard Extensions)是一套CPU指令,支持应用程序创建安全区(enclave),即应用程序地址中受保护的区域。安全区可以保障内部信息的机密性,完整性和可靠性,试图从软件角度访问安全区内存是不允许的。即使是高级特权软件(操作系统,虚拟机监控器等)也不允许访问。SGX技术中单个CPU可以运行多个安全enclaves,支持并发执行。因此SGX技术对API秘钥保护提供了新的可能。
发明内容
针对现有技术的不足,本发明提供了一种基于SGX软件扩展指令的API密钥保护方法,该方法通过引入Intel SGX硬件与SGX的可信空间机制构建安全的API密钥存储与使用环境,令API密钥信息本身以及与之相关的使用操作不受攻击者或不受特权软件的窃取或干扰,进而为用户API密钥提供保护。
为了实现上述发明目的:本发明提供了如下技术方案:一种基于SGX软件扩展指令的API密钥保护方法,其特征在于,包括以下步骤:(1)API密钥保护系统初始化、(2)远程认证与API密钥导入、(3)API请求签名与签名信息导出;
(1)API密钥保护系统初始化包括:用户首先检测服务器上的用户程序是否正确,确认无误之后进行用户程序启动并初始化,之后在用户程序中进行API密钥保护系统安全区的初始化;
(2)远程认证与API密钥导入包括:用户通过自己的可信设备(如个人PC或智能手机)与用户程序服务器上的API密钥保护系统建立SGX远程认证(Remote Attestation)流,通过远程确认服务器CPU对SGX的支持状况、确认API密钥保护系统功能是否正常,以及实现从用户可信设备向服务器上的用户程序安全传输API密钥信息;
(3)API请求签名包括:用户程序访问API密钥保护系统获取可信时间戳,并整合可信时间戳与其他相关信息构建签名输入信息;API密钥保护系统根据用户程序签名请求与传入的签名输入信息,在API密钥保护系统安全区内完成签名计算与编码,并返回用户程序。
进一步的,步骤(1)API密钥保护系统初始化具体步骤包括:
(1-1)用户在用户程序服务器上部署用户程序,部署完毕后检查该程序是否已经遭到篡改。检查方式包括但不限于计算程序的哈希摘要值(如SHA256),并与该程序完成或发布版本的哈希摘要进行比对。检查无误后进入下一步,否则终止后续流程并进行人工处理;
(1-2)用户程序启动,执行自检以排查系统内部错误与所需硬件状况(如数据库设备)。检查无误后进入下一步,否则执行自动修复,若修复无效则终止后续流程、发出警报并请求人工处理;
(1-3)用户程序以动态链接库的方式调用API密钥保护系统初始化函数,通过SGX为API密钥保护系统创建可信空间。此步骤创建不含有机密信息(如API密钥)的SGX安全区。
步骤(2)远程认证与API密钥导入具体步骤包括:
(2-1)用户在自己的可信设备端启动远程认证程序,启动成功后开启对服务器端用户程序远程认证消息的监听,启动失败则报警并终止后续流程。
优选的,用户远程认证程序在可信设备的指定网络端口监听服务器端用户程序发起的远程认证请求。不排除使用其他方法或技术实现远程认证请求消息的监听。
(2-2)服务器端用户程序调用API密钥保护系统远程认证模块,根据SGX标准远程认证流程构造第一个SGX远程认证流消息(Msg0)与第二个SGX远程认证流消息(Msg1),并发送至用户可信设备端的远程认证程序,之后继续监听后续消息;
进一步地,所述步骤(2-2)中,服务器端用户程序构建第一个远程认证消息(Msg0)与第二个SGX远程认证流消息(Msg1)可一同发送至用户可信设备端的远程认证程序,也可分别进行发送。
(2-3)用户可信设备端的远程认证程序接收来自服务器端用户程序的远程认证消息Msg0与Msg1,检查消息中的参数,根据SGX标准远程认证流程构造返回消息Msg2,并向英特尔认证服务(IAS)发送一个查询以进一步检查Msg0中英特尔EPID GID的签名撤销表(SigRL),检查均通过后向服务器端用户程序发送Msg2,之后继续监听后续消息,否则报警并终止流程;
(2-4)服务器端用户程序接收Msg2后调用API密钥保护系统远程认证模块,对消息进行检查,检查通过后根据SGX标准远程认证流程构建返回消息Msg3,并发送至用户可信设备端的远程认证程序,之后继续监听后续消息;检查不通过则报警并终止流程;
(2-5)用户可信设备端的远程认证程序接收来自服务器端用户程序的远程认证消息Msg3,检查消息中的参数;检查通过后根据SGX标准远程认证流程构造返回消息Msg4,并将需要传输的API密钥通过Msg2构造过程中导出的密钥进行加密,之后将加密后的API密钥信息一并打包入Msg4,并发送至服务器端用户程序;检查不通过则报警并终止流程;
(2-6)服务器端用户程序接收Msg4后调用API密钥保护系统远程认证模块,远程认证模块检查Msg4中的参数,检查通过后在安全区内解密Msg4中包含的API密钥信息,并在安全区内调用调用密钥管理模块为密钥分配密钥ID,之后将密钥存储在安全区内并向用户程序输出已分配的密钥ID;检查不通过则报警并终止流程;
(2-7)服务器端用户程序接收并维护由API密钥管理系统输出的密钥ID,之后启动正常程序业务流程。
步骤(3)API请求签名与签名信息导出具体步骤包括:
(3-1)服务器端用户程序调用API密钥保护系统可信时间模块,获取可信时间戳,并根据实际需求对时间戳信息进行重编码;编码后的时间信息与其他签名所需的API请求信息一同组成签名输入消息信息;
(3-2)服务器端用户程序根据业务需要构建API签名请求,在请求中指定签名所需的密钥ID、签名构造算法以及步骤(3-1)中构建的签名输入消息信息,构造完成后调用API密钥保护系统签名模块执行后续处理;
(3-3)API密钥保护系统接收API签名请求,在安全区内解析请求中包含的参数,并且根据参数信息选择签名所需的API密钥与签名算法,计算签名;
(3-4)签名计算完成后,API密钥保护系统将签名消息返回服务器端用户程序,并清理安全区内计算签名过程中生成的中间数据。
(3-5)服务器端用户程序接收API密钥保护系统计算的签名结果,并将签名信息整合入API请求信息中以构造合法的API请求,之后用户程序将已构造的合法API请求发送至云服务提供商指定的服务器以请求相应的远程服务。
进一步的,所述步骤(1-1)中的检查方式包括检查计算程序的哈希摘要值(如SHA256),并与该程序完成或发布版本的哈希摘要进行比对。
进一步的,所述步骤(1-3)中,通过SGX为API密钥保护系统创建可信空间,包括:
(1-3a)生成API密钥保护系统远程认证模块、密钥管理模块、可信时间模块与签名模块的证书,将远程认证模块、密钥管理模块、可信时间模块与签名模块一起上载到处理空间中;
(1-3b)通过SGX驱动器对上载的远程认证模块、密钥管理模块、可信时间模块与签名模块及其证书进行参数测量,为可信空间分配地址空间和内存页,同时获取证书信息并传递给SGX硬件处理器;
(1-3c)SGX驱动器根据测量的参数与配置文件信息创建可信空间,将远程认证模块、密钥管理模块、可信时间模块与签名模块复制到可信空间中,之后删除处理空间中的数据;
(1-3d)SGX硬件处理器根据远程认证模块、密钥管理模块、可信时间模块与签名模块的证书信息及SGX硬件处理器自身的数据生成可信空间的访问密钥,并通过访问密钥对可信空间加密。
进一步的,所述步骤(2-1)中用户远程认证程序在可信设备的指定网络端口监听服务器端用户程序发起的远程认证请求。
进一步的,所述步骤(2-2)中,服务器端用户程序构建第一个远程认证消息(Msg0)与第二个SGX远程认证流消息(Msg1)可一同发送至用户可信设备端的远程认证程序,或分别进行发送。
另一发明目的:本发明还提供了一种基于API密钥保护方法所依赖的API密钥保护系统,包括:
远程认证模块,运行于用户程序所在服务器,用于与用户可信设备协作完成SGX远程认证,并安全获取用户的API密钥;
密钥管理模块,运行于用户程序所在服务器,用于在SGX安全区内对已经获取的API密钥进行存储与管理;
可信时间模块,运行于用户程序所在服务器,用于向用户程序提供可信时间戳,加强签名安全性;
签名模块,运行于用户程序所在服务器,根据用户程序的请求与API密钥生成有效签名。
本发明的API密钥保护系统支持作为第三方动态链接库运行,以可插拔的方式直接向用户程序提供API密钥安全管理与签名服务。同时本发明的API密钥保护系统支持同一台服务器上多个应用程序同时调用,各个应用程序各自在自己的程序空间创建SGX安全区并调用相应的API密钥管理功能。API密钥保护体系可采用Intel提供的SGX SDK进行编程,可以方便地增加新的签名算法,以适配新的身份认证方法,具有高可扩展性。
与现有技术相比,本发明的有益效果为:
(1)本发明的API密钥保护方法将API密钥从传入到使用过程均纳入到可信硬件的保护,攻击者无法嗅探相关的API密钥信息,也无法伪装用户调用API密钥进行非法请求的签名,保障用户程序安全使用API密钥获取相关的远程云服务;
(2)本发明的API密钥保护系统基于SGX远程认证机制从用户端获取API密钥信息,基于硬件在安全区内生成可信时间戳,整个运行流程不依赖系统调用,即使攻击者在系统层面进行恶意更改(如更改系统时间),也不会影响本发明系统的安全性与正常使用;
(3)本发明的API密钥保护系统支持编译为C语言库,具备高迁移性和高适配性,可供多种编程语言和业务程序使用,且使用者只需对原有程序的签名构造部分进行更改,即可使用本API密钥保护系统,极大方便了开发者使用该系统;
(4)本发明的API密钥保护系统具备高效性,由于SGX安全区内部使用开销仅为低计算负荷的消息认证码计算、信息编码以及获取可信时间戳,相比于实际使用API密钥进行身份认证过程中的网络IO开销,本系统的使用开销可以忽略不计。
附图说明
图1为本发明的基于SGX的API密钥管理系统的架构示意图;
图2为API密钥保护系统初始化的流程示意图;
图3为远程认证与API密钥导入的流程示意图;
图4为API请求签名与签名信息导出的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
如图1所示,本发明的API密钥保护系统包括4个模块:
远程认证模块,运行于用户程序所在服务器,用于与用户可信设备协作完成SGX远程认证,并安全获取用户的API密钥;
密钥管理模块,运行于用户程序所在服务器,用于在SGX安全区内对已经获取的API密钥进行存储与管理;
可信时间模块,运行于用户程序所在服务器,用于向用户程序提供可信时间戳,加强签名安全性;
签名模块,运行于用户程序所在服务器,根据用户程序的请求与API密钥生成有效签名。
图1中与本发明系统交互的其他部分包括:
用户可信设备,由用户控制的安全可信设备,如个人PC或智能手机,设备中预先存储了用户在云服务提供商处申请的API密钥,以及用于SGX远程认证的远程认证程序;用户可信设备不需要拥有支持Intel SGX功能的CPU;
用户程序服务器,为用户程序以及API密钥保护系统提供运行环境,需要配备支持Intel SGX功能的CPU;
云服务提供商,为用户程序服务器上的用户程序提供相应的云服务,并且支持基于API密钥的身份认证机制。
基于SGX的API密钥保护方法包括API密钥保护系统初始化、远程认证与API密钥导入、API请求签名与签名信息导出。
如图2所示,API密钥保护系统初始化包括用户在服务器端部署用户程序,并检查该程序是否已受到篡改;检查无误后用户启动该程序,用户程序启动后执行自检,确认运行环境与硬件状况,确认无误后初始化API密钥管理系统,为其分配SGX可信空间(同下述的安全区)。
远程认证由用户可信设备端的远程认证程序、用户程序服务器端用户程序、API密钥保护系统的远程认证模块以及密钥管理模块共同协作完成,其流程如图3所示。首先用户在自己的可信设备端启动远程认证程序,之后由服务器端用户程序调用API密钥保护系统远程认证模块,构造SGX远程认证流交互数据并发送至用户可信设备端的远程认证程序,二者完成SGX标准远程认证所需的Msg0至Msg4共计五条消息的交互与相应的检查工作;在远程认证数据交互过程中,用户可信设备端的远程认证程序将加密的API密钥发送至服务器端用户程序,用户程序将消息转发至API密钥保护系统远程认证模块,并在安全区内将加密的API密钥解密,随后API密钥保护系统的密钥管理模块在安全区内生成已获取API密钥的ID并输出,密钥信息由密钥管理模块在安全区内维护的API密钥数据库中进行管理。
API请求签名与签名信息导出由用户程序服务器端用户程序、云服务提供商、API密钥保护系统的可信时间模块与签名模块共同协作完成,其流程如图4所示。首先服务器端用户程序调用API密钥保护系统的可信时间模块获取可信时间戳,之后整合其他相关信息构造签名输入信息与签名请求;API密钥保护系统接收API签名请求,根据请求内容在安全区内通过密钥管理模块获取相应API密钥,之后通过签名模块完成签名计算与编码,将签名信息返回用户程序,并清除计算过程中产生的中间数据;用户程序利用签名构造合法的API请求,发送至云服务提供商进行认证并获取相应的服务。
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于SGX软件扩展指令的API密钥保护方法,其特征在于,包括以下步骤:(1)API密钥保护系统初始化、(2)远程认证与API密钥导入、(3)API请求签名与签名信息导出;
(1)API密钥保护系统初始化包括:用户首先检测服务器上的用户程序是否正确,确认无误之后进行用户程序启动并初始化,之后在用户程序中进行API密钥保护系统安全区的初始化;
(2)远程认证与API密钥导入包括:用户通过自己的可信设备与用户程序服务器上的API密钥保护系统建立SGX远程认证流,通过远程确认服务器CPU对SGX的支持状况、确认API密钥保护系统功能是否正常,以及实现从用户可信设备向服务器上的用户程序安全传输API密钥信息;
(3)API请求签名包括:用户程序访问API密钥保护系统获取可信时间戳,并整合可信时间戳与其他相关信息构建签名输入信息;API密钥保护系统根据用户程序签名请求与传入的签名输入信息,在API密钥保护系统安全区内完成签名计算与编码,并返回用户程序。
2.根据权利要求1所述的基于SGX软件扩展指令的API密钥保护方法,其特征在于,所述步骤(1)包括:
(1-1)用户在用户程序服务器上部署用户程序,部署完毕后检查该程序是否已经遭到篡改,检查无误后进入下一步,否则终止后续流程并进行人工处理;
(1-2)用户程序启动,执行自检以排查系统内部错误与所需硬件状况,检查无误后进入下一步,否则执行自动修复,若修复无效则终止后续流程、发出警报并请求人工处理;
(1-3)用户程序以动态链接库的方式调用API密钥保护系统初始化函数,通过SGX为API密钥保护系统创建可信空间,此步骤创建不含有机密信息的SGX安全区;
所述步骤(2)包括:
(2-1)用户在自己的可信设备端启动远程认证程序,启动成功后开启对服务器端用户程序远程认证消息的监听,启动失败则报警并终止后续流程;
(2-2)服务器端用户程序调用API密钥保护系统远程认证模块,根据SGX标准远程认证流程构造第一个SGX远程认证流消息Msg0与第二个SGX远程认证流消息Msg1,并发送至用户可信设备端的远程认证程序,之后继续监听后续消息;
(2-3)用户可信设备端的远程认证程序接收来自服务器端用户程序的远程认证消息Msg0与Msg1,检查消息中的参数,根据SGX标准远程认证流程构造返回消息Msg2,并向英特尔认证服务(IAS)发送一个查询以进一步检查Msg0中英特尔EPID GID的签名撤销表(SigRL),检查均通过后向服务器端用户程序发送Msg2,之后继续监听后续消息,否则报警并终止流程;
(2-4)服务器端用户程序接收Msg2后调用API密钥保护系统远程认证模块,对消息进行检查,检查通过后根据SGX标准远程认证流程构建返回消息Msg3,并发送至用户可信设备端的远程认证程序,之后继续监听后续消息;检查不通过则报警并终止流程;
(2-5)用户可信设备端的远程认证程序接收来自服务器端用户程序的远程认证消息Msg3,检查消息中的参数;检查通过后根据SGX标准远程认证流程构造返回消息Msg4,并将需要传输的API密钥通过Msg2构造过程中导出的密钥进行加密,之后将加密后的API密钥信息一并打包入Msg4,并发送至服务器端用户程序;检查不通过则报警并终止流程;
(2-6)服务器端用户程序接收Msg4后调用API密钥保护系统远程认证模块,远程认证模块检查Msg4中的参数,检查通过后在SGX安全区内解密Msg4中包含的API密钥信息,并在安全区内调用调用密钥管理模块为密钥分配密钥ID,之后将密钥存储在安全区内并向用户程序输出已分配的密钥ID;检查不通过则报警并终止流程;
(2-7)服务器端用户程序接收并维护由API密钥管理系统输出的密钥ID,之后启动正常程序业务流程。
所述步骤(3)包括:
(3-1)服务器端用户程序调用API密钥保护系统可信时间模块,获取可信时间戳,并根据实际需求对时间戳信息进行重编码;编码后的时间信息与其他签名所需的API请求信息一同组成签名输入消息信息;
(3-2)服务器端用户程序根据业务需要构建API签名请求,在请求中指定签名所需的密钥ID、签名构造算法以及步骤(3-1)中构建的签名输入消息信息,构造完成后调用API密钥保护系统签名模块执行后续处理;
(3-3)API密钥保护系统接收API签名请求,在API密钥保护系统安全区内解析请求中包含的参数,并且根据参数信息选择签名所需的API密钥与签名算法,计算签名;
(3-4)签名计算完成后,API密钥保护系统将签名消息返回服务器端用户程序,并清理API密钥保护系统安全区内计算签名过程中生成的中间数据。
(3-5)服务器端用户程序接收API密钥保护系统计算的签名结果,并将签名信息整合入API请求信息中以构造合法的API请求,之后用户程序将已构造的合法API请求发送至云服务提供商指定的服务器以请求相应的远程服务。
3.根据权利要求2所述的基于SGX软件扩展指令的API密钥保护方法,其特征在于,所述步骤(1-1)中的检查方式包括检查计算程序的哈希摘要值(如SHA256),并与该程序完成或发布版本的哈希摘要进行比对。
4.根据权利要求2所述的基于SGX软件扩展指令的API密钥保护方法,其特征在于,所述步骤(1-3)中,通过SGX为API密钥保护系统创建可信空间,包括:
(1-3a)生成API密钥保护系统远程认证模块、密钥管理模块、可信时间模块与签名模块的证书,将远程认证模块、密钥管理模块、可信时间模块与签名模块一起上载到处理空间中;
(1-3b)通过SGX驱动器对上载的远程认证模块、密钥管理模块、可信时间模块与签名模块及其证书进行参数测量,为可信空间分配地址空间和内存页,同时获取证书信息并传递给SGX硬件处理器;
(1-3c)SGX驱动器根据测量的参数与配置文件信息创建可信空间,将远程认证模块、密钥管理模块、可信时间模块与签名模块复制到可信空间中,之后删除处理空间中的数据;
(1-3d)SGX硬件处理器根据远程认证模块、密钥管理模块、可信时间模块与签名模块的证书信息及SGX硬件处理器自身的数据生成可信空间的访问密钥,并通过访问密钥对可信空间加密。
5.根据权利要求2所述的基于SGX软件扩展指令的API密钥保护方法,其特征在于,所述步骤(2-1)中用户远程认证程序在可信设备的指定网络端口监听服务器端用户程序发起的远程认证请求。
6.根据权利要求2所述的基于SGX软件扩展指令的API密钥保护方法,其特征在于,所述步骤(2-2)中,服务器端用户程序构建第一个远程认证消息(Msg0)与第二个SGX远程认证流消息(Msg1)可一同发送至用户可信设备端的远程认证程序,或分别进行发送。
7.一种基于SGX软件扩展指令的API密钥保护系统,其特征在于:包括
远程认证模块,运行于用户程序所在服务器,用于与用户可信设备协作完成SGX远程认证,并安全获取用户的API密钥;
密钥管理模块,运行于用户程序所在服务器,用于在SGX安全区内对已经获取的API密钥进行存储与管理;
可信时间模块,运行于用户程序所在服务器,用于向用户程序提供可信时间戳,加强签名安全性;
签名模块,运行于用户程序所在服务器,根据用户程序的请求与API密钥生成有效签名。
CN202010271832.2A 2020-04-08 2020-04-08 基于sgx软件扩展指令的api密钥保护方法及系统 Active CN111475782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010271832.2A CN111475782B (zh) 2020-04-08 2020-04-08 基于sgx软件扩展指令的api密钥保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010271832.2A CN111475782B (zh) 2020-04-08 2020-04-08 基于sgx软件扩展指令的api密钥保护方法及系统

Publications (2)

Publication Number Publication Date
CN111475782A true CN111475782A (zh) 2020-07-31
CN111475782B CN111475782B (zh) 2022-11-08

Family

ID=71750110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010271832.2A Active CN111475782B (zh) 2020-04-08 2020-04-08 基于sgx软件扩展指令的api密钥保护方法及系统

Country Status (1)

Country Link
CN (1) CN111475782B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395631A (zh) * 2020-11-27 2021-02-23 上海交通大学 基于sgx技术的安全数据库系统、方法及介质
CN112906068A (zh) * 2021-03-18 2021-06-04 上海能链众合科技有限公司 一种区块链外部代理技术计算控制方法
CN113486318A (zh) * 2021-07-08 2021-10-08 上海瓶钵信息科技有限公司 生物识别认证系统及方法、设备、介质
CN113676494A (zh) * 2021-10-21 2021-11-19 深圳致星科技有限公司 集中式数据处理方法及装置
CN114124408A (zh) * 2021-11-26 2022-03-01 浪潮云信息技术股份公司 一种api网关实现后端签名的方法及系统
US20230106491A1 (en) * 2021-10-06 2023-04-06 Hewlett Packard Enterprise Development Lp Security dominion of computing device
US12019752B2 (en) * 2021-10-06 2024-06-25 Hewlett Packard Enterprise Development Lp Security dominion of computing device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107919954A (zh) * 2017-10-20 2018-04-17 浙江大学 一种基于sgx的区块链用户密钥保护方法和装置
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication
CN108615154A (zh) * 2018-05-01 2018-10-02 王锐 一种基于硬件加密保护的区块链数字签名系统及使用流程
CN108768978A (zh) * 2018-05-16 2018-11-06 浙江大学 一种基于sgx的远端存储服务方法及系统
CN109756492A (zh) * 2018-12-28 2019-05-14 中国人民解放军战略支援部队信息工程大学 基于sgx的云平台可信执行方法、装置、设备及介质
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理系统及密钥服务节点
CN110889696A (zh) * 2019-11-27 2020-03-17 杭州趣链科技有限公司 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication
CN107919954A (zh) * 2017-10-20 2018-04-17 浙江大学 一种基于sgx的区块链用户密钥保护方法和装置
CN108615154A (zh) * 2018-05-01 2018-10-02 王锐 一种基于硬件加密保护的区块链数字签名系统及使用流程
CN108768978A (zh) * 2018-05-16 2018-11-06 浙江大学 一种基于sgx的远端存储服务方法及系统
CN109756492A (zh) * 2018-12-28 2019-05-14 中国人民解放军战略支援部队信息工程大学 基于sgx的云平台可信执行方法、装置、设备及介质
CN110120869A (zh) * 2019-03-27 2019-08-13 上海隔镜信息科技有限公司 密钥管理系统及密钥服务节点
CN110889696A (zh) * 2019-11-27 2020-03-17 杭州趣链科技有限公司 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHEN, JH等: "A Truthful FPTAS Mechanism for Emergency Demand Response in Colocation Data Centers", 《IEEE INFOCOM 2019 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 *
冯达等: "基于SGX的证书可信性验证与软件安全签发系统", 《信息网络安全》 *
王冠等: "基于SGX的Hadoop KMS安全增强方案", 《信息安全研究》 *
王鹃等: "SGX技术的分析和研究", 《软件学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395631A (zh) * 2020-11-27 2021-02-23 上海交通大学 基于sgx技术的安全数据库系统、方法及介质
CN112395631B (zh) * 2020-11-27 2022-09-20 上海交通大学 基于sgx技术的安全数据库系统、方法及介质
CN112906068A (zh) * 2021-03-18 2021-06-04 上海能链众合科技有限公司 一种区块链外部代理技术计算控制方法
CN112906068B (zh) * 2021-03-18 2024-03-12 上海零数众合信息科技有限公司 一种区块链外部代理技术计算控制方法
CN113486318A (zh) * 2021-07-08 2021-10-08 上海瓶钵信息科技有限公司 生物识别认证系统及方法、设备、介质
US20230106491A1 (en) * 2021-10-06 2023-04-06 Hewlett Packard Enterprise Development Lp Security dominion of computing device
US12019752B2 (en) * 2021-10-06 2024-06-25 Hewlett Packard Enterprise Development Lp Security dominion of computing device
CN113676494A (zh) * 2021-10-21 2021-11-19 深圳致星科技有限公司 集中式数据处理方法及装置
CN114124408A (zh) * 2021-11-26 2022-03-01 浪潮云信息技术股份公司 一种api网关实现后端签名的方法及系统

Also Published As

Publication number Publication date
CN111475782B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
CN111475782B (zh) 基于sgx软件扩展指令的api密钥保护方法及系统
CN110414268B (zh) 访问控制方法、装置、设备及存储介质
CN106991298B (zh) 应用程序对接口的访问方法、授权请求方法及装置
US8032940B1 (en) Method and system for generating and employing a secure integrated development environment
US20120216242A1 (en) Systems and Methods for Enhanced Security in Wireless Communication
CN110889130B (zh) 基于数据库的细粒度数据加密方法、系统及装置
CN104756127A (zh) 通过虚拟机进行安全数据处理
CN113282946B (zh) 基于高可信环境下数据访问过程的信息安全方法及系统
CN113468576B (zh) 一种基于角色的数据安全访问方法及装置
US11658996B2 (en) Historic data breach detection
CN113704211B (zh) 数据查询方法及装置、电子设备、存储介质
US7721100B2 (en) Granting an access to a computer-based object
CN109697368B (zh) 用户信息数据安全使用的方法、设备及系统、存储介质
CN111160905B (zh) 一种区块链节点用户请求处理保护方法及装置
EP2517140B1 (en) Securing execution of computational resources
CN115270159A (zh) 一种区块链的智能合约调用方法、装置设备及存储介质
CN113901507A (zh) 一种多参与方的资源处理方法及隐私计算系统
CN114520735A (zh) 一种基于可信执行环境的用户身份鉴定方法、系统及介质
CN113468610A (zh) 去中心化可信访问控制框架及其运行方法
US11611570B2 (en) Attack signature generation
DONG et al. Sesoa: Security enhancement system with online authentication for android apk
CN113966510A (zh) 可信设备和计算系统
KR20150074128A (ko) 적어도 하나의 소프트웨어 구성요소를 컴퓨팅 디바이스에 다운 로딩하는 방법, 관련 컴퓨터 프로그램 제조물, 컴퓨팅 디바이스, 컴퓨터 시스템
US20240211609A1 (en) Method and system of protecting model, device, and storage medium
Kiyomoto et al. LMM: A common component for software license management on cloud

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