TL;DR不要使用 Type 7 尽可能避免使用 Type 5,并且几乎总是尝试使用 Type 8(不幸的是,Cisco 世界中的 Type 8 并非总是在所有设备上都可用。1)
正如这里的用户所说,有“两个”(我在这里使用语音标记,因为实际上还有更多,一些仅在较新版本的代码和某些产品上具有功能,我将在稍后讨论)但是两种密码类型是常见的是 7 型和 5 型。
正如您被告知的那样,Type 7 很容易破解,事实上,通过快速的 Google 搜索,您可以在网上找到一个解密器,例如,这是我过去使用过的一个。关键是,它很容易逆转,它背后没有任何安全性,所以请永远不要使用它(除非你只是在运行实验室)。
您没有被告知的是为什么它不安全 - 类型 7 使用Vigenère 密码这个密码现在被认为完全被破坏了,简而言之,这个密码使用
基于关键字字母的一系列交织的凯撒密码。
这实质上意味着您按顺序采用多个 Ceaser 密码,但是您每次都更改移位值。因此,在 Ceaser 中,您只需在 Vigenère 密码中使用 3 的移位,每次都使用不同的值移位。一个了解 Vigenère 密码如何工作的好网站是Crypto Corner。
那么Type 5 更安全呢?是的,它更安全,它好吗?很好的存储密码,不是真的。类型 5 使用 MD5。MD5 根本不适合存储密码,请参阅MD5 是否被认为不安全?(我建议阅读 CodesInChaos 的答案和下面的 Thomas Pornins 答案)这两个答案都很棒,并且会告诉您为什么不应该将密码存储在 MD5 中。本质上,MD5 速度很快,每秒可以散列数十亿个密码。MD5 的 Cisco 实现使用了Salt,但是如此处所述由 Tom Leek 撰写,实际上,由于速度的原因,在 MD5 中使用 Salt 并没有任何区别。因此,您是否应该使用类型 5,它确实取决于您的威胁模型,但我建议尽可能不要使用它。正如我之前提到的,实际上还有其他类型。
在较新版本的 Cisco IOS 中,现在有 Type 8 和 Type 9 密码。这是很多更安全。
类型 8 使用 PBKDF2-SHA-256。PBKDF2 很好,因为它被设计为慢而 MD5 不是。Type 8 速度非常慢,这可能是一个问题,尤其是在路由器、交换机等上,这是因为它们不使用强大的 CPU,而像 Cisco 这样的公司并没有具体披露他们使用的 CPU,所以说他们是合乎逻辑的'不是非常强大,例如实际上交换机所做的并不是那么密集,因此他们不会使用非常强大的硬件。当您在 Cisco 交换机上生成具有 4096 位的 RSA 密钥时,这一点变得很明显。一般来说,PBKDF2 似乎是汤姆在此处提到的密码存储标准它似乎也是 NIST 推荐用于存储密码的方法,因此如果您可以选择我会推荐 Type 8,它将比 Type 7 安全得多,并且比 Type 5 安全得多,所以如果您有能力然后使用它。同样,这完全取决于您的威胁模型。一般来说,虽然我会说如果您在客户网络上使用它(客户是客户,也许您也销售网络解决方案)然后尽可能尝试使用 Type 8。
最后,您拥有 Type 9 Scrypt,而我无法评估其安全性是时候由加密专家研究了。然而,简单地说,Scrypt将比Type 7 和 Type 5 安全得多,因为它再次被设计为慢速,这意味着计算时间要长得多,因此您想认为“更安全”。Scrypt 的一个很好的资源在这里。
综上所述,你应该使用Type 7还是Type 5?答案是不。您当然不应该使用 Type 7,这太糟糕了。关于Type 5,也不要使用它。使用 MD5 存储密码根本不安全。
在生产环境中,请完全避免使用 Type 7 在必要/可能的情况下避免使用 Type 5,并且几乎可以肯定尝试实施 Type 8 或 Type 9,因为 NIST 建议使用 PBKDF2,因为我倾向于使用 Type 9 .
我想提的最后一件事是 - 显然这仅适用于本地凭据(我希望)如果您要安装生产网络,请使用某种 RADIUS 服务器,这更安全(尤其是如果您有一个 NOC,其中有多个工程师工作)。
1 - 我意识到我没有提到 Type 4,但如果你要在网络上实现它,你不应该在 IT 部门工作,你需要升级你的设备才能享受它们将不再支持 Type 4