平时在下载文件的时候,我们不仅会关心下载速度,想必也会经常担心文件安全性和法律问题。平时大家不时会看到各种关于信息安全的新闻,又或者听说有留学生在国外使用迅雷等下载工具被警方带走等等。不说别的,我们每个人都有想要下载却不想被别人知道的时候。这个章节就是给大家系统地搞清楚几个问题:我在下载的时候,谁在看着我?谁又能看到我?有什么法律风险?
我们在自己设备上看到这些没有多大问题,因为这些内容本来就是要给我们的。但是,一旦别有用心的人在服务器发送到客户端之前拦截到这些数据,那么他想要解读或者修改这些明文的数据将「易如反掌」。并且由于HTTP只通过状态码来确认请求状态,我们根本无法确定收到的数据是否已经被篡改。
为了更好地理解文件下载中的中间人攻击,我们来举一个例子:
在下载的情境中纸条即是我们要下载的文件,攻击者只需要让将我们需要下载的文件替换成他们准备好的文件即可。中间人攻击的难点在于如何加入到通信过程中(也就是偷到钥匙),中间人一般是这几个身份:
FTP与HTTP采用了相同的底层协议,同时FTP也是明文传输协议,所以FTP的安全性问题可以参考HTTP。
另外还有一种在各种公共场合很常见的攻击:Wi-Fi解除认证攻击(Wi-Fideauthenticationattack)。它的原理就十分粗暴了,攻击者只需一个带有Wi-Fi的便宜开发板和一个移动电源即可。
我们平时连接或者断开Wi-Fi的时候设备都会发送一个数据包来告诉路由器我要连接/断开了,攻击者就是利用这一点。当攻击者启动开发板上的攻击程序之后,攻击程序会持续向路由器和连接设备(例如手机)发送断开连接的请求,让设备无法连接到指定的Wi-Fi,整个过程就是这么简单。
听起来好像危害不大,实际上攻击者可以:
在设备重新向路由器发送连接请求的时候拦截数据包,通过暴力破解(也就是根据装满密码的密码词典一个个尝试常见密码,更暴力的是把所有可能的密码都试一遍)的方式破解Wi-Fi密码。
让周围的无线设备例如监控摄像头,物联网设备失效。
在酒店会议等场合让所有Wi-Fi都无法被设备连接,只留下攻击者自己开的钓鱼热点。
拦截与修改其他人的HTTP请求甚至篡改下载文件并不是多么难的一件事,甚至你自己就可以动手来试一下。
准备过程和工具十分简单,一点都不「黑客」。只需要安装一个App——Zimperium(曾经叫做Zanti)即可,难度跟一直点「下一步」安装一个软件差不多(仅限以下演示的功能,真要深入使用还是很「黑客」的,Zanti甚至支持搭建钓鱼热点)。
打开Zanti同意使用协议之后,Zanti会自动扫描当前Wi-Fi然后列出所有在这个Wi-Fi里面的设备。Zanti只能告诉你每个设备的操作系统,可以搭配前面提到的显示设备型号的「Fing」App确定你要开始攻击的设备。
就在前面我们就说了「监守自盗」的问题,所有能篡改文件的方式都能用来监视。由于HTTP明文传输的特性,监控起来可以说是十分轻松。
互联网信息服务提供者和互联网接入服务提供者的记录备份应当保存60日,并在国家有关机关依法查询时,予以提供。
Federallawprovidesseverecivilandcriminalpenaltiesfortheunauthorizedreproduction,distribution,orexhibitionofcopyrightedmotionpictures(title17,unitedstatescode,sections501and508),thefederalbureauofinvestigationinvestigatesallegationsofcriminalcopyrightinfringement(title17,unitedstatescode,section506)
上面就是大名鼎鼎的FBIWarning,相信各位对它比对国内的法律更加熟悉吧。
在中国运营商层面,为了配合国家政策,所有网站主在使用网络运营商提供的网络服务或者主机运营商提供的云主机服务时都必须同意将数据公开透明地提供给网络监控部门。并且网站自己的存储设备上必须保存至少2个月的所有数据。这个执行力度非常足,像是直播网站甚至所有直播用户的录屏都必须保存2个月,下载记录啥的更不用说了。
监控本身不是坏事,因为我们每时每刻都处于被监控的情景之下,监控可以更好地保证国家主权和个人的生命财产安全。侵犯隐私与否要看数据是否用于特例分析,如果这些最后会被匿名化用作大数据分析,对于个人来讲这些数据将毫无意义。
不过当你的数据被用于给你作用户画像且披露(泄露)给公众的时候,披露(泄露)者就构成了严重的隐私犯罪,请尽情用一切能用的手段去维护自己的权益。
附:推荐大家一个关于国家监控的真人秀《潜行追踪》(英文:Hunted),有点猫鼠游戏的意思,这个真人秀挑选普通人作为「逃犯」,他们可以逃跑或者藏起来。然后由反恐专家、前情报机构调查人员、警察组成的专家猎人团队,模拟强力国家机构的监控手段与方式将他们找出来,如果在28天后「逃犯」都没有被「抓捕归案」,那么他们就会获得巨额赏金。
虽然前面监控问题说的十分严重,但是真正涉及到法律问题的却十分罕见。
一般来讲,现在能让你碰到法律问题的文件很难被HTTP下载到了,无论是国内还是国外。具体有哪些种类,国内可以参考《互联网信息服务管理办法》第十五条中的「九条底线」:
互联网信息服务提供者不得制作、复制、发布、传播含有下列内容的信息:
我们还是以小明和小红的例子来讲解。在偶尔发现了小方的举动之后,小明准备下次传纸条的时候把内容转换一下,比如把所有的字母全部向后移动几位。可是想要小红看得明白,转换方法也需要写在纸条上传给小红,这样子小方不就也知道了吗?
经过一晚上的沉思,小明终于想到了一个超级棒的方法:
首先小明在把纸条发出去之前,先用RSA算法生成了两对数字。
RSA算法的特性很有趣,举个简单的例子,我们能轻松算出15287,27179这两个不相等的质数乘积为415485373,那么只给你一个415485373的时候你是几乎不可能得到这两个数字的(这个例子还比较容易算,当两个质数都是五六十位的时候普通电脑因式分解能算到宇宙毁灭)。
这个时候我们把415485373公开出去,这在密码学上叫做公钥;把(15287,27179)这对数字自己保管好,这在密码学上叫做私钥。(简略解释,非实际算法。)
这就是非对称加密算法的基本原理之一,它的两个特点就是:
这很像我们生活中常见的这种小防盗锁,任何人不用钥匙,按一下就可以轻松地把它锁上。但是如果要开锁就需要对应的钥匙才行。
为了方便解释,下面我们把公钥称为公开数,私钥称为私密数。
首先,HTTPS并不是一个新协议,它是普通HTTP上加了一层S(SSL/TLS)层,这个层就是用来实现非对称加密算法的。
既然如此,HTTPS就无懈可击了吗?并不是,小方只需要:
如此能击垮HTTPS安全体系严重的问题在设计的时候就被考虑到了,我们点击浏览器HTTPS网址旁边的小锁看到的证书就是为了解决这个问题而生的。
在上面的例子中,第一步小明将纸条内容,证书和证书签名都发给小红。
根据私密数加密的数据只可以用公开数解密,小红收到纸条后只需要:
除非小方能够完美把直接伪装成小明骗过CA,不然没有办法生成一个证明自己是小明的证书。所以小红可以安全地得到小明的公开数。
CA就是靠信誉建立的,一旦有有一个证书被发现用于恶意用途那么这个CA分发的所有证书都会被视为危险的,所以CA只会给足够资质的申请者颁发证书。在现实中,证书是根据公司名字或者网站域名生成的,如果平时我们访问某些网站小锁会变成红色并且出现这个页面:
那么即是浏览器收到证书里面的身份信息和网站不匹配或者证书已经过期(上图)。至此,除开安全环节最弱的一环——用户作死之外,HTTP安全性的坑已经被HTTPS填得差不多了。
这个最常见的建议了,不过却非常有效。所有的技术防御手段都抵不过用户自己作死,所有免费的,公开的Wi-Fi热点的安全隐患都是非常大的。即使Wi-Fi的所有者没有恶意,不怀好意的人也可以像上面那样对你发动中间人攻击。
如果你一定要连接公共的Wi-Fi,请同时使用防御中间人攻击的软件,比如Zanti推荐使用的自家防护软件——zIPS。
虽然HTTPS并不是完全安全,不过比起HTTP来可是要好上太多,尽量使用HTTPS来下载文件。还有最重要的一点就是前面说过的所有技术防御手段都抵不过用户自己作死,HTTPS也是如此,千万不要顶着红色小锁和感叹号继续浏览网站,或者因为蝇头小利和所谓的「为了确保安全/验证设备」的理由去安装来历不明的证书(安装证书即代表你把这个机构颁发的所有证书都纳入了信任列表)。
正规的网站绝对不会出现证书过期或者名称不符合的现象。
许多网站或者下载提供者都会给自己的文件提供MD5码或者MD5文件,下载完成之后校对一下可以防止文件错误或者被篡改。
也许你在自己动手尝试中间人攻击的时候就已经发现了,被攻击的设备是可以感觉到网速明显变慢的,这是因为所有请求都多了一层Zanti处理的步骤。平时我们在上网的时候如果突然感受到网速异常变慢,打开防御软件之后网速明显变快,那么可能在网络中有人正在监控你的设备。
不过到现在这些钓鱼服务器也没剩下几个了(当然中国还有),只要更新Emule的安全服务器列表就可以很大程度上解决这个问题。
由于BT下载天生的特性,导致很难在下载的时候篡改下载的文件。于是恶意攻击者们就把重心转向了安全性最弱的环节——用户本身。
比如,当你下载一个文件之后却发现没有任何程序可以打开它,同时下载的还有一个名字叫做「请安装专用解码器打开文件」的exe/vbs/bat程序;把exe重命名为常见的播放器或软件名称;一个加密的RAR,附上一个教你去某某网站获取密码的「解决方案」文本。比起这些来,下到葫芦娃已经是非常良心了。
这些都是常见的钓鱼手段,每天都会有不少的用户中招。
中国政府对于BTTracker一直是处于严厉打击的状态,不断地关停Tracker。不过只需要通过BitCometTracker等软件就能轻松搭建一个Tracker,所以Tracker屡禁不止。
由埃文+提供的各种IP服务里面就包括了关于BT下载监控的服务,不仅可以实时根据种子查找出全球范围内所有下载者的数据(IP地址,现实地址),还可以根据IP找出这个IP地址曾经下载过什么种子。
案例一:我国某市安全部门,通过对若干带有敏感信息的种子,进行了多天的监控,最终锁定传播人的IP地址和地理位置。
案例二:我国某省工信部门,通过对若干带有敏感信息的种子,进行了多天的监控,最终锁定传播人的IP地址和地理位置,并责令运营商对其网络监管加大力度。
虽然实时根据种子查找出全球范围内所有下载者的数据的服务仅提供给政府部门,不过根据IP找出这个IP地址曾经下载过什么种子的服务可是人人都可以买,价格还不贵哦。
感兴趣的朋友可以继续看看埃文+的其他服务(当时IP探探和网动仪有点惊到我了),这还是民用商业级别而已,BT下载的监控问题想必大家心里都有数了。
之前在科普的时候说过,BT下载是可以用于很多用途的,像是游戏更新或者用于公开研究和学习的大量数据交换。所以BT下载很难也不能被封杀,像是我们会觉得国外特别是美国对BT下载会管得特别严格,动不动就特警破门啥的,其实没有那么严重。平时我们下载也是能看到很多外国小伙伴的,像是最近我下载的时候就看到了以下国家的朋友:
国内法律对BT并没有做出严格的规定,只有《中华人民共和国刑法》第二百一十七条有点关联。
以营利为目的,有下列侵犯著作权情形之一,违法所得数额较大或者有其他严重情节的,处三年以下有期徒刑或者拘役,并处或者单处罚金;违法所得数额巨大或者有其他特别严重情节的,处三年以上七年以下有期徒刑,并处罚金:
(一)未经著作权人许可,复制发行其文字作品、音乐、电影、电视、录像作品、计算机软件及其他作品的;
(三)未经录音录像制作者许可,复制发行其制作的录音录像的;
(四)制作、出售假冒他人署名的美术作品的。
根据本条的理解与适用,通过信息网络向公众传播他人文字作品、音乐、电影、电视、录像作品、计算机软件及其他作品的行为,应当视为「复制发行」。
还有制作、复制、出版、贩卖、传播淫秽物品牟利罪。
无论国内外都要抓住一个关键字——复制发行,即使是在美国,如果你只是下载而没有上传数据就不会构成复制。运营商也是重点打击上传流量而不是下载流量,只要你遵守下面几条建议,即使身在国外也能安全地享受BT下载的便利。
无论是在国内外,学校与公司这种地方最好不要使用BT下载。特别是在国外,像是日本或者美国,这些国家对学校公司的对外流量控制特别严格,加上BT「边上传边下载」的特性很容易给自己惹上警察。相比而言私人住宅就安全许多,毕竟国外私人领域的权限很高,很多美国人本身也在家用这些方式下载。
我们平时使用迅雷下载磁力链接,有时候会发现最后还是会下载一个种子文件。理论上磁力链接不需要Tracker也可以实现下载任意文件,但是国内很多网站只是为了规避法律风险直接把种子文件转换成磁力链接,实际上我们是先通过P2P下载种子再通过种子下载文件。
这种情况下的确可以保证种子的存活率,不过剩下就相当于传统的BT下载了。只有真正的通过DHT网络获取数据的下载才可以避免监控问题。
「下载」仅仅是一个复杂数据交互过程的笼统表达,本栏目将以中国国情为基础,抛弃高深名词,从基础下载方式科普开始到自己动手在手机上搭建Aria2服务器,为点开此教程的各位完美解决以上地疑问。