在安全领域,加密永远是无休止的话题。特别是在斯诺登揭露美国安局的监控丑闻后,许多人对加密产品产生了很多怀疑,企业对如何保护数据安全的渴望更是与日俱增。
我们不知道为了访问加密数据,美国国安局如何在加密系统中建立后门,但是在加密过程中,随机数生成器非常重要,因为其在创建数字证书时扮演着重 要角色。如果随机数生成器产生的数字是可预测的,或并不是真正的随机,那么攻击者就可以更容易地预测企业的私钥,而且可以读取使用这些密钥加密的任何消 息。
更糟的是,由此,两个企业更有可能生成同样的私钥。这里的问题是,每个私钥都有一个唯一匹配的公钥,所以在理论上黑客有可能查阅公钥数据库,如果发现与黑客的公钥相匹配,那么他们就会知道私钥也同样匹配。
当然,这是不太可能的一种情况,但却表明:加密并不像我们认为的那样强健。幸运的是,我们仍有一些方法可以减少与加密有关的已知漏洞。下面的技巧可强化加密的安全性:
1.不要使用老的加密算法
企业应当停止使用DES等老的加密算法,也不要使用其亲戚3DES(三重数据加密标准)。
2.使用企业支持的最长的加密密钥
建议企业尽可能使用最大长度的密钥,这可以使那些无法访问后门的企业难以破解企业的加密。当今,AES 128可谓强健,但如果可能,不妨使用AES 512 或更长的密钥。
3.多层加密
建议企业尽可能地利用多层加密,这可以增加攻击者的困难。如果有可能,不妨对数据库的每个字段、每个表以及整个数据库都进行加密。
4.安全存储加密密钥
企业面临的最大问题可能并不是加密算法被美国的国安局留下后门,而是密码本身仅仅是加密方案的一部分。对于基础架构的其它要素,如密钥管理系 统,企业也必须保证其安全。攻击者都愿意对付安全系统的最薄弱环节。如果攻击者很容易就可以窃取密钥,为什么还会费力破解加密算法呢?
有的企业将保护其数据的密钥给第三方,尤其是在企业将数据存储在公共云中并由云供应商加密和保护时。这里的问题是,企业无法控制密钥,而是必须相信云供应商的雇员会安全地保存密钥。
如果企业可以实施一种可以将密钥控制在云中的加密系统,就会安全得多。自动处理加密的云加密网关可以帮助公司实现这种安全。
5.确保正确实施加密
事实上,实施加密系统并非易事,因为它有许多动态部件,任何一个部件都有可能成为一个薄弱环节。你必须进行大量调查,确保正确实施加密。
在实施加密过程中,哪些方面容易出错?除了密钥容易遭受攻击,还有CBC(密码分组链接)的实施方式。使用CBC,可以用同样长度的随机文本块 (也称为初始化向量)对纯文本进行异或运算,然后对其进行加密,产生一个加密文本块。然后,将前面产生的密文块作为一个初始化向量对下一个纯文本块进行异 或运算。
CBC的正确实施要求在开始每个过程时都有一个新的初始化向量。一个常见的错误是用一个不加改变的静态初始化向量来实施CBC。如果正确实施了CBC,那么,如果我们在两个不同的场合加密了文本块,所生产的密文块就不会相同。
6.不要忽视外部因素
公司几乎无法控制的外部因素有可能破坏加密系统的安全性。例如,SSL依赖于数字证书,而且这些因素依赖于嵌入在浏览器(如IE、火狐、 Chrome等)中的根证书颁发机构的完整性。但是,我们如何知道其是否可信,或者这些证书颁发机构不是某外国情报机构的幌子?你是否觉得这听起来牵强附 会,但却有可能是事实。
此外,DNS也是不得不重视的弱点。只要DNS被攻克,攻击者就可以使用钓鱼技术绕过加密。
当然,这里强调的是加密问题的各种可能性。一个正确实施的加密系统只能在一种情况下被攻克,即测中密钥,在短时间内猜对密钥并非不可能,但其可能性微乎其微。
但是,如果不正确实施加密,选择了不恰当的密码和密钥长度,再加上其它因素(如随机数生成器中的漏洞)就可能意味着加密未必是可靠的。
所以,企业必须重视从多方面强化加密系统,绝不可以偏概全。