我已经fips-updates
通过 Ubuntu Advantage 在 Ubuntu 20.04.2 EC2 实例上启用了此功能,但 MD5 似乎仍然被允许并且正常工作。
$ sudo ua status
SERVICE ENTITLED STATUS DESCRIPTION
...
fips yes n/a NIST-certified core packages
fips-updates yes enabled NIST-certified core packages with priority security updates
...
$ cat /proc/sys/crypto/fips_enabled
1
但是,我仍然能够获得字节字符串的 md5 摘要(以下命令没有错误)。
$ python3 -c 'import hashlib; hashlib.md5(b"foo").digest()'
在启用了 FIPS 的 RHEL 系统上,运行相同的命令是一个简单的烟雾测试,以查看 FIPS 是否真正得到执行,因为hashlib.md5()
调用完全因 ValueError 而中断。
是什么导致了这种差异?Ubuntu 的假设是用户自行决定是否使用 Md5 来加密保护数据,而不是直接禁用它吗?
答案1
这Ubuntu 文档暗示只有一部分软件包是 Ubuntu Advantage 和 Ubuntu Pro 中可用的经过 FIPS 140 验证的组件,其中包括:
- Linux 内核加密 API
- OpenSSH 客户端
- OpenSSH 服务器
- OpenSSL
- 库加密
- 强天鹅
而python3
不是其中之一。而 Python 的_md5
用 C 从头实现的模块,它目前似乎能够存在于 FIPS 140-2 执行之外。