OPENSSL FIPS

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

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

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).app

  • 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.less

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.ide

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

相關文章
相關標籤/搜索