加密的12个不可告人的秘密

安全 数据安全
数据安全成了所有系统都要面对的重要问题,加密越发成为首选解决方案。但加密也许不如你想象的那样十拿九稳。

加密正迅速成为开发人员的首选解决方案,无论你遇到什么样的数据隐私或安全性方面的问题。你是否害怕将信用卡信息填入网络表单?别担心。我们正在使用加密。你不确定网站是否真实可靠?不怕,加密能帮到你。好消息是,加密算法在某些时候确实有效。数学提供了保护措施,使人们免遭窃听,数学还建立了信任的坚实基础。

加密/密钥/攻击

但是所有的看似灵丹妙药的方法都有其局限性,人们无法确定这些局限体现在哪里,这就是加密的棘手之处。数学令人望而生畏,我们只有目瞪口呆的份儿。加密所涉及的计算过于复杂,复杂得令人毫无头绪,只好相信这一切管用。

最后,我们用加密所能做的最好的事情就是管理预期目标并形成一定的认知。我们不能没有加密,但我们不能假定这就像开灯熄灯那样容易或可靠。

因此,当你寻找解决信息架构中棘手问题的解决方案时,请记住12个涉及到加密的不可告人的秘密。

1. 我们并不懂加密

加密的大部分功能都依赖于这样一个事实,即我们对逆转加密所涉及的数学知之甚少。我们知道如何计算函数,但不知道如何对其进行逆向计算。我们可以不断地对大数进行乘法运算,但无法计算对数。换句话说,我们只知道这是不可逆的。当一群聪明人都无法弄清楚如何做逆向计算时,那真的是没戏了,只能束手无策并接受各种算法。我们最大的能耐也不过如此。最常见的加密算法之所以得到部署,是基于这样一个事实,即还没有人公然想出任何攻击方法。

2. 别把估算太当一回事

有些数学家已经发现了用来攻击知名加密函数的基本算法,但是这些算法太慢了,无法用真实密钥破解加密。算法仅适用于较小的数字,问题越复杂,算法越慢。这一切令人瞠目结舌的估算结果都是由算法得出来的,即要花费天文数字般漫长的时间才能破解。这听起来令人放心,但这就好比一个高尔夫球新手说要练习天文数字般漫长的时间才有可能一杆进洞。对初学者来说也许是这样,但对经常一杆进洞的职业选手来说则不然。在加密领域,我们不过都是些胡乱估算的新手。

3. 证明并不能以偏概全

有些及其敬业的科学家和数学家都在努力为自己的算法提供“证明”。这些经过严格审查的一系列逻辑步骤有助于我们了解加密算法的强度,但这与数据的安全保障无关。证明只能揭示一部分洞见,总有一些未知事物隐藏在暗处。在大多数情况下(一次性密码本除外),证明并不能涵盖一切,而是依赖于一些假设,即某些问题到底有多困难。这在过去可能是成立的,但不能为未来打包票。

4. 我们无法衡量强度

安全技术销售团队喜欢兜售“银行级”这样的术语,或掺入1024位这样的数字,但实际情况是,我们没有计算算法强度的好办法,只能靠猜。2048位加密的强度是1024位的两倍吗?或者两者的差别十分巨大?

研究才刚刚触及皮毛。有些攻击仅对一小部分报文(message)有效,攻击机会非常渺茫。另一些攻击则敞开了一切可能性。我们可以研究这些攻击在实验室中是如何工作的,但很难推而广之研究它们是如何对数据产生威胁的。

5. 计算的未来是一个谜

没有人知道量子计算机是否有足够的力量来解决重要的问题,但我们知道人们正不遗余力地公布这方面的进展。我们还知道,如果量子机器出现,有些加密算法将破解加密。很多加密科学家正在努力打造能够抵抗量子计算机的新算法,但没有人真正知道量子计算机的能力有多强大。量子计算机是否仅限于已知的算法?或者有人会找到另一种用量子计算机来破解所有新算法的方法。

6. 加密数据并非安全数据

有时,加密十分牢靠。它将数据锁在数学保险库中,然后,不知何故,密钥丢失了。备份加密数据很容易,但备份密钥和密码却很难。如果你太谨小慎微,你最终很可能无法访问数据。如果你意外身亡,很可能没人能弄清密码或丢失密钥是什么。加密数据与安全数据不是一回事儿。加密数据其实很脆弱。

7. 加密很容易,密钥管理却很难

有些加密标准是值得信赖的,因为它们是历经千辛万苦开发出来的。从开源库中获取一个加密标准并且确信加密是安全,这并不难。

然而,难点就在于,在需要密钥的人之间分发密钥。AES这样的对称加密系统要求密钥通过安全通道单独传输,但如果我们已经有安全通道,我们就不需要加密了。如果我们提前规划好,我们通常可以将合适的密钥交给合适的人保管。

公钥系统使人们很容易在没有提前会面的情况下建立安全路径,但它们也不是没有问题。你怎么知道你正在对某个人使用正确的公钥?证书颁发机构是否值得信赖?人们仍需对系统放胆一试。

8. 支持代码是很脆弱的

密钥分发并不是使加密开发人员噩梦连连的唯一方面。算法的很多部分都有可能泄漏信息,有时是故意泄露的。例如,将随机数与报文混合是很常见的,但找到这些随机数可能很棘手。有些所谓的随机数生成器是有缺陷的,根本算不上随机,而且由于它们是可预测的,人们可用其来猜测密钥并破解报文。光有加密算法是不够的。

9. 共享硬件是很危险的

最近,由于云端成本低廉且十分灵活,有越来越多的代码在云中运行。没有人知道与你共享机器的邻居在做什么,这就是问题所在。有很多漏洞可以让一个软件窥视同一台计算机上另一个软件所占用的内存。操作系统开发人员试图阻止这样的软件,但新漏洞频频出现,如RowHammer等。这就好像云中的机器会遭到数十种可能的攻击,而我们才刚刚开始意识到问题的严重性。

10. 被黑的硬件是很难检测到的

你见过芯片上的晶体管吗?你确定它们已经忠于你,忠于软件开发人员?有些聪明的黑客对某一芯片进行逆向工程并发现内有乾坤,即里面有一个由随机字节串触发的全能模式(god mode),非常隐秘且没有任何记录。到底是谁将这个模式植入芯片的?并没有人出来邀功领赏。

11. 数字签名不过是转移责任

一些最好的数字签名算法,其背后的数学具有欺骗性并使人放松警惕。只有私钥的所有者才能执行产生合法数字签名的计算。这听起来比手写签名要可信得多,因为连小学生都可以在不合格的试卷上伪造父母的签名。

但真的是这样吗?私钥不受人们的约束。数字签名只能由有权使用私钥的人生成。这个人可能是合法的所有者,或可能是某个黑入计算机或直接偷窥密码或植入键盘记录器或发现了获取密钥的方法的人。如果你的密钥保存在计算机里,而且你的计算机接入了网络,那么这可能是世界上任何一个同样接入了网络的人。

科学家正在努力打造安全的硬件和强大的解决方案,但他们充其量也只是使攻击者没那么容易发动攻击。但即使是普普通通的弱点也能轻松地颠覆精妙绝伦的数学。

12. 有人保持沉默

有些数学家和密码学专家喜欢公开谈论加密技术。而另一些数学家和密码学专家则沉默不语。我们甚至不知道究竟有多少人对此保持沉默。

社会掌握了那么多代码和密码方面的知识,这简直是一个奇迹。但是,我们使用加密技术的次数越多,对所有弱点保持沉默的动机就越大。当白花花的银子和真正的秘密流经由加密武装的互联网管道时,掌握任何一个漏洞都价值连城。换句话说,我们使用加密越频繁,秘密就越深藏不露,越不可告人。

责任编辑:赵宁宁 来源: 企业网D1Net
相关推荐

2019-10-24 10:04:33

技术债务开发软件

2021-01-28 10:17:54

人工智能AI机器学习

2018-04-09 03:43:41

零宽字符秘密字符数据泄露

2018-10-26 10:37:26

2021-01-15 09:00:00

人工智能IT数据

2010-09-28 13:58:02

2011-07-04 09:53:40

虚拟化服务器虚拟化

2019-12-05 12:11:37

DevOps开发应用程序

2024-09-23 21:05:45

2022-07-08 09:01:36

logback日志异常

2018-08-13 16:19:35

2012-04-08 14:47:52

iPad

2012-04-28 15:52:39

2023-12-16 22:21:42

Linux网络命令

2021-02-09 10:02:26

人工智能AI机器人

2022-07-07 10:00:17

数据管理大数据

2016-10-25 14:27:16

开源Ruby on RaiWeb框架

2020-03-17 10:28:00

CIO首席信息官IT

2020-05-25 14:37:31

JSON.string前端秘密特性

2020-03-29 20:16:09

JavaScript前端技术
点赞
收藏

51CTO技术栈公众号