适用于Erlang和Elixir系统的FIPS

通过Ayanda Dube

FIPS (联邦信息处理标准) [1]是由NIST (美国国家标准技术研究院)定义的一组标准,旨在提供一种手段来管理和控制计算机系统如何以行业认可,可信和可接受的方式进行互操作。 FIPS-140并不是必需的,但是,如果您在不妥协的部门(如政府系统中发现的部门)中进行操作,我强烈建议您努力成为FIPS-140兼容的部门。 FIPS-140出版物定义了与计算机系统中使用的加密模块和功能有关的标准要求,包括但不限于设计,实现,安装和使用的所有阶段。

基于Erlang的系统(例如RabbitMQMongooseIMRiakWombatOAM)满足FIPS-140的要求正在迅速增加,这是因为它们在任务关键型环境(例如在安全性要求不高的政府部门中使用)密集使用的情况,并且极为重要。 这些Erlang系统由多个应用程序组成,这些应用程序作为其他基础应用程序和子系统(例如Erlang虚拟机和操作系统)堆栈的一部分和一部分运行。 因此,为了实现FIPS-140的合规性,必须同时考虑这些底层,使能层,并强调与经过验证的FIPS安全模块的操作和交互。 以下是对Erlang / Elixir系统中为了符合FIPS-140标准而考虑的组件和方面的图解说明和讨论。

图1:要符合FIPS-140的组件和方面

1.硬件

FIPS-140定义了平台安全要求,从硬件到操作系统及其安全性库。 对硬件的要求涵盖了对硬件安全模块(例如单芯片和多芯片嵌入式密码模块)的类型进行分类的过程,其中定义了诸如防回火的物理覆盖和涂层之类的方面以及其他内部方面,例如归零敏感的“片上”信息,等等。 在Erlang的范围内,正在开发和交付的嵌入式系统,例如Erlang-ALE (对于嵌入式Elixir系统,则为Elixir-ALENerves) ,在固件实现和硬件制造上都需要考虑这些因素。

2.操作系统和虚拟化

对操作系统的要求决定了类型(是否为受信任的OS)以及所采用的加密软件模块在提供FIPS-140标准中定义的数据保护方面的运行方式。 这些要求是巨大的,并且使开发人员和社区感到高兴,诸如OpenSSL之类的库实现了这些功能集,在充分理解的情况下,必须对其进行配置并使其在执行时符合FIPS-140的要求。 FIPS-140建议采用模块化方法进行软件设计和实施,而OpenSSL紧随其后,通过经过验证的OpenSSL FIPS对象模块实现FIPS-140。 其他库(例如GnuTLS)还结合了FIPS-140合规性,这是用户首选的。

可产生的虚拟机和实例也在要考虑的方面的范围内,包括实现FIPS-140的操作系统,它们封装并充当有效配置各种应用程序的容器。 这些操作系统可以采用完整的操作系统形式,例如由自动化工具(如Docker,Kubernetes,CoreOS)提供给应用程序运行时虚拟机(如Erlang虚拟机 ,JVM,.NET等)的操作系统

图2:Erlang

www.erlang-solutions.com上阅读本博客文章的其余部分。

参考文献

[1] https://csrc.nist.gov/publications/fips

最初于 2018 年2月20日 发布在 www.erlang-solutions.com 上。

From: https://hackernoon.com/fips-for-erlang-elixir-systems-9d288a333720

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值