在OpenSSL的官网上可以看到三个分支,分别是openssl-、openssl-fips-、openssl-fips-ecp-。这三者的区别如下。 分支 内容差异 openssl- 完整版的OpenSSL openssl-fips- 把密码函数库单独抽出来,做成一个满足FIPS 140-2安全一级的密码模块。 openssl-fips-ecp- 基本同openssl-fips-,但是删除了二元域的椭圆曲线,只保留了P元域的,所以是ECP。 比如,对比openssl-fips-2.0.16和openssl-fips-ecp-2.0.16,可以发现fips-ecp的版本,即openssl-fips-ecp-2.0.16,少了一堆椭圆曲线二元域实现的
美国联邦信息处理标准(FIPS,Federal Information Processing Standards)就是其中一个重要的标准。 在本篇文章中,我们将通过Python实现一个生成符合FIPS审计规则的密码的方法。 FIPS 审计规则简介 FIPS 有很多标准和规范,这里我们关注的是关于密码强度的部分,规定通常包括: 密码长度:通常至少应为12个字符。 复杂性:包括大写字母、小写字母、数字和特殊字符。 Python 实现 要生成符合 FIPS 标准的密码,我们可以使用 Python 的 random 和 string 标准库。 总结 生成一个符合 FIPS 审计规则的密码是网络安全的一部分,尤其在需要遵守严格规定的场合更为重要。以上 Python 代码提供了一个简单但有效的解决方案。
概述 FIPS(Federal Information Processing Standards)是美国联邦政府的一套信息处理标准,包括了密码的复杂度要求。 以下是一个Python方法,用于检查给定的密码是否符合一般的FIPS密码复杂度标准。 代码实现 import string import re def check_fips_password_complexity(password): if len(password) < 12 (r'[\s\x00]', password): print("密码包含不允许的字符(空格、中止字符等)") return False print("密码符合FIPS ") else: print("不执行改密操作") 使用说明 只需将用户输入的密码传给 check_fips_password_complexity 函数。
FIPS203 关注的核心问题 量子威胁重点在密钥交换 量子计算机主要威胁基于数论问题的非对称加密(RSA/ECC)。 现有的公钥密码系统如基于整数分解和离散对数问题的算法在量子计算机的攻击下将不再安全,因此,NIST发起了后量子密码学标准化项目,以寻找能够抵抗量子攻击的新型加密算法(FIPS203 源文档)。 分层安全策略 FIPS 203采用分层设计:ML-KEM负责安全分发密钥(抗量子层),对称算法负责数据加密(高效执行层)。这种分工既保障了长期安全性,又避免了大规模替换现有对称加密基础设施的成本。 标准兼容性 文档要求共享密钥需符合NIST SP 800-57的安全强度要求,并允许直接用于FIPS批准的对称算法(如AES),无需额外修改。这体现了对现有对称加密体系的信任。
Module-Lattice-Based Digital Signature Algorithm
NIST密码学官网重要链接导航密码学算法规范AES规范https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdfAES-GCM规范https /NIST.FIPS.180-4.pdfhttps://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdfHMAChttps://nvlpubs.nist.gov /nistpubs/FIPS/NIST.FIPS.198-1.pdfML-DSAhttps://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdfML-KEMhttps ://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdfhttps://nvlpubs.nist.gov/nistpubs/SpecialPublications /NIST.SP.800-227.ipd.pdfSLH-DSAhttps://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf随机数RNGhttps://
查看配置方法 [root@localhost ~]# ovirt-aaa-jdbc-tool user --help Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips 先创建用户 [root@localhost ~]# ovirt-aaa-jdbc-tool user add test Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips localhost ~]# ovirt-aaa-jdbc-tool user password-reset test Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips show查看 [root@localhost ~]# ovirt-aaa-jdbc-tool settings show Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips [root@localhost ~]# ovirt-aaa-jdbc-tool user delete test Picked up JAVA_TOOL_OPTIONS: -Dcom.redhat.fips
-z "$_FIPS_SIG" ] && [ -e "$_FIPS_SIG" ]; then export FIPS_SIG="$_FIPS_SIG" fi fi # Error checking Its OK to ignore this if you are *not* building for FIPS if [ -z "$FIPS_SIG" ] || [ ! -e "$FIPS_SIG" ]; then echo "Error: FIPS_SIG does not specify incore module. -z "$_FIPS_SIG" ] && [ -e "$_FIPS_SIG" ]; then export FIPS_SIG="$_FIPS_SIG" fi fi # Error checking -e "$FIPS_SIG" ]; then echo "Error: FIPS_SIG does not specify incore module.
gt LEFT JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png INNER JOIN 当我们想查看两个表的交集时 gt INNER JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png FULL JOIN 无论是否发现匹配, 因为在 Country Code 表中没有匹配 fips code = "AZ",所以在这种情况下,国家名称和 fips 代码的第一个条目为空。 gt FULL OUTER JOIN Country_Code cc ON gt.country_code = cc.fips_code; 查询结果: image.png RIGHT JOIN 右连接与左连接相同 gt RIGHT JOIN Country_Code cc ON gt.country_code = cc.fips_code SELF JOIN 我们使用自连接来处理一元关系,因为它将表链接到自身。
Decoder pointer: 0x5555555af7f0[1] Provider: default, Decoder: RSA Properties: provider=default,fips Decoder pointer: 0x5555555afa30[2] Provider: default, Decoder: RSA Properties: provider=default,fips Decoder pointer: 0x5555555afbc0[3] Provider: default, Decoder: RSA Properties: provider=default,fips Decoder pointer: 0x5555555afd00[4] Provider: default, Decoder: RSA Properties: provider=default,fips Decoder pointer: 0x5555555b0350[5] Provider: default, Decoder: RSA Properties: provider=default,fips
应用程序可以使用MYSQL_OPT_SSL_FIPS_MODE选项传递给mysql_options()函数来在客户端上启用FIPS模式。 当MySQL使用OpenSSL 3.0进行编译,并且在运行时提供了OpenSSL库和FIPS对象模块,服务器将读取OpenSSL配置文件,并遵循使用FIPS提供程序的首选项(如果有设置的话)。 OpenSSL 3.0已经通过FIPS认证。 为了更倾向于OpenSSL替代方案,ssl_fips_mode服务器系统变量,--ssl-fips-mode客户端选项以及MYSQL_OPT_SSL_FIPS_MODE选项现在已被弃用,并可能在未来的MySQL 当应用程序使用MYSQL_OPT_SSL_FIPS_MODE选项或客户端用户在命令行、选项文件或两者中指定--ssl-fips-mode选项时,将输出弃用警告到标准错误输出。
://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz) 3.ssl功能需要openssl库(https://www.openssl.org/source/openssl-fips -2.0.16.tar.gz文件:tar -zxvf openssl-fips-2.0.16.tar.gz <3>进入openssl-fips-2.0.16解压包中:cd openssl-fips- /config --prefix=/home/zhangbao/openssl-fips-2.0.16 /home/zhangbao目录下多了一个openssl-fips-2.0.16文件夹,如下图 : <5>运行make命令:进入/home/zhangbao/nginx_install/openssl-fips-2.016文件夹,运行make命令 <6>没有问题后运行make install命令 /openssl-fips-2.0.16 --prefix=/home/zhangbao/nginx-1.12.2 <5>cd /home/zhangbao/nginx_install/nginx-1.12.2
`https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json` as counties1; `https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv` as fips1; select explode (split(cast(content as string),"\n")) as content from fips1 as fips2; select split(content,",")[0] as fips,cast(split(content,",")[1] as double) as unemp from fips2 where content ! = "fips,unemp" as fips; !
接下来,我们将依据FIPS(Federal Information Processing System)编码对某一个单独州内的全部郡县加以提取。本文我们就以美国中西部的堪萨斯州为例进行操作。 FIPS编码是美国国内各地区各自的唯一编码,用以区分不同地理实体。 每个州各自均有一个唯一的二位FIPS编码,每个州下的所有郡县级地区同样有各自唯一的五位FIPS编码(其中前两位是一样的,都是该州所属FIPS编码)。 显然,如果需要提取某一个州的全部郡县,我们需要依据矢量边界地图中FIPS编码相关的属性加以操作。 点击图层名称,查看图层属性;可以看到,我们所导入的矢量边界地图中“GEOID”字段是我们需要的FIPS编码属性字段。 ?
wget http://nginx.org/download/nginx-1.15.2.tar.gz 安装依赖 wget http://www.openssl.org/source/openssl-fips pcre-8.40.tar.gz 安装C++环境 yum install gcc-c++ Nginx 安装 openssl安装 [root@localhost src]# tar zxvf openssl-fips -2.0.10.tar.gz [root@localhost src]# cd openssl-fips-2.0.10 [root@localhost openssl-fips-2.0.10]# .
然后到了rocky论坛的一个帖子( https://forums.rockylinux.org/t/issue-with-openssl-fips-provider-during-migration-from-rhel 核心问题是 openssl-fips-provider 和 openssl-libs 都提供了 /usr/lib64/ossl-modules/fips.so,至少在 openssl-libs-1:3.0.7 -27 之前,Rocky 拥有/拥有一个软件包 openssl-libs,而 RHEL 构建 openssl-libs 和 openssl-fips-provider,将一些内容拆分为后者后来,我结合了一些学过的命令 ,将冲突地方强制删除,换上rpm -e --nodeps openssl-fips-provideryum install https://shell.nuoyis.net/download/openssl-devel
_1900_Feet boundary : NAD_1983_StatePlane_Maryland_FIPS_1900_Feet street_lights : NAD_1983_StatePlane_Maryland_FIPS _1900_Feet roads : NAD_1983_StatePlane_Maryland_FIPS_1900_Feet traffic_analysis_zones : NAD_1983_StatePlane_Maryland_FIPS 首先确定我们想要投影到的坐标系,本次会使用roads要素类的投影坐标系NAD_1983_StatePlane_Maryland_FIPS_1900_Feet。 # 查询roads坐标系NAD_1983_StatePlane_Maryland_FIPS_1900_Feet的WKID代码 desc = arcpy.da.Describe("roads") sr _StatePlane_Maryland_FIPS_1900_Feet : 复制成功 roads : NAD_1983_StatePlane_Maryland_FIPS_1900_Feet : 复制成功
新增FIPS 140模块选择机制 针对安全合规需求,cmd/go模块新增了FIPS 140加密标准模块选择机制,支持企业用户在高度安全要求环境下灵活配置,提升了Golang的合规能力与实用性。 4. FIPS 140模块选择机制的设计理念与应用场景 FIPS 140作为美国联邦政府认可的加密标准,对安全模块的合规性要求极高。 新版Go支持在构建阶段通过环境变量或命令参数,动态选择FIPS认证的加密模块,实现标准认证下的密码库调用,满足政府及大型企业需求。 4. 使用FIPS认证环境用户可根据需要测试并启用新的FIPS模块配置,确保符合合规要求。 5. 跨平台项目需关注文件创建逻辑测试,防止新增的行为调整影响生产环境。
import "crypto/dsa" dsa包实现FIPS 186-3定义的数字签名算法(Digital Signature Algorithm),即DSA算法。 big.Int) bool Variables var ErrInvalidPublicKey = errors.New("crypto/dsa: invalid public key") 非法公钥,FIPS type ParameterSizes type ParameterSizes int 是DSA参数中的质数可以接受的字位长度的枚举,参见FIPS 186-3 section 4.2。 注意根据FIPS 186-3 section 4.6的规定,hash必须被截断到亚组的长度,本函数是不会自己截断的。 注意根据FIPS 186-3 section 4.6的规定,hash必须被截断到亚组的长度,本函数是不会自己截断的。
$ GOARCH=amd64 go test crypto/ed25519 -asmflags=crypto/internal/fips140/edwards25519/field=-mutlist - c# crypto/internal/fips140/edwards25519/fieldasm: mutlist: $GOROOT/src/crypto/internal/fips140/edwards25519 /field/fe_amd64.s:8: 00001 TEXT crypto/internal/fips140/edwards25519/field.feMul(SB), NOSPLIT, $0-24 [...]asm: mutlist: $GOROOT/src/crypto/internal/fips140/edwards25519/field/fe_amd64.s:23: 00012 ADDQ AX, DIasm: mutlist: $GOROOT/src/crypto/internal/fips140/edwards25519/field/fe_amd64.s:24: 00013 ADCQ