如何安全上网-浏览器隐私防护

2013年爆发了“棱镜门”事件想必大家都记忆尤新,因此Cheney今天来特地聊一下 浏览器的隐私防范。

1.如何选择浏览器?

当今浏览器市场,名气大且使用广泛的国外浏览器,主要有:Firefox、Google Chrome、Edge、Google Chromium、Opera等。其中,Firefox和Google Chromium是开源浏览器,Chrome、Edge是闭源的。很多用户可能会认为Chrome和Edge也 是开源的。虽然 Chrome和Edge 基于开源的 Chromium,但是 它们包含自己的闭源的模块。

收集用户信息会给商业公司带来利益,因此商业公司有收集用户隐私的动机。

比如Google 2018年所发布的 Chrome 69 曝出了多个隐私方面的严重问题,先是自动登录凭证,同步浏览器数据;现在又有用户发现浏览器的清空所有 Cookies 功能不会清空掉所有浏览器保存的 Cookies,而是会选择性保留所有 Google 的 Cookies,这一做法既带来隐私方面的问题又会带来安全方面的问题,因为用户的 Google 账号通常会保留敏感数据,保留 Cookies 可能会让其他人更容易登录。

可参考:https://news.ycombinator.com/item?id=18064537

因此,从商业化角度讲,这几款浏览器的安全性排名为Firefox/Google Chromium > Google Chrome/Edge.

国产的浏览器(金山的“猎豹浏览器、搜狗的“搜狗浏览器、””奇虎的“360浏览器”、腾讯的“QQ浏览器”、百度的“百度浏览器”等)大多基于IE的Trident内核或Chromium的Blink内核,由于自身不会及时更新内核版本,不及时剔除过时的插件如flash,可能导致浏览器存在0day漏洞,且各种过程浏览器自身存在严重的隐私问题,会收集用户的上网行为并保存到它们自家的服务器上。一旦使用有严重安全隐患的国产浏览器,即使你在其它层面隐私防范做得再好,也无济于事,因此任何国产浏览器是万万不能用的。

另外,挪威浏览器Opera已经被国内公司全资收购,因此也是万万不能用的。

5.4亿元!昆仑万维收购挪威浏览器Opera 全资控股-昆仑万维,收购,Opera,浏览器,挪威 ——快科技(驱动之家旗下媒体)--科技改变未来

2.CA证书防范

什么是CA证书?

在访问一个网站时,多年前通常使用HTTP 协议来传输 Web 内容。由于HTTP协议是明文传输的,因此用户和网站交互的内容可能被监听甚至篡改。

可参考:HTTP劫持 - 知乎

因此,诞生了HTTPS和TLS协议。

HTTPS 协议,就是“HTTP 协议”和“TLS 协议(Transport Layer Security)”的组合。来实现Web内容加密。

TLS协议如何实现加密呢?

可参考:https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/

大致过程是客户端先向网站发送Client Hello Message交换密钥握手,然后就可以密文传输。

CA证书起什么作用?

由于在握手过程中双方还没有完成交换密钥,因此该过程数据是明文传输,假设有一个攻击者处于“浏览器”和“网站服务器”的线路之间,这个攻击者就可以攻破劫持并伪造双方的密钥,使得网站以为攻击者是客户端,客户端以为攻击者是网站,该过程也称中间人攻击。

因此网站方面需要在某个 CA 那里购买一个数字证书。该证书通常会对应一个文件包含公钥,还有一个文件包含私钥。当浏览器访问该网站,W服务器首先把包含公钥的证书发送给浏览器,浏览器验证网站发过来的证书。如果发现存在问题,浏览器会提示“CA 证书安全警告”。

如果操作系统中被植入恶意证书,会起到适得其反的作用,因此需要检查并禁用恶意证书。

具体案例可参考:如何评价CNNIC在用户电脑内偷偷植入根证书的行为? - 知乎

如何看待中国沃通wosign偷偷收购自己的根CA startcom并且签发github.com的证书? - 知乎

在windows中, 运行-certmgr可打开证书管理器,在受信任的根证书列表中停用所有China、HongKong、Macao相关的证书。

3.DNS防范

一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。

可参考:关于DNS、HTTP劫持、运营商劫持的一些事_帮助中心- DNS.COM,域名DNS解析服务商

DNS劫持莫名其妙被小广告弹窗?从运营商到路由器都有可能坑你_湃客_澎湃新闻-The Paper

如何避免DNS污染?

DNS over HTTPS利用HTTP协议的GET命令发出经由JSON等编码的DNS解析请求。[较于传统的DNS协议,此处的HTTP协议通信处于具有加密作用的SSL/TLS协议(两者统称作HTTPS)的保护之下。

当前最新的Chrome、chromium、Firefox都已经支持DOH,具体设置方法可参考:

如何在 Firefox 中启用 DNS-over-HTTPS(DoH) - 知乎

Chrome/Firefox配置“DNS over HTTPS”,解决DNS劫持问题-出家如初,成佛有余

4.SNI防范

服务器名称指示(英语:Server Name Indication,缩写:SNI)是TLS的一个扩展协议。在该协议下,在握手过程开始时客户端告诉它正在连接的服务器要连接的主机名称。这允许服务器在相同的IP地址和TCP端口号上呈现多个证书,并且因此允许在相同的IP地址上提供多个安全(HTTPS)网站(或其他任何基于TLS的服务),而不需要所有这些站点使用相同的证书。

客户端将包含其连接到的站点主机名的SNI扩展添加到ClientHello消息。它在TLS握手期间将ClientHello发送到服务器。由于客户端和服务器此时不共享加密密钥,因此ClientHello消息未被加密发送。

在2018年7月左右的互联网工程任务组(IETF)会议上,苹果公司、Cloudflare和Mozilla的工程师在一项名为“加密服务器名称指示(ESNI,后改名ECH)”的新协议上获取了进展,该协议将能解决TLS SNI暴露给窃听者的问题。

那么为什么以前无法对原始SNI进行加密,现在可以加密了呢?如果客户端和服务器尚未协商,加密密钥又从何而来?答案就是“DNS”。服务器在已知的DNS记录上发布一个公钥,客户端可以在连接之前获取该公钥(A、AAAA和其他记录已经是这样做的了)。然后,客户端将ClientHello中的SNI扩展替换为“加密的SNI”扩展,该扩展不同于原来的SNI扩展,而是使用对称加密密钥(用服务器公共密钥派生的密钥)进行加密的。

https://blog.cloudflare.com/esni/

目前只有Firefox浏览器支持ECH,设置方法为:

为Firefox启用ESNI的方法 - Gulut's Blog

Firefox Nightly + DoH + ECH: 让网络连接更加安全 - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值