发明内容
本申请实施例提供一种监测展示劫持的方法和装置,用以解决现有技术中用户因展示信息被劫持而在交易中蒙受损失的问题。
本申请实施例提供的一种监测展示劫持的方法,包括:
接收服务器发送的信息并展示;
获取当前展示的信息;
判断当前展示的信息与接收到的信息是否相同;
若是,则确定未受到展示劫持;
否则,确定受到展示劫持。
进一步地,获取当前展示的信息,具体包括:
获取当前展示的信息的文本内容;
判断当前展示的信息与接收到的信息是否相同,具体包括:
判断当前展示的信息的文本内容与接收到的信息的文本内容是否相同。
进一步地,获取当前展示的信息,具体包括:
抓取当前展示的信息图像;
从所述信息图像中获取当前展示的信息的文本内容;
判断当前展示的信息与接收到的信息是否相同,具体包括:
判断当前展示的信息的文本内容与接收到的信息的文本内容是否相同。
进一步地,从所述信息图像中获取当前展示的信息的文本内容,具体包括:
通过图文转换的方式,从所述信息图像中获取当前展示的信息的文本内容。
进一步地,接收服务器发送的信息并展示,具体包括:
接收服务器发送的信息和签名;
对所述签名进行验证;
在验证通过时,对接收到的信息进行展示。
本申请还提供一种监测展示劫持的装置,包括:
接收模块,用于接收服务器发送的信息;
显示模块,用于展示接收到的信息;及
检查模块,用于检查显示模块当前所展示的信息与接收模块接收到的信息是否相同。
进一步地,所述检查模块内设有文本检查单元,用于获取当前所展示的信息中的文本内容,并判断该文本内容与接收模块接收到的信息的文本内容是否相同。
进一步地,所述检查模块内设有图像检查单元,用于抓取当前所展示的信息中的图像,并判断该图像中含有的文本内容与接收模块接收到的信息的文本内容是否相同。
进一步地,所述图像检查单元内含图文转换模块,用于从当前所展示的图像中获取文本内容。
进一步地,所述接收模块还用于接收自服务器发出的针对所发送信息的签名。
进一步地,所述装置还包括:
签名模块,用于对接收模块接收到的信息进行签名;及
校验模块,用于校验该签名与所述服务器发出的签名是否一致。
本申请所述的监测展示劫持的方法和装置,采用屏幕检查的方式,将当前展示的信息内容与服务器发送的信息内容进行比对,从而判断信息在展示过程中是否被篡改,能及时有效地监测展示劫持情况的发生,进而提高系统的安全性。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请提供一种监测展示劫持的方法,其包括:接收服务器发送的信息并展示;获取当前展示的信息;判断当前展示的信息与接收到的信息是否相同;若是,则确定未受到展示劫持;否则,确定受到展示劫持。在本申请较佳实施例中,其具体过程如下:
所述接收服务器发送的信息并展示的过程,是由客户端接收来自服务器的信息。所述客户端在接收到信息后,通过屏幕展示技术,将接收到的信息进行展示。由于展示的过程中,容易发生展示劫持,导致所展示出的信息与客户端最初接收到的信息不同,因此,本申请采用屏幕检查技术,即通过获取当前屏幕所展示的信息,将该信息与客户端所接收到的信息进行比较,看两者是否相同,以此来判断展示是否被劫持。
当然,为了更进一步地防止展示劫持的发生,增加信息的保密性,本申请较佳实施例中,所述服务器采用数字签名方式对其所发送的信息进行签名,所述签名为服务器利用某种算法对其所发送信息进行运算而得到的摘要,该摘要(即签名)随同信息一并从服务器发送至客户端中。客户端在收到信息后还需要对所述签名进行校验,以防止服务器发送的信息在传输过程中被篡改,客户端若能校验签名通过,则表明服务器发送的信息在传输至客户端的过程中未被篡改,相反,若校验未通过,则表明发生了篡改,此时,将无法进行下一步操作,以此来保证整个过程的安全性。
另外,基于上述方法,本申请还提供了一种监测展示劫持的装置,如图2所示,该装置包括如下模块:接收模块101、显示模块102及检查模块103。
所述接收模块101,用于接收从服务器发送的信息,当然,在较佳实施例中,所述服务器发送的信息为服务器签名后的信息,其同时包含所述发送信息及该信息的签名。
所述显示模块102,用于展示所述接收模块101所接收到的信息。
所述检查模块103,用于检查显示模块102当前所展示的信息与接收模块101接收到的信息是否相同,由此来判断显示模块102所展示的信息是否是真实的、未被篡改过的。所述检查模块103内设有文本检查单元1031及图像检查单元1032,所述文本检查单元1031用于获取当前所展示的信息中的文本内容,并判断该文本内容与接收模块接收到的信息的文本内容是否相同;所述图像检查单元1032用于获取当前所展示的信息中的图像,并判断该图像中含有的文本内容与接收模块接收到的信息的文本内容是否相同,在较佳实施例中,所述图像检查单元1032内设有图文转换模块,用于将图像中的内容转换成文本内容,且检查模块103的检查过程为周期性的循环检查;所述图像检查单元1032还可用于抓取当前所展示的信息图像,从所述信息图像中获取当前所展示的图像的属性,并判断该属性与预设的可信图像的属性是否相同,所述属性包括图像的分辨率、图像的格式、图像的来源、图像的尺寸、图像所存储的位置及图像的创建时间中的至少一种。
当然,在较佳实施例中,所述监测展示劫持的装置还包括:存储模块104、签名模块105及校验模块106。
所述存储模块104,用于存储所述接收到的信息。
所述签名模块105,用于对接收模块101收到的信息进行签名;
所述校验模块106,用于校验由上述签名模块105生产的签名与所述服务器发出的签名是否一致;
可见,本申请所述的监测展示劫持装置,通过检查模块的设置能及时发现展示劫持的情况,从而提高整个过程的安全性。
为了更加清楚详细的阐明本申请监测展示劫持的方法的原理及功效,以下将结合具体的应用情况来详述,请配合参阅图3及图4,其为本申请监测展示劫持的方法应用于具体交易过程中的流程图,该交易过程包括如下步骤:
S01:客户端接受用户的交易请求,并将交易请求发送至服务器。
在本申请实施例中,所述客户端可为多种形态的应用,其通过有线、无线网络与远程服务器建立通信连接,所述客户端包含但不限于:浏览器、个人计算机(PersonalComputer,PC)应用、手机应用,其可存在于个人计算机、手机、平板电脑等电子、电器设备中。
用户在启动客户端后,可向客户端发起交易请求,客户端根据用户的交易请求,通过网络传输至远程服务器端,所述交易请求中包含有用户的身份标签。
S02:服务器根据接收到的请求,生成交易确认信息并签名,将签名后的交易确认信息发送至客户端。
所述服务器端接收到交易请求后,自动识别交易请求中含的身份标签,并调用后台数据库中与该身份标签相关的信息,并由服务器创建此次交易请求记录(发起时间、请求内容、发起客户端的位置、身份等信息),然后由服务器根据用户的交易请求生成对应的交易确认信息,并调用签名模块对前述交易确认信息进行签名,并将该签名和交易确认信息通过网络一并传输回客户端。
所述签名模块采用数字签名的方式加密,所述签名可采用多种方式,包含但不限于:非对称签名(即公钥密码技术)、消息摘要,而公钥密码技术上的数字签名方法有很多,如RSA签名、DSA(Digital signatureAlgorithm)签名、椭圆曲线数字签名算法(EllipticCurve Digital SignatureAlgorithm,ECDSA)等等。以RSA签名为例,在本申请实施例中,所述服务器采用某种摘要算法从生成的交易确认信息中生成一个128位的散列值,然后用RSA算法和自身的私钥对这个散列值进行加密,产生一个摘要密文,即服务器的数字签名;随后,将这个加密后的数字签名作为交易确认信息的附件,并随着交易确认信息一起发送给客户端。
当然,所述签名模块的签名方式/算法都各有不同,除上述列举的RSA算法,本实施例的加密算法还可包括数据加密标准(Data Encryption Standard,DES)、三重数据加密标准(Triple Data Encryption Standard,3DES)、国际数据加密算法(InternationalDataEncryptionAlgorithm,IDEA)、安全哈希算法1(Secure HashAlgorithm1,Sha1)、Sha256、Sha512、消息摘要算法第5版(Message Digest Algorithm5,MD5)、高级加密标准(Advanced Encryption Standard,AES)等加密算法,当然,也可以是服务器端开发人员自行开发的加密算法,本实施例中对此并不做限定,可视具体的应用环境而选择,其他签名方式在此不再赘述。
S03:客户端对交易确认信息的签名进行校验。
所述客户端接收到签名的交易确认信息后,调用其内设的校验模块,利用校验模块对交易确认信息的签名进行校验,此处仍然以步骤S02中的RSA签名为例,客户端接收到交易确认信息和其签名后,采用相同的摘要算法计算出128位的散列值,并采用RSA算法和公钥对所述确认信息中附加的数字签名进行解密,如果此时得到散列值与服务器端签名时生成的128位散列值相同,那么客户端就能确认所述交易确认信息确实是来自所述服务器端,中途并未被篡改过。可见,签名及校验签名的方式能大大降低交易确认信息在传输至客户端的过程中被劫持、篡改的风险。
另外,在可信执行环境(TEE,Trusted Execution Environment)中实现签名校验、信息展示及确认流程能达到最佳实施效果。可见,本实施例中的签名校验方式尤其适用于移动终端,由于移动客户端经常面临大量的小额支付,所需要的安全保护强度并不高,因此,在可信执行环境(TEE,Trusted Execution Environment)中实现比较合适,其能够满足大多数应用的安全需求,可授权安全的软件应用比较安全的执行环境。
S04:客户端展示交易确认信息,并在后台定期检查所展示的交易确认信息是否被篡改。
客户端签名校验通过后,将通过显示模块将交易确认信息展示给用户,用户可对交易确认信息进行阅读并核实,在这期间,客户端通过其后台内设的检查模块对所展示的交易确认信息进行周期性的检查,检查的频率可以根据应用环境具体设定,理论上来说检查频率越高越好,可以更大程度的防止攻击者在展示过程中对交易确认信息实施篡改,从而误导用户进行确认操作。
所述检查模块在客户端的后台运作,其检查方式主要为屏幕检查,包含但不限于:展示文本检查、展示图像检查等。
对于展示文本检查方式,所述检查模块会针对所展示的确认信息中的文本内容进行检查。具体的说,检查模块可获取当前展示的信息的文本内容,并将该文本内容与原始的信息(即客户端校验签名后得到的真实的交易确认信息)进行比对,判断两者是否相同,以此来判断显示模块是否准确、真实地展示出了客户端接收到的交易确认信息,若检查过程中发现信息不一致,表明所展示出的信息是被篡改过的,则可采取相应措施提醒用户或直接终止交易继续进行。
对于所述展示图像检查方式,主要是利用检查模块对客户端的屏幕所显示的图像进行检查,以判断是否存在图层覆盖等问题。具体来说,所述检查模块将抓取当前屏幕所显示的信息图像,并自动识别信息图像中的文本内容,例如采用光学字符识别(OpticalCharacter Recognition,OCR)图文转换模块将图像中的关键信息转换成文本内容,再将该文本内容与客户端接收到的交易确认信息进行比对,来判断两者是否一致,即可判断屏幕当前是否发生了图层覆盖。
当然,对于展示图像检查方式,不局限于上述图文转换方式,也可以采取其他方式来识别是否发生图层覆盖,例如,抓取当前所展示的信息图像,从该信息图像中获取当前所展示的图像的属性,并判断当前展示的图像的属性是否与预设的可信图像的属性是否相同,其中,所述属性包括图像的分辨率、图像的格式、图像的来源、图像的尺寸、图像所存储的位置及图像的创建时间中的至少一种。当然,预设的可信图像的属性可来自于客户端所认可的图像库中。也即,根据当前所展示的图像的属性来判断该图像是否来自于客户端所认可的图像库中,一旦发现某些属性不匹配,即使该图像足够以假乱真,所述检查模块依然会认为屏幕已被来自第三方的、未知的图像所述覆盖。
S05:客户端接收用户确认的操作,并将其反馈至服务器。
用户在客户端核实交易确认信息后,便会进行确认操作,由客户端通过网络传输将确认操作的指令传送至服务器端,服务器在收到确认的指令后,将按照用户最初发起的交易请求自动进行下一步处理,例如,在银行系统的转账交易中,银行服务器收到确认转账交易的指令后,会自动按转账请求中的要求,将转账金额从用户账户划拨至转入账户。
S06:服务器完成交易处理,返回处理结果至客户端。
服务器在完成交易处理后,将处理结果返回至客户端,以告知用户其最初的交易请求是否处理完成。
结合以上步骤S01至S06,下面以网购为例进行说明,旨在说明一旦交易过程被攻击后,本申请是如何发挥作用以防止用户发生损失的。
网购时,用户在客户端(如浏览器、手机App等)上进行购买操作,选中所需商品后(如价值10元的铅笔),客户端上将展示出订单的一些基本信息供用户确认,例如:订单号、下单时间、订单金额、卖家账户信息等;
随后,用户确认无误后就点击下单,客户端将订单信息传回至服务器端,而在传回的过程中,攻击者会在后台将订单信息进行修改后,再传至服务器内,例如,修改铅笔的价格为20元、修改卖家账户信息等,而修改过程是在后台进行的,虽然用户看到的订单金额仍然为10元,但服务器最终实际收到交易订单的金额为修改后的20元。(注:此处的篡改过程发生在用户端,当用户的电脑或手机受攻击后会极易发生,由于用户的分散性,其被篡改的风险往往难以被控制)
随后,由服务器将根据金额20元的订单请求发出交易确认信息至客户端,由用户确认交易并付款,而为了不让用户察觉交易确认信息中20元的金额与原始订单金额不符,攻击者通常会在交易确认信息到达客户端时,对客户端进行展示劫持,企图使用户看到金额仍为10元的虚假交易确认信息,并促使点击确认。
在这种情况下,利用本申请方法将及时有效的监测出展示劫持的情况,通过将对屏幕所述展示的信息进行检查,并将其与服务器发出的信息比对,即可发现目前展示给用户看的10元金额与服务器发送出的20元金额不符合,由此判断已发生展示劫持。此时,可提醒用户或系统自动关闭交易。相较于通过第三方渠道进行信息确认的方式(例如:利用短信/电话或应用消息推送的方式让用户确认交易),本申请技术方案更具时效性和便捷性,无需利用第三方渠道、手机等额外的工具。
综上所述,本申请通过屏幕检查技术对屏幕当前展示的信息与服务器发送的信息进行比对,以判断屏幕是否发生了展示劫持,从而大大提高了交易的安全性,保障用户的利益。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。