企业形象网站建设解决方案   |   集团公司网站建设解决方案   |    协会门户网站建设解决方案
您所在位置:首页 > 建站知识

网站优化

Website development

翻墙软件 GoAgent 的安全为难题分析

发布时间:2014-06-15 11:41:01

TAGS:网站SEO

GoAgent 利用 Google AppEngine (GAE) 来绕过 GFW的封锁,以免费、快速、稳定的优点深受网民的欢迎 但是,GoAgent的安装和配置中存在两点严重安全风险的难题却鲜为人知 这两点安全风险都或许被攻击者利用进行“中间人攻击(man-in-the-middle attack)” 来窃取 GoAgent客户的网络帐号密码等敏感信息,其概括描述如下4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

GoAgent 在启动时会尝试自动往系统的可信根证书中导入一个名为 “GoAgent CA”的证书 由于这个证书的私钥是公开的,导致任何人都可以利用这个私钥来伪造任意网站的证书进行HTTPS 中间人攻击 即使在不开启 GoAgent时,这种攻击的风险仍然存在 换而言之,一旦这个证书被导入,攻击者可以用此绕过几乎所有网站的 HTTPS 保护 GoAgent 本身对 TLS证书的认证存在难题,而且默认时不对证书进行检查,这导致在使用 GoAgent时存在 HTTPS 中间人攻击的风险4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

事实上曾经有客户在 GoAgent主页上的难题跟踪列表中指出了这两个安全难题(见以下链接),但既没有修复也没有广泛公开,多数客户,尤其是非中文客户或许并不知情 下面是这两个难题的详细解释4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://code.google.com/p/goagent/issues/detail?id=110914PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://code.google.com/p/goagent/issues/detail?id=8031 GoAgent4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

导入公开私钥根证书的难题4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

GoAgent 在启动时会尝试在系统中导入一个根证书来避免访问 HTTPS网站时的证书报警,但在默认情况下所导入证书的私钥是公开的 因为私钥公开,任何人可以作为“GoAgent CA” 来签发任何网站的证书 即使在 GoAgent没有启动甚至卸载的情况下,这个公钥仍会遗留在系统中 在有些系统中,GoAgent所导入的根证书不仅被 GoAgent默认使用的浏览器信任,其他的浏览器也或许会信任这一根证书,从而受到这一难题的影响4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

GoAgent 所导入的这一公开私钥根证书的指纹是4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

SHA1 Fingerprint=AB:70:2C:DF:18:EB:E8:B4:38:C5:28:69:CD:4A:5D:EF:48:B4:0E:33 MD5 Fingerprint=56:B1:20:86:1B:0A:B0:61:38:00:1B:C3:67:CF:0C:CC4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

包含这一 “GoAgent CA” 证书以其私钥(文件中 -----BEGIN RSA PRIVATEKEY----- 位置)的文件 URL 为4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://github.com/goagent/goagent/blob/c4386808ea943e2ebed25f1e5264943354e3f9cb/local/CA.crt4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

根据版本信息,这一证书和私钥从 2011 年 6月甚至更早的时间以来一直保持不变4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://github.com/goagent/goagent/blob/fa9959e577395e48a477fd5495afbc2363a51baa/local/CA.key4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

GoAgent 主要包含两个部分 一个在客户计算机上运行的本地代理程序proxy.py,以及一个在 GAE 上运行的远程代理程序gae.py4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://github.com/goagent/goagent/blob/c4386808ea943e2ebed25f1e5264943354e3f9cb/local/proxy.py4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://github.com/goagent/goagent/blob/c4386808ea943e2ebed25f1e5264943354e3f9cb/server/gae/gae.py4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

安装时,客户必需上传 gae.py 到 GAE 客户浏览器通过设置一个本地代理将 HTTP/HTTPS 请求转发到proxy.py,再由 proxy.py 和 gae.py进行通信4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

默认情况下,GoAgent 在启动时试图导入上述 GoAgent CA 证书 具体的代码为proxy.py 中的 CertUtil.import_ca4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://github.com/goagent/goagent/blob/c4386808ea943e2ebed25f1e5264943354e3f9cb/local/proxy.py#L3374PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

这个函数会根据客户操作系统通过不同的方式尝试导入证书,在某些情况下会必需管理员(root/administrator)权限 在 Windows 下,这个函数会调用CertAddEncodedCertificateToStore 这一 API 在 OS X下,会尝试执行系统命令4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

security find-certificate -a -c "GoAgent" | grep "GoAgent" >/dev/null || security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "pwd/CA.crt"4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

在 Ubuntu 下,会拷贝证书文件到/usr/local/share/ca-certificates 然后执行update-ca-certificates 在其他 GNU/Linux发行版中,会尝试执行以下命令更改 NSS 数据库4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

certutil -L -d sql:$HOME/.pki/nssdb | grep "GoAgent" || certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "GoAgent" -i "pwd/CA.crt"4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

由于 Firefox 采用了不同的方式存储证书,这一自动安装过程不会导入 GoAgentCA 证书到 Firefox 中 但是 GoAgent 的安装指南和 FAQ中说明了如何手动导入这一证书4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://code.google.com/p/goagent/wiki/InstallGuide4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

https://code.google.com/p/goagent/wiki/FAQ4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

这一证书随后被 proxy.py 用来作为 HTTPS中间人来避免浏览器在访问 HTTPS 网站时出现报警 GoAgent的工作原理如下 首先 proxy.py 将浏览器的 HTTP请求进行编码并转发给 gae.py,gae.py完成收到的请求然后将结果进行编码后返回给 proxy.py,后proxy.py 将结果转发给浏览器来完成 “翻墙” 过程 由于 GAE 的限制 (免费 app 无法使用 socket 接口),对于 HTTPS请求,proxy.py无法进行透明转发,只能作为中间人先和浏览器完成连接,然后获得其中的明文请求以后在转发给gae.py 当收到 CONNECT请求(这意味着浏览器正在浏览一个 HTTPS 网站), proxy.py首先利用 GoAgent CA签发一个假的证书来和浏览器完成握手,从客户的角度,所有的 HTTPS网站的证书全是由事先导入的 “GoAgent CA”认证的,所以不会报警 有些浏览器会对少数网站的证书进行特别的检查(CertificatePinning),这种情况下 "GoAgent CA”所签发的证书或许会触发证书不安全的报警 GoAgent 的这种工作方式导致 HTTPS不再是浏览器到网站的端到端安全通信,而变成了 proxy.py 到GAE,以及 GAE 到网站两段独立的 HTTPS 连接,GAE能够看到请求和应答的明文4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

 4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

 4PF上海网站开发,上海网站建设,网站设计,网站制作-特马QQ网站开发公司

原创不易,未经授权,严禁转载

原文地址:/web/exp/5110.html

客户评价

更多+
  • 感谢特马资料qq群,系统提前完成,在整个项目周期内,特马资料qq群对待我们并不像是对待客户,更像是朋友一样,每一次,都能以专业的角度向我们提出更合理、更有效的解决方案,并快速、细致地完成我们的每一个需求,再次感谢以至诚之心做事的特马资料qq群团队。

    潘涛

  • 我是东方龙马集团,在云智家做了2个企业官网,服务态度超级好。假如想做网站,选择他家一定不后悔。性价比高,服务态度好。值得你的信赖!

    谭娇

  • 技术好,设计精良,操作便利,很专业!配套的服务和后续的服务都很好,网站封面堪称精品,运行方便,后台操作的简单。技术还会耐心教我,很好的特马资料qq群(上海)科技有限公司,建站很不错的。

    陈曦

  • 不错,价格比较合适,要点是响应速度蛮快,有什么难题都会马上给你解决,公司很满意,因为他们全是针对每个项目建了相应的讨论组,有难题可以再里面提出,人员分工到位,解决难题很及时。

    张经理

联系方式

工作时间:10:00-19:00
咨询电话:010-64758810
客服邮箱:net@cnlink.cc

服务领域

  • 网站定制开发
  • PC网站设计
  • 域名邮箱
  • 网站维护
  • 网站二次开发
  • 响应式网站设计
  • 虚拟主机
  • 网站优化
  • 网站设计开发
  • 创意设计
  • 云主机
  • 项目合作

合作伙伴

All Rights Reserved.©2010-2016 特马QQ群|资料网站京公网安备 110105019435 京ICP备123124426号
本网站设计已受版权保护,任何公司及个人不得复制,违者将依法追究责任,特此声明。法律顾问:上海市辉瑞律师事务所。
嘿,我来帮您!