发明内容
在考虑背景技术存在上述问题的基础上,设计了本发明。本发明的目的在于解决从服务器下载到客户端网页的防篡改保护问题。本方法通过在服务端安装服务端数字签名组件,对从服务端发送到客户端的网页代码进行全页面签名,当网页代码下载到客户端后,客户端对网页代码进行全页面验签来保证网页数据不被篡改。
为实现上述目的,本发明提供一种基于数字签名的静态网页防篡改系统,其包括服务端及客户端,其中,所述服务端包括服务器及服务端签名组件,所述客户端包括浏览器及客户端验证组件,服务端签名组件实现服务端发出网页代码的全页面签名,并将签名获得的签名码连同网页代码一起传送到客户端浏览器,当网页代码下载到客户端后,客户端验证组件激活并提取网页明文以及服务端的签名码进行验证,验证通过时不提示报警,客户端继续操作,如验证不通过,客户端验证组件报警,提示网页已被修改。
优选的,所述服务端签名组件采用数字签名算法实现服务端发出网页代码的全页面签名,其中,所述数字签名算法选择标准的基于RSA签名算法或者选择使用ECC签名算法。
优选的,私钥同服务端签名组件一起部署在服务端,公钥或数字证书同客户端验证组件一起部署在客户端。
另外,本发明提供一种基于数字签名的静态网页防篡改方法,所述方法包括以下步骤,客户端发送访问请求;服务端基于所述客户端发送的访问请求生成网页代码;服务端调用服务端组件签名并生成相应的签名码;返回所生成的签名码至服务端;服务端向客户端返回带签名码的网页代码;客户端调用客户端组件验证上述签名码;客户端组件向客户端的浏览器返回验证结果;所述浏览器根据上述验证结果处理网页显示。
优选的,为服务端申请数字签名用证书,所述数字签名用证书对应私钥为文件格式,并使用口令进行加密保护;为服务器配置服务端签名组件,并将私钥和所述数字签名用证书配置到服务端签名组件的可访问目录,供服务端签名组件使用;服务端签章组件随服务器自动加载,并验证所述数字签名用证书与私钥的正确性。
优选的,在步骤服务端基于所述客户端发送的访问请求生成网页代码中,服务器处理客户端请求,并在网页代码发出之前对全页面进行签名,签名后的签名码通过内嵌脚本模式插入到网页。
优选的,在步骤客户端调用客户端组件验证上述签名码中,开启客户端组件功能并使用验证功能来验证网页代码的签名码,若能通过验证表示网页可用,没有被篡改,若不通过表示页面被改动,并提示验证失败。
优选的,客户端用户根据验证失败提示确认是否进行操作,并向Web服务管理者确认变化,查找页面改动原因。
优选的,客户端组件根据浏览器不同配置插件,客户端组件和服务证书一起安装到客户端的浏览器下。
优选的,客户端使用的验证算法为Windows的CryptoAPI标准算法,并与服务端算法兼容。
根据本发明的基于数字签名的静态网页防篡改系统及方法可以解决目前网页在客户端得不到有效问题和可能被非法篡改问题,并且还可以配合客户端数字签名组件解决从服务端到客户端得传输和从客户端到服务端传输的保护功能。即是服务端签名可以解决服务端到客户端的传输保护和客户端网页全页面保护,而客户端签名可以解决客户端到服务端的传输保护。
与现有技术相比,本发明具有以下优点:
1、本发明通过在服务端增加网页签名功能,客户端增加对网页的验证功能,比较有效解决目前技术方法中没用实现的客户端网页保护机制。
2、本发明通过为服务端和客户端增加功能组件实现网页保护,对具体应用和用户来说是“透明的”,对系统改造比较小,而保护的效果明显,是目前安全机制的有效补充方法。
3、本发明使用比较小的代价实现了服务端到客户端网页的防篡改保护和客户端内网页的防篡改保护。
4、本发明可以与现有的Web应用系统技术进行结合,是一种通用的Web应用系统保护方法。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
图1是根据本发明的静态网页防篡改系统示意图。图2是根据本发明的静态网页防篡改方法操作处理过程图
如图1所示,根据本发明的静态网页防篡改系统包括服务端及客户端,所述服务端包括服务器及服务端签名组件,所述客户端包括浏览器及客户端验证组件,服务端签名组件以透明方式实现服务端发出网页代码的全页面签名,并将签名获得的签名码同网页代码一起传送到客户端浏览器。数字签名算法可选择标准的基于RSA签名或者是使用ECC签名算法,这与公私钥或数字证书的选择有关。公私钥可使用第三方CA的PKI证书,也可使用自定义RSA公私钥对或者是ECC的公私钥对方法,使用第三方CA的方法需要进行证书申请,可根据应用情况进行选择。当网页代码下载到客户端后,客户端验证组件激活并提取网页明文和服务端的签名码,验证通过时不提示报警,客户端可继续操作,如验证不通过,客户端验证组件报警,提示网页已被修改。
其中,私钥同服务端签名组件一起部署在服务端,公钥或数字证书部署在客户端。
根据本发明的静态网页防篡改方法具体操作过程如图2所示。大概而言,本发明包括以下步骤:
1、客户端发送访问请求;
2、服务端基于所述客户端发送的访问请求生成HTML网页代码;
3、服务端调用服务端组件签名并生成相应的签名码;
4、返回所生成的签名码至服务端;
5、服务端向客户端传送带签名码的HTML网页代码;
6、客户端调用客户端组件验证上述签名码;
7、客户端组件向客户端的浏览器返回验证结果;
8、所述浏览器根据上述验证结果处理网页显示。
具体的,根据本发明的静态网页防篡改方法的整个方法操作步骤如下:
为服务端申请数字签名用证书,可使用第三方的证书,也可使用自定义的证书,申请的证书对应私钥为文件格式,并建议使用口令进行加密保护;
为Web服务器配置服务端签名组件,并将私钥和证书配置到服务端签名组件的可访问目录,供服务端签名组件使用;
服务端签章组件随Web服务器自动加载,并可验证证书与私钥正确性;
Web服务处理客户端请求,并在网页代码在发出之前对全页面进行签名,签名后的签名码通过内嵌脚本模式插入到网页,并下载到客户端浏览器;
客户端组件根据浏览器不同配置插件,客户端组件和服务证书(公钥)一起安装到客户端的浏览器下;
客户端处理下载的网页时,开启客户端组件功能并使用验证功能来验证网页代码的签名,若能通过表示网页代码可用,没有被篡改,若不通过表示网页代码被改动,并提示验证失败;
客户端用户根据验证失败提示确认是否进行操作,并向Web服务管理者确认变化,查找页面改动原因,如是受木马或病毒破坏,则终止操作,及时清除客户端木马和病毒;
通过如上步骤可实现客户端内静态网页的防篡改保护,同时也保护服务端到客户端网页传输过程的防篡改保护。
本方法通过在服务端安装服务端数字签名组件,对从服务端发送到客户端的网页代码进行全页面签名,当网页代码下载到客户端后,客户端对网页代码进行全页面验签来保证网页数据不被篡改。此种方法可以解决目前网页在客户端得不到有效问题和可能被非法篡改问题,并且还可以配合客户端数字签名组件解决从服务端到客户端得传输和从客户端到服务端传输的保护功能。即是服务端签名可以解决服务端到客户端的传输保护和客户端网页全页面保护,而客户端签名可以解决客户端到服务端的传输保护。
实施例2
为了更详细说明根据本发明的静态网页防篡改方法,以下结合服务器及客户浏览器所处运行环境对本发明进行描述。
现以目前比较普遍使用Java技术的Web服务器系统来实现本发明的网页防篡改保护方法的实施方式。
Web服务器使用JavaEE标准服务器,客户端使用IE6以上浏览器。
使用Java实现Web应用系统的标准有JSP和Servlet,都属于动态页面生成技术,使用JSP和Servlet生成最终的网页代码后在下载到浏览器进行显示,对于Java应用服务器的服务端签章组件使用Java实现,并以jar包形式配置在服务端应用目录下。
Java支持标准的RSA证书应用,可使用第三方的PKI证书,也可使用自定义的RSA公私钥进行配置。签名函数使用Java的标准API实现。私钥、证书和服务端组件配置在一起。
服务端组件在服务启动加载,并进行证书和私钥正确性验证。
由于JSP和Servlet都是动态页面技术,在动态代码执行后,生成全部网页代码(HTML)后和向客户端发送之前,调用配置在服务端的服务端签章组件对网页代码进行全文签名,之后将签章码以动态脚本代码方式插入到网页代码,再将HTML网页代码下载到客户端浏览器。
客户端浏览器使用IE浏览器,则客户端验证组件开发为ActiveX控件,并以BHO方式安装到浏览器下,验证用服务端证书(或公钥)与客户端ActiveX控件一起安装。
客户端的验证算法可使用Windows的CryptoAPI标准算法,并与服务端算法兼容。
服务端发出的HTML网页代码下载IE浏览器后,以BHO模式工作的控件激活,并提取下载到客户端的网页代码,提取签章码并调用验证函数验证服务端签名,验证通过则网页未被修改,否则提示网页已被修改提示,提醒用户注意。
通过这种方式就可实现Java类Web应用系统的静态页面保护,可以比较有效的保护网页信息安全。
在客户端验证组件的实现要解决好网页数据的提取处理方法,以免造成网页数据不一致的现象。
当发现网页被修改后,需要使用专用的客户端安全工具辅助完成清除木马或者是病毒工作,这部分不是保护方法实现内容,需要使用第三方工具来完成。
根据本发明的基于数字签名的静态网页防篡改方法可以解决目前网页在客户端得不到有效问题和可能被非法篡改问题,并且还可以配合客户端数字签名组件解决从服务端到客户端得传输和从客户端到服务端传输的保护功能。即是服务端签名可以解决服务端到客户端的传输保护和客户端网页全页面保护,而客户端签名可以解决客户端到服务端的传输保护。
与现有技术相比,本发明具有以下优点:
1、本发明通过在服务端增加网页签名功能,客户端增加对网页的验证功能,比较有效解决目前技术方法中没用实现的客户端网页保护机制。
2、本发明通过为服务端和客户端增加功能组件实现网页保护,对具体应用和用户来说是“透明的”,对系统改造比较小,而保护的效果明显,是目前安全机制的有效补充方法。
3、本发明使用比较小的代价实现了服务端到客户端网页的防篡改保护和客户端内网页的防篡改保护。
4、本发明可以与现有的Web应用系统技术进行结合,是一种通用的Web应用系统保护方法。
尽管已示出和描述了本发明的优选实施例,可以设想,本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改。