【技术实现步骤摘要】
基于SGX软件扩展指令的API密钥保护方法及系统
本专利技术涉及信息安全领域,具体涉及一种基于SGX软件扩展指令的API密钥保护方法及系统。
技术介绍
API密钥,即应用程序接口密钥,用于确定调用应用程序服务的用户身份,多由应用程序开发人员申请,并由程序进行使用,在跨服务应用程序以及云场景中使用广泛。一般API密钥成对出现,分为AccessKey和SecretKey,分别用于表示用户ID和进行签名计算。签名计算一般采用哈希消息认证码算法(如HMAC-256),计算结果作为签名输出。上述密钥对中,用于签名计算的密钥尤其重要,并需要进行严密的安全保护,避免在公开网络中传播。发送调用请求的程序使用API密钥为请求消息计算签名,服务端程序通过对签名进行验证来确认调用请求源的身份,并提供与请求相应的服务。在此种情境下,API密钥代表了用户身份,在权限上与用户账号和密码等同;API密钥一旦丢失,便会带来一系列安全隐患,如产生预料之外的服务费用、用户隐私泄露、用户资产失窃等。例如,在2018年3月及7月的币安交易所安全事件中,攻击者疑似利用窃取的API密钥进行恶意程序化交易以操纵币价,在没有窃取任何用户区块链账户密钥(用于实际控制区块链资产)的情况下获取巨额利益,并给全球数字货币市场带来了极其恶劣的影响。因此,保护API密钥具有十分重要的意义,特别是在云场景等用户无法完全确认或掌控程序运行环境安全的场景中。然而,目前缺乏针对API密钥的可靠安全保护机制。明文存储以及密钥信息硬编码等情况屡见不鲜,仅仅是代码的公开就可 ...
【技术保护点】
1.一种基于SGX软件扩展指令的API密钥保护方法,其特征在于,包括以下步骤:(1)API密钥保护系统初始化、(2)远程认证与API密钥导入、(3)API请求签名与签名信息导出;/n(1)API密钥保护系统初始化包括:用户首先检测服务器上的用户程序是否正确,确认无误之后进行用户程序启动并初始化,之后在用户程序中进行API密钥保护系统安全区的初始化;/n(2)远程认证与API密钥导入包括:用户通过自己的可信设备与用户程序服务器上的API密钥保护系统建立SGX远程认证流,通过远程确认服务器CPU对SGX的支持状况、确认API密钥保护系统功能是否正常,以及实现从用户可信设备向服务器上的用户程序安全传输API密钥信息;/n(3)API请求签名包括:用户程序访问API密钥保护系统获取可信时间戳,并整合可信时间戳与其他相关信息构建签名输入信息;API密钥保护系统根据用户程序签名请求与传入的签名输入信息,在API密钥保护系统安全区内完成签名计算与编码,并返回用户程序。/n
【技术特征摘要】
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中英特尔EPIDGID的签名撤销表(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;检查不通过则报警并终止流程;
(...
【专利技术属性】
技术研发人员:陈建海,刘丁豪,沈睿,纪守领,何钦铭,黄步添,
申请(专利权)人:浙江大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。