20-FIPS配置
本章节下载: 20-FIPS配置 (187.05 KB)
FIPS(Federal Information Processing Standards,联邦信息处理标准)140-2是NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)颁布的针对密码算法安全的一个标准,它规定了一个安全系统中的密码模块应该满足的安全性要求。FIPS 140-2定义了四个安全级别:Level 1、Level 2、Level 3和Level 4,它们安全等级依次递增,可广泛适用于密码模块的各种应用环境。目前,设备支持Level 2级别的FIPS 140-2。
若无特殊说明,本文中的FIPS即表示FIPS 140-2。
· 执行fips mode enable命令之后,系统会提示用户选择启动方式,若用户未在30秒内作出选择,则系统默认用户采用了手动启动方式。
· 设备重启进入FIPS模式之前,系统会自动删除所有非FIPS模式下配置的密钥对和不符合FIPS标准(密钥位数小于2048位,签名HSAH算法为MD5)的数字证书。因此,由非FIPS模式切换到FIPS模式后,用户将无法直接通过SSH方式登录设备。若需要进行SSH登录,必须先在FIPS模式下,通过Console口登录设备,并创建SSH服务器所需的密钥对,才能支持SSH用户登录。
· 登录FIPS模式下的设备时使用的用户密码必须符合Password Control密码管理策略,例如必须符合一定的密码长度策略、密码复杂度策略以及密码老化策略等。其中,密码的老化时间策略需要关注。当密码的使用时间超过老化时间后,系统会要求用户及时更换密码。一般设备的出厂系统时间比较早,等到进入FIPS模式之后再去调整正确的系统时间很可能会导致登录密码在下一次登录系统时过期。因此,如果选择自动重启方式进入FIPS模式,则建议在执行fips mode enable命令之前设置正确的系统时间;如果选择手动重启方式进入FIPS模式,则建议在配置本地用户名和密码之前设置正确的系统时间。
· 如果采用手动重启方式进入FIPS模式,在保存当前配置并设置为下次启动配置文件后,必须首先删除二进制类型的下次启动配置文件,然后再重启设备。如果不删除二进制类型的下次启动配置文件,则设备使用二进制配置文件启动时,FIPS模式下不支持的命令(如果存在于配置文件中)也会被恢复,从而影响FIPS模式下系统的正常运行。
· 执行fips mode enable命令之后到系统重启之前的这个时间段,系统将进入一个准备进入FIPS模式之前的中间状态,若选择手动方式重启,则不建议在这个时间段执行除reboot、save以及相应的配置准备之外的其它命令,否则可能会不能达到预期的执行效果。
· FIPS模式下的配置支持配置回滚,FIPS模式与非FIPS模式之间的配置也支持配置回滚。需要注意的是,对FIPS模式与非FIPS模式之间的配置执行回滚操作后,建议删除登录设备的本地用户并重新设置登录设备的本地用户(包括密码、用户角色和服务类型等属性),然后保存当前配置并设置为下次启动配置文件,最后重启设备。重启之后,回滚后的配置才能生效。此过程期间,请勿退出系统或进行其它操作,否则可能会登录失败。
· 为保证自动重启方式进入的FIPS模式与非FIPS模式之间的配置成功进行回滚,设备进入FIPS模式后请首先保存配置,然后进行其它操作;为保证自动重启方式进入的非FIPS模式与FIPS模式之间的配置成功进行回滚,设备进入非FIPS模式后请首先保存配置,然后进行其它操作。
· 建议不要将FIPS模式状态不相同的设备进行IRF堆叠。
· 如果在IRF环境下切换FIPS模式,需要重新启动整个IRF之后才能生效。
· 仅缺省MDC上支持FIPS的相关命令,非缺省MDC上不支持FIPS的相关命令。
开启FIPS模式并重启设备之后,设备会运行于支持FIPS 140-2标准的工作模式下。在该工作模式下,系统将具有更为严格的安全性要求,并会对密码模块进行相应的自检处理,以确认其处于正常运行状态。
进入FIPS模式的设备同时也符合CC(Common Criteria,公共准则)中的NDPP(Network Device Protection Profile,网络设备保护特性)定义的功能要求。
系统提供了两种启动选择来进入FIPS模式:自动重启方式和手动重启方式。
该方式下,系统自动创建一个FIPS缺省配置文件(名称为fips-startup.cfg),同时将其指定为下次启动配置文件,在要求用户完成配置下次登录设备所需的用户名和密码之后,自动使用FIPS缺省配置文件重启。具体步骤如下:
(1) 用户开启FIPS模式。
(2) 用户手工选择自动重启。如果在以下的输入过程中想退出配置流程,可以使用组合键<Ctrl+C>中断配置流程。配置流程中断后,已输入的开启FIPS模式的命令将不被执行。
(3) 用户手工配置登录FIPS模式的设备时所使用的用户名和密码。该用户将会成为FIPS模式中安全管理员(Crypto Officer),其密码必须是大写字母、小写字母、数字以及特殊字符的组合,且最小长度为15位。
(4) 用户成功设置安全管理员用户名和登录密码之后,系统自动使用指定的启动配置文件重启。
(5) 系统进入FIPS模式。用户只能通过步骤(3)设置的用户名和密码登录运行于FIPS模式的设备。
该方式下,系统不自动创建进入FIPS模式的下次启动配置文件,需要用户手工完成进入FIPS模式所需的所有必要配置之后,手工重启设备。具体步骤如下:
(1) 用户完成以下配置准备,主要包括:
· 开启全局Password Control功能。
· 设置全局Password Control密码组合类型的个数为4,每种类型至少1个字符。
· 设置全局Password Control的密码最小长度为15。
· 添加设备管理类本地用户,设置密码、用户角色和服务类型。本地用户的密码需要符合以上Password Control配置的限制,用户角色必须是network-admin或者mdc-admin,服务类型为terminal。
· 删除不符合FIPS标准的本地用户服务类型(Telnet、HTTP和FTP)。
(2) 用户开启FIPS模式。
(3) 用户手工选择手动重启。
(4) 用户手工保存当前配置文件并设置为下次启动配置文件。
(5) 用户手工删除二进制类型的下次启动配置文件(文件名后缀为“.mdb”)。
(6) 重启设备。
(7) 系统进入FIPS模式。用户只能通过步骤(1)设置的本地用户名和密码登录处于FIPS模式的设备。
表1-1 开启FIPS模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启FIPS模式 |
fips mode enable |
缺省情况下,FIPS模式处于关闭状态 |
系统进入FIPS模式,设备上的以下功能将发生变化:
· 仅支持scheme类型的用户登录认证方式。
· FTP/TFTP服务器和客户端功能被禁用。
· Telnet服务器和客户端功能被禁用。
· HTTP服务器功能被禁用。
· SNMPv1和SNMPv2c版本的SNMP功能被禁用,只允许使用SNMPv3版本。
· SSL服务器功能支持TLS1.0、 TLS1.1、 TLS1.2协议。
· SSH服务器功能不兼容SSHv1客户端,不支持DSA类型的密钥对。
· 仅支持生成2048位的RSA密钥对和2048位的DSA密钥对。因此设备作为服务器时,若要求对客户端进行公钥认证,则客户端的密钥对也需要为2048位,否则服务器将会拒绝客户端的连接。
· 仅支持256位以上的ECDSA密钥对。因此设备作为服务器时,若要求对客户端进行公钥认证,则客户端的密钥对也需要为256位以上,否则服务器将会拒绝客户端的连接。
· SSH、SNMPv3、IPsec和SSL不支持DES、3DES、RC4、MD5算法。
· 不能关闭全局Password Control功能,即undo password-control enable命令执行后不生效。
· 部分特性中的密码设置将具有更严格的安全性要求:
¡ AAA服务器的共享密钥、IKE协商的预共享密钥、SNMPv3用户的认证密钥都必须满足固定的要求:密码最小长度为15,密码元素的最少组合类型为4(必须包括数字、大写字母、小写字母以及特殊字符)。
¡ 设备管理类本地用户的密码和用户角色切换密码受Password Control密码策略的管理,缺省要求为:密码最小长度为15,密码元素的最少组合类型为4(必须包括数字、大写字母、小写字母以及特殊字符)。
关闭FIPS模式并重启设备之后,设备会返回到非FIPS的工作模式下。
系统提供了两种启动方式来退出FIPS模式:
· 自动重启方式:系统自动创建一个非FIPS缺省配置文件(名称为non-fips-startup.cfg),同时将其指定为下次启动配置文件,之后自动使用非FIPS缺省配置文件重启。重启之后,当前登录用户不需要输入任何信息即可直接登录到非FIPS模式的系统。
· 手动重启方式:系统不自动创建进入非FIPS模式的下次启动配置文件,需要用户手工完成进入非FIPS模式所需的所有必要配置之后,手工重启设备。重启之后,当前登录用户需要根据配置的登录认证方式输入相应的用户信息登录到非FIPS模式的系统。
从FIPS模式切换到非FIPS模式时,登录设备的缺省认证方式如下,用户也可根据实际情况修改登录认证方式:
· 通过VTY用户线登录设备时的缺省认证方式为password。
· 设备通过Console口登录设备时的缺省认证方式均为none。
关闭FIPS模式之后、选择手动重启设备之前,需要注意的是:
· 对于当前远程登录的用户,若要登录非FIPS模式,则必须在不退出当前用户线的情况下,重新设置登录设备的认证方式为scheme,并设置对应的登录用户和密码(也可使用当前的登录用户和密码)。
· 对于当前通过Console口登录的用户,若要登录非FIPS模式的系统:
¡ 如果使用password登录认证方式,则还需要设置相应的认证方式为password,并设置对应的登录密码。
¡ 如果使用scheme登录认证方式,则需要设置相应的认证方式为scheme,并设置对应的登录用户和密码(也可使用当前的登录用户和密码)。
¡ 如果使用none登录认证方式,则需要设置相应的认证方式为none。
表1-2 关闭FIPS模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
关闭FIPS模式 |
undo fips mode enable |
缺省情况下,FIPS模式处于关闭状态 |
FIPS模式处于开启状态之后,为确保密码算法模块的功能正常运行,系统会进行一定的自检处理,具体包括启动自检、条件自检。启动自检失败后,自检进程所在的单板自动重启。条件自检失败后,自检进程所在的单板不重启,但系统会输出密码算法自检失败的提示信息。
设备运行过程当中,当用户或管理员需要确认当前FIPS模式下的系统中的密码算法模块是否正常工作时,可以通过执行命令来手工触发系统进行密码算法自检工作。手工自检失败后,整个设备会自动重启。
如果自检失败,请联系用服工程师解决。
启动自检是在设备启动过程中对FIPS允许使用的密码算法进行的自检。启动自检包括以下两种:
· KAT(Known-answer Test,已知结果测试):即使用密码算法对已知的密钥和明文进行运算,如果运算结果与已知结果相同,则表示该算法的启动自检通过,否则表示自检失败。
· PWCT(Pairwise Conditional Test,密钥对有效性测试):
¡ 签名和验证:生成DSA/RSA/ECDSA非对称密钥对时进行的自检,具体为,首先使用私钥对指定数据进行签名,然后使用公钥对该签名数据进行验证,如果验证成功,则表示自检通过,否则自检失败。
¡ 加密和解密:生成RSA非对称密钥对时进行的自检,具体为,首先使用公钥加密任意一段明文,然后使用对应的私钥对生成的密文进行解密,如果解密成功,则表示自检通过,否则自检失败。
· 3DES · SHA1、SHA224、SHA256、SHA384、SHA512 · HMAC-SHA1、HMAC-SHA224、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512 · AES · RSA签名和验证 · ECDH · RNG · DRBG · GCM · GMAC |
|
· RSA签名和验证 · RSA加密和解密 · DSA签名和验证 · ECDSA签名和验证 |
条件自检是在非对称密码模块和随机数生成模块被使用时进行的自检,具体包括以下两种测试:
· 签名和验证的PWCT:生成DSA/RSA非对称密钥对时进行的自检,具体为,首先使用私钥对指定数据进行签名,然后使用公钥对该签名数据进行验证,如果验证成功,则表示自检通过,否则自检失败。
· 随机数连续性测试:生成随机数的过程中进行的自检,如果前后两次生成的随机数不同,则表示自检通过,否则自检失败。该自检过程也会在生成DSA/RSA非对称密钥对时进行。
手工触发的密码算法自检内容与设备启动时自动进行的启动自检(Power-up Self-tests)内容相同。该自检失败后,设备会自动重启。
表1-4 手工触发密码算法自检
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
手工触发密码算法自检 |
fips self-test |
- |
在完成上述配置后,在任意视图下执行display命令可以显示配置后FIPS模式的状态,通过查看显示信息验证配置的效果。
表1-5 FIPS的显示和维护
操作 |
命令 |
显示算法库的版本号 |
display crypto version |
显示FIPS模式的状态 |
display fips status |
自动重启设备进入FIPS模式,并采用Console口登录FIPS模式的设备。
# 若要保存当前配置,请在开启FIPS模式之前,执行save命令。
# 开启FIPS模式,并选择自动重启方式进入FIPS模式。设置用户名为root,对应的密码为12345zxcvb!@#$%ZXCVB。
<Sysname> system-view
[Sysname] fips mode enable
FIPS mode change requires a device reboot. Continue? [Y/N]:y
Reboot the device automatically? [Y/N]:y
The system will create a new startup configuration file for FIPS mode. After you set the login username and password for FIPS mode, the device will reboot automatically.
Enter username(1-55 characters):root
Enter password(15-63 characters):
Confirm password:
Waiting for reboot... After reboot, the device will enter FIPS mode.
重启设备后,输入用户名root和对应的密码。首次登录时,系统会提示重置密码。重置密码成功后,进入FIPS模式的系统。重置的密码必须是大写字母、小写字母、数字以及特殊字符的组合,最小长度为15位,且需要与旧密码不同(具体要求请见系统提示)。
Press ENTER to get started.
login: root
Password:
First login or password reset. For security reason, you need to change your password. Please enter your password.
old password:
new password:
confirm:
Updating user information. Please wait ... ...
…(略)
<Sysname>
# 显示当前FIPS模式状态。
<Sysname> display fips status
FIPS mode is enabled.
# 查看缺省的配置文件内容。
<Sysname> more fips-startup.cfg
#
password-control enable
#
local-user root class manage
service-type terminal
authorization-attribute user-role network-admin
#
fips mode enable
#
return
<Sysname>
手动重启设备进入FIPS模式,并采用Console口登录FIPS模式的设备。
# 开启全局Password Control功能。
<Sysname> system-view
[Sysname] password-control enable
# 设置全局Password Control密码组合类型的个数为4,每种类型至少一个字符。
[Sysname] password-control composition type-number 4 type-length 1
# 设置全局Password Control的密码最小长度为15。
[Sysname] password-control length 15
# 添加设备管理类本地用户:用户名为test、密码为12345zxcvb!@#$%ZXCVB、用户角色为network-admin,服务类型为Terminal。
[Sysname] local-user test class manage
[Sysname-luser-manage-test] password simple 12345zxcvb!@#$%ZXCVB
[Sysname-luser-manage-test] authorization-attribute user-role network-admin
[Sysname-luser-manage-test] service-type terminal
[Sysname-luser-manage-test] quit
# 开启FIPS模式,并选择手动重启方式进入FIPS模式。
[Sysname] fips mode enable
FIPS mode change requires a device reboot. Continue? [Y/N]:y
Reboot the device automatically? [Y/N]:n
Change the configuration to meet FIPS mode requirements, save the configuration to the next-startup configuration file, and then reboot to enter FIPS mode.
# 将当前配置保存到存储介质的根目录,并将该文件设置为下次启动配置文件。
[Sysname] save
The current configuration will be written to the device. Are you sure? [Y/N]:y
Please input the file name(*.cfg)[flash:/startup.cfg]
(To leave the existing filename unchanged, press the enter key):
flash:/startup.cfg exists, overwrite? [Y/N]:y
Validating file. Please wait...
Saved the current configuration to mainboard device successfully.
Slot 1:
Save next configuration file successfully.
[Sysname] quit
# 删除二进制类型的下次启动配置文件。
<Sysname> delete flash:/startup.mdb
Delete flash:/startup.mdb?[Y/N]:y
Deleting file flash:/startup.mdb...Done.
# 重启设备。
<Sysname> reboot
重启设备后,输入用户名test和对应的密码首次登录时,系统会提示重置密码。重置密码成功后,进入FIPS模式的系统。重置的密码必须是大写字母、小写字母、数字以及特殊字符的组合,最小长度为15位,且需要与旧密码不同(具体要求请见系统提示)。
Press ENTER to get started.
login: test
Password:
First login or password reset. For security reason, you need to change your pass
word. Please enter your password.
old password:
new password:
confirm:
Updating user information. Please wait ... ...
…(略)
<Sysname>
# 显示当前FIPS模式状态,可见设备工作在FIPS模式下。
<Sysname> display fips status
FIPS mode is enabled.
当前用户已使用Console口登录到FIPS模式,要求自动重启设备退出FIPS模式。
# 关闭FIPS模式。
[Sysname] undo fips mode enable
FIPS mode change requires a device reboot. Continue? [Y/N]:y
The system will create a new startup configuration file for non-FIPS mode and then reboot automatically. Continue? [Y/N]:y
Waiting for reboot... After reboot, the device will enter non-FIPS mode.
重启设备后,用户可直接进入系统。
<Sysname>
# 显示当前FIPS模式状态。
<Sysname> display fips status
FIPS mode is disabled.
当前用户已使用SSH远程登录到FIPS模式,用户名为test、密码为12345zxcvb!@#$%ZXCVB,要求手动重启设备退出FIPS模式。
# 关闭FIPS模式。
[Sysname] undo fips mode enable
FIPS mode change requires a device reboot. Continue? [Y/N]:y
The system will create a new startup configuration file for non-FIPS mode, and then reboot automatically. Continue? [Y/N]:n
Change the configuration to meet non-FIPS mode requirements, save the configuration to the next-startup configuration file, and then reboot to enter non-FIPS mode.
# 设置登录VTY用户线的登录认证方式为scheme。
[Sysname] line vty 0 63
[Sysname-line-vty0-63] authentication-mode scheme
# 将当前配置保存到存储介质的根目录,并将该文件设置为下次启动配置文件。
[Sysname] save
The current configuration will be written to the device. Are you sure? [Y/N]:y
Please input the file name(*.cfg)[flash:/startup.cfg]
(To leave the existing filename unchanged, press the enter key):
flash:/startup.cfg exists, overwrite? [Y/N]:y
Validating file. Please wait...
Saved the current configuration to mainboard device successfully.
Slot 1:
Save next configuration file successfully.
[Sysname] quit
# 删除二进制类型的下次启动配置文件。
<Sysname> delete flash:/startup.mdb
Delete flash:/startup.mdb?[Y/N]:y
Deleting file flash:/startup.mdb...Done.
# 重启设备。
<Sysname> reboot
重启设备后,输入用户名test和对应的密码12345zxcvb!@#$%ZXCVB,进入非FIPS模式的系统。
Press ENTER to get started.
login: test
Password:
Last successfully login time:…
(略)
<Sysname>
# 显示当前FIPS模式状态,可见设备工作在非FIPS模式下。
<Sysname> display fips status
FIPS mode is disabled.
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!