一种基于第三方认证的软件版权保护方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

科技信息2013年第3期

SCIENCE&TECHNOLOGYINFORMATION

0引言

Macrovision公司的调查表明,超过50%的用户承认进行过非法软件复制。因此,一种有效可行的软件版权保护方案亟待开发。

1软件版权保护的基本要求及方式

2004年,微软制定的EULA[1]介绍了应如何使用版权受保护的软件,因此,我们可以根据EULA研究可行的数字版权保护方案。

目前,静态的预授权方式[2]难以防止软件被任意拷贝,或者保证了原子性却无法进行版权控制下的软件迁移。因此,我们提出了一种动态的、基于第三方实时验证的版权保护方法。

2基于第三方认证并支持多客户端的版权保护方案

2.1方案背景

在文献[3]中,作者已详细地介绍了对于单用户的许可证管理问题。本文提出了一种支持多客户端的版权保护和使用方案。

2.2符号约定

我们假定:CA、KDC、CRM都是可信任的;CD与a,b,c……都互相信任。

2.3方案描述

假定服务器端S是版权所有者。本文方案分为三个阶段:

(一)S先自证是版权所有者,并且证明软件是正版软件。此阶段涉及的版权认证方案[4]如下:

1)初始化。建立安全的KDC及可信赖的CRM。参与者p产生密钥对(SKp,PKp)。S用SK s加密唯一且可验证信息FP s,并将其作为水印嵌入到产品P中,产生P’。

2)S在CRM注册。CRM若未发现重复注册,则计算ID s=H(FP s,P′),再将FP s、P’、ID s进行注册,并将上述结果以证书形式连同时间T 发给S。

3)S自证是版权人。CRM从U提交的信息中提取出IDs、T,执行验证算法。若失败则是盗版;否则,CRM再验证是否已注册过,将结果发给U。但不会显示软件中是否嵌入其他信息。因此,只有S能用私钥将FPs展示出来,从而证明自己是版权所有者。

(二)S、CD和CA通过属性证书互验身份。

1)S产生随机数R s,并构造消息M s=(T s,R s,I ca,m),其中T s是时间标记,I ca是CA的身份证明,m为任意信息。S将(C s,SK s(M s))发送给CA。

2)CA确认C s并得到PK s,确认这些密钥没有过期。并用PK s去解密SK s(M s),既证明了S的签名又证明了所签发信息的完整性。

3)CA检查M s中的I ca和T s以证实消息是刚发来的。

4)CA检查M s中的R s以确保不是旧消息重放。至此,CA已验证并确认S的身份。

5)CA产生另一个随机数R ca,也构造一条消息M ca=(T ca,R ca,I s,R s,d),其中R s是S在第(1)步中产生的随机数,d为任意的数据。CA将SK ca(M ca)发送给S。

6)S用PK ca解密SK ca(M ca),以确认CA的签名和消息的完整性。

7)S检查M ca中I s以保证准确。检查M ca中的T ca以证实消息是刚发送的。S可检查M ca中的R ca以确保不是重放的旧消息。

通过以上步骤,可以完成S和CA之间的身份验证,之后,S、CD、CA可互信地开始交易。

(三)用户与S以CA为媒介进行交易,真正地开始使用软件。

1)初始化。多个用户协商以CD作为客户端代表,这样CA只需要注册CD的信息。

S先将自己的产品在CA注册,将软件的使用许可权交给CA。

CD选择随机数R,决定终端用户的数量N的取值。假设此次需要的拷贝件数是n,n

建立哈希链:H0(R)……H i(R)……H N(R)。其中,H0(R)=R,H i(R)=H(H i-1(R)),1≤i≤N。H i(R)由CD秘密保存,且CD要时刻记录哈希值与用户的对应关系。

2)CD向CA发送申请,以CD的名义将H N(R)在CA注册,CA将H N(R)与CD关联并在数据库中秘密保存。CD将n发给CA。这样,只有CD和CA知道H N(R)、CD名字和n。每次由CD依次向每个用户发放H i(R)和H i-1(R),同时,CA端建立计数器t,将初值设为n,随时对已发放的许可证计数。

3)当a向CA发送请求M时,CD将H N(R)、H N-1(R)发给a,a产生唯一且不易改的特征H ida,用H N(R)为密钥生成C=E HN(R)(M,H N-1(R),H ida),再用H N(R)作为密钥计算(CD,a,C)的消息认证码得到MAC。然后将(CD,a,C,MAC)发送给CA。CA收到后,从数据库中取出H N(R),并用其作为密钥验证MAC是否正确;利用H N(R)作解密密钥,从C中解密出(M,H N-1(R),H ida),比较H N(R)与H(H N-1(R))是否相同。

如果MAC正确且H N(R)与H(H N-1(R))相同,则CA确认服务请求确实来源于CD的第一个用户a,保存H ida和该用户所对应的H N (R)、H N-1(R),处理服务请求M,并将服务请求处理结果发送给a。随后用H N-1(R)更新数据库中CD的H N(R),将计数器减1。否则拒绝处理M。

其他用户的处理同上。当计数器变为0时,CA端存放的将是H N-n (R),S将不再响应以CD的名义发来的软件请求。

4)CA向S发送CD要申请购买和使用的软件数n以及CA向CD 发放的n个证书的编号。S接收到n之后,随时比较用户的证书号是否与CA的一致。

5)假设客户端一共需要n份软件,CD需先向S支付相应的费用。如果客户端还要再申请几份的话,可向CA重发增加的拷贝数n’和CD名,CA就将计数器重置为n’。由于已预先多生成了一些H i(R),CD依次将H N-n(R)……H N-n-n’(R)发给新增用户,直至计数器变为0。

CA可以把处理结果做成许可证明证书向合法用户发放,同时将用户对软件的状态设为“正在使用”。

6)当用户对软件进行迁移时,需要先向CA申请注销,CA将用户的使用状态由“正在使用”改成“已注销”,同时向用户发放一个注销码。

U下一次申请时先向CA提交注销码。CA首先查询判断用户以前是否申请过软件,如验证通过,CA根据用户提交的H i(R)判断是哪一个用户,并对照用户此次提交的硬件特征与数据库中原先存储的是否一致,如果不一致,就怀疑要安装盗版,将不对用户发放许可证。

通过以上几步,我们可以看到,用户端CD和版权所有者S完全可以通过CA进行安全的通信和交易。

3结论

本文给出了一种有效的保护版权、防止盗版的方(下转第92页)

一种基于第三方认证的软件版权保护方案

刘蓬涛

(山东政法学院信息科学技术系,山东济南250014)

【摘要】本文给出了一种基于第三方认证的软件版权保护方案,针对同一机构中存在多个客户端的情况,有效地保护版权和防止盗版。【关键词】EULA;软件版权保护;密钥分发中

※基金项目:此文为山东省高等学校科技计划项目、山东政法学院教学改革资助项目研究成果,项目编号分别为J12LN66、2012JGB013。作者简介:刘蓬涛,女,讲师,主要研究方向为网络信息安全。

○本刊重稿○

69

相关文档
最新文档