专利名称:一种网页防伪的方法
技术领域:
本发明涉及网络安全技术,特别涉及一种网页防伪的方法。
背景技术:
随着信息技术的不断发展与电子商务的广泛应用,网络钓鱼活动越来越猖獗,仿 冒网站不断出现,攻击技术层出不穷。攻击者利用欺骗性的电子邮件和伪造的网页等手段, 促使用户输入秘密信息,进而窃取用户的财务数据。近年来,网络钓鱼的主要仿冒对象为国 内外的著名金融交易网站和安全机构,诈骗活动的猖獗使快速发展的网上银行业务遭遇困境。目前常用的网页防伪反钓鱼方法大多是基于已知信息的,大致可以分为以下几 种1、基于钓鱼网站黑名单的方式。利用数据库中存储的钓鱼网站黑名单对站点进 行检查,如果用户访问的站点在此黑名单中,就向用户发出警告,其中的黑名单通过用户举 报、蜜网监测等方式更新。然而钓鱼网站数据库中的数据总是相对滞后,永远不可能包含全 部的钓鱼网站,而且,根据APWG报告显示,钓鱼网站的平均存活时间为3. 8天,而最长的也 只有30天。因此,黑名单具有一定的局限性。2、基于规则的方式。从以往攻击案例中归纳出的钓鱼事件的规则特征,将它们加 入到软件中,通过对这些规则对WEB页面进行过滤和检测,判断Web站点的安全性。它能够 成功的检测出已知攻击,然而攻击者只要稍加改动以前的攻击特征就能够轻易绕过这种防 御机制。3、基于视觉上的模式识别。由于假冒网站在风格上模仿真实站点,因此在视觉上 有很大的相似性,这也是大量普通网民被骗的原因。针对这一特点,事先对需要保护的合法 网站进行特征提取,将其存入反钓鱼数据库。然后利用反钓鱼代理中基于EMD算法对邮件 中的链接的网站进行相似度计算和分类,如果相似度超出一定的域值则进行钓鱼网站的报 告。将之应用于邮件服务器上,可以对钓鱼邮件进行监控。然而这种方法只能针对通过邮 件传播的非法链接,而且对来自于合法网站的被篡改网页缺乏防御能力。4、可视化的服务器身份验证。当用户首次注册在线服务时,被要求选择一个为Web 站点和用户所共知的惟一图像。当用户登录并提交其用户名时,站点会显示用户曾选择的 图像来帮助用户鉴别服务器。如果显示图像和以前选择的图像相吻合,接着用户输入其口 令。这样可以促使用户自动识别WEB站点,用户被要求记住站点和图像的关联,不过这种方 法要求Web服务器和SSL协议都要做一些改动。另外,还有一些在合法网站合法页面上嵌入非法的隐藏代码的钓鱼攻击,需要结 合网页防篡改技术进行防御。
发明内容
本发明针对现有技术中存在的需要依赖现有钓鱼攻击特征及钓鱼网站数据库而不能防御未知的新型攻击的问题,提出一种可视化与代码检测结合的网页防伪方法,可以 有效的阻止来自于合法网站的被非法篡改的仿冒页面以及提醒用户所浏览网页为来自于 其他URL的仿冒网站。一种网页防伪方法,包括将网站中的动态网页静态化,并向其中嵌入隐藏的数字签名;用户在第一次浏览该网站时,自动下载安装该网站提供的浏览器插件,并在安装 过程中输入个人信息;之后用户每次浏览网页时,该插件检测网页是否来自于该网站,并对来自该网站 的网页检测数字签名,判断是否为原始网页,将非原始网页直接拦截,对原始网页则在浏览 器显示页面的同时显示安装插件时用户输入的个人信息;浏览器插件包括网页源地址检测程序、网页数字签名检测程序、用户个人信息的 存取及显示程序以及解密数字签名用的公钥;浏览器插件检测网页的具体方法包括判断浏览器请求的网页是否来自于该网 站,对非来自于该网站的网页直接放行,在浏览器中正常显示,对于来自该网站的网页检测 数字签名;根据数字签名,判断网页是否为原始网页,将非原始网页直接拦截,产生警报并 向该网站发送报告;对来自该网站的原始网页,则在浏览器显示页面时,由该浏览器控件在 页面上部添加一信息栏,显示安装插件时用户输入的个人信息;检测网页数字签名的具体方法包括检测网页是否含有数字签名的隐藏TAG,若 发现某网页不含有该隐藏TAG,说明网页被攻击者篡改,拦截该网页;提取网页中的隐藏 TAG,使用公钥解密,得到原网页数字摘要;使用相同的函数计算现网页数字摘要,与原网页 数字摘要对比,不相同时说明网页被篡改,相同时说明网页安全,是原始网页。在这种情况下,若来自于原网站的网页被非法篡改,植入恶意代码,就可以通过数 字签名检测出来;而对于来自于其他URL的仿冒网站虽然被浏览器插件放行,但它不可能 正确的显示出用户输入的信息,用户欲登陆该网站时发现个人信息没有显示,则说明当前 网站是一个仿冒的钓鱼网站。本发明实施例通过对数字签名的检测和可视化显示对用户的提醒,可以有效拦截 来自于原网站的被攻击者非法篡改的网页以及及时辨认出仿冒该网站的钓鱼网页,防止用 户向钓鱼网站输入重要的财务信息。由于本发明实施例采用的是将网页静态化后再发布的 方法,不仅便于数字签名的嵌入,而且能够显著减轻网站负载,并充分发挥本地缓存、代理 缓存的优势,因此还能有效提升动态网站性能。由于相应网页的数字签名直接嵌入到静态 网页中,具有很强的灵活性,只要用户安装有该网站提供的浏览器插件,就可以检测网页的 安全性,并采取相应安全措施。另外,由于用户输入的个人信息也不是保存在服务器而且保 存在本地磁盘的加密文件上,攻击者不易窃取个人信息,也就不可能伪造出可以正确显示 个人信息的钓鱼网站。而且,在这种情况下,网站组织者可以不改变原有网页的结构和相应 的安全协议,只需要生成相应插件即可。
图1为本发明实施例应用场景图;图2为本发明实施例总体流程示意4
图3为本发明实施例静态网页中嵌入数字签名流程示意图;图4为本发明实施例带数字签名的网页检测流程示意具体实施例方式针对现有技术中存在的需要依赖现有钓鱼攻击特征及钓鱼网站数据库而不能防 御未知的新型攻击的问题,提出一种可视化与代码检测结合的网页防伪方法,通过数字签 名的检测及可视化用户信息的显示判断,可以及时有效的拦截及发现针对某网站的钓鱼网 页与钓鱼网站,而不需要对比钓鱼数据库,从而解决了上述问题。如图1所示,本发明实施例的应用场景,包括该网站服务器端的网络装置架构与 客户端主机。服务器端的网络装置包括维护终端、网页数据库、动态网页服务器、网页快照 服务器、对外发布服务器及控件更新服务器。服务器端网络装置架构中的服务器、数据库均指逻辑服务器,可以是物理机器、虚 拟机或程序模块。维护终端、网页数据库、动态网页服务器、网页快照服务器及控件更新服务器均处 于企业内部网中,采取隔离措施,避免被攻击者直接访问,以策安全。维护终端供企业内部工作人员对网站内容进行更新维护。网页数据库用于保存各种网页信息,如网站更新信息等。动态网页服务器用于生成动态页面。网页快照服务器用于将动态页面转化为静态页面,同时向其中嵌入数字签名。
对外发布服务器用于对外发布静态网页和浏览器控件。服务器端的网络装置架构工作流程包括内部网维护过程,企业内部工作人员使用维护终端更新网站信息,网站更新的内 容存入网页数据库中,动态网页服务器从数据库中提取数据,为企业内部人员提供实时的 动态网页显示,以方便管理员修改和查看。静态网页发布过程,网页快照服务器从数据库中提取更新数据,同时运用相应的 网页缓存快照程序,通过生成网页快照的方式,把PHP等脚本动态产生的网页,以HTML静态 页面的形式固定下来,并在网页代码中嵌入了隐含的数字签名。该数字签名与网页文件内 容、大小、更新时间都有关。攻击者也许能够找到漏洞篡改网页,但无法伪造数字签名。浏览器控件发布过程,控件更新服务器生成用户下载用的控件,并上传至对外发 布服务器发布。控件中包含了用户解密数字签名用的公钥。根据网站需要,控件更新服务 器对控件进行更新。如图2所示,本发明实施例从服务器端生成页面到客户端主机检测网页的总体方 法步骤包括步骤201、将网站中的动态页面静态化,并向其中嵌入该网页的数字签名,得到带 数字签名的静态页面。步骤202、将带有数字签名的静态网页上传给对外发布服务器,发布给外界 Internet ο步骤203、用户欲访问该网站,点击指向该网站的超链接或直接输入网站URLJi 外发布服务器收到链接请求,首先判断该用户主机是否第一次访问该网站。若是第一次访问网站,则将该网站专用的浏览器插件与静态页面一同发送给用户,用户浏览器自动下载 该插件,在安装插件的过程中,要求用户输入其个人信息,比如用户姓名、性别、城市、座右 铭等任意一个或任意组合。若非第一次访问网站,则直接检测网页是否来自该网站合法的 服务器。步骤204、检测网页是否来自于该网站合法的服务器,若是来自于该网站的网页, 则提取数字签名检测网页的原始性,若不是来自于该网站的网页,直接放行,浏览器正常显 示网页。步骤205、对于来自该网站的网页,通过数字签名检测网页是否被篡改。步骤206、若发现页面被篡改,则浏览器插件直接将网页拦截,不为用户运行代码, 同时发出警报,并且向访问网站发送报告,提醒该网站存在安全隐患。步骤207、若经检测发现页面是原始页面,则运行页面代码为用户显示网页。同时, 插件在浏览器中显示页面上方添加一条信息栏,为用户显示安装插件时输入的个人信息, 比如“来自XX城市的XX先生,欢迎您访问XXX网站”。其中,步骤204至步骤207均为浏览器控件所做工作。步骤203中,用户所下载插件应已事先通过安全软件的认证。用户输入的个人信 息经加密后保存在本地磁盘文件中,只有该插件可以读取。步骤204中,检测网页是否来自该网站的方法涉及到防钓鱼技术中的服务器防伪 技术,属于公知技术,不再解释。步骤205中,因为用户访问的网站本身也有可能受到攻击者攻击,比如说在原有 页面中嵌入隐藏的代码,为用户显示正常页面的同时,在后台开启另一个页面,上面包含了 木马程序,自动盗取用户信息等,所以需要检测网页的原始性。结合步骤204与步骤207,可以看出,若是来自于源网站的原网页,必然在显示的 时候会一同显示用户的个人信息。因为该浏览器插件是对用户要求浏览器显示的每一个网 页都进行源地址检测,而除去该仿冒该网站的钓鱼网站,还有其他许多正常的网站,所以步 骤204中对每一个不是来自于该网站的网页都放行,正常的运行其代码。但是,若是该网站 的钓鱼网站,则不可能在显示钓鱼页面的同时,正确地显示用户输入的个人信息,而且每个 用户的个人信息不同,想要连同显示个人信息的信息栏一同仿冒也是不可能的。所以,若用户发现访问该网站时网页上方没有显示出个人信息,则说明该网站是 钓鱼网站,应该立刻关闭页面,采用杀毒软件进行全盘杀毒,并将该仿冒网站网址加入浏览 器安全设置中受限制的站点中。另外,由于用户的个人信息是保存在用户的本地硬盘中,攻击者想得到这些信息 也是不容易的。 如图3所示,本发明实施例中向静态网页嵌入数字签名等加密信息的方法步骤包 括步骤301、网页快照服务器提取数据库中信息,翻译、解析PHP等动态网页文件,将 生成的结果存入静态HTML文件中,假设生成的文件为Fweb。具体的网页静态化过程属于公 知技术,这里不再进行叙述。步骤302、对生成的HTML文件选用某一 HASH函数进行运算,生成唯一的数字摘要 h,即 h = H(Fweb)。
步骤303、将数字摘要h使用私钥加密,得到加密后的数字签名E (h)。与该私钥对 应的公钥通过安全途径加入到下载用的浏览器插件中。数字签名加密技术属于公知技术, 这里不再详述。步骤304、将数字签名E(h)作为一个TAG嵌入到静态网页Fweb中,得到带数字签 名的静态网页SignFweb,数字签名是网页SignFweb中的隐藏信息。步骤305、将带有数字签名的静态网页SignFweb上传到对外发布服务器以供发布。步骤302中,针对网站的具体情况,如网页大小,服务器运算能力等,确定具体的 HASH算法。比如,在综合考虑摘要位数、算法安全性、运算速度等的基础上,IOM以下的网页 采用SHA-I算法,IOM以上的网页采用MD5算法,在速度与安全性中保持一个均衡。步骤304 中,假设加密后的数字签名 EQi)为(^a7c58blebd2h96554879694b091e 60411cc4dea8652bb807234fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcef62b89fde4 d8e7bale6cc9ea24850478cll742f5cfald23fe22fe8bfbal^e。则在原静态网页 HTML 代码后 添加隐藏TAG后得到如下形式的静态网页<html><head><title> 静态网页 </title></head><body>........</body></html>< !—<digitalsign>02a7c58blebd22a96554879694b091e60411cc4dea8652bb807234f a06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcef62b89fde4d8e7bale6cc9ea24850478 cll742f5cfald23fe22fe8bfbab5e</digitalsign>—>在检测数字签名的过程中,则采取相应程序根据〈digitalsign〉标签中的内容将 加密后的数字摘要信息提取出来。如图4所示,本发明实施例中检测静态网页数字签名的方法步骤包括步骤401、浏览器接收到来自与该网站的静态HTML文件,首先检测该文件是否含 有隐藏的TAG,若发现隐藏的标签信息丢失,则说明网页的签名部分被攻击者恶意删除,网 页被篡改,插件立即拦截该网页,发出警报并向该网站发送报告。步骤402、检测用户请求的HTML文件SignFweb’,将文件中嵌入的隐藏TAG分离出 来,得到静态HTML文件Fweb’与数字签名E (h)。步骤403、使用浏览器插件中包含的公钥对提取出来的加密TAG解密,得到原本的 数字摘要h。并对得到静态HTML文件Fweb’进行与上传过程中相同的HASH运算,得到新的 数字摘要h’ = H (Fweb')。步骤404、检测h与h’是否相等。若h = h’,说明网页还是快照服务器生成的原 始网页,没有被攻击者恶意篡改过,可以安全显示。若h兴h’,则说明网页已经被修改,代码 中含有不安全的内容,马上拦截该网页,发出警报并向源网站发送报告。步骤404中,由于生成的数字摘要与网页的大小、内容都有关,HASH函数生成的散列值具有唯一性,哪怕只改变了页面中一个字符,生成的散列值也不相同。甚至网页内容不 变,但更新时间发生变化,摘要信息就会与数字签名TAG中的摘要信息不相符。
如果攻击者将网页中的数字签名分离,用相同的HASH函数生成数字摘要嵌入文 件伪装数字签名,也是不成功的。因为攻击者没有给数字签名加密用的私钥,这样在私钥公 钥不对称的情况下,解密出的数字摘要也不会与伪装的数字摘要相同,同样说明网页已经 被篡改。所以攻击者也许能够找到漏洞篡改网页,但无法伪造数字签名,从而篡改过的网页 也一定可以被鉴别出来。
权利要求
1.一种网页防伪的方法,其特征在于,该方法包括将网站中的动态网页静态化,并将经过私钥加密后的数字摘要包装成为一个隐藏的 TAG,嵌入原网页代码中;用户在第一次浏览该网站时,自动下载安装该网站提供的浏览器插件,并在安全过程 中输入用户个人信息;之后用户每次浏览网页时,该插件检测网页是否来自于该网站,并对来自该网站的网 页检测数字签名,判断是否为原始网页,将非原始网页直接拦截,对原始网页则在浏览器显 示页面的同时显示安装插件时用户输入的个人信息;浏览器插件包括网页源地址检测程序、网页数字签名检测程序、用户个人信息的存取 及显示程序以及解密数字签名用的公钥;浏览器插件检测网页的具体方法包括判断浏览器请求的网页是否来自于该网站,对 非来自于该网站的网页直接放行,在浏览器中正常显示,对于来自该网站的网页检测数字 签名;根据数字签名,判断网页是否为原始网页,将非原始网页直接拦截,产生警报并向该 网站发送报告;对来自该网站的原始网页,则在浏览器显示页面时,由该浏览器控件在页面 上部添加一信息栏,显示安装插件时用户输入的个人信息;检测网页数字签名的具体方法包括检测网页是否含有数字签名的隐藏TAG,若发现 某网页不含有该隐藏TAG,说明网页被攻击者篡改,拦截该网页;提取网页中的隐藏TAG,使 用公钥解密,得到原网页数字摘要;使用相同的函数计算现网页数字摘要,与原网页数字摘 要对比,不相同时说明网页被篡改,相同时说明网页安全,是原始网页。
2.如权利要求1所述的方法,其特征在于,所述个人信息为用户姓名、性别、城市、座右 铭等任意一个或任意组合。
3.如权利要求1所述的方法,其特征在于,所述个人信息经加密后保存在用户本地磁 盘,只有该浏览器插件可以读取。
全文摘要
本发明公开了一种网页防伪的方法,该方法包括将网站中的动态网页静态化,并向其中嵌入隐藏的数字签名,当用户在浏览网页时,自动下载该网站提供的浏览器插件,并在安装插件过程中输入个人信息;该插件会检测网页是否来自于该网站,并对来自该网站的网页检测数字签名,判断是否为原始网页;对于非原始网页,插件将其直接拦截,并发出警报,而对原始网页则在浏览器显示页面的同时显示用户输入的个人信息,用户欲登陆该网站时发现个人信息没有正确显示,则说明当前网站是一个仿冒的钓鱼网站。通过本发明解决了现有技术大多依赖于已知规则库,而对新型钓鱼攻击及最新钓鱼网站缺乏防御能力的问题。
文档编号G06F17/30GK102110198SQ200910244250
公开日2011年6月29日 申请日期2009年12月28日 优先权日2009年12月28日
发明者包一兵, 杜晓峰, 赵晨, 辛阳 申请人:北京安码科技有限公司