dot 未来的速度即将在您所在的城市举办的活动中亮相。

加入我们参加 Redis 发布会

安全飞地可能是未来数据安全的关键

如果您在网络安全领域工作,或者与您组织的网络安全团队互动过,您可能听说过这个问题:“所有数据在传输过程中和存储时是否都已加密?” 传输加密在数据传输过程中保护数据,而存储加密则保护存储中的数据。

在高度监管的行业中,这是标准操作程序。在监管较少的行业中,在处理客户数据时,它仍然是一种谨慎的做法。

但还有一个很少有人谈论的加密领域,那就是 使用中的加密。 使用中的加密在数据在内存中处理时保护数据。 实际上,使用中的加密可以防止拥有服务器访问权限的人通过内存转储或内存取证访问数据,这些操作可以对服务器上运行的任何进程执行。(要真正了解使用中的加密的重要性,您应该以您的组织已经被入侵,并且安全是关于最大程度地减少潜在损害的思维方式来处理这个问题。)

如今,使用中的加密通常使用客户端加密来完成。但是,有一种新兴技术,称为安全飞地,它有望解决客户端加密的许多局限性。

什么是客户端加密?

客户端加密,或在将数据存储到数据库(如 Redis)之前在应用程序内加密数据的做法,是实现使用中加密最广泛采用的方法。

客户端加密还可以防止内部威胁。减少可以访问您数据的人数会改变您在进行业务运营时需要信任的人。使用客户端加密,您不再需要信任数据库操作系统上的管理员。类似地,客户端加密有助于从您需要信任的人或事物中移除第三方,这些人员或事物称为可信计算基。您不再需要信任云提供商不会滥用您的数据,因为它可以访问操作系统或虚拟机管理程序,您可以确保云提供商无法访问您的数据。

这些好处适用于客户端加密和使用安全飞地。

客户端加密的局限性

但是,客户端加密有两个主要局限性。首先,需要对数据进行操作的功能(例如简单的搜索功能、比较和增量操作)不适用于客户端加密。下面的命令行示例显示了对加密数字进行递增操作如何失败,因为数据在客户端加密后不再被识别

$ echo "33" >> secrets.txt
$ openssl aes-256-cbc -a -salt -in secrets.txt -out secrets.txt.enc
$ 输入 aes-256-cbc 加密密码:*****
$ 确认 - 输入 aes-256-cbc 加密密码:*****
$ cat secrets.txt.enc
U2FsdGVkX1+zYi/m14irl+JeZokh75XxRAG4HBA56bk=
$ redis-cli set mysecret U2FsdGVkX1+zYi/m14irl+JeZokh75XxRAG4HBA56bk=
OK
$ redis-cli incrby mysecret 1
(error) ERR 值不是整数或超出范围

此外,多个服务通常需要访问同一个数据库,这带来了在多个应用程序中管理加密密钥的复杂性和投资。这会增加部署客户端加密的管理开销。

用于使用中加密的安全飞地

安全飞地有望帮助降低使用中加密的障碍。安全飞地是受保护的私有内存分配,外部进程无法使用。现在正在形成一个由硬件供应商、云提供商和软件制造商组成的生态系统,使软件社区更容易使用安全飞地。截至 2020 年 4 月,一些内部部署硬件、一部分 Microsoft Azure 虚拟机以及阿里云和 IBM 云的专用硬件实例中都提供了对安全飞地的支持。

那么,安全飞地需要做些什么才能取得广泛的成功? 根据 创新扩散理论,许多新兴技术难以跨越吸引早期采用者和获得早期多数用户支持之间的鸿沟。 随着安全飞地技术的发展和新用户的加入,它正在接近这个鸿沟,这个鸿沟一直是许多有前途的技术的坟墓。 但是,鉴于该技术的势头和围绕它构建的生态系统,我们对安全飞地的前景感到非常兴奋。

创新采用鸿沟。

为了使安全飞地成功跨越这个鸿沟,必须发生四件关键的事情

  1. 硬件支持: 安全飞地是使用中加密的硬件实现方式。 重要的是,这种技术应该内置到新出厂的硬件中,并且应该对其性能进行衡量。 硬件采用率越高,性能越好,我们就会越快看到整体采用率的提高。
  2. 云提供商服务采用: 对于许多组织来说,购买定制硬件来试验安全飞地成本高昂。 如果需要大量投资,那么新兴技术(如安全飞地)的快速采用将非常困难。 云规模基础设施和规模经济对于创建经济实惠的试验场以加速安全飞地的采用至关重要。
  3. 软件采用简化工具集出现: 安全飞地是复杂的工具。 针对它们进行开发将需要软件开发人员学习新的方法来构建和构建他们的应用程序。 使应用程序能够轻松地适应或创建以支持使用安全飞地的软件工具对于这场运动的成功至关重要。
  4. 应用程序采用: 最后,大量的应用程序开发人员必须选择将他们的时间投入到开发在安全飞地中运行的应用程序。

Redis 社区的安全飞地

Redis 正在与社区中那些正在开发安全飞地生态系统的人合作。 我们正在努力将 Redis 和 Redis Enterprise 融入快速形成的安全飞地生态系统,方法是与 Anjuna合作,Anjuna 是一家供应商,可以将现有应用程序按原样迁移到飞地,无需重新编码。虽然我们仍处于创新的早期阶段,但我们的目标是鼓励更广泛的意识,帮助安全飞地跨越从早期采用到早期多数的鸿沟,并促进该技术的持续成功。

我们认为安全飞地对 Redis 社区有三大主要优势

  1. 使用中加密,使功能成为可能: 使用中加密可能是 Redis 社区的重大推动力。 它可以帮助保护 Redis 中的数据,防止拥有操作系统访问权限的人员未经授权访问。 存储在内存中的数据是这些攻击的主要目标。 虽然这些攻击并不常见,并且合规性社区尚未强制使用中加密,但安全飞地可以帮助 Redis 扩展到需要最高安全级别的用例,同时最大限度地减少对 Redis 功能的影响。
  2. 数据密封: 在内存中受到保护的数据必须持久保存到某个地方,以便您的数据库可以在发生故障事件时幸存下来。 数据密封可以让您将数据以加密格式持久保存到磁盘,只有安全飞地可以读取。 数据密封可以帮助确保 Redis RDB 和 AOF 文件在发生故障事件后受到保护并可供使用。
  3. 减少对云提供商的信任: Redis 是云中最广泛部署的数据库。 使用 Redis 与安全飞地可以确保云提供商从可信计算基中移除。

如何确保您使用安全飞地安全

为了全面保护您的内存数据,不仅仅是 Redis 中的数据需要加密。 针对 Redis 开发的应用程序服务也必须在安全飞地中开发。 如果您的应用程序不是使用这种技术开发的,您仍然会面临内存攻击。

这是一篇关于安全飞地优势的简化说明,专门为 Redis 社区设计。 像任何新兴技术一样,您应该了解安全飞地的局限性以及其功能。

如果您想在技术层面上了解更多关于安全飞地的信息,一篇名为 使用安全飞地改进云安全的论文,来自加州大学伯克利分校,是一个不错的起点。 您还可以通过访问 英特尔的软件保护扩展 (SGX) 网站了解更多信息。