For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
潍坊it培训小编给大家科普一下慢加密。
如果能提高加密时间,显然也能增加破解时间。
如果加密一次提高到 10 毫秒,那么攻击者每秒只能猜 100 个,破解速度 就慢了一万倍。
怎样才能让加密变慢?最简单的,就是对加密后的结果再加密,重复多次。
例如,原本 1 微秒的加密,重复一万次,就慢一万倍了:
Default
1for i = 0 ~ 10000 x = md5(x)end
加密时多花一点时间,就可以换取攻击者大量的破解时间。
事实上,这样的「慢加密」算法早已存在,例如 bcrypt 、 scrypt 等等。它 们都有一个难度系数因子,可以控制加密时间,想多慢就多慢。
加密越慢,破解时间越长。
0x03 慢加密应用
最需要慢加密的场合,就是网站数据库里的密码。
近几年,经常能听到网站被「拖库」的新闻。用户资料都是明文存储,泄 露了也无法挽回。唯独密码,还可以和攻击者对抗一下。
然而不少网站,使用的都是快速加密算法,因此轻易就能破解出一堆弱口 令账号。
当然,有时只想破解某个特定人物的账号。只要不是特别复杂的密码,跑 上几天,很可能就破出来。
但网站用了慢加密,结果可能就不一样了。如果把加密时间提高 100 倍,破解时间就得长达数月,变得难以接受。
即使数据泄露,也能保障「密码」这最后一道隐私。
0x04 慢加密的缺点
不过,慢加密也有明显的缺点:消耗大量计算资源。
使用慢加密的网站,如果同时来了多个用户,服务器 CPU 可能就不够用 了。要是遇到恶意用户,发起大量的登录请求,甚至造成资源被耗尽。
所以,性能和安全总是难以兼得。
一些大型网站,甚至为此投入集群,用来处理大量的加密计算。但这需要 不少的成本。
有没有什么方法,可以让我们使用算力强劲、同时又免费的计算资源?