著录项信息
专利名称 | 一种服务器端软件保护方法及系统 |
申请号 | CN200710062929.7 | 申请日期 | 2007-01-22 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2007-07-25 | 公开/公告号 | CN101005361 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/32 | IPC分类号 | H;0;4;L;9;/;3;2;;;G;0;6;F;2;1;/;2;2查看分类表>
|
申请人 | 北京飞天诚信科技有限公司 | 申请人地址 | 北京市海淀区学清路9号汇智大厦B座17层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 飞天诚信科技股份有限公司 | 当前权利人 | 飞天诚信科技股份有限公司 |
发明人 | 陆舟;于华章 |
代理机构 | 北京众合诚成知识产权代理有限公司 | 代理人 | 李光松 |
摘要
本发明公开了属于网络的软件版权保护范围的一种服务器端软件保护方法及系统。该方法是将服务器端与智能密钥装置相结合,服务器端与客户端以C/S或B/S结构进行网络通信,服务器端对客户端身份认证通过后,客户端程序运行,产生会话密钥,客户端向服务器端发送用会话密钥加密的服务请求,及公钥加密的会话密钥,服务器端接收到加密后的服务请求,服务器端运行与客户端相应的服务,并将运行后的结果用会话密钥加密后返回给客户端。本发明采用在服务器端绑定智能密钥装置而智能密钥装置是能够防止篡改和盗取内部信息的安全载体,智能密钥装置能实现只在设备内部使用私钥,私钥不能被复制和攻击,以增强服务器端软件的安全性。
1.一种服务器端软件保护方法,采用服务器端与智能密钥装置相结合的方式,客户端访问服务器端,服务器端检查是否有智能密钥装置连接,在确认有智能密钥装置连接时,智能密钥装置参与客户端与服务器端之间的网络通信,其特征在于,其运行步骤为:
步骤1.所述服务器端认证所述客户端;
步骤2.客户端程序随机生成会话密钥,用会话密钥加密数据请求,用公钥加密会话密钥,并发送到服务器端;
步骤3.服务器端将加密后的会话密钥发送智能密钥装置;
步骤4.智能密钥装置用私钥解密得到会话密钥,发送服务器端;
步骤5.服务器端用会话密钥解密数据请求,直接处理客户端的数据请求或者通过智能密钥装置中的相关算法处理客户端的数据请求后,得到函数、数据、代码或者运行结果,经会话密钥在服务器端加密后,发送到客户端;
步骤6.客户端用会话密钥解密后,继续运行;
步骤7.客户端再次运行至需要服务器端提供函数、数据、代码或者运行结果的位置时,重复步骤2-6。
2.根据权利要求1所述的一种服务器端软件保护方法,其特征在于,所述相关算法是与服务器端软件相关的特定结构和处理流程。
3.根据权利要求1所述的一种服务器端软件保护方法,其特征在于,所述服务器端用会话密钥解密数据请求的过程成功完成,则认证服务器端是合法服务器端。
4.根据权利要求1所述的一种服务器端软件保护方法,其特征在于,所述服务器端用会话密钥解密数据请求的过程失败,则认证服务器端是非法服务器端。
5.根据权利要求1所述的一种服务器端软件保护方法,其特征在于,所述会话密钥加密数据请求所采用的加密算法包括:数据加密标准DES、对数据进行三次加密的数据加密标准3DES、密钥长度可变的流加密算法簇RC4、高级加密标准AES或微型加密算法TEA。
6.一种服务器端软件保护的系统,其特征在于,所述系统包括控制模块、认证模块、密钥协商模块、通讯加密模块和智能密钥装置检查模块;
1)控制模块,用于控制、协调各模块正常工作;
2)认证模块,用于实现客户端对服务器端的认证;
3)密钥协商模块,用于产生服务器端向客户端提供服务时用于加密的会话密钥,并在密钥协商的过程中认证服务器端;
4)通讯加密模块,用于完成服务器端与客户端、服务器端与智能密钥装置之间的通讯及其加解密过程;具体是,用于将服务器端收到的加密后的会话密钥发送到智能密钥装置,并在智能密钥装置使用私钥解密所述加密后的会话密钥后,将会话密钥发送回服务器端;还用于使用会话密钥解密服务器端收到的加密的数据请求,并在服务器端直接处理客户端的数据请求或者通过智能密钥装置中的相关算法处理客户端的数据请求得到函数、数据、代码或运行结果后,使用会话密钥加密函数、数据、代码或运行结果,并发送到客户端;
5)智能密钥装置检查模块,用于检查是否有智能密钥装置连接于服务器端。
技术领域\n本发明属于网络的软件版权保护范围,具体说是一种通过在服务器端安装智能密钥装置而进行软件版权保护的一种服务器端软件保护方法及系统。\n背景技术\n在现有技术中,基于网络的软件系统,其系统结构主要包括C/S结构,B/S结构两种类型。\nC/S(Client/Server)结构,即客户端/服务器端结构;B/S(Browser/Server)结构,即浏览器端/服务器端结构。其中B/S结构是在C/S结构基础上发展而来的,浏览器端实质上也是一种客户端程序,它将HTML脚本转换成可视的界面。通过这两种结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端或浏览器端和服务器端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是C/S或B/S形式的两层结构。然而,在上述两种结构的软件系统中,一直没有很好的方法解决\n服务器端软件被盗的问题,一旦服务器端软件被拷贝,不但给客户端程序的安全性造成威胁也给服务器端应用及数据的安全性带来了巨大的挑战。\n智能密钥装置是一种通过标准的个人计算机接口(如USB接口等),提供信息加密处理的便携式设备。它内置单片机或智能卡芯片,可以存储密钥或数字证书,利用智能密钥装置内置的密码算法实现对信息的加密或身份识别处理等功能。智能密钥装置具有PKI应用、数字签名、信息加密、安全网络登录和访问SSL安全网络等功能,并且具有保证用户的私钥永远不离开硬件的特征,其还具有物理上防止非法获取其内部敏感信息等特性。\n非对称密钥体制是目前应用最广泛的一种身份验证体制,在这一体制中,加密密钥与解密密钥各不相同。公钥体制的数字签名既保证了信息的机密性,又保证了信息具有不可抵赖性,其原理是:首先将明文用被验证方私钥签名,得到数字签名,然后将数字签名发向验证方,验证方用被验证方的公钥进行解密,最后与原文进行比较,进行验证。\nHMAC-Hash是常用的冲击响应认证方式。HMAC-Hash是对Hash算法的加强,Hash算法是一种无需密钥参与的单向加密算法,可以将任意长度的数据进行加密,输出成固定长度的密文。HMAC(keyed-Hashing Message Authentication Code)将密钥结合Hash运算,并且每次运算都有随机数据参与,以保证每次认证过程产生的结果数据不同,这样即使有恶意分子截获了某一次认证数据,也无法通过下一次的认证。同时,密钥并没有在网络中传递,从根本上避免了密钥的泄漏,提供一种更安全的身份验证方式。\n发明内容\n本发明的目的是提供一种服务器端软件保护方法及系统,该方法是服务器端与智能密钥装置相结合,智能密钥装置参与客户端与服务器端之间的网络通信,且以C/S或B/S结构进行网络通信;其运行步骤为:\n步骤1.客户端访问服务器端;\n步骤2.所述服务器端检查是否有智能密钥装置连接;\n步骤3.所述服务器端认证所述客户端;\n步骤4.所述服务器端利用所述智能密钥装置与所述客户端进行密钥协商;\n步骤5.所述服务器端利用所述智能密钥装置向所述客户端提供服务;\n步骤6.所述客户端利用所述服务器端的服务继续运行。\n所述智能密钥装置含有密钥或相关算法。\n所述相关算法是与服务器端软件相关的特定结构和处理流程。\n所述密钥只在智能密钥装置内部使用。\n所述智能密钥装置含有的密钥是指私钥,且所述客户端含有与所述私钥对应的公钥。\n所述密钥协商过程产生的密钥,对所述服务器端和所述客户端之间的通讯进行加密。\n所述密钥协商的过程产生的密钥是由所述客户端产生的,或者是由所述服务器端产生的,或者是由二者通过密钥协商算法共同产生。\n所述密钥协商的过程成功完成,则认证服务器端是合法服务器端。\n所述密钥协商的过程失败,则认证服务器端是非法服务器端。\n所述密钥协商过程所采用的加密算法包括:DES、3DES、RC4、AES、RSA、ECC或TEA。\n所述服务器端向客户端提供服务时,借助由智能密钥装置得到由客户端软件生成的会话密钥。\n所述客户端程序需要服务器端响应特定的服务时,客户端向服务器端请求服务,服务器端将相应服务的结果经智能密钥装置参与后返回客户端程序。\n所述客户端需要服务器端提供服务包括服务器端向客户端提供函数、数据、代码、运行结果等。\n本发明还提供了一种服务器端软件保护的系统,其特征在于,所述系统包括控制模块、认证模块、密钥协商模块、通讯加密模块和智能密钥装置检查模块。\n1)控制模块,用于控制、协调各模块正常工作;\n2)认证模块,用于实现客户端对服务器端的认证;\n3)密钥协商模块,用于产生服务器端向客户端提供服务时用于加密的会话密钥,并在密钥协商的过程中认证服务器端;\n4)通讯加密模块,用于完成服务器端与客户端、服务器端与智能密钥装置之间的通讯及其加解密过程;\n5)智能密钥装置检查模块,用于检查是否有智能密钥装置连接于服务器端。\n本发明的有益效果是与现有技术相比,其优点在于:\n1.本发明采用在服务器端绑定智能密钥装置而智能密钥装置是能够防止篡改和盗取内部信息的安全载体,智能密钥装置能实现只在设备内部使用私钥,这样私钥就不能被复制和攻击,增强了服务器端软件的安全性。\n2.本发明还可以采用会话密钥加密客户端的服务请求数据,而此时服务器必须使用与其对应的智能密钥装置得到会话密钥,从而保证了数据在传输过程中的安全性,进而确保服务器软件的安全性。\n3.本发明还在智能密钥装置内部写入相关算法,由于相关算法的唯一性及对外的不可知性,所以即使服务器端软件被盗,没有含有相关算法的智能密钥装置,服务器也无法与客户端通信,进一步保护了服务器端。\n附图说明\n图1为服务器端对客户端验证及客户端对服务器端验证的流程图。\n图2为客户端程序需要服务器端提供数据不用相关算法时的运行流程图。\n图3为客户端程序需要服务器端提供数据用到相关算法时的运行流程图。\n图4为服务器端软件保护的系统示意图。\n具体实施方式\n鉴于现有技术的不足,本发明提供一种基于网络的软件版权保护的一种服务器端软件保护方法及系统,该方法是将服务器端与智能密钥装置相结合,在服务器端与客户端以C/S或B/S结构进行网络通信的过程中,服务器端对客户端身份认证通过后,客户端随机生成会话密钥,客户端程序运行,当客户端运行到缺少函数、数据、代码等的位置时,客户端向服务器端发送服务请求,用会话密钥加密服务请求并用其内部的公钥P1加密会话密钥,发送至服务器端,服务器端将接收到的加密后的服务请求、会话密钥发送至智能密钥装置,智能密钥装置用其内部的私钥S1解密,然后智能密钥装置将加密的服务请求及会话密钥发送服务器端,服务器端运行与客户端相应的服务,并将运行后的结果用会话密钥加密后,返回给客户端。\n下面结合附图和具体实施方式进一步说明本发明,但不作为对本发明的限定。\n由于B/S结构中的浏览器实质上也是一种客户端程序,所以以下说明中的客户端程序泛指C/S结构中的客户端程序和B/S结构中的浏览器程序。\n实施例一\n如图1所示,在本实施例中,客户端程序中含有一个公钥P1服务器端智能密钥装置中含有与之对应的私钥S1,且服务器端采用冲击响应体制验证客户端。\n具体的验证步骤如下:\n步骤101:客户端访问服务器端;\n步骤102:服务器端检验智能密钥装置是否存在,存在执行步骤103,否则执行步骤104;\n步骤103:服务器端向客户端请求随机字符串;\n步骤104:服务器端提示没有找到智能密钥装置的错误;\n步骤105:客户端产生随机字符串并用HMAC-Hash算法处理后,用公钥P1加密发送服务器端;\n步骤106:服务器端将接收内容中的随机字符串加密结果发送智能密钥装置,并用私钥S1解密,得到随机字符串;\n步骤107:服务器端对随机字符串做HMAC-Hash算法处理;\n步骤108:服务器端比较其HMAC-Hash算法处理结果与客户端处理结果,一致执行109,不一致执行110;\n步骤109:客户端为合法用户,程序继续运行;\n步骤110:结果不一致退出;\n步骤111:客户端产生会话密钥用公钥P1加密后发送服务器端;\n步骤112:服务器端将收到的加密后会话密钥发送智能密钥装置;\n步骤113:智能密钥装置用私钥解密得到会话密钥,发送服务器端;\n步骤114:客户端程序继续运行至需要服务器端提供服务处,向服务器端发送服务请求;\n步骤115:客户端将用会话密钥加密的请求发送服务器端;\n步骤116:服务器端将收到的加密后请求,用其解密得到的会话密钥进行解密;\n步骤117:服务器端成功解密加密后请求,则服务器端是合法的,否则服务器端不是合法服务器端。\n实施例二\n如图2所示,在本实施例中,客户端程序中含有一个公钥P1服务器端智能密钥装置中含有与之对应的私钥S1,且服务器端,客户端数据库中预置HMAC-Hash算法。因为客户端缺少函数、数据、代码的情况类似,在本实施例中,客户端需要服务器端提供数据,且不必用到服务器端智能密钥装置中的相关算法。\n客户端、服务器端通信的具体步骤如下:\n步骤201:客户端程序随机生成会话密钥,用会话密钥加密数据请求,用公钥P1加密会话密钥,并向服务器端发送;\n步骤202:服务器端将加密后的会话密钥发送智能密钥装置;\n步骤203:智能密钥装置使用私钥S1解密得到会话密钥,发送服务器端;\n步骤204:服务器端用会话密钥解密数据请求,运行得到客户端需要的数据;\n步骤205:服务器端用会话密钥加密运行的数据结果并返回给客户端;\n步骤206:客户端程序接收服务器端发送的数据,并用会话密钥解密;\n步骤207:客户端程序利用返回的数据继续运行;\n步骤208:客户端程序再次运行至需要服务器端提供服务的位置时重复步骤201~206;\n步骤209:结束。\n实施例三\n如图3所示,在本实施例中,客户端需要服务器端提供数据,服务器端是合法服务器端且需要用到服务器端智能密钥装置中的相关算法的参与。\n步骤301,客户端程序随机生成会话密钥,用会话密钥加密数据请求,用公钥P1加密会话密钥,并向服务器端发送;\n步骤302:服务器端将加密后的会话密钥发送智能密钥装置;\n步骤303:智能密钥装置使用私钥S1解密得到会话密钥,发送服务器端;\n步骤304:服务器端用会话密钥解密请求,处理请求内容;\n步骤305:运行至需要相关算法处,由服务器端转至智能密钥装置内借助相关算法继续运行;\n步骤306:智能密钥装置将运行结果发送服务器端,由服务器端继续运行;\n步骤307:服务器端将运行结果用会话密钥加密,发送客户端;\n步骤308:客户端程序再次运行至缺少代码的位置时重复步骤301~307;\n步骤309:结束。\n上述两种情况也可以不用会话密钥,会话密钥用于缩短服务传送的时间。\n上述两种情况同样适用于客户端需要服务器端提供部分代码等其他服务。\n实施例四\n参见图4,本发明还提供了一种服务器端软件保护的系统,其特征在于,所述系统包括控制模块201、认证模块202、密钥协商模块203、通讯加密模块204和智能密钥装置检查模块205。\n1)控制模块201用于控制、协调各模块正常工作;\n2)认证模块202用于实现客户端对服务器端的认证;\n3)密钥协商模块203用于产生服务器端向客户端提供服务时用于加密的会话密钥,并在密钥协商的过程中认证服务器端;\n4)通讯加密模块204用于完成服务器端与客户端、服务器端与智能密钥装置之间的通讯及其加解密过程;\n5)智能密钥装置检查模块205用于检查是否有智能密钥装置连接于服务器端。\n在本实施例中,软件保护装置中的算法模块有软件开发商根据软件特点自行加入的,是与软件相关的特定结构和处理流程。\n以上所述实施方式仅为本发明的优选实施例,本发明不限于上述实施例,对于本领域一般技术人员而言,在不背离本发明原理的前提下对它所做的任何显而易见的改动,都属于本发明的构思和所附权利要求的保护范围。
法律信息
- 2012-01-18
专利权人的姓名或者名称、地址的变更
专利权人由北京飞天诚信科技有限公司变更为飞天诚信科技股份有限公司
地址由100083 北京市海淀区学院路40号研7楼5层变更为100085 北京市海淀区学清路9号汇智大厦B座17层
- 2010-11-03
- 2007-09-19
- 2007-07-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-08-16
|
2006-03-17
| | |
2
| |
2005-12-14
|
2005-06-09
| | |
3
| |
2006-12-13
|
2006-07-19
| | |
4
| | 暂无 |
1997-05-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |