云计算或许成本较低,但并非免费。
如今,绝大多数应用都通过安全HTTP交付。这意味着需要使用TLS,或日益不受认可的SSL,也意味着需要使用加密技术,而传统上,加密往往会带来性能问题。
得益于技术进步,如今的CPU速度非常快,许多客户端(以及服务器端)硬件也原生集成了过去需要专用硬件才能提供的加密功能。这意味着,就单个连接而言,加密速度已不像过去那样成问题。
但这并不意味着加密技术不再带来性能开销和运营成本。
大多数观点都不认同密码技术是导致严重性能问题的重要因素,而这些观点通常基于仅涉及一个客户端和一台服务器的简单场景。在这种场景中,只需执行一次加密和一次解密。对于此类场景,反对者的看法基本正确。加密和解密引入的延迟很小,通常不如TCP和网络相关开销值得关注。
但如今的应用并非仅由单个端点构成。消息在到达这个“单一端点”之前,必须经过多个中间节点和代理,包括安全与访问控制端点、负载均衡端点和路由端点。每个端点都需要检查消息的明文内容,才能在现代数据路径这一复杂协作过程中履行各自的职责。
正是在这里,“加密的开销并没有那么高”这一观点开始站不住脚。单独来看,单个端点引入的延迟很小。但如果数据路径中的每个端点都要多次执行加密操作,这些延迟就会累积,变得更加明显;尤其是在公有云环境中,还会带来高昂的运营成本。
加密本身就是一个计算开销较大的过程。这意味着,与执行业务逻辑相比,加密或解密消息需要耗费更多CPU周期。在云环境中,CPU周期就意味着成本。一般而言,这是一项可接受的成本,因为采用云服务的目的之一就是将资本支出转化为运营支出。
但如果多次解密和加密同一条消息,成本就会不断累积。实际上,您是在为同一个加密过程支付多次费用。执行一次可能只需1美分,但执行5次就会骤增至5美分。按一天(甚至一小时)内数十万笔事务计算,最终成本将高得惊人。
还要注意,加密处理每消耗一个CPU周期,就会少一个CPU周期用于处理业务逻辑。这意味着可能需要比预期更早进行横向扩展,而每启动一个额外实例来处理负载,都会进一步增加成本。
简而言之,“处处使用SSL”不应导致在云中采用“处处解密”的架构。
一次解密
为了降低成本并充分发挥所购CPU的效能,值得投入时间,按照“仅解密一次”原则设计云架构。“仅解密一次”是指,应尽量减少数据路径中必须对传输中的消息进行解密和重新加密的端点数量。
要做到这一点,需要提前规划,并仔细考虑目前用于保护应用安全和扩展应用的16 种不同应用服务。如果不受强制要求端到端加密的法规或其他要求约束,应合理设计数据路径,尽早解密消息,避免后续解密浪费额外的计算周期。如果必须保持端到端加密,则应尽可能整合服务,以更高效地利用计算资源。
尽可能将多项服务整合到单一平台上,例如将负载均衡与Web应用防火墙整合在一起,可以减少对传输中消息的解密次数。这样还能减少连接数量和网络传输时间,从而提升用户和消费者的使用性能。但真正节省的是无需用于重复解密和重新加密的CPU周期。
对于目前使用量较低的应用,考虑加密和解密的影响似乎是在浪费时间。眼下节省的少量成本显然不足以抵消为此投入的精力。但随着应用不断发展、扩展并长期运行,这些点滴成本会逐渐累积,最终产生显著影响。更不用说,微秒也会像零钱一样积少成多。通过考虑加密技术对整个数据路径的影响,长期来看,可以让用户和企业双方都从中受益。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。