首页 > ip授权 > 软件授权方式有哪些-一种软件使用授权的方法及流程
2023
11-29

软件授权方式有哪些-一种软件使用授权的方法及流程

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

背景技术:

随着移动安全技术的发展,越来越多的软件开发商(不同于在线服务提供商)希望自己开发的软件产品的使用权能够得到保护,只允许授权的终端设备运行该软件产品。 这种方式需要软件开发商在将软件产品交付给客户后,对软件在终端设备上运行的许可进行授权和管理。

然而,在现有技术中,客户需要购买硬件盾(加密狗、加密U盘、密钥等)。 用户在使用软件时,将硬件盾插入设备中,通过硬件盾提供的密码功能服务授权软件运行。 这种方法会存在因购买硬件屏蔽罩需要额外的设备成本而导致硬件设备成本较高等问题。 由于硬件盾必须通过线下渠道交付给最终用户,物流、渠道、维护成本高,导致交付和部署成本高,以及使用过程中由于使用过程繁琐而导致硬件设备成本高。

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

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

技术实现要素:

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

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

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

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

客户端程序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上,ta运行在tee上,通信密钥和授权密钥分别存储在ta和服务器中。 该方法包括:ta生成客户端程序,使用预先存储的通信密钥对授权请求消息进行处理和加密卡通形象,得到请求密文; 将密文发送给服务器,以便服务器验证请求密文,获取授权响应密文,并将授权响应密文下发给客户端程序; ta接收客户端程序发来的授权响应密文,验证后将授权凭据存储在tee中,授权移动设备使用。 不仅可以实现严格的一机一授权,且授权凭证不可篡改、复制、共享; 它还可以显着改善授权机制的用户体验,而无需额外的硬件。

附图说明

图1为本实施例移动设备的使用授权方法的应用环境示意图。

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

详细方式

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

图1为本实施例移动设备的授权方法的应用环境示意图。 作为一个授权系统,它由终端设备1和服务器2组成。终端设备1和服务器2通过移动网络连接。

终端设备1可以是但不限于各种个人电脑、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备等。 本实施例中,终端设备1为Android系统的移动终端。

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

终端设备1安装了Richos11(android)和tee12(可信执行环境)。

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

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

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

授权密钥也存储在ta121和服务器2中:服务器2使用授权密钥来签署授权证书。 ta121验证授权证书签名,可以使用非对称算法、MAC算法或者对称加密和摘要算法的组合。

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

下面介绍移动设备软件授权的流程,如图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 比较。 如果相同,则说明受保护的软件模块是合法的,未被篡改。

ta121在将验证结果返回给客户端程序111之前,还对软件中各模块的合法性和完整性进行验证。 验证合法性和完整性后,将验证结果返回给客户端程序111。

因此,与以往的方法相比,授权机制更加具体,受保护的软件更加安全。

并且和之前的方法一样,由于授权验证等过程受到tee的保护,数据无法篡改、复制、共享,因此授权证书可以实现严格的一机一授权,安全性高并且可以显着提高用户体验的授权机制。 不需要额外的硬件。

上述实施例的技术特征可以以任何方式组合。 为了简化说明,并未对上述实施例中的技术特征的所有可能的组合进行描述。 但是,只要这些技术特征的组合不矛盾,就应当使用所有可能的组合。 它被认为是在本手册的范围之内。

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

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计