某非 Cisco 来源发布了对 Cisco 配置文件中的用户口令(及其他口令)进行解密的程序。对于用 enable secret 命令设置的口令,该程序无法解密。此程序在 Cisco 用户中导致了意外的恐慌。这使我们意识到,许多依赖于 Cisco 口令加密的用户想要获得更高的安全性,但其最初设计所能提供的安全性有所不足。本文档介绍思科密码加密背后的安全模型以及该加密的安全限制。
注意:Cisco建议所有Cisco IOS设备实施身份验证、授权和记帐(AAA)安全模型。AAA 可以使用本地、RADIUS 和 TACACS+ 数据库。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
Cisco IOS配置文件中的用户密码和大多数其他密码(不启用加密)都使用现代加密标准非常薄弱的方案进行加密。
虽然思科不分发解密程序,但至少有两种不同的Cisco IOS密码解密程序可供互联网上的公众使用;1995年初,思科首次公开发布了此类计划。我们期望任何业余密码学家都能够用很少的努力创造一个新程序。
Cisco IOS用于用户密码的方案,从来不是为了抵御确定的智能攻击。加密方案旨在通过简单的监听或嗅探来避免密码被盗。它从来不是为了防止对配置文件执行密码破解工作的人。
由于加密算法很弱,因此客户应将任何包含密码的配置文件视为敏感信息,就像对待明文密码列表一样。
不应再使用enable password命令。请使用 enable secret 命令以获得更高的安全性。唯一可能测试enable password命令的实例是设备在不支持enable secret命令的引导模式下运行时。
使能加密使用MD5算法进行哈希处理。据思科所有人所知,根据配置文件的内容(不是明显的字典攻击)恢复使能密钥是不可能的。
注意:这仅适用于使用使能加密设置的密码,而不适用于使用使能密码设置的密码。实际上,使用的加密强度是两个命令之间唯一的显着区别。
在正常操作模式(完整的Cisco IOS映像)下使用show version命令查看引导映像,以查看引导映像是否支持enable secret命令。如果有,请删除启用密码。如果引导映像不支持使能加密,请注意以下警告:
如果您具有物理安全性,因此没有人可以将设备重新加载到启动映像,则可能不需要设置使能密码。
如果某人对设备有物理访问权限,则他可以轻松破坏设备安全性,而无需访问启动映像。
如果将使能密码设置为与使能加密相同,则使使能加密与使能密码一样容易受到攻击。
如果由于引导映像不支持使能加密,将使能密码设置为不同的值,则路由器管理员必须记住不常在不支持enable secret 命令的ROM上使用的新密码。通过使用单独的使能密码,管理员在强制停机进行软件升级时可能不记得密码,这是登录到引导模式的唯一原因。
Cisco IOS配置文件中几乎所有密码和其他身份验证字符串都使用用户密码使用的弱可逆方案进行加密。
要确定已使用哪种方案来加密特定密码,请检查配置文件中加密字符串前面的数字。如果该数字是7,则密码已使用弱算法加密。如果数字为5,则使用更强的MD5算法对密码进行哈希处理。
例如,在配置命令中:
enable secret 5 $1$iUjJ$cDZ03KKGh7mHfX2RSbDqP.
使能密钥已使用MD5进行哈希处理,而在命令中:
username jdoe password 7 07362E590E1B1C041B1E124C0A2F2E206832752E1A01134D
密码已使用弱可逆算法加密。
在电子邮件中发送配置信息时,应从第7类密码中清理配置。您可以使用show tech-support命令,该命令会在默认情况下清除信息。show tech-support命令输出示例如下所示。
... hostname routerA ! aaa new-model aaa authentication login default local aaa authentication ppp default if-needed local enable secret 5 <removed> ! username jdoe password 7 <removed> username headquarters password 7 <removed> username hacker password 7 <removed> ...
在简单文件传输协议(TFTP)服务器上保存配置文件时,请更改该文件未使用时的权限或将其置于防火墙后。
思科目前没有计划支持对Cisco IOS用户密码使用更强的加密算法。如果思科决定将来引入此功能,该功能肯定会给选择利用此功能的用户带来额外的管理负担。
在一般情况下,不可能将用户密码切换到用于使能加密的基于MD5的算法,因为MD5是单向哈希,而且密码根本无法从加密数据中恢复。为了支持某些身份验证协议(特别是CHAP),系统需要访问用户密码的明文,因此必须使用可逆算法存储这些密码。
密钥管理问题将使切换到更强的可逆算法(如DES)成为一项非琐碎的任务。虽然修改Cisco IOS以使用DES加密密码很容易,但如果所有Cisco IOS系统都使用相同的DES密钥,那么这样做就没有安全优势。如果不同系统使用不同的密钥,则所有Cisco IOS网络管理员都会面临管理负担,并且系统之间配置文件的可移植性会受损。客户对更强的可逆密码加密的需求很小。