一种用于软件使用授权的方法与流程

文档序号:20038426发布日期:2020-02-28 11:36阅读:831来源:国知局
一种用于软件使用授权的方法与流程

本申请涉及安全技术领域,特别是涉及一种用于软件使用授权的方法。



背景技术:

随着移动安全技术的发展,越来越多的软件开发商(区别于在线服务提供商),希望其研发的软件产品的使用权能够被保护,仅允许被授权的终端设备运行该软件产品。这种方法要求软件开发商在将软件产品交付客户后,对软件在终端设备上的运行许可进行授权管理。

然而现有技术中,客户需要购买硬件盾(加密狗、加密u盘、密钥钥匙等),使用软件时,用户将硬件盾插入设备,通过硬件盾提供的密码功能服务对软件运行授权。该种方法中则会出现的例如因采购硬件盾需要承担额外的设备成本而导致的硬件设备成本高的问题、因要通过线下渠道将硬件盾交付到最终用户手上,物流、渠道、维修成本高导致的交付以及部署成本高的问题、以及使用过程中因使用流程繁琐导致的硬件设备成本高的问题。

在其他现有技术中,用户可以从服务商获得授权码、注册码,输入软件后获取软件的使用权,然而该种方法中也存在着保护措施安全性差的问题,当软件程序运行在不可信的执行环境时,授权码的计算过程可能被破解,可能通过篡改授权状态绕过授权保护机制。

本发明的目的,在于提供一种软件使用授权的方法,使软件在使用授权时,能够确保授权机制的有效性和安全性。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够既可以保证程序安全又提高用户体验的用于终端设备的使用授权方法。

一种软件使用授权的方法,其特征在于,包括终端设备1、服务器2,终端设备1和服务器2通过网络连接;

终端设备1中安装有富系统11以及可信执行环境12;

富系统11上运行客户端程序111,可信执行环境12中运行可信应用ta121;

客户端程序111实现ta121与服务器2之间的安全通信链路;

ta121实现密码服务功能,通过密码服务功能实现对需要授权的软件进行管控;

ta121和服务器2中保存通讯密钥,用于在ta121与服务器2之间建立安全通信链路;

ta121和服务器2中还保存有授权密钥:服务器2使用授权密钥授权凭证签名。ta121验证授权凭证签名;

软件使用授权的方法包括:

步聚s1,针对需要授权的软件,客户端程序111向可信应用ta121发送授权请求报文,授权请求报文包括终端设备1信息、授权目标信息;

步骤s2,可信应用ta121处理授权请求报文并使用通讯密钥对处理结果以及授权请求报文进行加密生成授权请求密文回送;

步骤s3,客户端程序111上送授权请求密文给服务器2;

步聚s4,服务器2使用通讯密钥解密的授权请求密文,并验证授权请求合法性以及完整性,签署授权凭证并下发授权响应密文至客户端程序111;

步聚s5,客户端程序111将授权响应密文发ta121;

步聚s6,可信应用ta121接收授权响应密文,使用通讯密钥解密,使用授权密钥验证授权凭证,验证通过后在tee12中存储授权凭证,并将授权结果信息返回至客户端程序111;

客户端程序111启动时,ta121验证存储在tee12中存储的授权凭证,验证通过后,将验证结果返回客户端程序111,客户端程序111在接受到验证结果后,进入运行状态。

进一步地,终端设备1包括个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备中的任一种。

进一步地,服务器2为独立的服务器或者多个服务器组成的服务器集群。

进一步地,通讯密钥可以采用预制对称密钥,也可以采用ssl及类似方法。

进一步地,授权密钥可以采用非对称算法、mac算法、组合使用对称加密和摘要算法的方式。

进一步地,步骤s1中,还包括授权控制信息。

进一步地,ta121的密码服务包括加密解密、签名验签、完整性校验。

进一步地,软件启动时,ta121验证授权凭证后,还提供密码服务功能执行必要的功能流程。

进一步地,功能流程包括解密关键安全参数、校验被保护的软件中模块的合法性、完整性。

进一步地,在步骤s2中,可信应用ta121使用摘要算法处理授权请求报文。

上述用于终端设备的使用授权方法,终端设备的richos上运行客户端程序,tee中运行ta,ta和服务器中分别保存通信密钥和授权密钥,所述方法包括:ta对客户端程序生成的授权请求报文进行处理并利用预存的通信密钥进行加密,得到请求密文;密文上送至服务器,以使服务器校验请求密文得到授权响应密文并下发授权响应密文至客户端程序;ta从客户端程序接收授权响应密文,验证后在tee中存储授权凭证,对移动设备进行授权使用。不仅能够实现严格的一设备一授权,无法篡改、复制、共享授权凭证;而且可以显著提升授权机制的用户体验,无需额外硬件。

附图说明

图1为实施例中用于移动设备的使用授权方法的应用环境说明图;

图2为实施例中用于移动设备授权请求的流程示意图;

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请各实施例提供的技术方案进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为实施例中用于移动设备的使用授权方法的应用环境说明图,作为授权系统,由终端设备1、服务器2组成。终端设备1和服务器2通过移动网络连接。

终端设备1可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。本实施方式中,终端设备1为采用android(安卓)系统的移动终端。

服务器2为独立的服务器或者是多个服务器组成的服务器集群来实现。本实施方式中,服务器2为一个应用服务器(授权服务器)。

终端设备1中安装有richos11(android)以及tee12(可信执行环境)。

richos11(android)上运行客户端程序111(app),tee12中运行可信应用ta121,客户端程序111和可信应用ta121构成授权程序模块,客户端程序111实现ta121与授权服务器2之间的安全通信链路。ta121实现加解密、签名验签、完整性校验等密码服务,通过密码服务实现对需要授权的软件进行管控。

ta121和服务器2中保存通讯密钥,用于在ta121与服务器1之间建立安全通信链路。

通讯密钥可以采用预制对称密钥,如客户端与服务端包含相同的会话密钥(或种子密钥);也可以采用ssl(或其他类似方法),例如由客户端和服务端临时协商会话密钥。

ta121和服务器2中还保存有授权密钥:服务器2使用授权密钥对授权凭证签名。ta121验证授权凭证签名,可以采用非对称算法、mac算法、组合使用对称加密和摘要算法等方式。

终端设备中1需要保护的模块只有经过授权程序模块授权通过后,才能提供正常的功能。

以下对移动设备软件使用授权的流程进行说明,如图2所示。

步聚s1,针对需要授权的软件,客户端程序111发起授权请求。

具体为客户端程序111向可信应用ta121发送申请授权请求报文,携带待授权设备信息、授权目标信息、授权控制信息(有效期等);

步骤s2,可信应用ta121生成授权请求密文回送客户端程序111。

具体为可信应用ta121对客户端程序111发送的授权请求报文进行处理,本实施例中,可信应用ta121使用摘要算法生成授权请求报文的摘要信息,并将授权请求报文与摘要信息使用预存的通讯密钥进行加密,并将加密的授权请求报文(密文)回送客户端程序111。

步骤s3,客户端程序111上送加密的授权请求报文给服务器2。

步聚s4,服务器2验证授权请求,根据业务规则进行授权或者拒绝,通过后,签署授权凭证并下发授权响应密文至客户端程序111。

具体为服务器2用预存的通讯密钥解密客户端程序111上送的授权请求报文,与步骤2相对应,服务器2使用摘要算法生成授权请求报文原文的摘要信息,与收到的摘要信息进行对比,如果相同,则说明授权请求信息未被篡改,服务器根据业务规则批准或拒绝授权,如:设备为非法设备时,拒绝授权。

服务器2批准请求后,生成授权凭证,在本实施例中,授权密钥采用非对称算法,使用授权密钥(私钥)对授权凭证使用签名算法进行签名,再用通讯密钥加密生成授权应答,得到授权响应密文,发送客户端程序111。

步聚s5,客户端程序111将授权响应密文发ta121。

步聚s6,可信应用ta121接收到授权响应密文后,进行验证。

具体为可信应用ta121接收到授权响应密文后,用预存的通讯密钥解密授权响应密文。并通过授权密钥验证授权凭证的真实性。在本实施例中,授权密钥采用非对称算法,可信应用ta121使用授权密钥(服务器证书的公钥)验证授权凭证签名。保证授权凭证的真实性。验证通过后在tee中存储授权凭证,并将授权结果返回至客户端程序111。

使用被保护的软件服务(客户端程序111)时,客户端程序111调用授权程序模块接口,ta121验证存储在tee中的授权凭证,即,授权密钥采用非对称算法时,可信应用ta121使用授权密钥(服务器证书的公钥)验证授权凭证签名,如果授权凭证真实,将验证结果返回客户端程序111,客户端程序111在接受到验证结果且验证通过后,才能提供相应的功能。

由于授权验证等流程受tee保护、数据无法被篡改、复制、共享,授权凭证能够实现严格的一设备一授权,安全性强,并且可以显著提升授权机制的用户体验,无需额外硬件。

变形例

作为变形例,验证通过后ta121还提供密码服务功能执行必要的功能流程,功能流程通过后,将验证结果返回客户端程序111。

例如ta121解密关键安全参数(如:授权程序的一个密钥)、校验被保护的软件中模块的合法性、完整性等。在本实施例中,作为必要的功能流程为校验被保护的软件中模块的合法性和完整性。软件开发商对被保护的软件中模块使用哈希算法生成摘要信息h1并用私钥加密,ta121使用公钥解密摘要信息h1,并对被保护的软件模块使用哈希算法生成签名信息h2,将h2与h1进行对比,如果相同,则说明被保护的软件模块合法且未被篡改。

由于验证结果返回客户端程序111前,ta121还验证软件中模块的合法性、完整性等,在验证完合法性、完整性后,再将验证结果返回客户端程序111。

因此,与之前的方法相比,授权机制更为有性,被保护的软件更安全。

并且与之前的方法同样,由于授权验证等流程受tee保护、数据无法被篡改、复制、共享,授权凭证能够实现严格的一设备一授权,安全性强,并且可以显著提升授权机制的用户体验,无需额外硬件。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1