音频版:数字指纹,和它的妙用

在搬家的过程中,不论是找房子、联系房东、找搬家公司等这些所有的流程,我都是通过网上进行的,除了选房子稍微复杂了一点,一切都还挺顺利的,感谢我生在这个时代,让很多之前想都不敢想的东西都变得可以量化,

试想,如果我们生活在那种刀耕火种的年代,那我们可能需要学会打猎,躲避狼群的袭击之类的技能。

我们生活在这个互联网时代,在体验时代带给我们的果实的同时,也要学会响应的趋利避害的技能,躲避一些可能因此带来的风险。

比如最近,网友发现在Google上输入关键词,site://yun.baidu.com 来自iPhone 等信息,也就是搜索百度云网友分享的内容,就能搜到用户手机拍摄的 上传到百度云里的私密照片,这些肯定是网友不愿意分享给大家的。老王当时按照这个方法,测试了很多个手机机型,并找到了非常多的私密照片,里面满是各种证件照、跟男女朋友的合照,还有自拍照和美颜后的照片,老王看啊,看啊,看了一个下午,满满的满足了下自己的窥探欲。

以前我老是黑百度,这次说句公道话,这次真的不怪人家百度,是用户自己手贱点击了照片共享功能,那些照片才在搜索引擎上检索到的。

最后,还是百度为用户的行为洗地,将这些照片的属性设为私密,你现在从谷歌上已经搜索不到了。所以我想,如果真的有用户因为这件事遭受了损失,那我只能说,你负责死,我负责埋,这部分智商税他应该交齐。

你既然选择了在这个环境下优雅的生存,那为什么不去学习一下在这种环境下应该掌握的技能呢,对吧

~

所以,这也是我早期筹划做极客方式这档节目的原因,让一些似是而非的东西给大家明显化,让大家能掌握一些平时用的到的极客小技能。

所以,这期节目就为大家介绍一个极客应该知道的小技能,它叫信息指纹。

这个话题我们在上几期节目简单聊过,今天我打算重点来聊一下。

因为它不论在计算机领域,还是在我们的日常生活中,用处都非常大,所以,我就打算拿出一期的节目来介绍一下它。

你看,向我们平时在办理一些业务的时候,为了表示你同意某个约定,可能需要你按一下自己的指纹。

这个时候,这个指纹信息就跟你建立起了关联,

同样,在我们的互联网世界中,计算机科学家也根据数字信息的特征做出了他们所对应的指纹信息,我们叫它信息指纹,或者通俗的叫法是特征码。

它类似于一篇文章的摘要,所以信息指纹,也可以叫做摘要。

任何一段信息文字,或者某个二进制文件,可能是图片,也可能是软件,或者你随便写的一份word文档,等等等,都可以通过某种算法来对应一个不太长的随机数,来作为这个东西的指纹。也就是说,在电脑中的任何文件,都能通过某个算法,来生成一个指纹,用它来作为区别与其他文件的标示。

常用的算法有crc32 md5 sha1等,并且也有基于这些这些算法开发出来的软件,非常小巧,我会在微信公众号里贴出贴出他们的下载链接,你回复“指纹”就能找到,有兴趣的朋友可以去下载使用。

这个随机数的长度一般都很小,只有10几到40几个字节的长度,我们每一个汉字就占了两个字节。

你可能会有疑问,这个随机数的长度这么小,是不是文件的这个特征码会重复呢?

实际上,只要算法设计的好,任何两个信息的指纹对很难重复,就如同人类的指纹一样,实现一个信息指纹,只能对应这一个特定的文件。

你比如,淘汰下来的CRC32这种算法,它得到的信息指纹,只有32位,我们知道,8位就是一个字节,32位也就是4个字节,这四个字节能有多少种组合的可能呢,也就是2^32次方,2^32次方是多少呢,是43亿,也就是4*10^9。这个数字看着很大,但现在已经远远不够用了,我刚才说了,互联网中的每一份文件都要有唯一一个信息指纹来跟区别于其他文件,现在互联网上的页面总数就已经大大超过“几十亿”。

所以这个算法已经淘汰了,取而代之的是md5和sha1

md5是128位,有多少种排列组合呢?10^38,这个数字是多少呢?

咱们已知的,所有星星的数量是3*10^23,这个数比地球上所有沙滩和海洋的沙粒的数量还要多,md5的排列组合比星星的数量还多出10多倍,所以这个数量已经可以了。

还有一个正在流行使用的是sha1算法,他有多少种排列的可能呢?这跟整个地球上原子的数量已经差不多了。这个数量级作为信息指纹已经完全够用了,两个不同的文件算出来的信息指纹,相同的可能性已经比中彩票的几率小太多了。

知道了这些,咱们就可以主要来说一下它的应用,或许可能解开你一些疑惑。

信息指纹在互联网的应用非常广泛,对于我们平常人来说,我们可以用他来验证文件的完整性。

所谓文件的完整性,简单说就是文件早期是什么样,经过传输后,或者经过多人转手之后,得到的那份文件,仍然跟源文件相同。

你像我们平时下载软件,中国的盗版行业这么猖獗,我们下载的那份软件,很可能经过改动过,或者加了一些潜在的广告,或者塞入了一些木马信息,已经不是原来作者最先发布的那款软件了。

比如当年的putty这款软件,黑客们对它做了处理,导致大批的网站管理员中招。

又像,去年的xcodeghost事件,因为程序员下载的这个编译器  这个源头就有问题,导致在编译成app软件的时候就带有不正常的代码,百度,网易都因此遭殃。

如何判断你现在的这份文件,就是原作者最先发布的那款呢。

很多软件在开发出来,发布到网上供他人下载时,互联网公司或个人开发者往往会在下载链接的旁边附带一个md5或sha1的特征码,这就是信息指纹,你可以点击链接下载下这份文件,或在其他地方下载这份文件,用我上面提到的软件,提取出这个软件的摘要信息,如果得出的结果跟官网提供的一样,那么就证明你得到的这份软件就是原作者发布的那款。

实际上,直接从官网下载是比较推荐的,但是很多比较优质的软件都是国外版的,中国的上网国情,这个龟速决定了你不得不在国内找资源。这个时候,我们在国内下载完软件的时候,可以到官网上验证一下是不是那款软件,

比如,我们下载windows的软件,体积一般是比较大的,这里给你推荐一个下载地址,叫做itellyou,我告诉你,它是一个windows软件离线版的下载地址,不是微软官方的,但是里面软件质量比较高,目前网友没有发现有恶意篡改过的离线安装包,这个网站,在下载链接的旁边就带了sha1的特征码,我们下载完对应的软件之后,可以验证一下文件的完整性,参照给出的特征码进行比对。

还有一个,由于你懂的原因,我们不可能用正常的方法访问谷歌的应用商店,这里我也推荐大家一个网站,叫做apkpure.com,这是一个间接下载google应用商店软件的下载地址,同样,这个网站的下载链接旁边,也附带了一个sha1的特征码,我们可以下载完软件之后,简单的通过特征码对比一下。

更何况,很多时候,我们也很难辨识它就是软件的官网,你比如putty,或者国内的shadowsocks,网上也有很多茂名的所谓官方网站。

我们验证一下文件的完整性,能有效的避免被一些木马病毒等。

还有,杀毒软件提醒,要更新一下病毒库,不要迟疑赶紧更新,这些更新的文件并不大,因为这些更新的信息就是最新病毒的特征码信息,杀毒软件的工作原理就是将你电脑文件的特征码跟病毒库里的文件进行比对,匹配的话就会爆毒。

另外,信息指纹在互联网领域运用的也非常多。

比如我们用百度云上传一部电影,我们发现,一个1G多的电影文件,在不到1秒的时间就上传完成了,怎么回事,是你家的带宽速度突然变快了么?实际上,百度正是用了信息指纹,检测到你要上传的这个文件,跟百度云里已有的文件相同,那么简单了,你完全不用再次上传一遍,只要将已在盘里的这个文件的链接给你就行了,造成的假象就是,你只用了1秒钟,上传了一部1G多的电影。

这种一份文件 供特定的人使用的方式,在凯文凯利的《失控》里讲,就是基于访问权的上网模式,未来的云端生活大体也就是这样。

还有,一些互联网公司筛查用户上传的文件,也是基于文件的指纹信息查到的。你比如,几年前,国家对互联网进行整顿,要求删除百度云等网盘上的违规文件,百度就是利用信息指纹的技术,让一大批动作片身亡,变成了8秒的教育片。比较讽刺的是,当年百度宣传百度云盘的时候,打出的口号就是“躺着也能看片”。

实际上,国家层面,想要封掉某个内容,用的也无非就是这个技术。

知道了他的原理,就可以对症下药了,我们可以简单修改一下这份违规的文件,使他的特征码改变,重新上传,就能够上传成功。

对于电影,我们进行一点简单的裁切,或者,给你推荐一个软件,叫winhex,他可以将文件进行简单的改变,但不影响原有文件的内容,也就是,仅修改文件的特征码,这样百度云就变得不认得这个文件了,再次上传时就能成功。

我也会在极客方式的微信公众号里,贴出这个软件的下载地址。

还有一些软件,能监测出你电脑上的文件是否重复,他的原理也是利用的信息指纹。

还有一个,就是短连接,像微博,为了不超出140个字,微博对链接处理成了短连接,短连接的长度非常短,但是就是能保证各个链接之间不重复,又能方便的传输。

信息指纹的一个特点是,它具有不可逆性,也就是说,我们不能通过这串简单的乱码推测出文件的原貌,就像我们不能通过某个指纹,推测出这个人的长相、身高和体重一样。

利用这个原理,在信息指纹,在安全领域也有很大的发挥的空间,比如我们在上几期节目中提到的密码管理器和信息加密技术,也用到了信息指纹这个技术。

最后,需要注意一点,现在正在流行的md5算法,目前被认为是不可靠的了,因为现在已经可以通过碰撞的方式,使得攻击者构造出两个不同的文件,但却拥有相同的信息指纹,这样一来,就可以骗过一些基于md5这种散列算法的完整性检查软件,如果你比较注重安全性,尽量不要依赖 MD5 进行完整性校验,你可以用sha1这种目前认为可靠的摘要算法。

好,这期节目我们只讲了信息指纹这一个概念,并附带了一些话题,比如下载软件的一些方法,减产文件的完整性、杀毒软件查毒的原理,百度云的筛查文件的原理、还有一些网站或软件的推荐,希望你会喜欢,

如果觉得对你有用,也可以对老王进行一点小额的赞助,让我有动力创作出更好的极客方面的内容,

你可以关注极客方式的微信公众号,或加入极客方式的微信交流群,在那里,你也能学到很多实用的小技能。

好,这就是本期节目内容,祝大家早日过上精智的生活,byebye 

0
1