他们希望我们合规而不是安全

2020-12-27 07:20:26

几年前,我在一个参与联邦资助研究的组织工作。有时,政府IT审核员(或他们雇用的承包商)将访问我们的设施以审核我们的系统。

我们在几种不同的硬件平台上使用了多种操作系统。 Windows,Mac,Linux和Unix系统分散在我们遍布台式机,笔记本电脑,工作站,服务器和嵌入式设备的建筑物中。我们运行了几种不同的Linux发行版,多个Unix,并已在bcrypt散列上进行了标准化以存储用户密码。

Bcrypt于1999年发布,基于Blowfish。 Blowfish是由Bruce Schneier于1993年开发的一种快速,无专利的分组密码。自2.6版本以来,它一直处于主线Linux内核中。

Bcrypt是一种快速高效的密码哈希,但功能强大且难以攻击。当时,它是我们可以使用的最强大的密码哈希,此外,它还可以在我们的所有Linux和Unix系统上使用。

一年中,IT审核员意识到我们正在使用bcrypt哈希存储用户密码。他们说这不是FIPS认可的算法,通过使用bcrypt哈希,我们不合规。他们坚持认为,我们必须立即切换到基于SHA-2的哈希函数。

我们进行了一些测试,这些实验证明了SHA-2散列比bcrypt散列更容易破解(关于半现代GPU的性能比较,请参见下文)。但是审计师们坚决反对。他们不在乎批准的算法是否较弱。什么都不会改变他们的决定。

在他们看来,这很简单。 Bcrypt不在列表中。它不是批准的哈希函数。他们不会进一步讨论。

为了使审核员满意,我们将所有系统切换为已批准的SHA-2哈希函数。此操作可能使我们的系统更容易受到网络攻击。

$ hashcat -b -m 1800hashcat(v5.1.0)从基准测试模式开始... OpenCL平台#1:NVIDIA Corporation ======================= ============= **设备#1:GeForce GTX 1060 6GB,1519/6077 MB可分配,10MCUB基准测试相关选项:================ ========== * --optimized-kernel-enable哈希模式:1800-sha512crypt $ 6 $,SHA512(Unix)(迭代次数:5000)Speed。#1 .........:78810 H / s(51.36ms)@ Accel:512循环:128 Thr:32 Vec:1

$ hashcat -b -m 3200hashcat(v5.1.0)从基准测试模式开始... OpenCL平台#1:NVIDIA Corporation ======================= ============= **设备#1:GeForce GTX 1060 6GB,1519/6077 MB可分配,10MCUB基准测试相关选项:================ ========== * --optimized-kernel-enable哈希模式:3200-bcrypt $ 2 * $,Blowfish(Unix)(迭代次数:32)Speed。#1 .........: 7570 H / s(41.13ms)@ Accel:16循环:8 Thr:8 Vec:1