还记得小时候非常喜欢的一部捷克动画片,名字叫《鼹鼠的故事》。发生在那个灵动的小东西身上种种温暖的小故事有种神奇的魔力能把一家人吸引到电视旁边,满满都是回忆。
然而最近国外出现了一种名为“鼹鼠”的勒索软件,手段十分恶劣,让人真切地感受到了被“鼹鼠”支配的恐惧。
假邮局的甜蜜邮件
其实勒索软件的套路都基本一致,俗话说的好:社工玩儿的溜,走遍天下都不怂。
首先,那些“鼹鼠爸爸”们会冒充美国邮局(USPS)给你发来一封邮件:
您好,
这里是美国邮局,您的快递包裹我们无法送达,不知道出了什么问题,您可以点开以下链接查询一下。
www.xxxxxx.com
屏幕散发出来的微光打在一张疑惑的脸上,然而呆滞并没有持续多久,看着貌似无比真实的假网址,你挠了挠头,毫不犹豫的打开了链接。心里也许还要暗暗赞叹一声:现在的邮政服务真周到。
随即会跳出在线word界面,并且文字都是乱码的,中间出现了一个很醒目的提醒:您的浏览器无法读取这个文档,请下载最新的插件。
这种情况有点儿像在网页上兴致勃勃地打开一个视频,结果显示需要下载flash插件,否则无法播放。中间那个醒目蓝色下载按钮好像在挑逗你按下去,这是来自数据绑匪的诱惑。如果你没有经受住诱惑,就是好奇的想看看那些乱码到底是什么,那么恭喜,你中奖了。好奇心不仅可以害死猫,有时还会让你付出真金白银的代价。
装好“Office”插件,右键打开属性看一看,貌似一切都很正常。
双击打开,会跳出这样一个错误提示
不让访问?为了查个邮件真是麻烦,点击OK。
明白了,是因为没有给这个插件权限才会出错的啊。点击Yes看看会发生什么?
右下角怎么在Windows安全中心关闭了?莫非……
这种如同大变活人般的震撼体验让雷锋网宅客频道(letshome)小编想起了十年前一度肆虐大江南北的病毒“熊猫烧香”
到这一步反应再慢的人都搞清楚这是中招了,所有文件名都变成了十六进制的随机数据,后缀都变成了 . MOLE 。桌面多出来了一封勒索信,打开它你会感受到来自“鼹鼠爸爸”的恶意。看看这封勒索信说了些什么。
首先告诉你,这些文件都被RSA-1024的非对称加密方式给加密了,想要让文件恢复,你需要私钥(RSA加密算法是非对称加密算法,有一对密码称为公钥和私钥,必须二者都有才能解锁)。
其次,文件被加密的那一瞬间开始倒数78小时,超过这个时间服务器将销毁这些文件的私钥。想取回私钥,将你的数字证书通过邮件的方式给他们发过去并等待下一步指示。
最后,为了让你相信他们可以恢复你的文件,可以给他们发一个被加密的文件过去。并警告,如果超时,赎金将会是之前的两倍。
话语中浓郁的绑匪口吻简直跟电影里绑票的劫匪如出一辙。
接下来,事情就彻底脱离我们的掌控了。我们变成了案板上的鱼,而发出邮件的数据绑匪则是手持菜刀的屠夫。是破财消灾还是报警抗争在这时已然不那么重要了,重要的是我们的信息已经被劫持,话语权全在对方,我们只能伸出脖子任他处置。
环环相扣,步步为营,一把锁的背后还有一把锁
为什么这些数据绑匪可以那么有持无恐的加密我们的数据,难道我们真的只能任由他们勒索?难道我们不能自己解密?如果有办法取得密码的话不就可以解开我的数据了吗?殊不知这只“鼹鼠”背后的加密算法并没有那么简单。“真相只有一个”并不总是出现在现实生活中,我们遇到的大多数情况是“真相的背后还有一个真相”
想知道真相背后的真相,我们得先了解两个概念:对称加密算法与非对称加密算法。
1.对称加密算法
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
举个栗子:
假如小编现在想要给好友安利我宅的微信公众号,但是不想让他清晰的知道我的意图,于是乎我会这么做
以上就是一个对称加密法运用的实例,雷锋网(公众号:雷锋网)宅客频道小编把“letshome”这个信息通过一种变化规律加密成了“让我表演”,密钥就是这个变化规律,并且得知这个变化规律便可以实现明文与密文之间的互推。而“鼹鼠”对被勒索的文件与文件名采取的加密其实就是一种称为RC4的对称加密算法。十六进制的随机文件名就是RC4加密后的结果。
2.非对称加密算法
“鼹鼠爸爸”们在勒索信中提到了RSA-1024加密法,这个名称听起来本身就像一段被加密过的信息,殊不知RSA其实是目前世界上公认的最具影响力的非对称加密算法。
非对称加密算法不同于对称加密,它的密钥不是一个,而是两个(一对)。比如有两个密钥S1和S2,一段信息以S1加密后是不能通过S1来解的,只能通过S2来解密。同理,被S2加密的信息也只能通过S1来解密。S1和S2则被称为“公钥”与“私钥”。
一对密钥像是难以分割的小情侣,有且仅有彼此才能实现人生大和谐。
那么RSA加密算法又是怎么工作的呢?
RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
而想要生成一对RSA密钥,则需要三个参数:n、d、e。(下面这一段为数学算法,不感兴趣的同学可以略过)
选择两个质数 p 和 q,它们的乘积就是 n。
假设 p = 29, q = 31, 则 n = p * q = 899。
计算 φ = ( p - 1 ) * ( q - 1 ) = 840。
再选择一个比 φ 小且与 φ 互质的数,作为 e。
选择 e = 37。
找到一个数 d,使 e * d % φ = 1。
算出来最小的 d 就是 613。
现在,得到了 n, d, e ,把 p 和 q 扔掉,(n, e)作公钥,(n, d)作私钥,就可以执行 RSA 加密运算了。
如果把(899, 37)作为公钥发出去了,看到这个公钥的人一定不能算出 d 值吗?
由上面的密钥算法可知,要算出 d,必须先知道 φ。
那么由 n 和 e 能算出 φ 来吗?e 是随便选的,只须考虑 n。
n = p * q
φ = ( p - 1 ) * ( q - 1 ) = n - p - q + 1
如果不知道 p 和 q,就不可能从 n 算出 φ。
那么将 n 分解质因数,不就能得到 p 和 q 了吗?幸好,这个运算虽然能够成立,将 899 分解为 29 * 31 也不太难,但对于一个实际使用的 1024 位或者更大的 n,计算的速度会慢到无法实现。
例如,n = 186506401784256749805468037221367015183
你能分解它吗?这个 n 还只是 128 位的。
(以上算法环节来自guideep)
而RSA-1024就是1024位的。“鼹鼠爸爸”们则是用RC4加密了文件本身及文件名,又用RSA-1024加密法加密了RC4加密法的密钥。而他们这么做的原因在于RSA加密法本身无法加密如此多的文件,而RC4可以。不得不说,这种俄罗斯套娃般的加密方式直叫人感叹人生之多艰。
珍爱生命,远离流氓
连勒索软件的设计者都知道狡兔三窟的道理,我们作为遨游在赛博世界的一员多少还是得有点儿自保意识的。重要数据时时做好备份是必须的,真中招了我们也可以潇洒的给绑匪们发个问候家人的邮件,然后保持淡定的心态重做系统,不至于在屏幕这头跳脚骂娘。
如果想要从源头解决问题,方法也很简单
---The End---
本文作者: 实习小苏 本文转自雷锋网禁止二次转载, 原文链接 相关资源:鼹鼠双鼠标