软件授权系统及方法

文档序号:6353371阅读:582来源:国知局
专利名称:软件授权系统及方法
技术领域
本发明有关一种软件授权系统及方法,详而言之,是涉及一种无需传输加密软件的主金钥的软件授权系统及方法。
背景技术
内容传递网络(Content Delivery Network, CDN)技术的发展可提高网站响应速度,然随着云运算的风行,CDN这种可以提高网站传送速率的技术对软件授权的应用而言却是一种限制。⑶N基本上是将软件(内容)事先复制到全球多台服务器,因而网站经营者无法针对每次下载的软件作个别的保护处理,使得许多保护机制必须在客户端进行。例如, Microsoft下载网站的作法是将所有认证检查放在安装时期,并在执行时期需执行启动动作。而App Store则是让使用者在下载软件时产生一把使用者金钥,再利用金钥加密金钥 (Key Encrypt Key, KEK)方式将所谓的主金钥加密传送给使用者,故当使用者下载完软件便可用主金钥解密。然而,由于前述这些小程序很容易被逆向工程攻击,尤其例如Javabyte code,因此Microsoft下载网站的作法不适用于软件市集所卖的小程序,而App Store的作法则已被证实有心者可取得使用者金钥进而于下载程序后多次转载。另一方面,现有技术亦提出一种软件授权与保护装置及方法,是于第一次使用时于客户端产生注册码(random number-MACaddress、硬盘序列码、软件名称)并加密,再向授权系统注册及写入数据库,但此方案每次执行时需在线检查许可状态,且取得MAC address或硬盘序号已为现有技术,仅需简单协议分析即可复制相同的参数。其次,另有一种用于协助内容金钥改变的方法及装置,能从主金钥和内容规则导出CEK,则利用同一把金钥即可进行加解密,使用者仍可多次复制档案或内容。此外,相关论文的基本假设为程序被分离成受保护程序及安全参数,其安全参数可被多种装置重复使用,因而使用者仍可破解程序后多次转载,若考虑安全而作成有差异的安全参数,则由于受保护程序和安全参数需成对使用而使得无法使用CDN技术。是以,如何提供一种软件授权系统及方法,得以防止合法下载而非法散布软件者, 在软件市集中所贩卖的软件生命周期普遍皆不长的情况下,为目前软件开发业者亟待解决的议题之一。

发明内容
有鉴于此,本发明的主要目的是提供一种软件授权系统及方法,得以增加下载及解密软件的难度,抑止非法下载或合法下载而非法散布软件。本发明提供一种软件授权系统,包括软件供应模块,提供以主金钥进行加密的受保护软件,且该受保护软件具有软件识别码;处理模块,用以自该软件供应模块下载该受保护软件,并输出所下载的受保护软件的软件识别码;中介模块,具有用户识别码及与该用户识别码对应的第一金钥,且该中介模块用以接收该处理模块所输出的软件识别码;以及授权模块,具有主金钥库和第一金钥库,该授权模块接收该中介模块所输出的用户识别码及该软件识别码,并根据该用户识别码及该软件识别码分别至该主金钥库搜寻与该软件识别码相对应的主金钥及至该第一金钥库搜寻与该用户识别码对应的第一金钥,其中,该授权模块以该主金钥及该第一金钥进行运算而产生第二金钥并将该第二金钥传输至该中介模块,以由该中介模块依据自身所具有的第一金钥结合所接收的该第二金钥回复出该主金钥,使该处理模块利用该主金钥对所下载的受保护软件进行解密。于一实施形态中,本发明软件授权系统还包括转换模块,用以将至少一软件以该主金钥加密的方式转换为该受保护软件并传输至该软件供应模块,复用以将该软件区分为多个区块并利用该主金钥分别对该些区块进行加密而转换为该受保护软件,以此混淆该软件的数据结构和控制程序,而该处理模块是利用该中介模块所回复出的主金钥分别对该些区块解密。本发明还提供一种软件授权方法,用于包括服务器端和客户端的软件授权系统中,该客户端具有用户识别码和对应该用户识别码的第一金钥,该服务器端具有提供以主金钥进行加密的受保护软件的软件供应模块及储存有该主金钥和该第一金钥的授权模块。 该软件授权方法包括以下步骤步骤1、令客户端自该软件供应模块下载受保护软件时取得该受保护软件的软件识别码,并将自身所具有的用户识别码及该受保护软件的软件识别码传输至该授权模块;步骤2、令该授权模块依据该用户识别码取得相对应的第一金钥,并根据该软件识别码取得相对应的主金钥,以对该主金钥及该第一金钥进行运算而产生第二金钥,并将该第二金钥传输至该中介模块;步骤3、令该客户端依据自身所具有的第一金钥结合所接收的第二金钥以回复出该主金钥;以及步骤4、令该客户端利用所回复出的主金钥对下载的受保护软件进行解密。本发明改善原先软件市集的弱点,更增加攻击者的破解难度,且由于每个中介模块(或客户端)具有不同的第一金钥,因而自授权模块取得的第二金钥亦不同,进而可抑止合法下载而非法散布软件。


图1是本发明的软件授权系统的应用架构图的示意图;图2是本发明的软件授权方法的应用流程图的示意图;图3A是本发明的软件授权方法的具体实施架构图的示意图;以及图;3B是本发明的软件授权方法的转换软件成受保护软件的说明图的示意图。主要元件符号说明10、30转换模块11、31软件供应模块110、310受保护软件310,软件12处理模块13中介模块131第二沟通接口132第一沟通接口
133回复单元14、32授权模块141、321 主金钥库142、322 第一金钥库143运算单元15 内存16、;34安全硬件33中介软件Pl、P2...Pn、Cl、C2...Cn 区块S201 S204 步骤
具体实施例方式以下通过特定的具体实施形态说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效,亦可通过其它不同的具体实施形态加以施行或应用。请参阅图1,本发明的软件授权系统包括软件供应模块11、处理模块12、中介模块 13和授权模块14。软件供应模块11用以提供以主金钥加密的方式而成为的受保护软件110,受保护软件110具有软件识别码。具体言之,软件供应模块11可提供多种受保护软件110(即各种应用程序),该些受保护软件110具有各自的软件识别码。于一实施形态中,本发明的软件授权系统还包括转换模块10,转换模块10透过加密、混淆或区分等方式将软件转换为受保护软件110并传输至软件供应模块11。于进行加密时,转换模块10可将软件区分为多个区块,并利用与软件识别码相对应的主金钥分别加密该些区块,以此混淆软件的数据结构和控制程序,使之成为受保护软件110。处理模块12用以自软件供应模块11下载受保护软件110,并将所下载的受保护软件110的软件识别码传输至中介模块13。中介模块13具有用户识别码及与用户识别码相对应的第一金钥,且接收处理模块12所传输的软件识别码,并将用户识别码及所下载的受保护软件110的软件识别码传输至授权模块14。此外,该第一金钥可利用混淆技术设置于中介模块13中,让使用者难以存取到该第一金钥。再者,转换模块10亦可于软件中加入完整性检查参数以使其成为受保护软件110再传输至软件供应模块11,以供中介模块13确定受保护软件110是否被窜改。授权模块14具有主金钥库141和第一金钥库142。主金钥库141储存有与受保护软件110的软件识别码相对应的主金钥,第一金钥库142储存有与中介模块13的用户识别码(可以是random number-MAC address、硬盘序列码、软件名称等组合,不限于此,只要能代表客户端即可)相对应的第一金钥。授权模块14接收中介模块13所传输的用户识别码及软件识别码,并根据该用户识别码至第一金钥库142中搜寻相对应的第一金钥,根据该软件识别码至主金钥库141搜寻相对应的主金钥。此外,授权模块14以所搜寻出的主金钥和第一金钥透过运算单元143进行运算而产生第二金钥,并将该第二金钥传输至中介模块13,以由中介模块13再依据自身所具有的第一金钥结合所接收的第二金钥回复出该主金钥,即授权模块14所搜寻出的主金钥,亦即用以对软件加密使之成为受保护软件110的主金钥,进而使处理模块12利用该主金钥对所下载的受保护软件110进行解密。于软件供应模块11所提供的受保护软件110有被区分为多个区块的实施形态中, 处理模块12对受保护软件110的多个区块以中介模块13所回复出的主金钥分别解密。其次,中介模块13和处理模块12可皆设置于同一使用者装置,如手机或笔记本电脑等,亦可分设于不同的电子装置。于中介模块13设置于使用者装置的实施形态中,中介模块13所具有的第一金钥及自授权模块14所接收的第二金钥可储存于该使用者装置的安全硬件16,如IC卡、SIM卡或TPM卡等。于处理模块12设置于使用者装置的实施形态中, 处理模块12可将解密完毕的软件储存至该使用者装置的内存15。详言之,如图1所示,中介模块13具有第二沟通接口 131、第一沟通接口 132及回复单元133,第一沟通接口 132用以与授权模块14沟通以传输该用户识别码和所下载的受保护软件110的软件识别码并接收该第二金钥,而第二沟通接口 131用以与处理模块12沟通以将回复单元133所回复出的主金钥提供给处理模块12。再者,授权模块14的运算单元143可对主金钥(KEY)和第一金钥(Kl)执行除斥运算以产生第二金钥(以),即火2 = KEY Θ火1,然,运算单元143所进行的运算方式不受此限,如可使用秘密分享技术(secret sharing scheme)。由图1所示的实施形态得以了解,本发明的中介模块具有用户识别码及与该用户识别码相对应的第一金钥,并自授权模块取得第二金钥,当受保护软件需执行解密及授权检查时,中介模块利用第一金钥和第二金钥回复出主金钥。由于不同中介模块自授权模块会取得不同的第二金钥,若用户欲将软件安装至具有另一中介模块的使用者装置时则须向授权模块再次索取另一把第二金钥。此外,软件经混淆(分成多个区块)及加密而转换成受保护软件后,不容易一次解密完毕,若欲不透过第二金钥而强行解密该受保护软件,则需分析受保护软件并将每一区块重新组合。故,本发明的软件授权系统可增加下载解密受保护软件的难度,抑止非法下载或合法下载而非法散布软件。接着请参阅图2,其是本发明的软件授权方法的流程图。本发明的软件授权方法被应用于软件授权系统,该软件授权系统主要包括服务器端和客户端,该客户端具有用户识别码和对应该用户识别码的第一金钥,该服务器端具有提供以主金钥进行加密的受保护软件的软件供应模块及储存有该主金钥和该第一金钥的授权模块。于步骤S201中,令客户端自软件供应模块下载受保护软件时取得该受保护软件的软件授权码,并将自身所具有的用户识别码及所取得的软件识别码传输至授权模块。接着于步骤S202,令授权模块分别依据该用户识别码及该软件识别码取得相对应的第一金钥及主金钥,以对该主金钥及该第一金钥进行运算而产生第二金钥,并将该第二金钥传输至客户端。进至步骤S203。于步骤S203,客户端接收该第二金钥,令客户端依据自身所具有的第一金钥结合所接收的第二金钥以回复出该主金钥,再于步骤S204中,利用所回复出的主金钥对所下载的受保护软件进行解密。具体实施时,请参阅图3A及图;3B,服务器端具有转换模块30、软件供应模块31和授权模块32,客户端具有中介软件33及安全硬件34。需说明的是,本发明于实际应用上, 客户端可例如为智能型手机,服务器端可提供该智能型手机下载各种应用程序。
7
服务器端透过转换模块30将软件310’转换为受保护软件310,如图;3B所示,是先将软件310’区分为多个区块P1、P2. . . Pn,再利用主金钥分别对该些区块P1、P2. . . Pn加密而使之成为区块Cl、C2. . . Cn,则软件230’便转换为受保护软件310。接着,服务器端将受保护软件310发布至离使用者最近的网络节点,即图3A所示的软件供应模块31,以供客户端可就近取得所需的内容,解决网络拥挤的状况并提高使用者访问软件供应网站的响应速度。另一方面,当转换模块30利用不同的主金钥加密软件310’时,会将该些主金钥储存于授权模块32的主金钥库321中,且第一金钥库322储存有多把与用户识别码相对应的第一金钥,换言之,服务器端已预先将用户识别码与第一金钥的对应关系储存于授权模块32 中。客户端自服务器端下载受保护软件310时可取得受保护软件310的软件识别码, 并将该软件识别码及所具有的用户识别码上传至服务器端,且服务器端的授权模块32分别根据该软件识别码及该用户识别码取得主金钥和第一金钥,进而以该第一金钥和该主金钥运算出第二金钥并将该第二金钥传输至客户端。换言之,当客户端连结服务器端以下载受保护软件时,客户端可通过软件供应模块31连结至授权模块32以取得该第二金钥。于服务器端内,安全硬件34系储存有第一金钥,安全硬件34将该第一金钥传予中介软件33,以供中介软件33依据该第一金钥及该二金钥回复出该主金钥,且中介软件33与受保护软件310建立联机,进而利用该主金钥解密受保护软件310的多个区块C1、C2. . . Cn 进而完成对受保护软件310的解密。综上所述,本发明的软件授权系统可分为服务器端和客户端,服务器端可包括软件供应模块和授权模块,客户端主要包括中介模块(或中介软件)并可包括处理模块。服务器端可事先将受保护软件放到CDN的服务器上以减少下载反应时间,且每个客户端有不同的第一金钥。服务器端可利用处理模块下载受保护软件,中介模块输出软件识别码及对应该第一金钥的用户识别码至授权模块,供授权模块搜寻出相对应的主金钥和第一金钥以算出第二金钥,则客户端依据自身所具有的第一金钥结合所接收的第二金钥回复出该主金钥,以与所下载的受保护软件建立联机而共同对受保护软件中的区块解密。因此,通过本发明的软件授权系统及其方法的应用,攻击者需多次分散下载受保护软件,还须先分析中介模块与授权模块的通讯协议取得第二金钥,更要分析中介模块以取得其中的第一金钥,最后还要分析下载受保护软件的解密流程才可能完全解密受保护软件。因此,攻击者不容易发展出全自动工具给一般使用者使用,如此可以阻止非法下载或合法下载而非法散布软件者,以增加软件存活时间,而这也刚好符合软件市集所贩卖软件的生命周期不长的特性。上述实施形态仅例示性说明本发明的原理、特点及其功效,并非用以限制本发明的可实施范畴,任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施形态进行修饰与改变。任何运用本发明所揭示内容而完成的等效改变及修饰,均仍应为随附权利要求范围所涵盖。因此,本发明的权利保护范围,应如随附权利要求范围所列。
权利要求
1.一种软件授权系统,其特征在于,包括软件供应模块,提供以主金钥进行加密的受保护软件,且该受保护软件具有软件识别码;处理模块,用以自该软件供应模块下载该受保护软件,并输出所下载的该受保护软件的软件识别码;中介模块,具有用户识别码及对应该用户识别码的第一金钥,且该中介模块用以接收该处理模块所输出的软件识别码;以及授权模块,具有主金钥库和第一金钥库,该授权模块接收该中介模块所输出的该用户识别码及该软件识别码,并根据该用户识别码及该软件识别码分别至该主金钥库搜寻与该软件识别码相对应的主金钥及至该第一金钥库搜寻与该用户识别码对应的第一金钥,其中,该授权模块以该主金钥及该第一金钥进行运算而产生第二金钥并将该第二金钥传输至该中介模块,以由该中介模块依据自身所具有的第一金钥结合所接收的该第二金钥回复出该主金钥,使该处理模块利用该主金钥对所下载的受保护软件进行解密。
2.根据权利要求1所述的软件授权系统,其特征在于,还包括转换模块,用以将至少一软件以该主金钥加密的方式转换为该受保护软件并传输至该软件供应模块。
3.根据权利要求2所述的软件授权系统,其特征在于,该转换模块用以将该软件区分为多个区块并利用该主金钥分别对该些区块进行加密而转换为该受保护软件,以混淆该软件的数据结构和控制程序。
4.根据权利要求3所述的软件授权系统,其特征在于,该处理模块是利用该中介模块所回复出的主金钥分别对该些区块进行解密。
5.根据权利要求1所述的软件授权系统,其特征在于,该中介模块包括第一沟通接口,用以将该用户识别码及该软件识别码传输至该授权模块,并自该授权模块接收该第二金钥;回复单元,用以结合该第一金钥及所接收的该第二金钥以回复出该主金钥;以及第二沟通接口,用以接收该处理模块所下载的受保护软件的软件识别码并将该主金钥传输至该处理模块。
6.根据权利要求1所述的软件授权系统,其特征在于,该授权模块包含运算单元,是以该主金钥及该第一金钥进行互斥运算而产生该第二金钥。
7.根据权利要求1所述的软件授权系统,其特征在于,该第一金钥是以混淆技术设置于该中介模块。
8.根据权利要求1所述的软件授权系统,其特征在于,该中介模块被设置于使用者装置,且该中介模块所具有的第一金钥及所接收的该第二金钥被储存于该使用者装置的安全硬件。
9.根据权利要求1所述的软件授权系统,其特征在于,该处理模块被设置于使用者装置中,且该处理模块将已解密的受保护软件储存至该使用者装置的内存。
10.一种软件授权方法,是应用于软件授权系统,其特征在于,该软件授权系统包括服务器端和客户端,该客户端具有用户识别码和对应该用户识别码的第一金钥,该服务器端具有提供以主金钥进行加密的受保护软件的软件供应模块及储存有该主金钥和该第一金钥的授权模块,该软件授权方法包括以下步骤步骤1、令该客户端自该软件供应模块下载该受保护软件时取得该受保护软件的软件识别码,并将自身所具有的用户识别码及该受保护软件的软件识别码传输至该授权模块;步骤2、令该授权模块依据该用户识别码取得相对应的第一金钥,且根据该软件识别码取得相对应的主金钥,以对该主金钥及该第一金钥进行运算而产生第二金钥,并将该第二金钥传输至该客户端;步骤3、令该客户端依据自身所具有的第一金钥结合所接收的第二金钥以回复出该主金钥;以及步骤4、令该客户端利用所回复出的该主金钥对所下载的受保护软件进行解密。
11.根据权利要求10所述的软件授权方法,其特征在于,步骤1还包括该服务器端将至少一软件以主金钥加密的方式转换成该受保护软件,以供该客户端下载。
12.根据权利要求11所述的软件授权方法,其特征在于,于步骤1还包括该服务器端将该软件区分为多个区块并以该主金钥分别加密而转换为该受保护软件,且步骤4还包括令该客户端以所回复的主金钥对该多个区块分别进行解密。
13.根据权利要求10所述的软件授权方法,其特征在于,步骤2的运算方法为互斥运算或利用秘密分享技术。
14.根据权利要求10所述的软件授权方法,其特征在于,该客户端还包括用以与所下载的受保护软件建立联机的中介软件,于步骤4中解密的方式为令该中介软件利用IPC技术与所下载的受保护软件建立联机,以利用该主金钥解密该受保护软件。
15.根据权利要求10所述的软件授权方法,其特征在于,该客户端还包括中介软件而该第一金钥是以混淆技术设置于该中介软件。
16.根据权利要求10所述的软件授权方法,其特征在于,该客户端还包括安全硬件而该第一金钥及/或所接收的第二金钥被储存于该安全硬件。
全文摘要
本发明公开了一种软件授权系统及方法,该系统包括服务器端和客户端。首先,于客户端自服务器端下载受保护软件时取得该受保护软件的软件识别码,并将该软件识别码及自身所具有的用户识别码传输至服务器端,接着,服务器端依据该用户识别码及该软件识别码分别取得相对应的第一金钥及主金钥,以对该主金钥及该第一金钥进行运算而产生第二金钥并传输至客户端,最后,由客户端结合自身所具有的第一金钥回复出该主金钥,再利用该主金钥对该受保护软件进行解密。据此,得以增加下载解密受保护软件的难度,抑止非法下载或合法下载而非法散布软件。
文档编号G06F21/00GK102467634SQ201110021229
公开日2012年5月23日 申请日期2011年1月14日 优先权日2010年11月10日
发明者高铭智 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1