一种云服务的权限认证方法、装置、设备及介质与流程

专利2022-06-29  90


本申请涉及云技术领域,具体涉及云计算安全技术领域,尤其涉及一种云服务的权限认证方法、一种云服务的权限认证装置、一种云服务的权限认证设备及一种计算机可读存储介质。



背景技术:

近几年来,云计算正在成为信息技术产业发展的战略重点,全球的信息技术企业都在纷纷向云计算转型,越来越多的互联网用户调用云服务器提供的各项云计算服务(简称云服务),以获取云计算带来的便利。

互联网用户(例如应用程序的开发者)调用云服务之前,云服务器需要对互联网用户进行服务鉴权,鉴权成功后,互联网用户可以调用相关云服务。现有技术中,鉴权过程中涉及的鉴权数据(例如派生签名密钥)是由互联网用户负责管理的,常见的鉴权手段包括如下两种:一种是将鉴权数据以明文方式存储在互联网用户的终端中;这样的手段会使得鉴权数据极易丢失,例如被误传播或者被窃取,存在极大安全风险,进而影响鉴权过程的安全性。另一种是将鉴权数据加密存储在互联网用户的终端中,一般是通过公开的aes(advancedencryptionstandard,高级加密标准)或白盒加密;这样的手段虽然提升了安全性,但是同时带来加密密钥(key)的保存问题,当key遭到黑客攻击被复制或者窃取时,鉴权数据同样存在安全风险,同样无法保证鉴权过程的安全性。



技术实现要素:

本申请实施例提供了一种云服务的权限认证方法、装置、设备及介质,通过在终端划分安全的可信区域,采用此可信区域来保证派生签名密钥的安全性,进而保证基于该派生签名密钥所进行的权限认证过程的可靠性。

一方面,本申请实施例提供一种云服务的权限认证方法,该方法包括:

当需要使用云服务器提供的目标云服务时,从终端的可信区域内获取派生签名密钥;可信区域是终端的内存中划分出的一个或多个安全执行区域;

根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥;

向云服务器发送权限认证请求,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,调用目标云服务。

另一方面,本申请实施例提供一种云服务的权限认证方法,该方法包括:

接收终端发送的权限认证请求,权限认证请求是终端根据派生签名密钥生成的,权限认证请求中携带派生签名密钥,派生签名密钥是终端在需要使用云服务器提供的目标云服务时从终端的可信区域内获取到的;可信区域是终端的内存中划分出的一个或多个安全执行区域;

根据权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,允许终端调用目标云服务。

另一方面,本申请实施例提供一种云服务的权限认证装置,该云服务的权限认证装置设于云服务的权限认证设备内,该云服务的权限认证装置包括:

密钥获取单元,当需要使用云服务器提供的目标云服务时,用于从终端的可信区域内获取派生签名密钥;可信区域是终端的内存中划分出的一个或多个安全执行区域;

请求生成单元,用于根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥;

请求发送单元,用于向云服务器发送权限认证请求,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权;

服务调用单元,在服务鉴权成功后,用于调用目标云服务。

在一种实现方式中,可信区域是在终端的内存中构造得到的,可信区域的构造方法包括:

调用终端的操作系统所提供的应用程序编程接口,获取终端的操作系统的临时令牌;

在终端的内存中创建包含临时令牌的飞地容器,并生成飞地容器的访问接口;

其中,飞地容器将终端的内存划分为可信区域和非可信区域,可信区域是指飞地容器所容纳的内存区域,非可信区域是指飞地容器之外的内存区域,访问接口用于桥接可信区域和非可信区域;

可信区域用于存储终端的敏感数据,敏感数据包括以下至少一种:终端的身份数据、终端的应用程序涉及的隐私数据、终端的应用程序请求保护的数据。

在一种实现方式中,派生签名密钥是在可信区域内生成的用于进行服务鉴权的数据;该云服务的权限认证装置还包括:

密钥生成单元,当需要使用云服务器提供的目标云服务时,用于在可信区域内进行签名计算,得到派生签名密钥。

在一种实现方式中,可信区域包括访问接口;可信区域内存储有终端的身份数据,身份数据包括终端在云服务器中进行注册所获得的安全标识和安全密钥;可信区域还存储有签名算法;密钥生成单元在可信区域内进行签名计算,得到派生签名密钥时,具体用于:

当需要使用云服务器提供的目标云服务时,获取终端的系统时间戳;

调用访问接口,将系统时间戳传入可信区域;

采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥。

在一种实现方式中,密钥生成单元在采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥时,具体用于:

对安全密钥进行字符串连接处理;

将系统时间戳和连接处理后的安全密钥作为第一输入参数,采用签名算法对第一输入参数进行签名计算,得到第一签名参数;

获取目标云服务的服务标识,将目标云服务的服务标识和第一签名参数作为第二输入参数,采用签名算法对第二输入参数进行签名计算,得到第二签名参数;

获取签名算法的算法标识,将签名算法的算法标识和第二签名参数作为第三输入参数,采用签名算法对第三输入参数进行签名计算,得到派生签名密钥。

在一种实现方式中,请求生成单元在根据派生签名密钥生成权限认证请求时,具体用于:

按照云服务器的请求规范,对系统时间戳和派生签名密钥进行拼接处理,得到权限认证请求。

在一种实现方式中,该云服务的权限认证装置还包括:

显示单元,用于显示云接口列表,云服务器提供至少一项云服务,云接口列表包括各项云服务对应的云应用程序编程接口;

确定单元,当选定云接口列表中的目标云应用程序编程接口时,用于确定需要使用云服务器提供的目标云服务,目标云服务是云服务器提供的任一项云服务,目标云应用程序编程接口是目标云服务对应的云应用程序编程接口。

另一方面,本申请实施例提供一种云服务的权限认证装置,该云服务的权限认证装置设于云服务的权限认证设备内,该云服务的权限认证装置包括:

请求接收单元,用于接收终端发送的权限认证请求,权限认证请求是终端根据派生签名密钥生成的,权限认证请求中携带派生签名密钥,派生签名密钥是终端在需要使用云服务器提供的目标云服务时从终端的可信区域内获取到的;可信区域是终端的内存中划分出的一个或多个安全执行区域;

服务鉴权单元,用于根据权限认证请求中携带的派生签名密钥进行服务鉴权;

服务提供单元,在服务鉴权成功后,用于允许终端调用目标云服务。

在一种实现方式中,服务鉴权单元在根据权限认证请求中携带的派生签名密钥进行服务鉴权时,具体用于:

对派生签名密钥进行有效性校验;

若派生签名密钥有效,则对派生签名密钥进行合法性校验;

若派生签名密钥合法,则确定服务鉴权成功。

在一种实现方式中,服务鉴权单元在对派生签名密钥进行有效性校验时,具体用于:

解析派生签名密钥,获得派生签名密钥中携带的终端的系统时间戳,系统时间戳是终端在需要使用云服务器提供的目标云服务时获取的;

获取云服务器接收到权限认证请求时的目标时间戳;

计算目标时间戳与系统时间戳的时间差值;

若时间差值在有效范围内,则确定派生签名密钥有效。

在一种实现方式中,服务鉴权单元在对派生签名密钥进行合法性校验时,具体用于:

对派生签名密钥进行解密;

若解密成功,得到派生签名密钥中携带的安全密钥,并且若派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥一致,则确定派生签名密钥合法;

若解密失败,或者解密得到的派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥不一致,则确定派生签名密钥非法。

另一方面,本申请实施例提供一种云服务的权限认证设备,该云服务的权限认证设备包括:

处理器,适于实现一条或多条指令;以及,

计算机可读存储介质,该计算机可读存储介质存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述的云服务的权限认证方法。

另一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述的云服务的权限认证方法。

本申请实施例中,通过在终端中划分安全的可信区域,采用该可信区域来存储派生签名密钥;当需要使用云服务器提供的目标云服务时,从该可信区域内获取该派生签名密钥,并基于该派生签名密钥向云服务器请求服务鉴权,在服务鉴权成功后即可调用目标云服务。可信区域是终端中的安全执行区域,它具备独立的运行环境和执行规范,能够为派生签名密钥提供安全的存储环境,保证派生签名密钥的存储安全性,进而提升基于派生签名密钥的服务鉴权过程安全性和可靠性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请一个示例性实施例提供的一种可信区域与非可信区域之间进行通信的示意图;

图2a示出了本申请一个示例性实施例提供的一种云服务的权限认证系统的架构示意图;

图2b示出了本申请一个示例性实施例提供的一种云服务的权限认证方法的流程示意图;

图2c示出了本申请一个示例性实施例提供的一种身份数据获取界面的示意图;

图2d示出了本申请一个示例性实施例提供的一种云服务选择界面的示意图;

图2e示出了本申请一个示例性实施例提供的一种签名算法的原理示意图;

图2f示出了本申请一个示例性实施例提供的应用程序的界面示意图;

图2g示出了本申请一个示例性实施例提供的应用程序调用云服务的架构示意图;

图3示出了本申请一个示例性实施例提供的一种云服务的权限认证方法的流程示意图;

图4a示出了本申请一个示例性实施例提供的一种派生签名密钥生成方法的原理示意图;

图4b示出了本申请一个示例性实施例提供的一种派生签名密钥获取方法的脚本实现图;

图5示出了本申请另一个示例性实施例提供的一种云服务的权限认证方法的流程示意图;

图6示出了本申请另一个示例性实施例提供的一种云服务的权限认证方法的流程示意图;

图7示出了本申请一个示例性实施例提供的一种云服务的权限认证装置的结构示意图;

图8示出了本申请另一个示例性实施例提供的一种云服务的权限认证装置的结构示意图;

图9示出了本申请一个示例性实施例提供的一种云服务的权限认证设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台),一般被称为iaas(infrastructureasaservice,基础设施即服务)平台,在云计算资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas层上可以部署paas(platformasaservice,平台即服务)层,paas层之上再部署saas(softwareasaservice,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件(例如数据库、web容器等)运行的平台。saas为各式各样的业务软件(例如web门户网站、短信群发器等)。一般来说,saas和paas相对于iaas是上层。

云安全(cloudsecurity)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。云安全的主要研究方向包括:(1)云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;(2)安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;(3)云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。

本申请实施例涉及云计算安全技术领域的用户(例如应用程序的开发者)接入认证技术(权限认证技术)。

本申请实施例涉及可信计算。可信计算(trustedcomputing)是在计算和通信系统中广泛使用的基于硬件安全模块支持的可信计算平台,为系统提供安全执行区域(即可信区域),以提高系统整体的安全性。其中,可信区域是指终端的内存中划分出的一个或多个安全执行区域,以保证安全执行环境。可信区域可以用于存储终端中的敏感数据,该敏感数据包括以下至少一种:终端的身份数据、终端的应用程序涉及的隐私数据、终端的应用程序请求保护的数据;在一种实施方式中,可信区域还用于存储权限认证过程中涉及的鉴权数据(如派生签名密钥),以保证鉴权数据的存储安全性,进而保证权限认证过程的可靠性。与之对应地,非可信区域是指终端中除可信区域之外的普通内存区域。终端的可信区域与非可信区域之间按照严格的访问权限控制机制进行通信。图1示出了本申请一个示例性实施例提供的一种可信区域与非可信区域之间进行通信的示意图。如图1所示,可信区域和非可信区域之间可以通过edl(enclavedefinitionlanguage,飞地定义语言)进行通信。edl定义了可信区域对外读写、处理数据的函数。在编译阶段,终端的sdk(softwaredevelopmentkit,软件开发工具包)提供的edger8r工具可以根据edl中定义的函数生成可信区域和非可信区域的桥接函数,进而实现可信区域和非可信区域之间的通信。edger8r工具是sdk中一个用于生成边缘例程的工具。

图2a示出了本申请一个示例性实施例提供的一种云服务的权限认证系统的架构示意图。如图2a所示,该云服务的权限认证系统包括终端201和云服务器202。

终端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。本申请实施例中,终端201中设置有硬件安全模块(例如英特尔平台的sgx(softwareguardextensions,软件防护扩展)处理器),或者终端201支持上述可信计算技术,能够在终端201中划分出可信区域来保证安全执行环境。

云服务器202可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云计算资源池,本申请在此不做限制。终端101以及云服务器202可以通过有线或无线通信方式进行直接或间接地连接。

终端201可以通过云api(applicationprogramminginterface,应用程序编程接口)调用云服务器202提供的云服务,终端201调用云服务之前,云服务器202需要对请求调用云服务的终端201进行服务鉴权,鉴权成功后,终端201可以通过云api调用云服务器202提供的相关云服务。例如,当终端201需要使用云服务器202提供的目标云服务(云服务器202提供的任一项云服务)时,终端201向云服务器202发送权限认证请求,权限认证请求中携带用于服务鉴权的派生签名密钥;云服务器202根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端201可以调用目标云服务。

图2a所示的云服务的权限认证系统涉及的权限认证方法可参见图2b,图2b示出了本申请一个示例性实施例提供的一种云服务的权限认证方法的流程示意图,该云服务的权限认证方法由终端201与云服务器202进行交互实现,该云服务的权限认证方法可以包括以下步骤s201至步骤s212:

步骤s201:终端向云服务器发送身份数据获取请求。

在一种实现方式中,使用终端的互联网用户可以在云服务器提供的云服务平台中注册,互联网用户通过终端访问云服务平台,注册成功后,如图2c所示,图2c示出了本申请一个示例性实施例提供的一种身份数据获取界面的示意图,互联网用户点击“新建密钥”,终端生成身份数据获取请求,终端将身份数据获取请求发送至云服务器。

步骤s202:云服务器根据身份认证请求生成身份数据。

步骤s203:云服务器将身份数据发送至终端。

在一种实现方式中,云服务器根据身份数据获取请求生成身份数据,并将身份数据发送至终端。如图2c所示,身份数据可以包括安全标识(secretid)和安全密钥(secretkey),安全标识与安全密钥成对使用。安全标识与安全密钥均可以是由数字和字母组成的字符串。安全密钥可以用于生成派生签名密钥,也可以用于对派生签名密钥的合法性进行校验。

步骤s204:终端将身份数据存储至终端的可信区域。

在一种实现方式中,可信区域是终端在终端的内存区域中构造得到的,终端将身份数据存储至终端的可信区域,以保证身份数据的存储安全性。

步骤s205:当需要使用云服务器提供的目标云服务时,终端获取终端的系统时间戳。

在一种实现方式中,使用终端的互联网用户可以在云服务器提供的云服务平台中选择需要使用的云服务,互联网用户通过终端访问云服务平台,如图2d所示,图2d示出了本申请一个示例性实施例提供的一种云服务选择界面的示意图,终端向互联网用户显示云接口列表,云接口列表包括云服务器提供的至少一项云服务对应的云api;当终端检测到互联网用户选定云接口列表中的目标云api时,终端确定互联网用户需要使用云服务器提供的目标云api对应目标云服务,目标云服务是云服务器提供的任一项云服务,目标云api是云服务对应的云api。

在一种实现方式中,当终端确定互联网用户需要使用目标云服务时,终端获取终端的系统时间戳,该系统时间戳可以用于生成派生签名密钥,也可以用于对派生签名密钥的有效性进行校验。

步骤s206:在可信区域内,终端采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥。

在一种实现方式中,终端采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥后,终端可以将派生签名密钥存储于可信区域,以保证派生签名密钥的存储安全性。此处,签名算法包括但不限于哈希散列算法、hmac(hash-basedmessageauthenticationcode,哈希消息认证码)算法等。其中,哈希散列算法可以包括md5(message-digestalgorithm5,信息摘要算法5)算法、sha(securehashalgorithm,安全散列算法)256算法、sha512算法等。哈希散列算法是不可逆的算法,不用明文就可以比较两个字符串是否相等,但实际应用中,哈希值是可以被碰撞的,所谓碰撞是指对于不同的输入参数,经过计算后可以得到相同的输出参数。而hmac算法是加入随机salt(盐值)因素的散列算法,使碰撞更加困难,因此相比哈希散列算法更安全。以hmac算法为例,该hmac算法的原理可参见图2e,图2e示出了本申请一个示例性实施例提供的一种签名算法的原理示意图。hmac算法的输入参数为待签名字符串(message)和随机因子(salt),输入参数经hmac算法进行签名计算后得到签名参数(signature)。hmac算法的签名计算过程包括:①声明hmac上下文(hmacctxnew);②初始化hmac上下文(hmacintex);③哈希运算加密(hmac_update);④输出hmac值(hmac_final);⑤关闭hmac上下文(hmac_ctx_free)。除特别说明外,本申请实施例涉及的签名算法以tc3-hmac-sha256算法为例进行说明。其中,“tc3”是该签名算法的版本标识。

步骤s207:终端按照云服务器的请求规范对派生签名密钥进行拼接,得到规范请求串。

除特别说明外,本申请实施例涉及的云服务器的请求规范以云api3.0为例进行说明。云api3.0是云服务器提供的云服务调用规范,云api3.0规定了服务鉴权使用的签名算法(如tc3-hmac-sha256签名算法)、权限认证请求的拼接规则等。

步骤s208:终端根据哈希散列算法对规范请求串进行计算,得到规范请求串的哈希值。

步骤s209:终端按照云服务器的请求规范对系统时间戳和哈希值进行拼接,得到权限认证请求。

步骤s210:终端将权限认证请求发送至云服务器。

步骤s211:云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权。

在一种实现方式中,云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权的过程可以包括派生签名密钥的有效性校验过程和派生签名密钥的合法性校验过程。若派生签名密钥有效且合法,云服务器确定服务鉴权成功,云服务器允许终端调用目标云服务;若派生签名密钥无效,或者派生签名密钥非法,云服务器确定服务鉴权失败,云服务器拒绝终端调用目标云服务。

步骤s212:在服务鉴权成功后,终端调用目标云服务。

基于图2a所示的权限认证系统,下面结合图2f至图2g,以一个具体事例来详细阐述权限认证的流程。

互联网用户(应用程序的开发者)欲开发应用程序(passwdsavetool.exe)。图2f示出了本申请一个示例性实施例提供的应用程序的界面示意图,如图2f所示,该应用程序能够为使用者提供隐私数据存储功能。该应用程序在开发过程中需要使用云服务器提供的hsm(hardwaresecuritymodule,加密机)服务,来实现对应用程序内的隐私数据(例如图2f所示应用程序中的用户名和密码)进行加密存储。

图2g示出了本申请一个示例性实施例提供的应用程序调用云服务的架构示意图。在图2g所示的架构示意图中,应用程序通过云api调用云服务器的kms(keymanagementservice,密钥管理服务),kms通过tcp(transmissioncontrolprotocol,传输控制协议)访问hsm服务,hsm服务通过tls(transportlayersecurity,传输层安全性协议)访问hsm。

其中,应用程序通过云api调用云服务器的kms的过程涉及上述权限认证方案,运行该应用程序的终端中设有硬件安全模块(例如英特尔平台的sgx处理器),或者支持上述可信计算技术,在终端的内存中为应用程序构造可信区域,该可信区域用于存储应用程序的派生签名密钥,派生签名密钥用于对应用程序进行服务鉴权。终端向云服务器发送权限认证请求,权限认证请求中携带派生签名密钥;云服务器根据权限认证请求中携带的派生签名密钥对该应用程序进行服务鉴权,在服务鉴权成功后,该应用程序可以调用ksm,进一步调用hsm。终端内运行的其他应用程序不能访问该可信区域,使得存储于可信区域的派生签名密钥安全可靠,进而提升基于派生签名密钥的鉴权过程的安全性和可靠性。

本申请实施例中,当需要使用云服务器提供的目标云服务时,终端在终端的可信区域内采用签名算法对系统时间戳和终端的身份数据进行签名计算,生成用于服务鉴权的派生签名密钥,终端将派生签名密钥存储于可信区域中。终端根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥。然后,终端将权限认证请求发送至云服务器,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端调用云服务器提供的目标云服务。可信区域是终端在终端的内存中划分出的一个或多个安全执行区域,终端在可信区域内生成派生签名密钥,为派生签名密钥提供了一个安全的存储区域,进而提升基于派生签名密钥的服务鉴权过程安全性和可靠性。

可以理解的是,本申请实施例描述的云服务的权限认证系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

基于上述描述,请参见图3,图3是本申请实施例提供的一种云服务的权限认证方法的流程示意图,该云服务的权限认证方法可以由图2a所示实施例中的终端201执行,该云服务的权限认证方法包括以下步骤s301至步骤s304:

步骤s301:当需要使用云服务器提供的目标云服务时,从终端的可信区域内获取派生签名密钥。

在一种实现方式中,可信区域是在终端的内存中构造得到的,可信区域的构造方法可以为:终端调用终端的操作系统所提供的api,获取终端的操作系统的临时令牌;终端在终端的内存中创建包含临时令牌的飞地容器,并生成飞地容器的访问接口,可信区域即为飞地容器所容纳的内存区域。其中,临时令牌可以用于控制访问权限。

在一种实现方式中,飞地容器可以将终端的内存划分为可信区域和非可信区域。可信区域是指飞地容器所容纳的内存区域,非可信区域是指飞地容器之外的内存区域。访问接口可以用于桥接可信区域和非可信区域。可信区域内的程序执行时,有一套独立的运行环境,有独立的堆、栈、代码段、数据段等。

在一种实现方式中,可信区域可以用于存储终端的敏感数据,敏感数据可以包括以下至少一种:终端的身份数据(例如上述的安全标示和安全密钥)、终端的应用程序涉及的隐私数据(例如派生签名密钥)、终端的应用程序请求保护的数据(例如图2f所示应用程序中的用户名和密码)。

在一种实现方式中,终端从可信区域内获取派生签名密钥后,可以释放飞地容器,以释放飞地容器占用的内存空间;如需再次构造可信区域,终端可以重新创建飞地容器;或者,终端从可信区域内获取派生签名密钥后,也可以保留飞地容器,如需再次构造可信区域,终端可以直接使用飞地容器。

在一种实现方式中,当需要使用云服务器提供的目标云服务时,终端可以在可信区域内进行签名计算,得到派生签名密钥。具体地,可信区域内存储有终端的身份数据,身份数据可以包括终端在云服务器中进行注册时获得的安全标识和安全密钥。当需要使用云服务器提供的目标云服务时,终端可以获取终端的系统时间戳,并调用上述访问接口,将获取到的系统时间戳传入可信区域;在可信区域内,终端可以采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥。

在一种实现方式中,如图4a所示,终端采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥的具体实施方式可以为:终端对安全密钥进行字符串连接处理,例如,终端可以使用版本标识“tc3”对安全密钥进行字符串连接处理。终端可以将系统时间戳和连接处理后的安全密钥作为第一输入参数,采用签名算法对第一输入参数进行签名计算,得到第一签名参数。终端获取目标云服务的服务标识,例如,目标云服务为密钥管理服务,终端获取到的目标云服务的服务标识为字符串“kms”。终端可以将目标云服务的服务标识和第一签名参数作为第二输入参数,采用签名算法对第二输入参数进行签名计算,得到第二签名参数。终端获取签名算法的算法标识,例如,签名算法为tc3-hmac-sha256,终端获取到的签名算法的算法标识为固定参数“tc3-request”。终端可以将签名算法的算法标识和第二签名参数作为第三输入参数,采用签名算法对第三输入参数进行签名计算,得到派生签名密钥。

在一种实现方式中,请参见图4b,图4b是本申请实施例提供的一种示例性的派生签名密钥获取方法的脚本实现图。如图4b所示,云服务用应用程序passwdsavetool.exe对终端的可信区域的调用接口脚本为signatureenclave.edl,该调用接口可以调用可信区域内的派生签名密钥生成脚本signatureenclave.cpp,在可信区域内生成派生签名密钥后,云服务应用程序可以通过访问接口脚本signatureenclave.dll从可信区域内获取派生签名密钥。

在一种实现方式中,终端从可信区域内获取派生签名密钥后,终端可以对可信区域内存储的身份数据和派生签名密钥进行销毁处理,进一步保证身份数据和派生签名密钥的安全性。

步骤s302:根据派生签名密钥生成权限认证请求。

在一种实现方式中,终端可以按照云服务器的请求规范(例如云api3.0)对派生签名密钥进行拼接,得到规范请求串。然后,终端可以根据哈希散列算法对规范请求串进行计算,得到规范请求串的哈希值。最终,终端可以按照云服务器的请求规范对系统时间戳和规范请求串的哈希值的哈希值进行拼接,得到权限认证请求。

在一种实现方式中,规范请求串可以包括但不限于以下任一种参数:http(hypertexttransferprotocol,超文本传输协议)请求方法、uri(uniformresourceidentifier,统一资源标识符)参数、发起http请求url(uniformresourcelocator,统一资源定位符)中的查询字符串、参与签名的头部信息。

在一种实现方式中,权限认证请求可以包括但不限于以下请求参数:签名算法(如tc3-hmac-sha256)、系统时间戳、凭证范围、规范请求串的哈希值。其中,凭证范围可以包括系统时间戳对应的日期、目标云服务的服务标识、签名算法的固定参数。

步骤s303:向云服务器发送权限认证请求。

终端可以向云服务发送权限认证请求,权限认证请求携带派生签名密钥,云服务器可以根据权限认证请求携带中的派生签名密钥进行服务鉴权。云服务器根据权限认证请求携带中的派生签名密钥进行服务鉴权的执行过程与图5所示实施例中步骤s502的执行过程相同,具体执行过程可以参见图5所示实施例的描述,在此不再赘述。

步骤s304:在服务鉴权成功后,调用目标云服务。

云服务器对权限认证请求中携带的派生签名密钥鉴权成功后,终端可以调用目标云服务。

本申请实施例中,当需要使用云服务器提供的目标云服务时,终端从终端的可信区域内获取用于进行鉴权服务的派生签名密钥,并根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥。然后,终端将权限认证请求发送至云服务器,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端调用云服务器提供的目标云服务。可信区域是终端的内存中划分出来的一个或多个安全执行区域,终端的可信区域为派生签名密钥提供提供了一个安全的存储区域,从而使得基于派生签名密钥的服务鉴权过程安全可靠。

请参见图5,图5是本申请实施例提供的另一种云服务的权限认证方法的流程示意图,该云服务的权限认证方法可以由图2a所示实施例中的云服务器202执行,该云服务的权限认证方法包括以下步骤s501至步骤s503:

步骤s501:接收终端发送的权限认证请求。

在一种实现方式中,权限认证请求是终端根据派生签名密钥生成的,权限认证请求中携带派生签名密钥,派生签名密钥是终端在需要使用云服务器提供的目标云服务时从终端的可信区域内获取到的。云服务器提供至少一项云服务,目标云服务是云服务器提供的任一项云服务。

步骤s502:根据权限认证请求中携带的派生签名密钥进行服务鉴权。

在一种实现方式中,云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权的具体实施方式可以为:云服务器对派生签名密钥进行有效性校验。若派生签名密钥有效,云服务器对派生签名密钥进行合法性校验;若派生签名密钥无效,云服务器确定服务鉴权失败。若派生签名密钥合法,云服务器确定服务鉴权成功;若派生签名密钥非法,云服务器确定服务鉴权失败。

在一种实现方式中,云服务器对派生签名密钥进行有效性校验的具体实施方式可以为:云服务器解析派生签名密钥,获得派生签名密钥中携带的终端的系统时间戳,系统时间戳是终端在需要使用云服务器提供的目标云服务时获取的;云服务器获取云服务器接收到权限认证请求时的目标时间戳;然后,云服务器计算目标时间戳与系统时间戳的时间差值;若时间差值在有效范围内,云服务器确定派生签名密钥有效;若时间差值在有效范围外,云服务器确定派生签名密钥无效。通过这种方式,能进一步提高派生签名密钥的安全性,若用于生成派生签名密钥的系统时间戳与云服务器接收到携带派生签名密钥的权限认证请求时的目标时间戳之间的时间差值在派生签名密钥的有效范围外,终端需要重新生成派生签名密钥、权限认证请求,云服务器需要重新进行服务鉴权。

例如,用于生成派生签名密钥的系统时间戳与云服务器接收到携带派生签名密钥的权限认证请求时的目标时间戳之间的时间差值为6分钟,派生签名密钥的有效范围为0-5分钟,时间差值在派生签名密钥的有效范围外,派生签名密钥无效。又如,用于生成派生签名密钥的系统时间戳与云服务器接收到携带派生签名密钥的权限认证请求时的目标时间戳之间的时间差值为4分钟,派生签名密钥的有效范围为0-5分钟,时间差值在派生签名密钥的有效范围内,派生签名密钥有效。

需要说明的是,终端获取终端的系统时间戳时,需要设置终端的时区为零时区。同样的,云服务器获取云服务器的目标时间戳时,也需要设置云服务器的时区为零时区,否则,将导致终端在凌晨调用目标云服务时调用失败。

在一种实现方式中,云服务器对派生签名密钥进行合法性校验的具体实施方式可以为:云服务器对派生签名密钥进行解密;若解密成功,云服务器得到派生签名密钥中携带的安全密钥,并且若派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥一致,云服务器确定派生签名密钥合法;若解密失败,或者解密得到的派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥不一致,云服务器确定派生签名密钥非法。

在一种实现方式中,云服务器还可以对权限认证请求的结构进行检查,以确定权限认证请求是否符合云服务器的请求规范,若权限认证请求不符合云服务器的请求规范,云服务器无需对权限认证请求进行服务鉴权。例如,云服务器可以检查权限认请求中是否缺少请求参数(例如是否缺少系统时间戳、是否缺少凭证范围等);云服务器还可以检查权限认证请求中各个请求参数的参数值是否正确。

步骤s503:在服务鉴权成功后,允许终端调用目标云服务。

在一种实现方式中,若服务鉴权成功,云服务器允许终端调用目标云服务;若服务鉴权失败,终端拒绝终端调用目标云服务。

本申请实施例中,云服务器接收到权限认证请求中携带派生签名密钥,派生签名密钥是从终端的可信区域中获取到的,终端的可信区域是终端的内存中划分出的安全执行区域,使得存储于终端可信区域的派生签名密钥安全可靠,从而云服务器基于派生签名密钥进行服务鉴权的过程安全可靠,进一步提高了服务鉴权结果的可靠性。

请参见图6,图6是本申请实施例提供的另一种云服务的权限认证方法的流程示意图,该云服务的权限认证方法可以由图2a所示的终端201与云服务器202进行交互实现,该云服务的权限认证方法可以包括以下步骤s601至步骤s606:

步骤s601:当需要使用云服务器提供的目标云服务时,终端从终端的可信区域内获取派生签名密钥。

步骤s602:终端根据派生签名密钥生成权限认证请求。

步骤s603:终端向云服务器发送权限认证请求。

本申请实施例中步骤s601的执行过程与图3所示实施例中步骤s301的执行过程相同,步骤s602的执行过程与图3所示实施例中步骤s302的执行过程相同,步骤s603的执行过程与图3所示实施例中步骤s303的执行过程相同,具体执行过程可以参见图3所示实施例的描述,在此不再赘述。

步骤s604:云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权。

本申请实施例中步骤s604的执行过程与图5所示实施例中步骤s502的执行过程相同,具体执行过程可以参见图5所示实施例的描述,在此不再赘述。

步骤s605:云服务器向终端返回服务鉴权结果。

在一种实现方式中,云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权后,云服务器可以向终端返回服务鉴权结果,服务鉴权结果可以为云服务器规定的字符串,不同的字符串对应不同的服务鉴权结果。例如,服务鉴权结果为字符串“200”,表示服务鉴权成功;服务鉴权结果为字符串“authfailure.signatureexpire”,表示服务鉴权失败,且失败的原因是派生签名密钥过期。

步骤s606:在服务鉴权成功后,终端调用目标云服务。

本申请实施例中步骤s606的执行过程与图3所示实施例中步骤s304的执行过程相同,具体执行过程可以参见图3所示实施例的描述,在此不再赘述。

本申请实施例中,当需要使用云服务器提供的目标云服务时,终端从终端的可信区域内获取用于进行鉴权服务的派生签名密钥,并根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥。然后,终端将权限认证请求发送至云服务器,云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端调用云服务器提供的目标云服务。可信区域是终端的内存中划分出来的一个或多个安全执行区域,终端的可信区域为派生签名密钥提供提供了一个安全的存储区域,从而云服务器基于派生签名密钥的服务鉴权过程安全可靠,进一步提高了服务鉴权结果的可靠性。

请参见图7,图7是本申请实施例提供的一种云服务的权限认证装置的结构示意图,该云服务的权限认证装置70可以是运行于终端201中的一个计算机程序(包括程序代码),例如可以是终端201中的一个应用软件;该云服务的权限认证装置70可以用于执行图2b、图3或图6所示的方法中的相应步骤。请参见图7,该云服务的权限认证装置70包括如下单元:

密钥获取单元701,当需要使用云服务器提供的目标云服务时,用于从终端的可信区域内获取派生签名密钥;可信区域是终端的内存中划分出的一个或多个安全执行区域;

请求生成单元702,用于根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥;

请求发送单元703,用于向云服务器发送权限认证请求,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权;

服务调用单元704,在服务鉴权成功后,用于调用目标云服务。

在一种实现方式中,可信区域是在终端的内存中构造得到的,可信区域的构造方法包括:

调用终端的操作系统所提供的api,获取终端的操作系统的临时令牌;

在终端的内存中创建包含临时令牌的飞地容器,并生成飞地容器的访问接口;

其中,飞地容器将终端的内存划分为可信区域和非可信区域,可信区域是指飞地容器所容纳的内存区域,非可信区域是指飞地容器之外的内存区域,访问接口用于桥接可信区域和非可信区域;

可信区域用于存储终端的敏感数据,敏感数据包括以下至少一种:终端的身份数据、终端的应用程序涉及的隐私数据、终端的应用程序请求保护的数据。

在一种实现方式中,派生签名密钥是在可信区域内生成的用于进行服务鉴权的数据;

该云服务的权限认证装置70还包括:

密钥生成单元705,当需要使用云服务器提供的目标云服务时,用于在可信区域内进行签名计算,得到派生签名密钥。

在一种实现方式中,可信区域包括访问接口;可信区域内存储有终端的身份数据,身份数据包括终端在云服务器中进行注册所获得的安全标识和安全密钥;可信区域还存储有签名算法;密钥生成单元705在可信区域内进行签名计算,得到派生签名密钥时,具体用于:

当需要使用云服务器提供的目标云服务时,获取终端的系统时间戳;

调用访问接口,将系统时间戳传入可信区域;

采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥。

在一种实现方式中,密钥生成单元705在采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥时,具体用于:

对安全密钥进行字符串连接处理;

将系统时间戳和连接处理后的安全密钥作为第一输入参数,采用签名算法对第一输入参数进行签名计算,得到第一签名参数;

获取目标云服务的服务标识,将目标云服务的服务标识和第一签名参数作为第二输入参数,采用签名算法对第二输入参数进行签名计算,得到第二签名参数;

获取签名算法的算法标识,将签名算法的算法标识和第二签名参数作为第三输入参数,采用签名算法对第三输入参数进行签名计算,得到派生签名密钥。

在一种实现方式中,请求生成单元702在根据派生签名密钥生成权限认证请求时,具体用于:

按照云服务器的请求规范,对系统时间戳和派生签名密钥进行拼接处理,得到权限认证请求。

在一种实现方式中,该云服务的权限认证装置70还包括:

显示单元706,用于显示云接口列表,云服务器提供至少一项云服务,云接口列表包括各项云服务对应的云api;

确定单元707,当选定云接口列表中的目标云api时,用于确定需要使用云服务器提供的目标云服务,目标云服务是云服务器提供的任一项云服务,目标云api是目标云服务对应的云api。

根据本申请的一个实施例,图7所示的云服务的权限认证装置70中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该云服务的权限认证装置70也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行如图2b、图3或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的云服务的权限认证装置70,以及来实现本申请实施例的云服务的权限认证方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述终端201中,并在其中运行。

本申请实施例中,当需要使用云服务器提供的目标云服务时,终端从终端的可信区域内获取用于进行鉴权服务的派生签名密钥,并根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥。然后,终端将权限认证请求发送至云服务器,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端调用云服务器提供的目标云服务。可信区域是终端的内存中划分出来的一个或多个安全执行区域,终端的可信区域为派生签名密钥提供提供了一个安全的存储区域,从而使得基于派生签名密钥的服务鉴权过程安全可靠。

请参见图8,图8是本申请实施例提供的另一种云服务的权限认证装置的结构示意图,该云服务的权限认证装置80可以是运行于云服务器202中的一个计算机程序(包括程序代码),例如可以是云服务器202中的一个应用软件;该云服务的权限认证装置80可以用于执行图2b、图5或图6所示的方法中的相应步骤。请参见图8,该云服务的权限认证装置80包括如下单元:

请求接收单元801,用于接收终端发送的权限认证请求,权限认证请求是终端根据派生签名密钥生成的,权限认证请求中携带派生签名密钥,派生签名密钥是终端在需要使用云服务器提供的目标云服务时从终端的可信区域内获取到的;可信区域是终端的内存中划分出的一个或多个安全执行区域;

服务鉴权单元802,用于根据权限认证请求中携带的派生签名密钥进行服务鉴权;

服务提供单元803,在服务鉴权成功后,用于允许终端调用目标云服务。

在一种实现方式中,服务鉴权单元802在根据权限认证请求中携带的派生签名密钥进行服务鉴权时,具体用于:

对派生签名密钥进行有效性校验;

若派生签名密钥有效,则对派生签名密钥进行合法性校验;

若派生签名密钥合法,则确定服务鉴权成功。

在一种实现方式中,服务鉴权单元802在对派生签名密钥进行有效性校验时,具体用于:

解析派生签名密钥,获得派生签名密钥中携带的终端的系统时间戳,系统时间戳是终端在需要使用云服务器提供的目标云服务时获取的;

获取云服务器接收到权限认证请求时的目标时间戳;

计算目标时间戳与系统时间戳的时间差值;

若时间差值在有效范围内,则确定派生签名密钥有效。

在一种实现方式中,服务鉴权单元802在对派生签名密钥进行合法性校验时,具体用于:

对派生签名密钥进行解密;

若解密成功,得到派生签名密钥中携带的安全密钥,并且若派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥一致,则确定派生签名密钥合法;

若解密失败,或者解密得到的派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥不一致,则确定派生签名密钥非法。

根据本申请的一个实施例,图8所示的云服务的权限认证装置80中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该云服务的权限认证装置80也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行如图2b、图5或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的云服务的权限认证装置80,以及来实现本申请实施例的云服务的权限认证方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述云服务器202中,并在其中运行。

本申请实施例中,云服务器接收到权限认证请求中携带派生签名密钥,派生签名密钥是从终端的可信区域中获取到的,终端的可信区域是终端的内存中划分出的安全执行区域,使得存储于终端可信区域的派生签名密钥安全可靠,从而云服务器基于派生签名密钥进行服务鉴权的过程安全可靠,进一步提高了服务鉴权结果的可靠性。

请参见图9,图9是本申请实施例提供的一种云服务的权限认证设备的结构示意图,该云服务的权限认证设备90至少包括至少包括处理器901、输入设备902、输出设备903以及计算机可读存储介质904。其中,处理器901、输入设备902、输出设备903以及计算机可读存储介质904可通过总线或者其它方式连接。计算机可读存储介质904可以存储在存储器中,计算机可读存储介质904用于存储计算机程序,计算机程序包括程序指令,处理器901用于执行计算机可读存储介质904存储的程序指令。处理器901(或称cpu(centralprocessingunit,中央处理器))是云服务的权限认证设备90的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。

本申请实施例还提供了一种计算机可读存储介质(memory),计算机可读存储介质是云服务的权限认证设备90中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括云服务的权限认证设备90中的内置存储介质,当然也可以包括云服务的权限认证设备90所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了云服务的权限认证设备90的操作系统。并且,在该存储空间中还存放了适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器901的计算机可读存储介质。

在一种实现方式中,该云服务的权限认证设备90可以是图2a所示的终端201;该计算机可读存储介质904中存储有一条或多条第一指令;由处理器901加载并执行计算机可读存储介质中存放的一条或多条第一指令,以实现上述权限认证方法实施例中的相应步骤;具体实现中,计算机可读存储介质904中的一条或多条第一指令由处理器901加载并执行如下步骤:

当需要使用云服务器提供的目标云服务时,从终端的可信区域内获取派生签名密钥;可信区域是终端的内存中划分出的一个或多个安全执行区域;

根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥;

向云服务器发送权限认证请求,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,调用目标云服务。

在一种实现方式中,可信区域是在终端的内存中构造得到的,可信区域的构造方法包括:

调用终端的操作系统所提供的api,获取终端的操作系统的临时令牌;

在终端的内存中创建包含临时令牌的飞地容器,并生成飞地容器的访问接口;

其中,飞地容器将终端的内存划分为可信区域和非可信区域,可信区域是指飞地容器所容纳的内存区域,非可信区域是指飞地容器之外的内存区域,访问接口用于桥接可信区域和非可信区域;

可信区域用于存储终端的敏感数据,敏感数据包括以下至少一种:终端的身份数据、终端的应用程序涉及的隐私数据、终端的应用程序请求保护的数据。

在一种实现方式中,派生签名密钥是在可信区域内生成的用于进行服务鉴权的数据;计算机存储介质904中的一条或多条第一指令由处理器901加载并且还执行如下步骤:

当需要使用云服务器提供的目标云服务时,在可信区域内进行签名计算,得到派生签名密钥。

在一种实现方式中,可信区域包括访问接口;可信区域内存储有终端的身份数据,身份数据包括终端在云服务器中进行注册所获得的安全标识和安全密钥;可信区域还存储有签名算法;计算机存储介质904中的一条或多条第一指令由处理器901加载并且执行在可信区域内进行签名计算,得到派生签名密钥的步骤时,具体执行如下步骤:

当需要使用云服务器提供的目标云服务时,获取终端的系统时间戳;

调用访问接口,将系统时间戳传入可信区域;

采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥。

在一种实现方式中,计算机存储介质904中的一条或多条第一指令由处理器901加载并且执行在采用签名算法对系统时间戳和身份数据进行签名计算,得到派生签名密钥的步骤时,具体执行如下步骤:

对安全密钥进行字符串连接处理;

将系统时间戳和连接处理后的安全密钥作为第一输入参数,采用签名算法对第一输入参数进行签名计算,得到第一签名参数;

获取目标云服务的服务标识,将目标云服务的服务标识和第一签名参数作为第二输入参数,采用签名算法对第二输入参数进行签名计算,得到第二签名参数;

获取签名算法的算法标识,将签名算法的算法标识和第二签名参数作为第三输入参数,采用签名算法对第三输入参数进行签名计算,得到派生签名密钥。

在一种实现方式中,计算机存储介质904中的一条或多条第一指令由处理器901加载并且执行在根据派生签名密钥生成权限认证请求的步骤时,具体执行如下步骤:

按照云服务器的请求规范,对系统时间戳和派生签名密钥进行拼接处理,得到权限认证请求。

在一种实现方式中,计算机存储介质904中的一条或多条第一指令由处理器901加载还执行如下步骤:

显示云接口列表,云服务器提供至少一项云服务,云接口列表包括各项云服务对应的云api;

当选定云接口列表中的目标云api时,确定需要使用云服务器提供的目标云服务,目标云服务是云服务器提供的任一项云服务,目标云api是目标云服务对应的云api。

在另一种实现方式中,该云服务的权限认证设备90可以是图2a所示的云服务器202;该计算机可读存储介质904中存储有一条或多条第二指令;由处理器901加载并执行计算机可读存储介质中存放的一条或多条第二指令,以实现上述权限认证方法实施例中的相应步骤;具体实现中,计算机可读存储介质904中的一条或多条第二指令由处理器901加载并执行如下步骤:

接收终端发送的权限认证请求,权限认证请求是终端根据派生签名密钥生成的,权限认证请求中携带派生签名密钥,派生签名密钥是终端在需要使用云服务器提供的目标云服务时从终端的可信区域内获取到的;可信区域是终端的内存中划分出的一个或多个安全执行区域;

根据权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,允许终端调用目标云服务。

在一种实现方式中,计算机存储介质904中的一条或多条第二指令由处理器901加载并且执行根据权限认证请求中携带的派生签名密钥进行服务鉴权的步骤时,具体执行如下步骤:

对派生签名密钥进行有效性校验;

若派生签名密钥有效,则对派生签名密钥进行合法性校验;

若派生签名密钥合法,则确定服务鉴权成功。

在一种实现方式中,计算机存储介质904中的一条或多条第二指令由处理器901加载并且执行对派生签名密钥进行有效性校验的步骤时,具体执行如下步骤:

解析派生签名密钥,获得派生签名密钥中携带的终端的系统时间戳,系统时间戳是终端在需要使用云服务器提供的目标云服务时获取的;

获取云服务器接收到权限认证请求时的目标时间戳;

计算目标时间戳与系统时间戳的时间差值;

若时间差值在有效范围内,则确定派生签名密钥有效。

在一种实现方式中,计算机存储介质904中的一条或多条第二指令由处理器901加载并且执行对派生签名密钥进行合法性校验的步骤时,具体执行如下步骤:

对派生签名密钥进行解密;

若解密成功,得到派生签名密钥中携带的安全密钥,并且若派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥一致,则确定派生签名密钥合法;

若解密失败,或者解密得到的派生签名密钥中携带的安全密钥与终端在云服务器中进行注册所获得的安全密钥不一致,则确定派生签名密钥非法。

本申请实施例中,当需要使用云服务器提供的目标云服务时,终端从终端的可信区域内获取用于进行鉴权服务的派生签名密钥,并根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥。然后,终端将权限认证请求发送至云服务器,云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权,在服务鉴权成功后,终端调用云服务器提供的目标云服务。可信区域是终端的内存中划分出来的一个或多个安全执行区域,终端的可信区域为派生签名密钥提供提供了一个安全的存储区域,从而云服务器基于派生签名密钥的服务鉴权过程安全可靠,进一步提高了服务鉴权结果的可靠性。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。


技术特征:

1.一种云服务的权限认证方法,其特征在于,所述方法包括:

当需要使用云服务器提供的目标云服务时,从终端的可信区域内获取派生签名密钥;所述可信区域是所述终端的内存中划分出的一个或多个安全执行区域;

根据所述派生签名密钥生成权限认证请求,所述权限认证请求中携带所述派生签名密钥;

向所述云服务器发送所述权限认证请求,以使所述云服务器根据所述权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,调用所述目标云服务。

2.根据权利要求1所述的方法,其特征在于,所述可信区域是在所述终端的内存中构造得到的,所述可信区域的构造方法包括:

调用所述终端的操作系统所提供的应用程序编程接口,获取所述终端的操作系统的临时令牌;

在所述终端的内存中创建包含所述临时令牌的飞地容器,并生成所述飞地容器的访问接口;

其中,所述飞地容器将所述终端的内存划分为所述可信区域和非可信区域,所述可信区域是指所述飞地容器所容纳的内存区域,所述非可信区域是指所述飞地容器之外的内存区域,所述访问接口用于桥接所述可信区域和所述非可信区域;

所述可信区域用于存储所述终端的敏感数据,所述敏感数据包括以下至少一种:所述终端的身份数据、所述终端的应用程序涉及的隐私数据、所述终端的应用程序请求保护的数据。

3.根据权利要求1所述的方法,其特征在于,所述派生签名密钥是在所述可信区域内生成的用于进行服务鉴权的数据;所述方法还包括:

当需要使用所述云服务器提供的所述目标云服务时,在所述可信区域内进行签名计算,得到所述派生签名密钥。

4.根据权利要求3所述的方法,其特征在于,所述可信区域包括访问接口;所述可信区域内存储有所述终端的身份数据,所述身份数据包括所述终端在所述云服务器中进行注册所获得的安全标识和安全密钥;所述可信区域还存储有签名算法;

所述在所述可信区域内进行签名计算,得到所述派生签名密钥,包括:

当需要使用所述云服务器提供的所述目标云服务时,获取所述终端的系统时间戳;

调用所述访问接口,将所述系统时间戳传入所述可信区域;

采用所述签名算法对所述系统时间戳和所述身份数据进行签名计算,得到所述派生签名密钥。

5.根据权利要求4所述的方法,其特征在于,所述采用所述签名算法对所述系统时间戳和所述身份数据进行签名计算,得到所述派生签名密钥,包括:

对所述安全密钥进行字符串连接处理;

将所述系统时间戳和连接处理后的安全密钥作为第一输入参数,采用所述签名算法对所述第一输入参数进行签名计算,得到第一签名参数;

获取所述目标云服务的服务标识,将所述目标云服务的服务标识和所述第一签名参数作为第二输入参数,采用所述签名算法对所述第二输入参数进行签名计算,得到第二签名参数;

获取所述签名算法的算法标识,将所述签名算法的算法标识和所述第二签名参数作为第三输入参数,采用所述签名算法对所述第三输入参数进行签名计算,得到所述派生签名密钥。

6.根据权利要求4所述的方法,其特征在于,所述根据所述派生签名密钥生成权限认证请求,包括:

按照所述云服务器的请求规范,对所述系统时间戳和所述派生签名密钥进行拼接处理,得到所述权限认证请求。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

显示云接口列表,所述云服务器提供至少一项云服务,所述云接口列表包括各项云服务对应的云应用程序编程接口;

当选定所述云接口列表中的目标云应用程序编程接口时,确定需要使用所述云服务器提供的所述目标云服务,所述目标云服务是所述云服务器提供的任一项云服务,所述目标云应用程序编程接口是所述目标云服务对应的云应用程序编程接口。

8.一种云服务的权限认证方法,其特征在于,所述方法包括:

接收终端发送的权限认证请求,所述权限认证请求是所述终端根据派生签名密钥生成的,所述权限认证请求中携带所述派生签名密钥,所述派生签名密钥是所述终端在需要使用云服务器提供的目标云服务时从所述终端的可信区域内获取到的;所述可信区域是所述终端的内存中划分出的一个或多个安全执行区域;

根据所述权限认证请求中携带的派生签名密钥进行服务鉴权;

在服务鉴权成功后,允许所述终端调用所述目标云服务。

9.根据权利要求8所述的方法,其特征在于,所述根据所述权限认证请求中携带的派生签名密钥进行服务鉴权,包括:

对所述派生签名密钥进行有效性校验;

若所述派生签名密钥有效,则对所述派生签名密钥进行合法性校验;

若所述派生签名密钥合法,则确定服务鉴权成功。

10.根据权利要求9所述的方法,其特征在于,所述对所述派生签名密钥进行有效性校验,包括:

解析所述派生签名密钥,获得所述派生签名密钥中携带的所述终端的系统时间戳,所述系统时间戳是所述终端在需要使用所述云服务器提供的所述目标云服务时获取的;

获取所述云服务器接收到所述权限认证请求时的目标时间戳;

计算所述目标时间戳与所述系统时间戳的时间差值;

若所述时间差值在有效范围内,则确定所述派生签名密钥有效。

11.根据权利要求9所述的方法,其特征在于,所述对所述派生签名密钥进行合法性校验,包括:

对所述派生签名密钥进行解密;

若解密成功,得到所述派生签名密钥中携带的安全密钥,并且若所述派生签名密钥中携带的安全密钥与所述终端在所述云服务器中进行注册所获得的安全密钥一致,则确定所述派生签名密钥合法;

若解密失败,或者解密得到的所述派生签名密钥中携带的安全密钥与所述终端在所述云服务器中进行注册所获得的安全密钥不一致,则确定所述派生签名密钥非法。

12.一种云服务的权限认证装置,其特征在于,所述云服务的权限认证装置包括:

密钥获取单元,当需要使用云服务器提供的目标云服务时,用于从终端的可信区域内获取派生签名密钥;所述可信区域是所述终端的内存中划分出的一个或多个安全执行区域;

请求生成单元,用于根据所述派生签名密钥生成权限认证请求,所述权限认证请求中携带所述派生签名密钥;

请求发送单元,用于向所述云服务器发送所述权限认证请求,以使所述云服务器根据所述权限认证请求中携带的派生签名密钥进行服务鉴权;

服务调用单元,在服务鉴权成功后,调用所述目标云服务。

13.一种云服务权限认证装置,其特征在于,所述云服务的权限认证装置包括:

请求接收单元,用于接收终端发送的权限认证请求,所述权限认证请求是所述终端根据派生签名密钥生成的,所述权限认证请求中携带所述派生签名密钥,所述派生签名密钥是所述终端在需要使用云服务器提供的目标云服务时从所述终端的可信区域内获取到的;所述可信区域是所述终端的内存中划分出的一个或多个安全执行区域;

服务鉴权单元,用于根据所述权限认证请求中携带的派生签名密钥进行服务鉴权;

服务提供单元,在服务鉴权成功后,用于允许所述终端调用所述目标云服务。

14.一种云服务的权限认证设备,其特征在于,所述云服务的权限认证设备包括:

处理器,适于实现一条或多条指令;以及,

计算机可读存储介质,所述计算机可读存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如权利要求1至7任一项所述的云服务的权限认证方法;或者,所述计算机可读存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求8至11任一项所述的云服务的权限认证方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行如权利要求1至7任一项所述的云服务的权限认证方法;或者,所述计算机可读存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求8至11任一项所述的云服务的权限认证方法。

技术总结
本申请实施例公开了一种云服务的权限认证方法、装置、设备及介质,该云服务的权限认证方法包括:当需要使用云服务器提供的目标云服务时,从终端的可信区域内获取派生签名密钥;可信区域是终端的内存中划分出的一个或多个安全执行区域;根据派生签名密钥生成权限认证请求,权限认证请求中携带派生签名密钥;向云服务器发送权限认证请求,以使云服务器根据权限认证请求中携带的派生签名密钥进行服务鉴权;在服务鉴权成功后,调用目标云服务。采用本申请实施例,通过在终端划分安全的可信区域,采用此可信区域来保证派生签名密钥的安全性,进而保证基于该派生签名密钥所进行的权限认证过程的可靠性。

技术研发人员:林委坤
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.05.06
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-18996.html

最新回复(0)