一直以来,密码技术都被认为是一种有效保护数据,避免未经授权访问的有效技术。但随着密码分析技术不断改进以及计算能力不断增强,很多曾经有效的加密方案变得不再可靠,加密算法的有效性和可靠性因此受到多方面的挑战。
实现强加密防护的要素
实现强加密安全防护需要包括强加密密钥、强大的数学算法和复杂的加密过程等诸多关键要素,其中:
・强加密密钥是用于加密的密码。密码越长或越复杂,就越难被攻击者破解。然而,现代计算机系统所采用的二进制计数方式,导致加密密钥很难具备充分的复杂性,因此只能在长度上进行弥补。大多数强加密密钥需要至少128位(128个0和1的组合)。
・强大的数学算法是指使用密钥为简单数学方法组成的算法馈入信息。当前的加密算法普遍使用了椭圆上的点、大素数乘法或对部分数据实现异或(XOR)逻辑操作作为算法的基础。
・复杂的加密过程是指通过多轮加密来对需要保护的数据集综合使用多种复杂的加密密钥和数学算法。比如说,Blowfish算法使用简单的XOR函数,并在16轮加密中每一轮执行这四个操作:
1. 对数据的左半部分与18项p数组执行XOR操作。
2. 使用XOR数据作为f函数的输入(用于转换数据)。
3. 对f函数的输出与数据的右半部分执行XOR操作。
4. 交换结果的左右两半部分,作为下一轮加密的输入。
以上所述的每个要素都能够单独提供部分保护能力。而将密钥、算法和加密过程共同整合,就可以最大程度确保加密过程的完整性和强壮性。需要强调的是,强加密防护的最大特点是会对被保护数据进行转换以防止被窃取,而不仅是屏蔽数据,或只在数据输出时进行防篡改检查。
每种加密技术在开始应用时都被认为是难以破解的,比如说早期的加密算法DES使用64位数据块加密,采用16轮加密,密钥只有56位。随着算力增强,它就很容易被蛮力猜测破解。1997年,AES加密算法逐步取代了DES,将数据块大小增加到128位,使用10到14轮加密,并将密钥大小增加到至少128位。但美国国家标准与技术研究所(NIST)已经发出提醒,量子计算可能会在未来20年让AES岌岌可危。
实现强加密防护的建议
与网络安全其他领域的安全工具一样,密码技术部署不当会大大削弱其应有的能力。为了获得可靠的加密防护效果,企业的安全团队应该根据业务发展的实际需求,选用适当的加密技术,并在应用实践中参考一下建议:
1全面了解企业的加密环境
要实现强加密保护,安全团队首先需要全面评估和了解整个组织的加密措施应用情况,以取代过时的保护措施,并确保其他加密最佳实践的普遍应用。就像资产发现或数据分析等其他任何安全实践一样,对不可见的资产是无法进行监控和保护。
同样,将当前加密数据的使用情况与整个组织的数据使用情况进行比较。几乎所有组织都对服务器采用全磁盘加密,以保护重要的静态数据,但敏感数据需要持续保护,数据使用可能需要额外的文件、电子邮件或数据库加密。
2使用可以支持的最长加密密钥
要实现强加密保护格外强调密码长度的重要性,但关键问题是如何设定密码长度的最大值和最小值的合理范围。过去,密码长度受到限制是为了适应存储需求。但现在,随着散列值的存储,大小限制变得非常宽松,允许使用强而复杂的密码。
此外,企业还可以采用密码管理器或集中式加密管理,以弥补密码遗忘的问题,并增加算力,以抵消操作方面的限制。通常情况下,钥匙越长,安全性越高。
然而,加长的加密密钥也一定程度增加了密码应用的成本,一些组织无力为所有数据使用最强的加密选项。最好的方法通常是将要保护的数据存放在特定的系统,然后针对不同用途采用不同的密钥长度。比如说,较短的密钥保护笔记本电脑上不太敏感的数据,较长的密钥保护存储在服务器上的敏感数据。
3采取分层加密的模式
使用多种类型和多层加密可以显著提高加密技术抵御攻击的能力。强加密防护同样需要纵深防御的模式,多层加密限制了任何单一加密解决方案失效可能造成的危害,尤其是针对那些最关键的数据。
分层加密的每一层都能都加固密码应用的外部环境,并进一步阻止未经授权的解密活动。比如说,微软建议使用磁盘加密对静态数据进行加密、使用单独的数据库加密,并使用加密的VPN网关以传输数据。
4对密钥进行集中统一管理
为了提升加密应用的安全水平,企业应该将密钥管理提高到与加密技术相同的重要级别。因为即使企业部署了良好的加密策略和加密程序,糟糕的密钥管理仍然会成为“阿喀琉斯之踵”。对于训练有素的安全团队,应该尽快实施集中式统一密钥管理,规范地生成、轮换、更新和注销加密密钥。集中管理有助于提高加密方案的安全级别并改进安全流程,比如定期访问或审计日志审查,对长期备份数据中的密钥进行跟踪,以及对加密资源进行安全访问管理。
5对应用程序中的加密组件加强管理
OWASP 每年都会列出最严重、最常见的Web应用程序安全漏洞,而由于加密组件管理不善、使用弱加密算法或加密算法部署不当,使得加密故障类漏洞长期存在在于这份清单中。加密部署不当往往源于编程错误或对如何执行复杂的加密算法过程有误解,比如无法更改变量、不正确地生成用于创建密钥的随机数,或者使用容易受到恶意或意外的算法输入攻击的代码。
由于应用软件的开发人员往往不具备识别弱加密的专业知识,因此安全团队应向开发团队列出可以使用或需禁止的加密算法类型/库,以降低弱加密的风险。当然,借助一些先进的应用程序漏洞扫描器也可以帮助开发人员检测加密使用不当的情形。
此外,加密组件管理不善也会导致密钥泄露或证书管理不当,从而违背安全集中式密钥管理原则。比如说,维护和保护web服务器SSL数字证书以方便加密连接,防止攻击者窃取和使用企业证书实施冒充攻击。企业可以借助专业工具和加密技术,加强对应用程序中所应用的加密组件进行保护。
参考链接:https://www.esecurityplanet.com/networks/strong-encryption/