【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

  • 2019-10-25
  • 本文字数:2029 字

    阅读完需:约 7 分钟

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


2019-10-25 08:001358

评论

发布
暂无评论
发现更多内容

python3.8.3安装ipython和jupyter

肖飞码字

python3.x Jupyter Notebook

【写作群星榜】5.29~6.4写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

白天写代码,晚上摆地摊!9年前摆地摊学会了这些道理...

王磊

深入理解Java虚拟机

SkyeDance

深入理解JVM

hexo博客系统的实现原理与搭建

音视频专家-李超

Hexo 博客

TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?

小林coding

Linux TCP 网络安全 计算机网络 网络协议

使用ADMT和PES实现window AD账户跨域迁移-介绍篇

BigYoung

windows AD ADMT PES 迁移

分布式架构,刚性事务-2PC必须注意的问题及3PC详细解

奈学教育

分布式架构 2PC注意事项 3PC详解

别做误人子弟的「职业导师」

Tony Wu

职业成长 导师 教练

C++:两百字三段代码解决函数返回局部变量问题

韩小非

c++ 函数栈调用 返回局部变量

【大厂面试03期】MySQL是怎么解决幻读问题的?

NotFound9

MySQL 数据库 编程 架构

NIO 看破也说破(五): 搞,今天就搞,搞懂Buffer

小眼睛聊技术

Java 学习 读书笔记 架构 后端

5G时代,如何彻底搞定海量数据库的设计与实践

奈学教育

海量数据库的设计与实践

我是一个连地摊都不会摆的废人

Neco.W

创业 投机 投机者 地摊

原创 | TDD工具集:JUnit、AssertJ和Mockito (十七)编写测试-标签和过滤

编程道与术

Java 编程 TDD 单元测试 JUnit

深入理解JVM垃圾回收机制 - 何为垃圾?

SkyeDance

深入理解JVM 垃圾回收机制

Android工程架构演进及康威定律

石头

万字总结——反射(框架之魂)

学习Java的小姐姐

Java 反射 Java 25 周年

ARTS-WEEK02

子路无倦

游戏夜读 | 网络游戏怎么赚钱?

game1night

如何让解决无法访问 GitHub 的问题?

JackTian

GitHub

强烈安利第一个画图工具!

我是程序员小贱

高效工作 高效

大数据中台之Kafka,到底好在哪里?

奈学教育

kafka

判例学习(一)梨视频诉字节跳动帮助侵权二审判决

Yin

学习 读书笔记 互联网 知识产权 法律

centos6.9开机启动服务说明

唯爱

HTML5 && CSS

shirley

html5 css3

预告|2020中国CRM品牌测评报告

人称T客

Silicon Labs Gecko bootloader 简介

taox

zigbee bootlaoder

MyBatis启动之XMLConfigBuilder解析配置文件(二)

ytao

后端 mybatis

过滤器 和 拦截器 6个区别,别再傻傻分不清了

程序员小富

Java

机器学习算法评估指标——2D 目标跟踪

做技术BP的文案Gou

学习 2D 评估标准

Arm和Docker合作推出与平台无关的安全系统API_开源_Sergio De Simone_InfoQ精选文章