https://www.openssl.org/docs/fipsnotes.html

https://wiki.openssl.org/index.php/FIPS_mode()

openssl-fips是符合FIPS标准的Openssl。
联邦信息处理标准(Federal Information Processing Standards,FIPS)是一套描述文件处理、加密算法和其他信息技术标准(在非军用政府机构和与这些机构合作的政府承包商和供应商中应用的标准)的标准。
 

编译过openssl的同学应该知道一个叫OPENSSL_FIPS的宏。这个宏有什么作用呢。
Intel AES指令(AES-NI)是Intel32纳米微架构上的一组新指令。这些指令对于使用 AES(Advancde Encryption Standard)算法进行数据加解密的操作能够起到加速的作用。AES标准由FIPS定义,如今广泛 应用在贸易安全,数据库的加密等各个方面。
Intel AES-NI包括七条指令。其中六条是硬件对AES的支持(四条关于AES加解密,另两条指令有关AES key的扩展)。第七条指令有助于进位乘法。
AES-NI可以灵活地支持AES的各种使用方式,包括各种标准密钥的长度,各种模式的操作,甚至是一些非标准或是未来可能的各种方式。对比现在一些纯软件的实现,它对性能的提升非常显著。
如果打开该宏,直接调用Intel AES指令,轻松获得5倍左右的性能提升(这个摘抄网上的说法,没有真正测试过)。

BTW: 改Openssl version的地方(crypto/opensslv.h中的宏: OPENSSL_VERSION_TEXT)

The OpenSSL FIPS Object Module is a specific subset of OpenSSL, API-compatible with OpenSSL, and provided as source code. That module has gone through the long and painful administrative process of obtaining a FIPS 140-2 validation. It has achieved the "overall level: 1" (see the validation certificate).

The intent of FIPS 140-2 validation is to show, basically, that some level of "seriousness" was applied during the development. Validation cannot prove that there is no bug or vulnerability, but it can show that the developers applied proper methodologies which, hopefully, should avoid bugs and make the software conform to a specific set of target properties.

Now, there are some caveats:

  • In practice, the OpenSSL developers applied the same development methodologies for both the FIPS module, and "plain" OpenSSL. Both versions share a lot of code; the FIPS module is actually a subset of the normal library version. For the same functionalities, the plain OpenSSL should be no less secure than the FIPS module. (For functionalities which the plain OpenSSL offers but not the FIPS module, anything goes).

  • The FIPS module is validated only insofar as you use it absolutely unchanged. If you modify the slightest character in the source code, you are no longer covered by the FIPS validation.

The second point, in particular, implies that if a bug is found in "normal OpenSSL", and a bugfix is published, then that bugfix is not immediately imported into the FIPS module, because that would void its FIPSness. Therefore, it can be argued that the plain OpenSSL is in fact more secure than the FIPS module, since it is fixed much more quickly when holes are uncovered.

Summary: if you do not target some sort of conformance to FIPS 140-2, use the normal OpenSSL.

OpenSSL FIPS documentation:

http://www.openssl.org/docs/fips/

Download:

http://www.openssl.org/source/

unpack and compile OpenSSL FIPS module:

./config

make

sudo make install

unpack and comiple openssl:

./config fips

make

sudo make install

OPENSSL FIPS的更多相关文章

  1. [转载]OpenSSL中文手册之命令行详解(未完待续)

     声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...

  2. 常用工具之stunnel

    The stunnel program is designed to work as an SSL encryption wrapper between remote client and local ...

  3. configure.ac

    # # Copyright (C) - Tobias Brunner # Copyright (C) - Andreas Steffen # Copyright (C) - Martin Willi ...

  4. linux升级openssh到7.9

    客户linux主机ssh存在高危漏洞,需要进行升级修复. linux联网后,直接命令行: [root@gw ~]# yum update openssl -y 此命令只是小版本的升级,比如将opens ...

  5. OpenSSL 与 SSL 数字证书概念贴

    SSL/TLS 介绍见文章 SSL/TLS原理详解(http://seanlook.com/2015/01/07/tls-ssl). 如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自 ...

  6. openssl 摘要和签名验证指令dgst使用详解

    1.信息摘要和数字签名概述 信息摘要:对数据进行处理,得到一段固定长度的结果,其特点输入: 1.输出长度固定.即输出长度和输入长度无关. 2.不可逆.即由输出数据理论上不能推导出输入数据 4.对输入数 ...

  7. openssl 1.1.1 reference

    openssl 1.1.1 include/openssl aes.h: # define HEADER_AES_H aes.h: # define AES_ENCRYPT 1 aes.h: # de ...

  8. OpenSSL基础知识

    1.openssl里的fips是什么意思? openssl-fips是符合FIPS标准的Openssl. 联邦信息处理标准(Federal Information Processing Standar ...

  9. [服务器安全]升级OpenSSH,OpenSSL,vsftp,关闭NTP服务

    公司的旧版直播服务器使用的是CentOS 6.7,很多软件包都是几年前的了.最近很多安全相关的新闻充斥着IT圈,先是Intel芯片有重大安全漏洞,后面MacOS爆安全漏洞.所以,对于安全问题还真不能小 ...

随机推荐

  1. __class__属性与元类

    class M(type): def __str__(self): return "gege" aa = "ccf" cc = "ccc" ...

  2. PCA和白化练习之处理二维数据

    在很多情况下,我们要处理的数据的维度很高,需要提取主要的特征进行分析这就是PCA(主成分分析),白化是为了减少各个特征之间的冗余,因为在许多自然数据中,各个特征之间往往存在着一种关联,为了减少特征之间 ...

  3. Linux TTY驱动--Uart_driver底层【转】

    转自:http://blog.csdn.net/sharecode/article/details/9196591 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux 中将串口驱动进行了 ...

  4. node+webpack环境搭建 vue.js 2.0 基础学习笔记

    npm install -g vue //全局安装vue npm install -g webpack //全局安装webpack npm install -g vue-cli //全局安装vue-c ...

  5. jdk8 lambda表达式总结

    Java8 lambda表达式10个示例   1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnab ...

  6. SOA 设计的 9 大原则

    面向服务的架构 (SOA) 设计要尽可能地简单.在设计一个 SOA 服务的时候要谨记这 9 大设计原则: 1. 标准服务契约 服务要遵循一个服务描述. 2. 松耦合 服务之间的依赖最小化. 3. 服务 ...

  7. Servlet 3.0 新特性详解

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/#major3 Servlet 是 Java EE 规范体系的重要组成部分,也是 ...

  8. **CI创建类库(创建自己的工具类等)

    创建类库 当我们使用术语"类库"时,我们一般指的是位于libraries 文件夹中的类,它们在wiki的"类库参考"这个板块被讨论.在当前这个话题中,我们将讨论 ...

  9. IdentityServer4使用EFCore生成MySql时的小bug

    EFCore生成PersistedGrantDbContextModelSnapshot的时候发现 b.Property<string>("Data") .IsRequ ...

  10. P1387 最大正方形 图DP

    题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...