一种基于数据链路加密传输的网络认证方法和系统
技术领域
本发明属于信息技术领域,具体涉及一种基于数据链路加密传输的网络认证方法和系统。
背景技术
随着计算机软硬件的发展,为了更好的保护计算机软硬件产品的知识产权,生产厂商往往采用各种加密认证技术,以确保产品被合法使用,避免盗版盗链,有效的保护开发者的正当权益。当前流行的软硬件保护方法有以下几种:
序列号保护:当用户想获取某个软件使用权时,需要到相关的软件公司注册相关信息,按照一系列的注册步骤在软件中输入相应的信息,比如使用人、版本、邮箱等相关信息,其注册信息的合法性由软件验证通过后,软件会给用户返回一个序列号。
注册文件保护:是一种利用文件来注册软件的保护方式。注册文件一般不大,可以是纯文本文件,也可以是纯二进制文件,文件内容是一些加密过或未加密过的数据。原始数据有可能为用户注册一些信息,用户名、软件版本、用户联系方式等。注册文件的注册获取机制和序列号方式机制相似。
软件狗保护:是一种硬件的加密工具,它是一种硬件电路,需要接入计算机上的串口或者并口,当程序运行时,软件从硬件电路接口读取其中的数据。如果软件狗返回正确的数据的话,软件可以正常使用,否则软件将会停止工作,并且向用户显示出错的提示。
目前,虽然序列号和注册文件机制被广泛使用,但是其存在的问题也非常突出:
1、序列号或注册文件在存储和使用上本身是不安全的,认证信息存放在相关软件相同的存储介质上,容易被黑客窃取。序列号和注册文件均为本地认证方法,通过内存映像等数据分析手段,容易被破解和拷贝。
2、软件狗在出厂后算法等都已固定,存在被盗用和丢失等情况,加密数据容易被本地拦截、内存镜像破解等。
发明内容
本发明针对上述问题,提出了一种基于数据链路加密传输的网络认证方法和系统,可以有效防止链路被监听,防止认证文件泄漏传播使用。如果认证文件被泄漏使用,通过合法用户的及时反馈(认证文件被泄漏使用后,合法用户将不能使用该认证文件启动系统),服务器能及时发现违法设备终端的设备网络信息。
为实现上述目的,本发明采用如下技术方案:
一种基于数据链路加密传输的网络认证方法,包括网络身份认证和网络身份更新过程,其步骤包括:
1)在设备端和服务器端均存储该设备端的身份识别信息,设备端和服务器端的通信链路采用非对称加密算法加密传输,设备端通过公钥加密传输,服务器端通过私钥加密传输;
2)启动设备端,根据其中存储的身份识别信息组建身份认证数据包,并向服务器端发送网络身份认证指令;
3)服务器端收到网络身份认证指令后,查询本地存储的设备端的身份识别信息以进行认证,并将认证结果发送至设备端;
4)设备端收到认证结果后,如果认证失败则退出,如果认证成功则向服务器端发送网络身份更新指令;
5)服务器端收到网络身份更新指令后,生成新的密钥对和新的身份识别信息,并将新的密钥对中的公钥和新的身份识别信息送到设备端;
6)设备端接收到新的身份识别信息和公钥后,向服务器端发送同步更新指令,同时更新本地的身份识别信息和公钥;
7)服务器端收到同步更新指令后,更新本地的私钥,并回应同步更新指令;
8)设备端使用新传输密钥发送更新结束指令,服务器端使用新传输密钥回应更新结束指令。
进一步地,所述身份识别信息为设备端的系统信息,包括CPU序列号、硬盘序列号等设备硬件信息和软件信息以及设备识别码。
进一步地,在网络身份认证过程中记录连接信息,通过这些连接信息对设备端进行跟踪定位。
进一步地,通过日志记录网络身份更新过程,如果网络更新过程不完整,则将传输密钥和身份信息回滚到原始信息。
进一步地,上述方法还包括网络实时认证过程:在设备运行过程中,通过加密随机数进行网络实时认证,即进行不定时的在线认证。不定时认证的加密算法采用对称加密算法(比如DES、3DES、RC4、RC5等,设备端和服务器端可形成算法库,加密算法可随时更换)。所述网络实时认证的步骤包括:
a)在设备端和服务器端存储多组密钥和多组随机数;
b)设备端向服务器端发送实时认证指令;
c)服务器端收到实时认证指令后,随机生成两个随机数序号N0、N1,同时从本地密钥中取出第N0组密钥,对本地随机数中的第N1组随机数进行加密得到数据串S0,将N0、N1、S0组成数据发送到设备端;
d)设备端收到数据后,解析出N0、N1、S0,然后从本地密钥中取出第N0组密钥,对本地随机数中第N1组的随机数进行加密得到S1;然后比对S0和S1数字串,如果比对成功,则实时认证成功,如果比对失败,则认证失败,程序退出。如果算法密钥和明文相同,而加密后产生的密文不同,这种的情况下,设备端收到数据后,从本地密钥库中取出第N0组密钥,而后从密文S0中还原出随机数RAND0,而后从本地随机数中取出第N1组随机数RAND1,比对RAND0和RAND1,如果比对成功则实时认证成功,如果比对失败则认证失败。
一种采用上述方法的基于数据链路加密传输的网络认证系统,包括设备端和服务器端,在设备端和服务器端均存储设备端的身份识别信息,设备端和服务器端的通信链路采用非对称加密算法加密传输,设备端通过公钥加密传输传输,服务器端通过私钥加密传输。
进一步地,在设备端和服务器端还存储多组密钥和多组随机数,用于在设备运行过程中通过加密随机数进行网络实时认证。
本发明的关键点包括:1.网络链接数据传输采用非对称算法进行加密后传输,防止网络监听和注入,网络身份信息为特定的设备硬件(特定设备硬件序列号等)和软件信息(软件序列号),具备唯一性。2.网络身份更新,网路认证启动过程中会进行网络密钥和身份信息的更新,这样就限定了网络传输密钥和身份信息的时效周期,时效周期是设备软件的相邻两次启动过程的网络身份更新的时间间隔。并且,认证过程中记录了网络连接信息,通过这些连接信息可跟踪定位设备使用端。3.网络实时认证,通过对称加密算法进行随机认证,增加数据被监听破解的难度,同时网络不定时的实时认证,可以有效防止设备在身份认证成功后被转移到其他地方运行。
采用本发明的网络认证方法,设备启动时,需要对设备终端进行网络身份认证,并且进行网络身份和密钥更新,缩短了网络身份信息和密钥的时效周期。设备每次启动连接过程在服务器都有相关记录,所以,即便设备身份信息泄露被不法使用,也能有效跟踪定位链接信息。网络身份一旦被泄露使用,合法的设备终端将不能登录认证服务器,通过用户及时反馈更新网络传输密钥和身份识别信息,已经泄露的身份信息将不能使用,这极大提高了黑客的破解成本。设备运行过程中,进行不定时的加密随机数认证,可以有效防止链路监听、增强破解难度,防止设备转移盗用。
附图说明
图1是实施例中网络身份认证的流程图。
图2是实施例中网络身份更新的流程图。
图3是实施例中网络实时认证的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明采取的网络认证方案由设备端(或称设备终端、客户端)和服务器端(或称认证服务器)共同构成。设备端和服务器端的通信链路采用非对称加密算法加密传输,设备端通过public-key加密传输,服务器端通过private-key加密传输。设备端和服务器端应该具备如下面表1所示的文件:
表1.设备端和服务器端的文件
设备端 |
public-key、身份识别信息、100组密钥、100组随机数 |
服务器端 |
private-key、身份识别信息、100组密钥、100组随机数 |
相关名词解释如下所示:
身份识别信息:由设备端的系统信息(包括CPU序列号、硬盘序列号等硬件信息,软件信息,设备识别码等)组成,该文件存放在设备端和服务器端的本地加密存储区。
Public-key,Private-key:公钥、私钥,存放在本地加密存储区。
100组密钥:随机生成的100组16字节数据,存放在本地加密存储区(设备端和服务器端数据相同)。
100组随机数:随机生成100组8字节随机数,存放在本地加密存储区(设备端和服务器端数据相同)。
上述“100组”仅是举例说明,具体实施时也可以是其它数量,理论上随着组数目增多,破解难度将增加。
网络认证分为三步认证,第一步“网络身份认证”,其流程如图1所示;第二步“网络身份更新”,其流程如图2所示;第三步“网络实时认证”,其流程如图3所示。
1.网络身份认证
1)设备端启动,读取本地加密盘内的“身份识别信息”。从身份识别信息中取出本地软硬件环境信息进行认证,如果认证失败,则退出,如果认证成功,则组建身份认证数据包,数据包的内容包括认证请求指令、身份识别信息、相关数据长度和校验码。组建成功后发送到服务器端。
服务器端收到设备端认证信息后,查询本地存储的设备端身份识别信息,如果查询失败(即服务器端本地没有存储设备端身份识别信息),则发送认证失败信息;如果查询成功,发送身份认证成功。记录本地连接信息。
2)设备端收到服务器端发来的认证消息,如果认证失败,则退出;如果认证成功,则启动网络身份更新。
以上过程中,由外力或者其他原因导致的网络连接失败,均会导致认证失败,从而有利于增强认证过程和数据链路的安全性。
2.网络身份更新
1)设备端发送网络身份更新指令。
2)服务器端收到设备请求后,生成新的密钥对public-key、private-key和新的身份识别信息,服务器将public-key和新“身份识别信息”发送到设备端。
3)设备端接收到新身份识别信息和public-key后,向服务器端发送同步更新指令,同时,更新本地的身份识别信息和public-key。
4)服务器端收到同步更新指令后,更新本地private-key,回应同步更新指令。
5)设备端收到信息后,使用新传输密钥(即更新后的公钥)发送更新结束指令。
6)服务器端使用新传输密钥(即更新后的私钥)回应更新结束。
以上过程中,均有日志记录,如果网络更新过程不完整,则传输密钥和身份信息回滚到原始信息。
3.网络实时认证
网络实时认证,是不定时的在线认证。
1)设备端发送实时认证指令。
2)服务器端收到指令后,随机生成两个100以内的随机数序号N0、N1,同时采用3DES(或称为Triple DES,DES即Data Encryption Standard)算法,从本地100组密钥中取出第N0组密钥,对本地100组随机数中的第N1组随机数进行加密得到密文数据串S0。将N0、N1、S0组成数据发送到设备端。
3)设备端收到数据后,解析出N0、N1、S0。采用3DES算法,从本地100组密钥中取出第N0组密钥,对本地100组随机数中第N1组的随机数进行加密得到密文S1。比对S0和S1数字串,如果比对成功,则实时认证成功,如果比对失败,则认证失败,程序退出。
以上过程中,由外力或者其他原因导致的网络连接失败,均导致认证失败,从而有利于增强认证过程和数据链路的安全性。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。