当前位置: 首页 >> 手机管家 >> 冷知识|如何判断你的手机浏览器是否安全? rss

冷知识|如何判断你的手机浏览器是否安全?

shouji.37ix.com.cn 在 2015-06-30 发表,评论(0),阅读(0)

浏览器安全其实是一个非常复杂的问题。 很大程度上是由浏览器自身的定位决定的, 试想一下,一个拥有几乎所有系统访问权限的App ( 拜device API所赐, 浏览器需要访问诸如摄像头,麦克风等很多敏感才能支持这组API), 居然需要从鱼龙混杂的互联网下载不知道谁写的页面+脚本然后本地执行,并且要保证执行的脚本不该看的不看,不该拿的不拿。





一、浏览器自身设计

事实上,第一批浏览器, 比如 InternetExplorer, Opera, Firefox (Netscape), 在最初的设计的时候,都没有能预见到互联网会以如此爆发性的速度发展, 同时也受制于硬件条件的限制,无一例外的采用单块结构(monolithic architecture). 所谓的单块结构,就是浏览器的每个模块,都塞在一起,而没有明确的隔离。这种做法代码执行高效,写起来也很方便,不过现在看起来, 如果从安全的角度来讲,则是很有问题的。


要知道浏览器里面有非常多的模块, 有一些模块专门处理从网络上下载下来的内容, 比如文档解析器,文档布局器,或者是Javascript的执行。 又有一些只和本地系统接口, 比如文件访问,密码的存储, 剪贴板一类的。如果全都放在一起, 那简直就是给网上下载下来的恶意脚本开了一扇便利之门。 一个更好的架构是把这两组模块分别隔开。然后把第一组专门处理网络下载内容的模块用沙箱一类的技术装起来。


现代的浏览器, 比如谷歌的Chromium, 或者使用Chromium框架的浏览器, Opera 桌面(版本12以后) 和 Opera mobile 一类的, 都是采用的这种结构,基本上可以把很多潜在的安全风险扼杀在摇篮之中。




在这种比较干净的架构出来之前,各家浏览器基本上都是修修补补, 或者直接就是拿产品特性说事儿,比如Firefox说明自己比较安全的原因基本上是 : 我的独立(没有和操作系统集成)。


而Opera 在Presto 时代, 则在内部的代码规范里面明确规定任何情况下不能是用栈上缓存,从而杜绝当年极其流行的栈上缓存溢出攻击。http://en.wikipedia.org/wiki/Stack_buffer_overflow


到了手机浏览器时代,硬件和操作系统本身的安全性都加强了。 硬件方面从x86转到arm, 天生就对栈上缓存溢出免疫。 基于*nix 结构的iOS 和Android自带沙箱结构,于是浏览器本身也被沙箱装了起来. 所以技术上来讲,由于多了两层壁垒,手机浏览器普遍要比桌面浏览器安全, 桌面浏览器上的那种首页书签搜索引擎各种被乱七八糟改的情况在手机浏览器上面基本看不到。 当然,国内大部分的手机浏览器还是单块结构,单块结构能有的问题一个也都没有少。 Chrome/Opera mobile/ 欧朋X+ 这种基于Chromium 架构的浏览器安全性相对来讲会好一些 .


所以选择一个安全的手机浏览器其实没有那么复杂,国际一般比国内的在安全方面的意识要强一些。大牌一点的浏览器在遇到通用性安全漏洞时 (比如上次著名的heart bleed漏洞)反应时间比小的浏览器厂商会快一些。


二、浏览器和网站之间的数据传输

上面说谈的其实讲的都是浏览器如何面对网站上面的恶意代码保证自己不被黑掉。浏览器还有一块非常大的安全区域是在于数据传输. 比如大家都不希望自己的银行密码被除了网上银行之外的其他人看到。


3.15晚会里面的wifi钓鱼演示其实就是展示数据传输中数据被第三方窃取的可能性,这个可能是陈老湿们最不愿意看到的事情。浏览器的世界里面对于数据传输有两种主要的方式:HTTP (超文本传输协议) 和 HTTPS (安全传输协议).


其中 HTTP 与其说是不安全,不如说是令人发指的不安全。因为 HTTP 不仅仅是明文传输,而且是用文本来传输的,就是说,传输的报文,直接人就可以读得懂。

Authorization: BasicQWxhZGRpbjpvcGVuIHNlc2FtZQ==
这个是在HTTP里面发送给服务器用户名+密码的报文( 来自于wikipedia ) . 基本就是明晃晃的告诉别人,你看, 我的密码在这里哦,然后拿base64编了一下码,就发将在广袤的互联网上了。注意哦, 这个是编码不是加密,没有任何安全性可言的。



HTTPS 会好非常多, HTTPS 的数据是加密传输,加密的强度也不小,很多银行都在使用,对于一般的攻击是免疫。当然 BOSS 级别的 NSA 不在此列, 因为HTTPS 虽然理论上不能破解,但是NSA丧心病狂的在HTTPS用的硬件随机发生器中植入了后门。


有一些浏览器。 比如 Opera Mini 或者带有 Opera turbo 技术的浏览器 提供端到端的私有加密。这一类的浏览器在安全性方面会有加分。


三、关于国内浏览器采集用户隐私数据问题(IMEI,IMSI)等

多说两句这个, 作为国内App的从业人员,App(包括浏览器)采集IMEI,IMSI已经是一个非常普遍的现象,事实上,你其实很难找到不采集的APP, 想要知道一个APP是否采集IMEI, IMSI,只需要打开应用的权限管理,看看有没有这一项就可以了。

而这种行为,其实更多的是由国内的App推广市场的情况决定的,大部分APP(包含浏览器)对你的IMEI并没有多大兴趣,如果真的想要,混淆以后也能用。只是在国内的推广渠道里面,统计,对账的数据都是基于IMEI的。这个决定了大部分App如果想被推广,一定是需要采集IMEI的。并非是想采集用户隐私。


当然地理位置数据采集就更普遍了,浏览器采集这个其实很大程度上是为了支持HTML5 中的Geolocation 组件。Chrome 也会采集。


这个行为其实和你去银行开个信用卡, 银行会要你的身份证复印件是一个道理, 这里面的安全问题不在于银行是否采集你的身份证复印件,而是采集完了以后,有没有能力/意识把你的信息放在一个安全的地方。 而国内大部分App如果出了问题,都是出在数据保存上。选择的原则还是一样,尽量选者大的,安全记录好的公司。



 

Tags:

已有位网友对“冷知识|如何判断你的手机浏览器是否安全? ”发表评论。