提高网络应用安全性的方法和系统的制作方法

文档序号:7700736阅读:97来源:国知局
专利名称:提高网络应用安全性的方法和系统的制作方法
技术领域
本发明涉及信息安全领域,特别涉及一种提高网络应用安全性的方法和系统。
背景技术
随着网络蓬勃的发展,人们越来越依赖网络进行各种活动,网上银行、网上购物等都已 经深入人们的生活当中,但是黑客攻击窃取用户密码进行非法交易等事件也发生得越来越多, 造成了许多的损失,人们在享受网络的方便快捷的同时也越来越担忧网络安全问题,这时, 身份识别技术就显得尤为重要了。目前,身份识别技术得到了广泛的发展并已经应用在各个 领域,主要是网上银行、政府网站、BS(Browser/Server,浏览器/服务器)架构的ERP(Enterprise Resource Planning,企业资源管理)系统以及对保密性要求比较高的各个领域。
目前,已经出现了多种针对网络安全的保护方法,数字签名就是其中一种,在客户端中 下载并安装数字证书,也有安全性更高的使用USB Key (Universal Serial BUS Key,通用串 行总线接口硬件设备)等智能密钥设备对网络传输的数据进行签名等操作,但是USBKey内 签名的数据仍然是由客户端主机发送过去的,仍然存在安全风险。
而且,现有的安全手段大多操作过于繁琐,为了完成签名的操作需要安装各种插件、与 智能密钥设备相应的软件程序,并且现有的程序插件大多是针对IE内核进行开发,对一些如 Firefox等浏览器并不支持,导致部分用户不能正常的进行网上安全的通讯。
综上所述,现有网络安全手段存在的缺点就是操作繁琐,兼容性、易用性差,安全程度 不够高。

发明内容
基于现有技术的不足,本发明提供了一种提高网络应用安全性的方法和系统。所述技术
方案如下
一种提高网络应用安全性的方法,所述方法包括
客户端主机内的代理服务器接收客户端软件根据用户输入的信息生成并发来的协议报 文,根据约定的协议解析所述协议报文,得到协议内容;所述代理服务器判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服 务器预先约定的关键信息;
如果所述协议内容中存在所述关键信息,则所述代理服务器将所述协议内容发送给所述 智能密钥设备,所述智能密钥设备解析所述协议内容得到所述关键信息,输出该关键信息供 用户确认;
如果接收到用户确认关键信息正确的信号,则所述智能密钥设备对所述协议内容进 行签名,返回签名结果给所述代理服务器,所述代理服务器根据所述签名结果和协议内容生 成新的协议报文,发送所述新的协议报文给所述应用服务器;
如果接收到用户确认关键信息不正确的信号或在预设的时间内没有接收到用户进行 确认的信号,则所述智能密钥设备进行异常处理;
如果所述协议内容中不存在所述关键信息,则所述代理服务器将所述协议报文发送给所 述应用服务器。
所述代理服务器判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服 务器预先约定的关键信息,具体包括
所述代理服 务器在所述协议内容中找到所述代理服务器、智能密钥设备和应用服务器指 定的字段,判断该字段中是否写有数据,如果是,则判断出所述协议内容中存在所述关键信 息;
或者,
所述代理服务器判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服 务器预先约定的关键信息标识符,如果存在,则判断出所述协议内容中存在所述关键信息。
所述协议报文和新的协议报文均包含有请求头域,所述请求头域中写有所述应用服务器 的地址。
所述代理服务器将所述协议内容发送给所述智能密钥设备,具体包括 所述代理服务器对所述协议报文的请求头域进行解析,判断所述请求头域中写入的应用 服务器地址是否与所述代理服务器存储的应用服务器地址一致; 如果一致,则将所述协议内容发送给所述智能密钥设备; 如果不一致,则所述代理服务器提示用户应用服务器错误,流程结束。 所述智能密钥设备解析所述协议内容得到所述关键信息,具体包括
所述智能密钥设备在所述协议内容中找到所述代理服务器、智能密钥设备和应用服务器 指定的字段,判断该字段中是否写有数据,如果是,则读出所述数据,得到所述关键信息;或者,
所述智能密钥设备判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用 服务器预先约定的关键信息标识符,如果存在,则根据所述关键信息标识符找到所述关键信 息。
所述输出该关键信息供用户确认,具体包括
所述智能密钥设备通过液晶显示器显示输出所述关键信息供用户确认,或者通过语音播 报的方式播放所述关键信息供用户确认。
所述智能密钥设备进行异常处理,具体包括
所述智能密钥设备通知所述代理服务器停止操作,向用户提示操作失败; 或者,
所述智能密钥设备向所述代理服务器返回一个错误的签名结果。 所述智能密钥设备对所述协议内容进行签名,具体包括-
所述智能密钥设备根据个人识别码或个人生物特征对用户的身份进行验证,所述个人生
物特征包括指纹、虹膜或静脉识别;
如果正确,则对所述协议内容进行签名; 如果不正确,则拒绝对所述协议内容进行签名,流程结束。 所述代理服务器根据所述签名结果和协议内容生成新的协议报文,具体包括 所述代理服务器将接收到的签名结果插入到所述协议内容中得到新的协议内容,为所述
新的协议内容添加请求头域,得到新的协议报文; 或者,
所述代理服务器使用接收到的签名结果对所述协议内容中的指定部分进行替换得到新的 协议内容,为所述新的协议内容添加请求头域,得到新的协议报文。
所述约定的协议包括超文本传输协议http和/或安全的超文本传输协议https。
一种提高网络应用安全性的系统,所述系统包括智能密钥设备和安装于客户端主机内 的代理服务器;
所述代理服务器包括
接口模块,用于接收客户端软件根据用户输入的信息生成并发来的协议报文,并与所述 智能密钥设备通讯,向所述智能密钥设备发送协议内容,接收所述智能密钥设备返回的签名 结果,还用于发送新的协议报文给应用服务器;
解析模块,用于对所述接口模块收到的协议报文进行解析,得到协议内容;判断模块,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智能密 钥设备和应用服务器预先约定的关键信息,如果存在所述关键信息,通过所述接口模块发送 协议内容给所述智能密钥设备,如果不存在所述关键信息,通过所述接口模块发送所述协议 报文给所述应用服务器;
报文生成模块,用于根据所述接口模块收到的签名结果和所述解析模块得到的协议内容, 生成新的协议报文,通过所述接口模块发送该新的协议报文给所述应用服务器;
所述智能密钥设备包括
接口模块,用于与所述代理服务器通讯,接收所述代理服务器发送的协议内容,向所述
代理服务器发送签名结果;
过滤模块,用于解析所述智能密钥设备的接口模块收到的协议内容,得到所述关键信息;
输出模块,用于输出所述过滤模块得到的关键信息供用户确认;
确认模块,用于接收用户输入的确认所述关键信息是否正确的信号;
签名模块,用于当所述确认模块收到的信号为用户确认关键信息正确时,对所述接口模
块收到的协议内容进行签名,并通过所述智能密钥设备的接口模块返回签名结果给所述代理
服务器;
异常处理模块,用于当所述确认模块收到的信号为用户确认关键信息不正确时,或者所 述确认模块在预设的时间内未收到用户进行确认的信号时,进行异常处理。 所述判断模块具体包括
第一判断单元,用于在所述解析模块得到的协议内容中找到所述代理服务器、智能密钥 设备和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则判断出所述协议内 容中存在所述关键信息,通过所述接口模块发送协议内容给所述智能密钥设备,否则,判断 出所述协议内容中不存在所述关键信息,通过所述接口模块发送所述协议报文给所述应用服 务器;
或者,
第二判断单元,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智 能密钥设备和应用服务器预先约定的关键信息标识符,如果存在,则判断出所述协议内容中 存在所述关键信息,通过所述接口模块发送协议内容给所述智能密钥设备,否则,判断出所 述协议内容中不存在所述关键信息,通过所述接口模块发送所述协议报文给所述应用服务器。
所述协议报文和新的协议报文均包含有请求头域,所述请求头域中写有所述应用服务器 的地址,所述判断模块具体包括-
11判断单元,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智能密 钥设备和应用服务器预先约定的关键信息;
第一处理单元,用于如果所述判断单元判断出所述协议内容中存在所述关键信息,对所 述代理服务器的接口模块收到的协议报文的请求头域进行解析,判断所述请求头域中写入的 应用服务器地址是否与所述代理服务器存储的应用服务器地址一致,如果一致,则通过所述 代理服务器的接口模块发送所述协议内容给所述智能密钥设备,如果不一致,则提示用户应 用服务器错误;
第二处理单元,用于如果所述判断单元判断出所述协议内容中不存在所述关键信息,通 过所述接口模块发送所述协议报文给所述应用服务器。 所述过滤模块具体包括
第一过滤单元,用于在所述智能密钥设备的接口模块收到的协议内容中找到所述代理服 务器、智能密钥设备和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则读 出所述数据,得到所述关键信息;
或者,
第二过滤单元,用于判断所述智能密钥设备的接口模块收到的协议内容中是否存在所述 代理服务器、智能密钥设备和应用服务器预先约定的关键信息标识符,如果存在,则根据所 述关键信息标识符找到所述关键信息。
所述输出模块为液晶显示器或音频装置。
所述异常处理模块具体包括
第一异常处理单元,用于当所述确认模块收到的信息为用户确认关键信息不正确时,或 者所述确认模块在预设的时间内未收到用户的确认信息时,通过所述智能密钥设备的接口模 块通知所述代理服务器停止操作,向用户提示操作失败;
或者,
第二异常处理单元,用于当所述确认模块收到的信息为用户确认关键信息不正确时,或 者所述确认模块在预设的时间内未收到用户的确认信息时,通过所述智能密钥设备的接口模 块向所述代理服务器返回一个错误的签名结果。
所述智能密钥设备的签名模块具体包括
签名单元,用于当所述确认模块收到的信号为用户确认关键信息正确时,根据个人识别 码或个人生物特征对用户的身份进行验证,如果正确,则对所述智能密钥设备的接口模块收 到的协议内容进行签名,并通过所述智能密钥设备的接口模块返回签名结果给所述代理服务器;如果不正确,则拒绝对所述协议内容进行签名,所述个人生物特征包括指纹、虹膜或静 脉识别。
所述代理服务器的报文生成模块具体包括
第一生成单元,用于将所述代理服务器的接口模块接收到的签名结果插入到所述协议内 容中得到新的协议内容,为所述新的协议内容添加请求头域,得到新的协议报文,通过所述 代理服务器的接口模块发送该新的协议报文给所述应用服务器;
或者,
第二生成单元,用于使用所述代理服务器的接口模块接收到的签名结果对所述协议内容 中的指定部分进行替换得到新的协议内容,为所述新的协议内容添加请求头域,得到新的协 议报文,通过所述代理服务器的接口模块发送该新的协议报文给所述应用服务器。
本发明实施例提供的技术方案通过客户端的代理服务器判断协议报文中是否存在关键信 息,如果存在,由智能密钥设备对协议内容进行签名后返回签名结果给代理服务器,代理服 务器根据签名结果生成新的协议报文发给应用服务器,在不改动原有客户端的前提下提高了 网络应用的安全性,可以适用于各种客户端软件,具有良好的兼容性、易用性。


图1是本发明实施例1提供的提高网络应用安全性的方法流程图; 图2是本发明实施例2提供的提高网络应用安全性的系统结构图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。
本发明实施例提供了一种提高网络应用安全性的方法,包括
客户端主机内的代理服务器接收客户端软件根据用户输入的信息生成并发来的协议报 文,根据约定的协议解析该协议报文,得到协议内容;代理服务器判断协议内容中是否存在 代理服务器、智能密钥设备和应用服务器预先约定的关键信息;如果存在,则代理服务器将 该协议内容发送给智能密钥设备,智能密钥设备收到后解析该协议内容得到上述关键信息, 输出该关键信息供用户确认;如果接收到用户确认该关键信息正确的信号,则智能密钥设备 对该协议内容进行签名,返回签名结果给代理服务器,代理服务器根据该签名结果和协议内 容生成新的协议报文,发送该新的协议报文给应用服务器;如果接收到用户确认该关键信息不正确的信号或在预设的时间内没有接收到用户进行确认的信号,则智能密钥设备进行异常 处理;如果所述协议内容中不存在该关键信息,则代理服务器将所述协议报文发送给应用服 务器。
本发明实施例中的代理服务器并非介于客户端和Web服务器之间的一台服务器,而是指 安装于客户端主机内的软件,负责客户端与Web服务器之间的信息传输。该代理服务器具有 自己的IP地址,该IP地址可以是通过该代理服务器软件安装时自动生成,也可以是用户设 定,该代理服务器具有报文的缓冲功能,可以存储报文并对报文进行解析和过滤。当客户端 使用浏览器连接Internet网站取得网络信息时,先向代理服务器发出请求,由代理服务器将该 请求转发给目的站点服务器,然后接收目的站点服务器返回的信息,并把该信息转发给客户 端的浏览器。即本发明实施例中,代理服务器在客户端利用软件实现。
本发明实施例中的应用服务器是指客户端请求服务的目的站点服务器,有多种类型,包 括但不限于电子商务系统服务器、网上银行系统服务器等等。-
实施例1
参见图l,本实施例提供了一种提高网络应用安全性的方法,具体包括
步骤101:用户在客户端登录应用服务器,在本实施例中,以登录网上银行为例进行说 明,用户输入登录相关信息;
在本步骤中,用户可以通过系统自带的IE或其他的浏览器等客户端软件程序访问网上银 行,访问前使用操作系统自带的代理服务器功能进行设置,设置代理服务器的IP地址,设置 完成后,在客户端主机通过正或其他的浏览器和客户端软件程序访问网络资源时都将通过代 理服务器进行访问,而不是直接到达所要发送的目的地。
其中,上述代理服务器软件可以存储在智能密钥设备中,本实施例以智能密钥设备为USB Key为例进行说明,在USBKey接入客户端主机时,自动运行该代理服务器软件并在客户端 主机中进行安装,不需用户进行操作。
例如,客户端主机的IP地址为192.168丄22,客户端主机内安装有代理服务器,且其地 址被设置为219.168.0.1,用户使用客户端主机登录网上银行系统,该网上银行系统的应用服 务器的IP地址为202.168.0.1。
步骤102:客户端软件接收到用户输入的信息后,根据该信息生成协议内容;
协议内容与当前采用的协议有关,本实施例中,客户端和应用服务器通信时采用的协议 可以为http协议(Hypertext Transfer Protocol,超文本传输协议)和/或https协议(Hypertext Transfer Protocol over Secure Socket Layer,安全的超文本传输协议),且客户端、智能密钥设
14备和应用服务器可以预先约定关键信息,作为用户确认的基础,如将网上银行交易的一些重 要信息作为关键信息给用户进行确认。
为了便于以后判断提取关键信息,还可以在协议内容中添加关键信息的标识符,对用户 输入的关键信息进行标识,该关键信息的标识符可以为智能密钥设备、应用服务器和代理服 务器预先约定。在本实施例中,以用户在网上银行进行转账为例,具体说明客户端生成的协 议内容,下面列出XML格式的协议内容 < xml version="1.0" encoding="gb2312" > <!—业务数据—!> <TradeInfo>
<AccountInfoname="To"><!—转入帐号—!>
〈AccountName〉张三〈/AccountNameX!—转入账户姓名--!> <AccountValue>4367420037465985234</AccountValue><!—转入帐号--!〉 <!--转入行信息—!> <BankInfo>
〈BankName〉北京分行々BankNamex!—转入分行--!>
</BankInfo> </AccountInfo> <AccountInfo name="From">
〈AccountName〉李四〈/AccountNamex!—转出账户姓名—!>
<AccountValue>4367420074923372387</AccountValue><!—转出帐号—!>
<!--转出行信息--!>
<BankInfo>
〈BankName〉上海分行〈/BankNamex!-转出分行--!> </BankInfo> </AccoimtIiifo> <TradeData>
<TradeMoney>134.22</TradeMoney> <!—转账金额-->
<TradeType> 1 </TradeType> <!—交易类型-陽>
<MoneyType>2</MoneyType> <!--货币类型--><TradeTime>200%206152645</TradeTime> <!—交易时间—> OtherData></OtherData> <!—其它数据-->
</TradeData> <SignatureData> </SignatureData> </TradeInfo>
其中,预先约定在转账操作中用户输入的三种信息转入账户姓名、转入账户和转账金 额,即张三、4367420037465985234和134.22为关键信息,并使用如下关键信息标识符 〈AccountName〉张三〈/AccountName〉 <!—转入账户姓名--!>
<AccountValue>4367420037465985234</AccountValue> <!—转入帐号陽-!> <TradeMoney>l 34.22</TradeMoney> <!—转账金额-->
其中,<AccountName>和</AccountName>标识转入账户姓名,<AccountValue>禾口 〈/AccountValue〉标识转入账号,<TradeMoney>和</TradeMoney>标识转账金额,代理服务器 和银行应用服务器可以通过上述关键信息标识符,判断出协议内容中是否存在关键信息,并 且可以确定出关键信息的位置。
上例中,因协议内容中没有签名值,〈SignatureDatax/SignatureDat^字段为空。 步骤103:客户端软件按照预先约定的协议,为该协议内容添加请求头域,得到协议报 文,并发送给代理服务器;
本实施例中,预先预定的协议可以为http协议和/或https协议,且不局限于这两种。每 种协议对应的请求头域都有多种,例如,http协议对应的请求头域包括但不限于OPTIONS、 GET、 HEAD、 POST、 PUT、 DELETE和TRACE等等。优选地,可以使用POST请求头域,
具体如下
POST /transfer.cgi HTTP/1 .l\r\n Host: 219.168.0.1\r\n Content-Length: 512\r\n\r\n POST=XML格式的协议内容实体
其中,上述请求头域表示使用httpl.l协议,/transfer.cgi为银行服务器端处理网上银行交 易的程序,219.168.0.1为所要访问的服务器地址,报文长度512,在该请求头域后面即上述 XML格式的协议内容实体。
步骤104:代理服务器收到该协议报文后,根据预先约定的协议解析该协议报文,去掉请求头域得到协议内容;
具体地,上述去掉请求头域的方法与步骤103相逆,如上例中根据http协议内容将上述 POST请求头域去掉,得到步骤102中所述的XML格式的协议内容实体。
步骤105:代理服务器对得到的协议内容进行解析,判断协议内容中是否存在代理服务 器、智能密钥设备和应用服务器预先约定的关键信息,如果不存在,则执行步骤106,如果 存在,则执行步骤107;
在本步骤中,代理服务器可以采用以下两种方式中的任一种来判断协议内容中是否存在
关键信息
1) 代理服务器在协议内容中找到代理服务器、智能密钥设备和应用服务器预先指定的字 段,判断该字段中是否写有数据,如果是,则判断出该协议内容中存在关键信息,否则,协 议内容中不存在关键信息;
其中,指定的字段由代理服务器、智能密钥设备和应用服务器预先协商而定。
2) 代理服务器判断协议内容中是否存在代理服务器、智能密钥设备和应用服务器预先预 定的关键信息标识符,如果存在,则判断出该协议内容中存在关键信息,否则,协议内容中 不存在关键信息;
例如,判断协议内容中是否存在关键信息标识符〈AccountName〉和々AccountName〉, 如果存在,则将〈AccountName〉和々AccountName〉之间的数据读出得到转入账号姓名关键信 息;判断协议内容中是否存在关键标识符〈AccountValue〉和々AccountValue、如果存在, 则将〈AccountValue〉和々AccountValue〉之间的数据读出得到转入账号关键信息;判断协议内 容中是否存在关键标识符<TmdeMoney:^I]</TradeMoney>,如果存在,则将〈TradeMoney〉 和々TradeMoney〉之间的数据读出得到转账金额关键信息。如果代理服务器、智能密钥设备和 应用服务器预先约定的上述三种关键信息标识符中有一个不为空(即中间写有数据),则认为 协议内容中存在关键信息,如果该三种关键信息标识符均为空(即都未写有数据),则认为协 议内容中不存在关键信息。
步骤106:代理服务器将收到的协议报文发送给应用服务器,在本实施例中发送给网上 银行的服务器,通过代理服务器客户端与应用服务器进行交互,流程结束;
步骤107:代理服务器将协议内容发送给USB Key, USB Key收到该协议内容后进行解 析,得到上述关键信息,并且输出该关键信息供用户进行确认;
为了进一步地提高安全性,防止钓鱼网站的攻击,本步骤中,代理服务器在发送协议内 容给USBKey之前,还可以对请求头域中的应用服务器的地址进行验证,具体如下
17代理服务器解析收到的协议报文得到请求头域,判断该请求头域中写入的应用服务器地 址是否与代理服务器已存储的应用服务器地址一致,如果一致,则代理服务器将协议内容发 送给USB Key;如果不一致,则代理服务器提示用户应用服务器错误,流程结束。在上述例 子中,可以提取出请求头域中的Host地址,与代理服务器已存储的网上银行的应用服务器的 地址进行比对。
其中,代理服务器中可以预先存储有多个应用服务器的地址,而且还可以采取加密存放 的方式,以保证安全。
在本步骤中,USBKey可以采用以下两种方式中的任一种来解析协议内容得到关键信息 1 )USB Key在协议内容中找到代理服务器、智能密钥设备和应用服务器预先指定的字段, 判断该字段中是否写有数据,如果是,则读出该数据,得到关键信息;
其中,指定的字段由代理服务器、智能密钥设备和应用服务器预先协商而定。 2) USB Key判断协议内容中是否存在代理服务器、智能密钥设备和应用服务器预先预定 的关键信息标识符,如果存在,则根据该关键信息标识符读出关键信息。
具体地,USBKey可以通过液晶显示器显示输出该关键信息供用户进行确认,或者USB Key也可以通过语音播报的方式播放该关键信息供用户进行确认。其中,USBKey可以将得 到的关键信息组成标准格式后再输出,例如USBKey得到转入账号4367420037465985234、 转入账号姓名张三和转账金额134.22后,在显示器上输出以下关键信息供用户进行确认 帐号4367420037465985234
户名张三
金额134.22
步骤108: USB Key接收用户输入的确认信息,判断是否用户确认该关键信息正确,如 果用户确认该关键信息正确,则执行步骤109,如果用户确认该关键信息不正确或在约定的 时间内USBKey没有接到用户的确认信息,则执行步骤112;
其中,所述约定的时间为USBKey为用户输入确认信息所预留的时间,在该时间段内输 入的确认信息有效,如果超过该时间用户再输入确认信息,则视为无效。
步骤109: USBKey对协议内容进行签名,并将签名结果发送给代理服务器;
具体地,USBKey对协议内容进行签名前,还可以先验证用户的身份,其中,验证用户 的身份的方式可以包括PIN码(personal identification number,个人识别码)或指纹、虹膜、 静脉特征等个人生物特征的方式,在本实施例中采取验证PIN码的方式,具体如下
USB Key用显示输出或语音播报的方式提示用户输入PIN码,用户利用USB Key自带的键盘键入PIN码,USBKey接收并验证该PIN码是否正确,如果正确,则对协议内容进行签
名,并将签名结果发送给代理服务器,如果错误,则提示用户再次输入prN码或停止操作。 另外,上述USB Key验证PIN码的过程还可以由以下过程替换
USB Key向客户端软件发送验证PIN码的请求,客户端软件提示用户输入PIN码并接收 用户输入的PIN码然后发送给USB Key, USB Key收到后验证该PIN码是否正确,如果正确, 则对协议内容进行签名,并将签名结果发送给代理服务器,如果错误,则提示用户再次输入 PIN码或停止操作。
本发明实施例中,USBKey可以在一次网银交易初始时只验证一次PIN码,也可以在每 次签名操作前验证PIN码。
另外,USBKey对协议内容进行签名操作时,可以对全部协议内容进行签名,也可以选 择部分协议内容进行签名,如约定仅对协议内容中的关键信息部分进行签名,即上例中对帐 号4367420037465985234,户名张三和金额134.22这三个关键信息进行签名,优选地, 可以使用哈希算法,对该三个关键信息进行计算,得到以下签名结果
"MualIO9msIOElIuIiH22Z8N57PzagkURnlxUgknTTXi88t+9ulTzg01tcYZWdG+D3LOgD XfejPtjx01HSt293usQhRTt5SW8qte241Uvw0eMC0YHzH3Iwu0Jb5KErXrsg0OMWFZMnhbjF33p GloQWMC23pe6Z98XCcnKR3nqBdY=,,。
步骤110:代理服务器接收到该签名结果,根据该签名结果和协议内容生成新的协议报 文,然后发送该新的协议报文给应用服务器;
其中,代理服务器生成新的协议报文可以具体如下在步骤102的XML格式的协议内 容中插入USBKey返回的签名结果,组合得到新的XML格式的协议内容,并且为该新的协 议内容添加新的请求头域,得到新的协议报文。插入的签名结果可以采取base64编码的方式, 在本实施例中,具体为在字段〈SignatureDataX/SignatureData〉中插入签名结果
<SignatureData>
MualIO9msIOElIuIiH22Z8N57PzagkURnkUgknTTXi88t+9ulTzg01tcYZWdG+D3LOgDXfe jPtjx01HSt293usQhRTt5SW8qte241Uvw0eMC0YHzH3Iwu0Jb5KErXrsg0OMWFZMnhbjF33pGlo QWMC23pe6Z98XCcnKR3nqBdY=
</SignatureData>
添加的新的头域可以为
POST /t應fer.cgi HTTP/1. l\r\n
Host:www.domain.com\r\nContent-Length: 528\r\n\r\n POST二新的XML格式的协议内容
其中,因为签名的插入导致报文长度变化,POST、 Host不变,请求头域后放置的报文数 据由步骤102中的XML格式的协议内容变更为本步骤中插入签名结果后的新的XML格式的 协议内容。
除上述插入签名结果的方式外,代理服务器还可以使用签名结果替换协议内容中的指定 部分,得到新的协议内容,为该新的协议内容添加新的请求头域,得到新的协议报文。该指 定部分由代理服务器预先设置,可以为协议内容的全部或部分。例如,将协议内容中的指定 字段〈SignatureDatax/SignatureDat&中的数据替换为签名结果。其中,客户端软件在生成协 议内容时,可以在该字段中插入一段假的签名结果,作为初始值,当代理服务器生成新的协 议内容时,使用上述USBKey返回的签名结果替换原有的假的签名结果,得到新的协议内容。
步骤111:应用服务器收到该新的协议报文后,进行解析并验证其中的签名,验证通过 后为客户端提供服务,进行网上转账,流程结束;
步骤112: USBKey进行异常处理,流程结束。
其中,异常处理的方式包括USBKey拒绝对协议内容进行签名,并通知代理服务器停 止操作及向用户提示错误;或者,USBKey返回一个错误的签名结果给代理服务器,导致网 上交易失败。
在本实施例中,USBKey还可以在得到关键信息后,不输出该关键信息给用户进行确认, 而是,直接对协议内容进行签名,然后返回签名结果给代理服务器,代理服务器根据该签名 结果和协议内容生成新的协议报文,发送该新的协议报文给应用服务器。
在本实施例中,如果需要更高的安全性,步骤106还可以替换为以下过程 代理服务器将协议内容发送给USBKey, USB Key对该协议内容进行签名,并将签名结 果返回给代理服务器,代理服务器根据该签名结果和协议内容(插入或替换),生成新的协议 内容,并添加新的请求头域得到新的协议报文,然后发送给应用服务器,应用服务器收到后 解析该新的协议报文,验证其中的签名,验证通过后为客户端提供服务。
实施例2
本实施例提供了一种提高网络应用安全性的系统,包括代理服务器1和智能密钥设备 2。其中,代理服务器l安装于客户端主机内,具体包括
接口模块ll,用于接收客户端软件根据用户输入的信息生成并发来的协议报文,并与智能密钥设备2通讯,向智能密钥设备2发送协议内容,接收智能密钥设备2返回的签名结果,
还用于发送新的协议报文给应用服务器;
解析模块12,用于对接口模块ll收到的协议报文进行解析,得到协议内容;
判断模块13,用于判断解析模块12得到的协议内容中是否存在代理服务器1、智能密钥
设备2和应用服务器预先约定的关键信息,如果存在该关键信息,通过接口模块ll发送协议
内容给智能密钥设备2,如果不存在该关键信息,通过接口模块ll发送协议报文给应用服务
器;
报文生成模块14,用于根据接口模块11收到的签名结果和解析模块12得到的协议内容, 生成新的协议报文,通过接口模块11发送该新的协议报文给应用服务器; 智能密钥设备2具体包括
接口模块21,用于与代理服务器l通讯,接收代理服务器1发送的协议内容,向代理服 务器l发送签名结果;
过滤模块22,用于解析接口模块21收到的协议内容,得到所述关键信息;
输出模块23,用于输出过滤模块23得到的关键信息供用户确认;
确认模块24,用于接收用户输入的确认所述关键信息是否正确的信号;
签名模块25,用于当确认模块24收到的信号为用户确认关键信息正确时,对接口模块 21收到的协议内容进行签名,并通过接口模块21返回签名结果给代理服务器1;
异常处理模块26,用于当确认模块24收到的信号为用户确认关键信息不正确时,或者 确认模块24在预设的时间内未收到用户进行确认的信号时,进行异常处理。
本实施例中,代理服务器1的判断模块13具体包括
第一判断单元,用于在解析模块12得到的所述协议内容中找到代理服务器1、智能密钥 设备2和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则判断出所述协议 内容中存在该关键信息,通过接口模块11发送协议内容给智能密钥设备2,否则,判断出所 述协议内容中存在该关键信息,通过接口模块11发送所述协议报文给应用服务器; 或者,
第二判断单元,用于判断解析模块12得到的所述协议内容中是否存在代理服务器1、智 能密钥设备2和应用服务器预先约定的关键信息标识符,如果存在,则判断出所述协议内容 中存在该关键信息,通过接口模块11发送协议内容给智能密钥设备2,否则,判断出所述协 议内容中存在该关键信息,通过接口模块11发送所述协议报文给应用服务器。
本实施例中,上述协议报文和新的协议报文均包含有请求头域,该请求头域中写有所述应用服务器的地址,相应地,判断模块13具体包括
判断单元,用于判断解析模块12得到的协议内容中是否存在代理服务器1、智能密钥设 备2和应用服务器预先约定的关键信息;
第一处理单元,用于如果判断单元判断出所述协议内容中存在关键信息,对代理服务器 1的接口模块11收到的协议报文的请求头域进行解析,判断该请求头域中写入的应用服务器 地址是否与代理服务器1存储的应用服务器地址一致,如果一致,则通过代理服务器的接口 模块ll发送所述协议内容给智能密钥设备2,如果不一致,则提示用户应用服务器错误;
第二处理单元,用于如果判断单元判断出所述协议内容中不存在关键信息,通过接口模 块11发送所述协议报文给应用服务器。
本实施例中,智能密钥设备2的过滤模块22具体包括
第一过滤单元,用于在接口模块21收到的协议内容中找到代理服务器1、智能密钥设备 2和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则读出该数据,得到所 述关键信息;
或者,
第二过滤单元,用于判断接口模块21收到的协议内容中是否存在代理服务器1、智能密 钥设备2和应用服务器预先约定的关键信息标识符,如果存在,则根据该关键信息标识符找 到所述关键信息。
本实施例中,智能密钥设备2的输出模块23可以为液晶显示器或音频装置。 本实施例中,智能密钥设备2的异常处理模块26具体包括
第一异常处理单元,用于当确认模块24收到的信息为用户确认关键信息不正确时,或者 确认模块24在预设的时间内未收到用户的确认信息时,通过接口模块21通知代理服务器1 停止操作,向用户提示操作失败;
或者,
第二异常处理单元,用于当确认模块24收到的信息为用户确认关键信息不正确时,或者 确认模块24在预设的时间内未收到用户的确认信息时,通过接口模块21向代理服务器l返 回一个错误的签名结果。
本实施例中,代理服务器1的接口模块11还用于当判断模块13判断出协议内容中不存 在所述关键信息时,将协议报文发送给应用服务器。
本实施例中,上述智能密钥设备2的签名模块25具体包括
签名单元,用于当确认模块24收到的信号为用户确认关键信息正确时,根据个人识别码或个人生物特征对用户的身份进行验证;如果正确,则对智能密钥设备2的接口模块21收到 的协议内容进行签名,并通过智能密钥设备2的接口模块21返回签名结果给代理服务器1; 如果不正确,则拒绝对协议内容进行签名,流程结束。其中,个人生物特征包括指纹、虹膜 或静脉识别。
本实施例中,代理服务器1的报文生成模块14具体包括
第一生成单元,用于将代理服务器1的接口模块11接收到的签名结果插入到所述协议内 容中得到新的协议内容,为新的协议内容添加请求头域,得到新的协议报文,通过接口模块 11发送该新的协议报文给应用服务器;
或者,
第二生成单元,用于使用代理服务器1的接口模块11接收到的签名结果对所述协议内容 中的指定部分进行替换得到新的协议内容,为新的协议内容添加请求头域,得到新的协议报 文,通过接口模块11发送该新的协议报文给应用服务器。
本发明实施例提供的技术方案通过客户端的代理服务器判断协议报文中是否存在关键信 息,如果存在,由智能密钥设备对协议内容进行签名后返回签名结果给代理服务器,代理服 务器根据签名结果生成新的协议报文发给应用服务器,在不改动原有客户端的前提下提高了 网络应用的安全性,可以适用于各种客户端软件,具有良好的兼容性、易用性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1、一种提高网络应用安全性的方法,其特征在于,所述方法包括客户端主机内的代理服务器接收客户端软件根据用户输入的信息生成并发来的协议报文,根据约定的协议解析所述协议报文,得到协议内容;所述代理服务器判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服务器预先约定的关键信息;如果所述协议内容中存在所述关键信息,则所述代理服务器将所述协议内容发送给所述智能密钥设备,所述智能密钥设备解析所述协议内容得到所述关键信息,输出该关键信息供用户确认;如果接收到用户确认关键信息正确的信号,则所述智能密钥设备对所述协议内容进行签名,返回签名结果给所述代理服务器,所述代理服务器根据所述签名结果和协议内容生成新的协议报文,发送所述新的协议报文给所述应用服务器;如果接收到用户确认关键信息不正确的信号或在预设的时间内没有接收到用户进行确认的信号,则所述智能密钥设备进行异常处理;如果所述协议内容中不存在所述关键信息,则所述代理服务器将所述协议报文发送给所述应用服务器。
2、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述代理服务器判 断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服务器预先约定的关键信 息,具体包括所述代理服务器在所述协议内容中找到所述代理服务器、智能密钥设备和应用服务器指 定的字段,判断该字段中是否写有数据,如果是,则判断出所述协议内容中存在所述关键信 息;或者,所述代理服务器判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用服 务器预先约定的关键信息标识符,如果存在,则判断出所述协议内容中存在所述关键信息。
3、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述协议报文和新 的协议报文均包含有请求头域,所述请求头域中写有所述应用服务器的地址。
4、 根据权利要求3所述的提高网络应用安全性的方法,其特征在于,所述代理服务器将 所述协议内容发送给所述智能密钥设备,具体包括-所述代理服务器对所述协议报文的请求头域进行解析,判断所述请求头域中写入的应用 服务器地址是否与所述代理服务器存储的应用服务器地址一致; 如果一致,则将所述协议内容发送给所述智能密钥设备; 如果不一致,则所述代理服务器提示用户应用服务器错误,流程结束。
5、 根据权利要求l所述的提高网络应用安全性的方法,其特征在于,所述智能密钥设备 解析所述协议内容得到所述关键信息,具体包括所述智能密钥设备在所述协议内容中找到所述代理服务器、智能密钥设备和应用服务器 指定的字段,判断该字段中是否写有数据,如果是,则读出所述数据,得到所述关键信息; 或者,所述智能密钥设备判断所述协议内容中是否存在所述代理服务器、智能密钥设备和应用 服务器预先约定的关键信息标识符,如果存在,则根据所述关键信息标识符找到所述关键信 息。
6、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述输出该关键信 息供用户确认,具体包括-所述智能密钥设备通过液晶显示器显示输出所述关键信息供用户确认,或者通过语音播 报的方式播放所述关键信息供用户确认。
7、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述智能密钥设备 进行异常处理,具体包括所述智能密钥设备通知所述代理服务器停止操作,向用户提示操作失败; 或者,所述智能密钥设备向所述代理服务器返回一个错误的签名结果。
8、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述智能密钥设备对所述协议内容进行签名,具体包括所述智能密钥设备根据个人识别码或个人生物特征对用户的身份进行验证,所述个人生 物特征包括指纹、虹膜或静脉识别;如果正确,则对所述协议内容进行签名;如果不正确,则拒绝对所述协议内容进行签名,流程结束。
9、 根据权利要求1所述的提高网络应用安全性的方法,其特征在于,所述代理服务器根 据所述签名结果和协议内容生成新的协议报文,具体包括所述代理服务器将接收到的签名结果插入到所述协议内容中得到新的协议内容,为所述 新的协议内容添加请求头域,得到新的协议报文; 或者,所述代理服务器使用接收到的签名结果对所述协议内容中的指定部分进行替换得到新的 协议内容,为所述新的协议内容添加请求头域,得到新的协议报文。
10、 根据权利要求1至9中任一权利要求所述的提高网络应用安全性的方法,其特征在 于,所述约定的协议包括超文本传输协议http和/或安全的超文本传输协议https。
11、 一种提高网络应用安全性的系统,其特征在于,所述系统包括智能密钥设备和安 装于客户端主机内的代理服务器;所述代理服务器包括接口模块,用于接收客户端软件根据用户输入的信息生成并发来的协议报文,并与所述 智能密钥设备通讯,向所述智能密钥设备发送协议内容,接收所述智能密钥设备返回的签名 结果,还用于发送新的协议报文给应用服务器;解析模块,用于对所述接口模块收到的协议报文进行解析,得到协议内容;判断模块,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智能密 钥设备和应用服务器预先约定的关键信息,如果存在所述关键信息,通过所述接口模块发送 协议内容给所述智能密钥设备,如果不存在所述关键信息,通过所述接口模块发送所述协议 报文给所述应用服务器;报文生成模块,用于根据所述接口模块收到的签名结果和所述解析模块得到的协议内容, 生成新的协议报文,通过所述接口模块发送该新的协议报文给所述应用服务器;所述智能密钥设备包括-接口模块,用于与所述代理服务器通讯,接收所述代理服务器发送的协议内容,向所述 代理服务器发送签名结果;过滤模块,用于解析所述智能密钥设备的接口模块收到的协议内容,得到所述关键信息; 输出模块,用于输出所述过滤模块得到的关键信息供用户确认; 确认模块,用于接收用户输入的确认所述关键信息是否正确的信号;签名模块,用于当所述确认模块收到的信号为用户确认关键信息正确时,对所述接口模 块收到的协议内容进行签名,并通过所述智能密钥设备的接口模块返回签名结果给所述代理 服务器;异常处理模块,用于当所述确认模块收到的信号为用户确认关键信息不正确时,或者所 述确认模块在预设的时间内未收到用户进行确认的信号时,进行异常处理。
12、 根据权利要求11所述的提高网络应用安全性的系统,其特征在于,所述判断模块具 体包括第一判断单元,用于在所述解析模块得到的协议内容中找到所述代理服务器、智能密钥 设备和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则判断出所述协议内 容中存在所述关键信息,通过所述接口模块发送协议内容给所述智能密钥设备,否则,判断 出所述协议内容中不存在所述关键信息,通过所述接口模块发送所述协议报文给所述应用服 务器;或者,第二判断单元,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智 能密钥设备和应用服务器预先约定的关键信息标识符,如果存在,则判断出所述协议内容中 存在所述关键信息,通过所述接口模块发送协议内容给所述智能密钥设备,否则,判断出所 述协议内容中不存在所述关键信息,通过所述接口模块发送所述协议报文给所述应用服务器。
13、 根据权利要求ll所述的提高网络应用安全性的系统,其特征在于,所述协议报文和 新的协议报文均包含有请求头域,所述请求头域中写有所述应用服务器的地址,所述判断模 块具体包括判断单元,用于判断所述解析模块得到的协议内容中是否存在所述代理服务器、智能密 钥设备和应用服务器预先约定的关键信息;第一处理单元,用于如果所述判断单元判断出所述协议内容中存在所述关键信息,对所述代理服务器的接口模块收到的协议报文的请求头域进行解析,判断所述请求头域中写入的 应用服务器地址是否与所述代理服务器存储的应用服务器地址一致,如果一致,则通过所述 代理服务器的接口模块发送所述协议内容给所述智能密钥设备,如果不一致,则提示用户应 用服务器错误;第二处理单元,用于如果所述判断单元判断出所述协议内容中不存在所述关键信息,通 过所述接口模块发送所述协议报文给所述应用服务器。
14、 根据权利要求11所述的提高网络应用安全性的系统,其特征在于,所述过滤模块具 体包括第一过滤单元,用于在所述智能密钥设备的接口模块收到的协议内容中找到所述代理服 务器、智能密钥设备和应用服务器指定的字段,判断该字段中是否写有数据,如果是,则读 出所述数据,得到所述关键信息;或者,第二过滤单元,用于判断所述智能密钥设备的接口模块收到的协议内容中是否存在所述 代理服务器、智能密钥设备和应用服务器预先约定的关键信息标识符,如果存在,则根据所 述关键信息标识符找到所述关键信息。
15、 根据权利要求ll所述的提高网络应用安全性的系统,其特征在于,所述输出模块为 液晶显示器或音频装置。
16、 根据权利要求11所述的提高网络应用安全性的系统,其特征在于,所述异常处理模块具体包括第一异常处理单元,用于当所述确认模块收到的信息为用户确认关键信息不正确时,或 者所述确认模块在预设的时间内未收到用户的确认信息时,通过所述智能密钥设备的接口模块通知所述代理服务器停止操作,向用户提示操作失败; 或者,第二异常处理单元,用于当所述确认模块收到的信息为用户确认关键信息不正确时,或 者所述确认模块在预设的时间内未收到用户的确认信息时,通过所述智能密钥设备的接口模 块向所述代理服务器返回一个错误的签名结果。
17、 根据权利要求1I所述的提高网络应用安全性的系统,其特征在于,所述智能密钥设 备的签名模块具体包括签名单元,用于当所述确认模块收到的信号为用户确认关键信息正确时,根据个人识别 码或个人生物特征对用户的身份进行验证,如果正确,则对所述智能密钥设备的接口模块收 到的协议内容进行签名,并通过所述智能密钥设备的接口模块返回签名结果给所述代理服务 器;如果不正确,则拒绝对所述协议内容进行签名,所述个人生物特征包括指纹、虹膜或静 脉识别。
18、 根据权利要求11所述的提高网络应用安全性的系统,其特征在于,所述代理服务器 的报文生成模块具体包括-第一生成单元,用于将所述代理服务器的接口模块接收到的签名结果插入到所述协议内 容中得到新的协议内容,为所述新的协议内容添加请求头域,得到新的协议报文,通过所述 代理服务器的接口模块发送该新的协议报文给所述应用服务器;或者,第二生成单元,用于使用所述代理服务器的接口模块接收到的签名结果对所述协议内容 中的指定部分进行替换得到新的协议内容,为所述新的协议内容添加请求头域,得到新的协 议报文,通过所述代理服务器的接口模块发送该新的协议报文给所述应用服务器。
全文摘要
本发明公开了一种提高网络应用安全性的方法和系统,属于信息安全领域。该方法包括客户端主机内的代理服务器接收客户端软件根据用户输入的信息生成并发来的协议报文,解析后得到协议内容,判断其中是否存在关键信息;若存在,则将协议内容发送给智能密钥设备,智能密钥设备解析后得到关键信息输出给用户,用户确认正确时,智能密钥设备对协议内容签名返回签名结果,代理服务器根据签名结果和协议内容生成新的协议报文发给应用服务器;用户确认错误或超时未确认时,智能密钥设备做异常处理。该系统包括智能密钥设备和安装于客户端主机内的代理服务器。本发明在不改动客户端的前提下提高了网络应用的安全性,具有良好的兼容性、易用性。
文档编号H04L29/06GK101635714SQ200910086340
公开日2010年1月27日 申请日期2009年5月31日 优先权日2009年5月31日
发明者于华章, 舟 陆 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1