热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

校内无法访问IEEE等部分数据库的解决方案

解决了校内无法访问IE

今天从校内访问IEEE等部分数据库时报502错误,无法访问了。左上角还有一把红锁,提示不安全的访问。动手解决一下这个问题!

502

原因

可能部分同学还有印象,图书馆在5月25号左右升级了部分数据库的访问方式,当时访问IEEE和万方等部分数据库的时候,会跳转一个“ 图书馆电子资源远程访问云系统”,然后就会要求安装一个根证书

此处假装有图.jpg
(因为学校的服务器挂了,所以没办法截图了=_=)

首先要说明的是,“安装并信任根证书”这件事情是存在很大的安全隐患的,具体原因后面再谈。

经过分析,图书馆是将内网DNS服务器中IEEE和万方等数据库的解析指向了校内服务器202.119.70.14
,然后再通过该代理服务器访问数据库,而不是之前的直接访问。

被劫持的DNS解析
目的地为校内服务器

这次无法访问是由于校内的代理服务器出问题了(并不是IEEE出了问题),因此我们只要将解析重新指向正确的官方服务器,绕过校内服务器就可以解决该问题。

解决方案

我们可以采用修改HOSTS文件,使被劫持的数据库强制解析到正确的服务器即可。如果动手能力强,也可以通过搭建个人DNS服务器等高端操作来绕过不能用的代理服务器。

自动处理

通过一个简单的批处理文件,可以自动添加正确的解析到HOSTS文件,同时可以删除 polyinfo 的根证书。

点击阅读原文或手动复制下方链接到浏览器,通过 Github 下载自动修复文件Unblock_DNS_Hijacking_v0.1.bat

https://github.com/PaimonL/Unblock-DNS-Hijacking-of-NUAA-Lib/releases/


如无法访问Github,可通过蓝奏云下载:https://wwa.lanzoui.com/b00oobyti(密码:fnsb)

Github

下载后运行,脚本会请求管理员权限,请授予。

先选择0,会清除polyinfo根证书(Firefox用户需要按照手动处理中的对应步骤多做一步),该操作会自动下载Windows的证书管理工具Certmgr.exe,如遇安全软件拦截,请放心放行。如不放心,也可手动下载Certmgr.exe并放置到脚本同目录下。

再选择1,会添加正确的解析到HOSTS文件,并刷新DNS缓存。

处理结束,重新访问IEEE即可发现恢复正常。

如果需要恢复系统初始的HOSTS文件,重新运行选择菜单2即可。

手动处理

解除DNS劫持

首先,恢复数据库的DNS解析到其对应的官方网站。

使用阿里公共DNS223.5.5.5
或腾讯公共DNS119.29.29.29
可以查询到正确的IP地址。

使用阿里公共DNS获取的解析结果

IEEE由于部署了CDN,因此有多个IP,有的IP访问可能较慢,选择一个较快的即可。

将查询到的IP写入系统 HOSTS 文件中。除了 IEEE 和万方,还找到了其他几个被劫持的数据库,一并恢复即可,下面是参考示例。

23.192.245.54 ieeexplore.ieee.org
23.64.185.112 www.ieee.org
122.115.55.6 wanfangdata.com.cn
122.115.55.6 www.wanfangdata.com.cn
52.83.120.240 vers.cqvip.com
103.242.173.18 airitilibrary.cn
103.242.173.18 www.airitilibrary.cn
140.234.254.11 search.ebscohost.com
140.234.252.103 ebscohost.com

修改 HOSTS 文件后,打开 Powershell 或 CMD,运行ipconfig flushdns
来刷新DNS缓存。

删除根证书

然后,还要干掉 polyinfo 的根证书,排除这颗隐藏的定时炸弹。

在系统证书管理器certmgr.msc
中,找到 polyinfo.com 根证书,将其删除即可。

如果安装了 Firefox 浏览器,还需要在地址栏中打开about:preferences#privacy
,点击“查看证书”,在“证书管理器-服务器”中将polyinfo.com证书移除。

Firefox证书管理器

解决完了问题,我们来看看为什么说“安装并信任根证书”这件事情是存在很大的安全隐患的

什么是根证书以及信任根证书的风险

什么是根证书

什么是根证书呢?WikiPedia 的解释是这样的。

在密码学和计算机安全领域,根证书(root certificate)是属于根证书颁发机构(CA)的公钥证书,是在公开密钥基础建设中,信任链的起点。证书颁发机构的角色有如现实世界中的公证行,保证网络世界中电子证书持有人的身份。具体作法是透过中介证书,利用数字签名为多个客户签发多个不同的终端实体证书,形成一个以其根证书为顶层的树状结构,在此传递关系中所有下层证书都会因为根证书可被信赖而继承信任基础。

简单来说,证书是当前互联网建立信任关系的基础,可以保证信息的保密性和不可篡改性,保证网络中的通信过程是安全的。

根证书可以决定哪些证书被操作系统或浏览器信任,“在公开密钥基础建设担任重要角色”。知乎用户@Ivony在2013年的一个回答通俗解释了证书和根证书的作用:

证书这货到底是什么东西:


在早期的互联网时代,我们的网站、软件,都是依赖于我们自己的信任而使用的。

例如我有一套游戏的安装程序,你从我这边拷贝过去,然后安装玩。你之所以认为这个程序能够安装游戏而不是把你的硬盘格了,完全是依赖于我告诉你的。

网站也是同理,我知道http://cmbchina.com这个地址是招商银行,是因为招行营业厅的MM告诉我的,我信任营业厅的这个MM。

这种信任是非常薄弱和糟糕的,病毒、木马就是在这种环境下肆虐横行。你从我这边拷贝的游戏安装程序,可能已经被病毒侵袭,它当然还是可以安装游戏,但同时也会安装病毒!

营业厅的MM有可能是招行的员工,也可能是个卖保险的。尽管她大概不会给我一个钓鱼的网站,但是经常会给我推销一些完全用不到的保险啥的。


在继续讨论之前,我要引入一个新的概念,信任链


拿刚才的例子来说,你从我这边拷贝了一份游戏的安装程序。信任链是这样的:
你信任我,我是你的朋友,我没必要害你
我信任卖光盘的,他是个卖光盘的,没必要给我装病毒
卖光盘的信任刻光盘的
刻光盘的信任下载的网站
下载的网站信任上传的用户
上传的用户信任分发该份拷贝的盗版组织
…………

很显然,这么长的一个信任链,中间出现问题的可能性是非常大的。可以说,信任链越长,就越不安全

同时,因为这一份程序在这么多人之间拷贝分发,任何一个环节感染病毒,都会导致下游所有的环节感染病毒。


证书是如何解决这两个问题的


证书有两个功能:
1、身份标识,证明这个网站/软件/其他的发布者是谁(如微软、UBI、Google、招行)。
2、数字签名,确保这个网站/软件/等等的内容没有被任何人篡改。

第一个功能解决了信任链的问题,通过证书,我们的信任链可以变得非常的简单:用户 信任 发行者。
例如一个英雄无敌V的游戏安装程序,如果它是使用正确的UBI的证书签名的,那么我就可以完全的信任这个程序,可以给我安装一个英雄无敌V的拷贝。

第二个功能则杜绝了在分发过程中被篡改,植入病毒和木马的可能。
同样是这个英雄无敌V的游戏安装程序,只要他是被正确的UBI的证书签名了,那么不论我是从盗版光盘上拷贝还是从某个不知名的下载网站下载的,我都可以放心的知道,这个和UBI发售的光盘上的东西是一模一样的。


那么,我是怎么知道这个证书是UBI的呢?换言之,我是怎么知道哪个证书是正确的UBI的证书,而不是隔壁王二狗子自己冒充的呢?


这就依赖于证书颁发体系了。

几乎网络上所有的证书(除去用于个人用途的自签名证书以及根证书颁发机构的证书),都是由某个证书颁发机构颁发的。证书颁发机构负责核实证书申请者的真实身份(例如我们公司网站申请SSL证书就需要提交公司营业执照的影印件,还有证明自己拥有网站域名的材料),以及吊销被泄漏和滥用的的证书。

也就是说证书颁发机构,就是证书所有者身份的确认人。一旦你信任了某个证书颁发机构,就等于信任了这个证书颁发机构所颁发的所有证书的身份确认信息!
操作系统只会把确认好的身份信息展示给你!


神马是根证书颁发机构?


证书颁发机构和域名一样,是一个树状的结构,全球有为数不多的几个根证书颁发机构。这些根证书颁发机构轻易不颁发证书,因为一旦根证书颁发机构的证书被泄漏,所有直接间接的证书,都会受到严重的影响。

所以,根证书颁发机构一般授权二级证书颁发机构颁发证书,一旦信任一个根证书颁发机构,等同于信任其下所有颁发的所有证书,以及其授权的二级证书颁发机构颁发的所有证书

信任根证书的风险

那么,安装并信任了不应被信任的根证书有什么风险呢?

风险之一在于“中间人攻击”(MITM)。

观察仔细的同学可能曾经注意到,使用HTTPS协议访问受信任的网站时,浏览器地址栏的最左侧会有一个小绿锁,这说明当前的访问是安全的,是经过SSL加密的,不会有人获取到你的通信数据,不被任何第三方窃取和监听。

连接是安全的

而MITM是一种常见的网络入侵手段,主要目的是窃取HTTPS传输过程中的内容。

中间人攻击在计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容

具体的做法是通过网络劫持,在用户与目标网站之间加设代理服务器。由于HTTP协议传输过程中是不加密的,所以可以窃取所有传输的资料并进行篡改。
但由于HTTPS协议使用了证书对传输过程进行了加密,并且对服务器进行身份验证,所以简单的网络劫持加设代理便宣告无效。
但如果此时,由某个用户信任的根证书颁发机构,给这个加设的代理服务器进行身份认证,并提供传输加密。那么用户通过HTTPS协议访问网站时不会有任何的异样,而以为是安全的。

一旦MITM攻击成功,那就意味着所有的网络流量都不应被信任,都有可能被第三方监听甚至篡改。也就是你访问的网站的所有具体内容都会被第三方看到,甚至可以修改通信内容,返回错误的、广告或者恶意内容。

另一种风险是可以用于钓鱼网站的伪造。

证书可以保证你访问的网站是正确的网站,而不是钓鱼或假冒站点,因为网站的证书是无法被伪造的,如果被伪造,浏览器就会提示不安全。

访问被劫持后的IEEE,浏览器提示不安全

但是,如果信任了某个根证书颁发机构之后,再由该机构签发伪造的证书,那么浏览器便会认为该钓鱼网站是受信任的,不会有任何风险提示。

当然,证书的应用远不止网站,其还可以用于邮件、驱动签名、软件分发等各种方面。

例如在安装软件并请求管理员权限时,系统会显示发布者信息,校验发布者是否可信,安装包是否被篡改等。我们可以点击“显示证书信息”来查看证书详情。如果信任了某个根证书后,那么该证书链下的所有证书都会被信任,可以实现篡改软件或驱动安装包,植入恶意代码而仍被系统信任。

微信安装时的提示
腾讯的证书

图书馆的根证书

先来看看图书馆让我们安装的根证书到底是个啥东西。

为了得到这个问题的答案,我冒险安装了一下图书馆的根证书,来看一看此次被要求安装的根证书到底请求了什么权限。

安装之后,打开系统证书管理器certmgr.msc
,展开“受信任的根证书颁发机构”,找到名为 polyinfo.com 的根证书

可以看到,其预期目的是“所有”,那么这个“所有”中包括什么呢?来仔细看一看。

Polyinfo根证书

可以看到,该证书除了服务器和客户端身份验证之外,还请求了许多不该请求且十分危险的权限,包括 Windows 的各种硬件驱动程序验证、BitLocker 和 Windows Hello 等加密验证、各种密钥验证、甚至 Windows 更新验证、内核模式代码签名等权限,已经远远超出了我们需要的“访问图书馆电子资源库”所需要的权限范围

这也是为什么一定要清除这个根证书的最根本的原因。

在获取了所有权限之后,危险性就例如:Windows系统的某个系统补丁、系统更新包经过某人恶意修改之后,签上 polyinfo 的证书,那么所有信任了 polyinfo 根证书的计算机都会认为该补丁是安全的,操作系统将无从得知补丁包已被篡改。当然假设的这种事情也不一定是 polyinfo 亲自做的,但是由于 polyinfo 是根证书颁发机构,因此其下的所有签发的证书都会被信任,而因为证书私钥泄露造成灾难性后果在安全领域也不是少见的事情。

证书拥有的权限

好奇心又促使我去查了一下该证书的颁发机构 “polyinfo” ,百度可以检索到,该公司全名叫“北京恒通博联科技有限公司”,公司主页 http://www.polyinfo.net.cn/
。公司介绍为:

北京恒通博联科技有限公司是一家高新技术企业,拥有世界领先的网络通讯协议识别(DPI)、互联网数据采集、数据挖掘、海量数据分析三大技术,公司的业务主要集中在网络流量分析控制和用户行为分析控制、舆情监测、WEB页面信息推送、WEB行为模拟、IP电话监测、共享接入监测、P2P监测及控制、网络攻击溯源、海量数据存储与统计分析、复杂通讯协议(具有反识别能力)的识别、新媒体通信技术的产品销售和服务提供。

看起来是一家数据采集、数据挖掘和数据分析的公司。

我们用的正是其产品介绍中提到的“图书馆电子资源远程访问云系统”,这个产品的介绍如下。

对于学校而言,除了要保护信息安全的同时还需要实时监控在校师生的上网行为通过分析他们的上网行为数据抓取特征,从而了解师生的生活状态及兴趣爱好,所以关于Https网站的相关数据一般的采集引擎都采集不到的,因此,我们针对这一情况,通过代理的方式,用户先访问到图书馆电子资源远程访问系统设备,由代理设备代替用户去访问实际的https电子资源网站。这样就可获取https协议这部分流量的相关内容,结合我公司的图书馆产品从而分析出用户想要的行为数据,方便用户的访问及统计行为数据,为将来的智慧图书馆及推荐系统提供相应的数据。

网站的产品介绍

通过介绍可以看到,其工作原理正是我们前面提到的MITM,通过代理服务器访问数据库。因为流量已经被代理服务器获取,因此必须要信任根证书才能获得浏览器的信任。但是,其介绍中提到的“实时监控在校师生的上网行为,通过分析他们的上网行为数据抓取特征,从而了解师生的生活状态及兴趣爱好”,让事情变得有趣了起来……

按照同样的方式,当然不仅仅可以让学术数据库的网站通过代理服务器,通过修改DNS解析,可以让任何网站的流量都经过代理服务器,由于之前已经信任了根证书,因此整个行为都会被浏览器认为是可信的,不会有任何异常。

当然,也只是存在这样的风险隐患,目前并没有任何证据表明我们的行为数据已经被分析。

题外话,还有一件有意思的事情,在访问该公司官网的时候,其网站的js被火绒报毒了,但是由于不懂js,所以也无法具体分析其植入的是什么风险或恶意代码,有兴趣的同学可以去看看。

http://www.polyinfo.net.cn/templets/36/js/jquery.easing.1.3.js
http://www.polyinfo.net.cn/templets/36/js/jquery.db_tabmotionbanner.min.js
http://www.polyinfo.net.cn/templets/36/js/jquery-1.8.3.min.js
http://www.polyinfo.net.cn/templets/36/js/jquery.animate-colors-min.js

被火绒报毒

更多关于因为根证书引起的安全问题,有兴趣的同学可以去检索了解 “CNNIC 根证书”“支付宝私自植入根证书”等事件,CNNIC 和支付宝的证书权限跟 polyinfo 相同,都是,由于用户范围广,因此受到了大规模的质疑和反对,最终CNNIC根证书被Mozilla、Google和微软吊销,支付宝如今也不再私自安装根证书



推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
author-avatar
天津市翔瑞特制冷设备_208
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有