动态页面加密防越权方法及装置与流程

文档序号:15648833发布日期:2018-10-12 22:54阅读:431来源:国知局

本发明涉及数据安全技术领域,尤其涉及动态页面加密防越权方法及装置。



背景技术:

银行、电子商务公司一般使用动态页面技术制作交易网站,比如电子银行、电商购物网站等。网站的页面上通过表单提交交易信息,网站后台接收到用户提交的信息后根据用户的输入在数据库中查询到用户信息或其它信息后,生成相关的页面。

图1为现有技术中动态页面交易网站交易流程示例图,如图1所示,动态页面的交易流程一般包括:11、用户在页面上输入信息;12、系统根据用户输入查询数据;13、将查询数据反显到页面上;14、用户操作相关数据进行交易。

图2为现有技术中电子银行账户查询交易流程示例图,如图2所示,电子银行的账户查询交易的流程一般包括:21、用户输入用户名、密码登录;22、系统验证身份后查询用户持有的卡号;23、将卡号反显到页面上;24、用户选择卡号提交查询交易;25、在页面上展示账户查询结果。

图3为现有技术中电子银行转账交易流程示例图,如图3所示,电子银行的转账交易流程一般包括:31、用户输入用户名、密码登录;32、系统验证身份后查询用户持有的卡号并展示到页面上;33、用户选择卡号并录入对方账号、金额等信息;34、将己方账号、对方账号、金额等信息反显到页面上;35、用户进行鉴权并确认交易;36、提交转账请求,系统进行转账。

攻击者可以对电子银行、电子商务等网站进行攻击,在提交表单时篡改页面上从后台查回的数据或前一步骤录入的数据,实现越权。

图4为现有技术中攻击者篡改表单攻击流程示例图,如图4所示,攻击流程一般包括:41、用户在页面上输入信息;42、系统根据用户输入查询数据;43、将查询数据反显到页面上;44、攻击者篡改后台查回的数据或前步录入的数据进行提交。

图5为现有技术中篡改表单攻击电子银行账户查询交易流程示例图,如图5所示,攻击电子银行账户查询交易的流程一般包括:51、用户输入用户名、密码登录;52、系统验证身份后查询用户持有的卡号;53、将卡号反显到页面上;54、攻击者篡改表单中的卡号,进行提交;55、在页面上展示攻击者提交的账户的查询结果。

图6为现有技术中篡改表单攻击电子银行转账交易的流程示例图,如图6所示,攻击电子银行转账交易的流程一般包括:61、用户输入用户名、密码登录;62、系统验证身份后查询用户持有的卡号并展示到页面上;63、用户选择卡号并录入对方账号、金额等信息;64、将己方账号、对方账号、金额等信息反显到页面上;65、用户进行鉴权并确认交易;66、攻击者篡改表单中的账号、金额等数据提交转账请求,系统进行转账。

几乎所有电子银行、电商交易网站的查询、动账类交易都可以使用这种方式进行越权攻击,使攻击者可以查询到非本人的用户信息、持有产品信息、交易信息,使用非本人的账户或者产品进行交易。

一般电子银行会采用后台数据比对的方式控制交易权限,即交易过程中将前一步骤用户录入的数据和从后台查回的数据保存下来,最后一步提交交易时进行比对核对权限;或者在最后一步交易时再次发起查询,比对用户提交的数据。由于涉及交易和可篡改的表单数据太多,这种防护方式几乎防不胜防,而且在服务器内存中存储每个用户的上一步骤的交易信息,占用系统的存储空间,影响系统性能。



技术实现要素:

本发明实施例提供一种动态页面加密防越权方法,用以在不影响服务器性能的情况下改善交易安全防护效果,该方法包括:

在用户首次打开页面时,生成加密密钥并存放于会话中;

用加密密钥对返回页面的数据进行加密,产生加密域数据;

将未加密的返回页面的数据和加密域数据回传到页面上;

接收用户提交的交易请求,所述交易请求携带加密域数据和明文交易数据;

用会话中保存的密钥解密加密域数据;

根据解密出的加密域中数据控制交易。

本发明实施例还提供一种动态页面加密防越权装置,用以在不影响服务器性能的情况下改善交易安全防护效果,该装置包括:

密钥生成模块,用于在用户首次打开页面时,生成加密密钥并存放于会话中;

加密域产生模块,用于用加密密钥对返回页面的数据进行加密,产生加密域数据;

数据回传模块,用于将未加密的返回页面的数据和加密域数据回传到页面上;

交易接收模块,用于接收用户提交的交易请求,所述交易请求携带加密域数据和明文交易数据;

加密域解密模块,用于用会话中保存的密钥解密加密域数据;

交易控制模块,用于根据解密出的加密域中数据控制交易。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述动态页面加密防越权方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述动态页面加密防越权方法的计算机程序。

本发明实施例具备如下有益效果:

1、本发明实施例可以确保动态网站系统从后台查回的数据不被攻击者在用户端篡改后提交以实现越权攻击。

2、本发明实施例可以利用加密域存放的数据,对交易流程进行控制,阻止跨步交易攻击。

3、本发明实施例仅需在服务器端为每个会话存放一个对称密钥,服务器不用额外存储数据。由于密钥仅存在于服务器端,并且每次产生会话都会重新生成密钥,所以攻击者无法从用户端的密文中推出明文。

4、本发明实施例不影响正常交易流程,对现有系统进行加固的工作量不大。

5、在本发明实施例中,由于加密域数据传递到用户端并再次提交,安全检查依赖于用户提交的加密域数据,即使用户同时操作多个交易,也可以对每一个交易实现安全保护。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为现有技术中动态页面交易网站交易流程示例图;

图2为现有技术中电子银行账户查询交易流程示例图;

图3为现有技术中电子银行转账交易流程示例图;

图4为现有技术中攻击者篡改表单攻击流程示例图;

图5为现有技术中篡改表单攻击电子银行账户查询交易流程示例图;

图6为现有技术中篡改表单攻击电子银行转账交易的流程示例图;

图7为本发明实施例中动态页面加密防越权方法的示意图;

图8为本发明实施例中加密防越权方案示例图;

图9为本发明实施例中动态页面加密防越权装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

下面对本发明实施例可能涉及的技术术语进行简要说明。

静态页面:页面代码固定,所有用户看到的同一页面上的信息完全一致。

动态页面:与静态页面相对,页面代码随用户交易而生成,不同用户看到同一页面的信息可能不同(包含用户个性化的信息),电子交易系统如电子银行等都是动态页面。

越权攻击:指攻击者在电子交易系统中篡改表单提交数据,以实现超越账户本身权限的交易。比如攻击者在账户查询交易中篡改提交表单中的卡号,以期查询到其他用户的交易信息。

跨步攻击:攻击者利用工具或者脚本,跳过正常交易的前几个步骤,直接发起最后一个步骤,以绕过身份核验控制的攻击方式。

会话(session):内存中的用户数据,用户首次开打网站,网站系统会在内存中开辟一个数据域,存放此用户的信息。

对称加密:使用同一个密钥进行加密和解密,选用适当的算法并保证密钥不泄露,可以保证无法从密文推出明文。

加密域:系统将需要回传到页面上的数据组合后加密成一个字段回传给用户端。这个加密后的字段就是加密域。本发明实施例利用加密域存放前一步骤用户录入的数据和后台查回的数据,用户提交交易时利用加密域的数据进行比对,防止越权攻击。

图7为本发明实施例中动态页面加密防越权方法的示意图,如图7所示,该方法可以包括:

步骤71、在用户首次打开页面时,生成加密密钥并存放于会话中;

步骤72、用加密密钥对返回页面的数据进行加密,产生加密域数据;

步骤73、将未加密的返回页面的数据和加密域数据回传到页面上;

步骤74、接收用户提交的交易请求,所述交易请求携带加密域数据和明文交易数据;

步骤75、用会话中保存的密钥解密加密域数据;

步骤76、根据解密出的加密域中数据控制交易。

由图7所示流程可以得知,本发明实施例可以解决电子银行、电子商务等使用动态页面技术的交易系统的表单篡改越权问题,即保证系统回传到页面的数据再次提交时不被篡改,以防止越权攻击,并且不增加后台数据存储(仅需为每个在线用户存储一个对称密钥)。应用本发明实施例方案并制定相应的系统开发规范和系统组件,可以全面、简洁地对每一个交易实现防越权加固,方便对代码做安全检查,不容易出现遗漏。

如前所述,目前现有技术一般使用在内存中存放前一步的交易数据,并在后一步骤中进行比对的方式实现交易防越权。内存存放数据并比对的方式占用较多内存开销、容易遗漏保护,并且难以应对用户同时操作几个交易的场景,因为内存中一般只能存放一个交易的数据,否则就难以管理和清理了。

相对于现有的内存加固方案,本发明实施例基本不增加内存开销,可以以公共组件的方式进行,开发更加简单,保护更加全面。由于加密域传递到用户端并再次提交,能够对一个用户同时操作多个交易都做安全保护。

实施例中,用户首次打开网站页面时,随机生成一个加密密钥,存放在会话(session)中。使用此密钥对返回页面的数据进行加密,产生加密域数据。加密域数据可以放在隐藏字段中回传到页面上。这些数据进行加密的同时,明文即未加密的返回页面的数据仍传回到页面上,不影响正常交易流程。用户提交交易的同时加密域与正常的明文交易数据一起提交。交易提交后,使用会话中保存的密钥解密加密域数据,根据解密出的加密域中数据控制交易。

实施例中,根据解密出的加密域中数据控制交易,可以包括:用加密域中数据对明文交易数据进行检查,若明文交易数据中用户提交的字段存在于加密域中,则核对明文交易数据中该字段与加密域中该字段的一致性,若不一致则停止交易。例如,使用加密域中的数据对明文交易数据进行检查,如果一个字段既在明文交易数据中提交,加密域中也存放了这个字段,那么核对这两个字段的一致性,如果不一致则停止此交易,这样可以阻止用户端对校验过的数据进行篡改或部分篡改,进而越权的攻击行为。

实施例中,当返回页面的数据为一组枚举值,用加密密钥对返回页面的数据进行加密,产生加密域数据,可以包括:将该组枚举值作为一个列表用加密密钥加密保存,产生加密域数据;明文交易数据包括用户在该组枚举值中选择的枚举值;核对明文交易数据中该字段与加密域中该字段的一致性,可以包括:核对明文交易数据中用户选择的枚举值是否在加密域的枚举值列表中,如果不在则停止交易。例如,对于后台返回到页面上一组枚举值的数据,用户在页面上选择其中某一值上送的交易,譬如用户在电子银行上查询账户列表,然后选择其中一个账户查询详情的交易,加密域中将所有枚举值作为一个列表加密保存,枚举值列表名与交易提交的字段名一致。交易提交后,可以根据字段名检查用户端提交的值是否在加密域的该字段的枚举值列表中,如果比对成功则正常进行交易,如果比对失败则停止交易。

图8为本发明实施例中加密防越权方案示例图,如图7所示,实施过程例如可以包括:81、用户首次打开网站页面;82、服务器创建会话,并生成加密密钥;83、用户登录并进入交易;84、服务器将后台查询得到的数据和用户前步录入的数据加密,放入页面的隐藏字段(加密域)中;85、用户在页面上录入、确认并提交交易,同时提交加密域字段;86、服务器端比对用户提交的数据是否存在于加密域中,如果存在则比对两者是否一致,如果不一致,则判断出现了越权攻击,阻断此交易。

实施例中,如果原系统的回传页面的字段名和再次提交的字段名都一致,可以按上述实施例对系统进行加固,仅需开发一个公共的加密和核验组件,就可以对所有回传页面的字段进行加密,交易提交时进行核验,无需对具体交易做出修改。或者,也可以为每个交易写一个配置,维护在配置文件中,包含此交易要加密核验的字段。

实施例中,通过在加密数据域中加入涉及业务流程的交易编号、交易步骤编号,并在提交交易时核对交易编号和交易步骤,可以防止用户端任意调用交易的某一步骤,防止跨步攻击。比如直接向服务器发送转账最后一步完成转账的攻击。

本发明实施例的安全校验过程也可以采用另一实施例,即忽略明文提交的数据,而以加密域中的数据为准进行交易。对于枚举值列表,则可以在页面上由用户选择明文提交枚举值序号,然后根据序号从加密域中取出枚举值,得到用户选择的数据。即,当返回页面的数据为一组枚举值时,明文交易数据包括用户在该组枚举值中选择的枚举值的序号;根据解密出的加密域中数据控制交易,可以包括:根据明文交易数据中枚举值的序号,从加密域的枚举值列表中取出对应的枚举值,得到用户选择的枚举值;根据用户选择的枚举值执行交易。

下面给出本发明实施例中动态页面加密防越权方法的具体实例。

例一、保护电子银行的账户查询交易

本例中,用户进入电子银行时生成加密密钥并存放在会话中,做账户查询交易时,系统将账户列表反显到页面上,此时生成一个加密域,加密域中包含用户的账户信息并传递到页面上。用户提交查询交易时同时上送明文账号字段和加密域,系统比对明文账号是否存在于加密域的账号列表中,如果存在则正常完成交易,如果不存在则终止此交易。

例二、保护电子银行的转账交易

本例中,用户进入电子银行时生成加密密钥并存放在会话中,做账户查询时,系统将账户列表反显到页面上,此时生成一个加密域,加密域中包含用户的账户信息并传递到页面上。用户在页面上选择己方账户,并录入对方账户和金额,然后提交交易和加密域。系统比对明文的己方账号是否存在于加密域的账号列表中,如果存在则继续,如果不存在则终止此交易。继续的情况下,系统将己方账号、金额、对方账号、下一步交易步骤加密后都存放在加密域中,并将这些信息反显到页面上,同时将加密域也传递到页面的隐藏字段中,用户确认交易并输入交易密码及鉴权,然后再次提交交易,系统比对此时提交的己方账号、金额、对方账号与加密域中存放的数据是否一致,以及检查加密域中的交易步骤是否为转账结果步骤,若不一致则交易终止,若一致则完成转账。

由上述实施例可知,本发明实施例可以保护动态网站系统从后台查回的数据不被攻击者在用户端篡改后提交以实现越权攻击。实施例中可以利用加密域存放的交易编号、交易步骤,特别是下一交易步骤等信息,系统可以对交易流程做出判断,阻止跨步交易攻击。实施时仅需在服务器端为每个会话存放一个对称密钥,服务器不用额外存储数据。由于密钥仅存在于服务器端,并且每次产生会话都会重新生成密钥,所以攻击者无法从用户端的密文中推出明文。本发明实施例可以以公共安全组件的方式开发,不影响正常交易流程,对现有系统进行加固的工作量不大。由于加密域传递到用户端并再次提交,安全检查仅依赖于用户提交的加密域和交易的安全配置,即使用户同时操作多个交易,也可以对每一个交易实现安全保护。

基于同一发明构思,本发明实施例中还提供了一种动态页面加密防越权装置,如下面的实施例所述。由于该装置解决问题的原理与动态页面加密防越权方法相似,因此该装置的实施可以参见动态页面加密防越权方法的实施,重复之处不再赘述。

图9为本发明实施例中动态页面加密防越权装置的示意图,如图9所示,该装置可以包括:

密钥生成模块91,用于在用户首次打开页面时,生成加密密钥并存放于会话中;

加密域产生模块92,用于用加密密钥对返回页面的数据进行加密,产生加密域数据;

数据回传模块93,用于将未加密的返回页面的数据和加密域数据回传到页面上;

交易接收模块94,用于接收用户提交的交易请求,所述交易请求携带加密域数据和明文交易数据;

加密域解密模块95,用于用会话中保存的密钥解密加密域数据;

交易控制模块96,用于根据解密出的加密域中数据控制交易。

一个实施例中,数据回传模块93可以进一步用于:将加密域数据放在隐藏字段中回传到页面上。

一个实施例中,交易控制模块96可以进一步用于:

用加密域中数据对明文交易数据进行检查,若明文交易数据中用户提交的字段存在于加密域中,则核对明文交易数据中该字段与加密域中该字段的一致性,若不一致则停止交易。

一个实施例中,所述返回页面的数据可以为一组枚举值;

所述加密域产生模块92可以进一步用于:将该组枚举值作为一个列表用加密密钥加密保存,产生加密域数据;

所述明文交易数据可以包括用户在该组枚举值中选择的枚举值;

所述交易控制模块96可以进一步用于:核对所述明文交易数据中用户选择的枚举值是否在加密域的枚举值列表中,如果不在则停止交易。

一个实施例中,所述返回页面的数据可以为一组枚举值;

所述明文交易数据可以包括用户在该组枚举值中选择的枚举值的序号;

所述交易控制模块96可以进一步用于:

根据所述明文交易数据中枚举值的序号,从加密域的枚举值列表中取出对应的枚举值,得到用户选择的枚举值;根据用户选择的枚举值执行交易。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述动态页面加密防越权方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述动态页面加密防越权方法的计算机程序。

综上所述,本发明实施例可以确保动态网站系统从后台查回的数据不被攻击者在用户端篡改后提交以实现越权攻击。本发明实施例可以利用加密域存放的数据,对交易流程进行控制,阻止跨步交易攻击。本发明实施例仅需在服务器端为每个会话存放一个对称密钥,服务器不用额外存储数据。由于密钥仅存在于服务器端,并且每次产生会话都会重新生成密钥,所以攻击者无法从用户端的密文中推出明文。本发明实施例不影响正常交易流程,对现有系统进行加固的工作量不大。在本发明实施例中,由于加密域数据传递到用户端并再次提交,安全检查依赖于用户提交的加密域数据,即使用户同时操作多个交易,也可以对每一个交易实现安全保护。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1