elixir erlang
通过Ayanda Dube
FIPS (联邦信息处理标准) [1]是由NIST (美国国家标准技术研究院)定义的一组标准,旨在提供一种手段来管理和控制计算机系统如何以行业认可的,可信的和可接受的方法进行互操作。 FIPS-140并不是必需的,但是,如果您在不妥协的部门(例如政府系统中发现的部门)中进行操作,我强烈建议您努力成为FIPS-140兼容的部门。 FIPS-140出版物定义了与计算机系统中使用的加密模块和功能有关的标准要求,包括但不限于设计,实现,安装和使用的所有阶段。
基于Erlang的系统(例如RabbitMQ , MongooseIM , Riak , WombatOAM)满足FIPS-140的要求正在Swift增长,这是因为它们在任务关键型环境(例如在安全性要求不受影响的政府部门中广泛使用)中的应用,并且极为重要。 这些Erlang系统由多个应用程序组成,这些应用程序作为其他基础应用程序和子系统(例如Erlang虚拟机和操作系统)堆栈的一部分和一部分运行。 因此,为了实现FIPS-140的合规性,必须同时考虑这些底层,启用层,并重点在于与经过验证的FIPS安全模块的操作和交互。 以下是对Erlang / Elixir系统中为了符合FIPS-140标准而考虑的组件和方面的图解说明和讨论。
1.硬件
FIPS-140定义了平台安全要求,从硬件到操作系统及其安全性库。 对硬件的要求涵盖了对硬件安全模块(例如单芯片和多芯片嵌入式密码模块)的类型进行分类的过程,其中定义了诸如防回火的物理覆盖和涂层之类的方面以及其他内部方面,例如归零敏感的“片上”信息,等等。 在Erlang的范围内,正在开发和交付的嵌入式系统,例如Erlang-ALE (对于嵌入式Elixir系统,则为Elixir-ALE或Nerves) ,在固件实现和硬件制造上都需要考虑这些因素。
2.操作系统和虚拟化
对操作系统的要求决定了类型(是否为受信任的OS)以及所采用的加密软件模块在提供FIPS-140标准中定义的数据保护方面的运行方式。 这些要求是巨大的,并且使开发人员和社区感到高兴,诸如OpenSSL之类的库实现了这些功能集,在充分理解的情况下,必须对其进行配置并使其在执行时符合FIPS-140的要求。 FIPS-140建议采用模块化方法进行软件设计和实施,而OpenSSL紧随其后,通过经过验证的OpenSSL FIPS对象模块实现FIPS-140。 其他库(例如GnuTLS)也结合了FIPS-140的用户首选标准。
可生成的虚拟机和实例也在要考虑的方面范围内,其中包括实现FIPS-140的操作系统,它们封装并充当有效配置各种应用程序的容器。 这些操作系统可以采用完整的操作系统形式,例如由自动化工具(如Docker,Kubernetes,CoreOS)提供给应用程序运行时虚拟机(如Erlang Virtual Machine ,JVM,.NET等)的操作系统 。
在www.erlang-solutions.com上阅读本博客文章的其余部分。
参考资料
[1] https://csrc.nist.gov/publications/fips
最初于 2018 年2月20日 发布在 www.erlang-solutions.com 上。
翻译自: https://hackernoon.com/fips-for-erlang-elixir-systems-9d288a333720
elixir erlang