Arm 和 Docker 合作推出与平台无关的安全系统 API

阅读数:572 2019 年 10 月 25 日 08:00

Arm和Docker合作推出与平台无关的安全系统API

在 Arm 和 Docker 的支持下, PARSEC (Platform AbstRaction for SECurity)定义了一个通用的软件标准来处理对象存储和加密服务的安全性问题。该计划重点关注由容器化服务组成的现代系统架构,并努力让多种语言能够更容易地使用安全技术。

PARSEC 用各种流行的编程语言建立了一个面向开发人员的库生态系统。每个库都高度符合工效学标准,并且易于使用。这个不断增长的生态系统让基础设施计算、边缘计算和安全物联网等广泛用例的安全措施变得唾手可得。

PARSEC 承诺将会覆盖到安全系统的所有方面,包括密钥的提供和管理、散列、签名、非对称和对称加密、熵,等等。它的核心组件是一个用 Rust 编写的安全服务,它运行在主机上,并通过原生安全措施提供连接性。这就为那些对底层主机硬件设施一无所知,也没有足够特权来使用它们的客户端提供了访问安全设施的可能性。

分层架构确保了 PARSEC 服务的可扩展性,分层架构支持集成安全程序,安全程序可以是通用的,也可以是供应商提供的。外部客户端可以通过公共前端层访问安全程序,这个层负责处理连线协议和公共 API,以及所有序列化和反序列化工作。

为了了解更多信息,InfoQ 采访了 Docker 和 PARSEC 安全主管 Justin Cormack。

InfoQ:你能介绍一下 Parsec 是何时以及如何诞生的吗?它的主要目标是什么?它的目标是如何实现的?

Justin Cormack:Docker 和 Arm 合作已经有一段时间了,在 4 月份的 DockerCon 大会上,他们宣布将致力于为云计算、边缘计算和物联网提供一个通用的软件管道。我们正在探索一个我们共同感兴趣的领域,包括硬件密钥管理和密码学。从 Docker 的角度来看,很明显,一段时间以来,在安全方面处于领先地位的客户,如金融服务公司和政府,都有一个长期的目标,即所有加密和签名私钥都应该存储在硬件中。这样,即使在发生主机泄露的情况下,私钥也不会被窃取。最糟糕的情况是,它们可能在泄露期间被使用。此外,随着边缘应用程序越来越多地采用 Docker,这种安全性甚至变得比数据中心和云应用程序的安全性更为重要。没有了服务器的物理安全保护,硬件安全机制对于防止篡改和本地攻击来说就变得至关重要。这就是为什么我们要和 Arm 合作开发 Parsec,一种用于硬件安全的通用 API。

InfoQ:Parsec 希望如何改善开源软件的安全状况?

Cormack:我们正在努力解决两个问题。

首先,不同类型的硬件密钥之间几乎没有标准化的 API。TPM、苹果和 Android 有自己的 API,每个制造商有不同的 HSM API,而云提供商也有不同的远程 HSM API。我们正在设计一个通用的 API,基于 Arm PSA API(一个现代密码软件套件)。我们也考虑了其他方案,但我们更喜欢这个 API,因为它不包含遗留的加密操作,并且公开了一组合理的高级接口。此外,我们将进一步对其进行抽象,提供更通用的操作。在集成到硬件中之后,将提供一组受限的操作,你可以要求“使用 TLS 1.3 可接受的签名密钥”或类似的问题,实现可以很灵活,而不是只能“使用 RSA 密钥”。在项目中使用硬件密钥会更容易,不需要为特定的硬件和算法编写代码。
第二个问题是,硬件密钥管理没有为多客户端(如节点上的多个容器)提供多路密钥存储功能。我们可以假设这样一种情况,即单个服务拥有整个 TPM 或 HSM,或者可能提供了一些机制,但是不同的机制之间是不一样的。共享很可能不安全,因为客户端可能会访问到错误的密钥。因此,我们添加了一组通用的共享机制,其中包含了一个 Parsec 守护进程,对多个进程进行身份验证,并提供 API。我们计划重用 SPIFFE 协议(一个 CNCF 项目)的工作成果来进行认证和分发客户端证书。

InfoQ:目前有哪些组织在支持它?

Cormack:目前是 Arm 和 Docker 在合作这个项目。将其开放的目的是希望让其他感兴趣的组织能够更容易地参与进来,我们目前正在与其他可能感兴趣的组织进行交涉。我们欢迎所有愿意合作的组织。

InfoQ:你为什么选择 Rust 呢?使用 Rust 开发这类软件的总体经验是怎样的?

Cormack:Rust 与安全相关的项目越来越多,与密码应用程序有关的社区也在不断增长。作为一名安全工程师,我看到越来越多的安全项目选择 Rust。我们需要的是能够与其他语言交互、安全且可靠的东西。Rust 和 Go 语言是主要的候选语言,而 Rust 胜出了。这是 Docker 使用 Rust 开发的第一个项目,尽管我们在过去曾经讨论过其他一些适合的东西。我们目前正在开发 Rust 和 Go 语言客户端库,并计划在未来增加更多语言版本。

InfoQ:Parsec 目前的状态是怎样的?你如何看待它未来的发展?

Cormack:我们非常早就发布了这个项目,到目前为止,我们做的很多工作都是设计而不是编码,但已经有足够完整的原型来做一些演示和演示大部分架构。但它还处于非常早期的阶段,还不能提供给任何人使用,除了那些有兴趣参与贡献的人。我们将致力于将其集成到其他项目中,稳定客户端库,并添加新的后端,如 TPM。公开做这些事情应该也会鼓舞到其他贡献者。

PARSEC 核心服务可以很容易在 Linux 上构建和安装

原文链接

PARSEC Is a New Platform-Agnostic API for Secure Systems

评论

发布