25-FIPS配置
本章节下载 (276.64 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即表示Level 2级别的FIPS 140-2。
在FIPS模式下,设备具有更为严格的安全性要求,并会对密码模块进行相应的自检处理,以确认其处于正常运行状态。
进入FIPS模式的设备同时也符合CC(Common Criteria,公共准则)中的NDPP + TFWPP(Network Device Protection Profile (NDPP) Extended Package Stateful Traffic Filter Firewall)定义的功能要求。
设备进入FIPS模式之后,为确保密码算法模块的功能正常运行,系统会进行自检处理,具体包括启动自检、条件自检。启动自检失败后,自检进程所在的单板自动重启。条件自检失败后,自检进程所在的单板不重启,但系统会输出密码算法自检失败的提示信息。
如果自检失败,请联系售后技术服务工程师解决。
启动自检是在设备启动过程中对FIPS允许使用的密码算法进行的自检。
启动自检包括:
· KAT(Known-answer Test,已知结果测试):即使用密码算法对已知的密钥和明文进行运算,如果运算结果与已知结果相同,则表示该算法的启动自检通过,否则表示自检失败。
· PWCT(Pairwise Conditional Test,密钥对有效性测试)
¡ 签名和验证:生成DSA/RSA/ECDSA非对称密钥对时进行的自检,具体为,首先使用私钥对指定数据进行签名,然后使用公钥对该签名数据进行验证,如果解密成功,则表示自检通过,否则自检失败。
¡ 加密和解密:生成RSA非对称密钥对时进行的自检,具体为,首先使用公钥加密任意一段明文,然后使用对应的私钥对生成的密文进行解密,如果解密成功,则表示自检通过,否则自检失败。
启动自检具体内容如表1-1所示。
启动自检类型 |
自检操作 |
软件加密算法自检 |
对以下软件加密算法进行自检: · SHA1、SHA224、SHA256、SHA384、SHA512(KAT) · HMAC-SHA1、HMAC-SHA224、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512(KAT) · AES(KAT) · RSA签名和验证(KAT) · RSA签名和验证(PWCT) · RSA加密和解密(PWCT) · DSA签名和验证(PWCT) · ECDSA签名和验证(PWCT) · DRBG(KAT) · ECDH(KAT) · GCM(KAT) · GMAC(KAT) |
加密引擎自检 |
在支持加密引擎的设备上,对以下加密引擎使用的算法进行自检: · DSA(签名和验证) · RSA(签名和验证) · RSA(加密和解密) · AES · 3DES · SHA1 · HMAC-SHA1 · 随机数生成算法 |
条件自检是在非对称密码模块和随机数生成模块被使用时进行的自检,具体包括以下两种测试:
· 签名和验证的PWCT:生成DSA/RSA非对称密钥对时进行的自检,具体为,首先使用私钥对指定数据进行签名,然后使用公钥对该签名数据进行验证,如果验证成功,则表示自检通过,否则自检失败。
· 随机数连续性测试:生成随机数的过程中进行的自检,如果前后两次生成的随机数不同,则表示自检通过,否则自检失败。该自检过程也会在生成DSA/RSA非对称密钥对时进行。
设备运行于低加密版本时不支持FIPS特性。
仅缺省MDC上支持FIPS的相关命令,非缺省MDC上不支持FIPS的相关命令。
· 设备重启进入FIPS模式之前,系统会自动删除所有非FIPS模式下配置的密钥对和不符合FIPS标准(密钥位数小于2048位,签名HSAH算法为MD5)的数字证书。因此,由非FIPS模式切换到FIPS模式后,用户将无法直接通过SSH方式登录设备。若需要进行SSH登录,必须先在FIPS模式下,通过Console/AUX/Async口登录设备,并创建SSH服务器所需的密钥对,才能支持SSH用户登录。
· 登录FIPS模式下的设备时使用的用户密码必须符合Password Control密码管理策略,例如必须符合一定的密码长度策略、密码复杂度策略以及密码老化策略等。其中,密码的老化时间策略需要关注。当密码的使用时间超过老化时间后,系统会要求用户及时更换密码。一般设备的出厂系统时间比较早,等到进入FIPS模式之后再去调整正确的系统时间很可能会导致登录密码在下一次登录系统时过期。
· FIPS模式下的配置支持配置回滚,FIPS模式与非FIPS模式之间的配置也支持配置回滚。需要注意的是,对FIPS模式与非FIPS模式之间的配置执行回滚操作后,建议删除登录设备的本地用户并重新设置登录设备的本地用户(包括密码、用户角色和服务类型等属性),然后保存当前配置并设置为下次启动配置文件,最后重启设备。重启之后,回滚后的配置才能生效。此过程期间,请勿退出系统或进行其它操作,否则可能会登录失败。
· 为保证自动重启方式进入的FIPS模式与非FIPS模式之间的配置成功进行回滚,设备进入FIPS模式后请首先保存配置,然后进行其它操作;为保证自动重启方式进入的非FIPS模式与FIPS模式之间的配置成功进行回滚,设备进入非FIPS模式后请首先保存配置,然后进行其它操作。
· 建议不要将FIPS模式状态不相同的设备进行IRF搭建。
· 如果在IRF环境下切换FIPS模式,需要重新启动整个IRF之后才能生效。
· 仅支持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-startup.cfg),将其指定为下次启动配置文件,然后自动使用FIPS缺省配置文件重启。
· 手动重启方式下,系统不自动创建进入FIPS模式的下次启动配置文件,需要用户手工完成进入FIPS模式所需的所有必要配置之后,手工重启设备。
· 当系统提示是否使用自动重启方式进入FIPS模式时,若使用组合键<Ctrl+C>退出或用户未在30秒内做出选择,则相当于输入“n”,设备将通过手动重启方式进入FIPS模式。需要注意的是,手动重启方式必须完成相关配置准备,具体请参见1.4.4 手动重启方式进入FIPS模式中的配置准备,否则切换为FIPS模式后,无法正常登录。
· 当系统提示是否使用自动重启方式进入FIPS模式时,若输入“y”选择自动重启后想退出配置流程,可以使用组合键<Ctrl+C>中断配置流程。配置流程中断后,已输入的开启FIPS模式的命令将不被执行。
为避免进入FIPS模式之后,登录密码因为Password Control密码老化策略的限制而过期,建议在执行fips mode enable命令之前确认系统时间正确。
(1) 进入系统视图。
system-view
(2) 开启FIPS模式。
fips mode enable
缺省情况下,FIPS模式处于关闭状态。
(3) 系统提示是否使用自动重启方式进入FIPS模式,在30秒内输入“y”,设备将开始自动配置流程。
(4) 根据命令提示输入登录FIPS模式的设备时所使用的用户名和密码。
用户通过交互式方式输入用户名和密码后,设备会自动创建设备管理类本地用户,该用户将会成为FIPS模式中安全管理员(Crypto Officer),其密码必须是大写字母、小写字母、数字以及特殊字符的组合,且最小长度为15位;服务类型为terminal,角色为network-admin或者mdc-admin。
(5) 设备自动重启并进入FIPS模式。
进入FIPS模式后,用户只能通过步骤(4)设置的用户名和密码登录运行于FIPS模式的设备。
(1) 为避免进入FIPS模式之后,登录密码因为Password Control密码老化策略的限制而过期,建议在配置进入FIPS模式使用的本地用户名和密码之前确认系统时间正确。
(2) 配置密码管理功能
a. 开启全局Password Control功能。
b. 设置全局Password Control密码组合类型的个数为4,每种类型至少1个字符;设置全局Password Control的密码最小长度为15。
关于密码管理功能的详细介绍,请参考“安全配置指导”中的“Password Control”。
(3) 配置本地用户
a. 创建设备管理类本地用户。
b. 配置符合密码管理规则的本地用户密码。
c. 配置用户角色为network-admin或者mdc-admin。
d. 配置服务类型为terminal。
(1) 进入系统视图。
system-view
(2) 开启FIPS模式。
fips mode enable
缺省情况下,FIPS模式处于关闭状态。
执行fips mode enable命令之后到系统重启之前的这个时间段,不建议执行除reboot、save以及相应的配置准备之外的其它命令,否则可能会不能达到预期的执行效果。
(3) 根据命令提示选择手动重启。
(4) 保存当前配置文件并设置为下次启动配置文件。
(5) 删除二进制类型的下次启动配置文件(文件名后缀为“.mdb”)。如果不删除二进制类型的下次启动配置文件,则设备使用二进制配置文件启动时,FIPS模式下不支持的命令(如果存在于配置文件中)也会被恢复,从而影响FIPS模式下系统的正常运行。
(6) 手工重启设备,进入FIPS模式。
进入FIPS模式后,用户只能通过预先设置的本地用户名和密码登录处于FIPS模式的设备。
在设备运行过程中,当用户或管理员需要确认当前FIPS模式下的系统中的密码算法模块是否正常工作时,可以通过执行命令来手工触发系统进行密码算法自检工作。手工触发的密码算法自检内容与设备启动时自动进行的启动自检内容相同。该自检失败后,设备会自动重启。
(1) 进入系统视图。
system-view
(2) 手工触发密码算法自检。
fips self-test
关闭FIPS模式并重启设备之后,设备会返回到非FIPS的工作模式下。
系统提供了两种方式来退出FIPS模式:
· 自动重启方式:系统自动创建一个非FIPS缺省配置文件(名称为non-fips-startup.cfg),同时将其指定为下次启动配置文件,之后自动使用非FIPS缺省配置文件重启。重启之后,当前登录用户不需要输入任何信息即可直接登录到非FIPS模式的系统。
· 手动重启方式:系统不自动创建进入非FIPS模式的下次启动配置文件,需要用户手工完成进入非FIPS模式所需的所有必要配置之后,手工重启设备。重启之后,当前登录用户需要根据配置的登录认证方式输入相应的用户信息登录到非FIPS模式的系统。
从FIPS模式切换到非FIPS模式时,登录设备的缺省认证方式如下,用户也可根据实际情况修改登录认证方式:
· 通过VTY用户线登录设备时的缺省认证方式为password。
· 若设备同时支持Console口和AUX口,则通过Console口登录设备时的缺省认证方式为none,通过AUX口登录设备时的缺省认证方式为password。
· 若设备支持Console口或AUX口之一,则通过Console口和通过AUX口登录设备时的缺省认证方式均为none。
(1) 进入系统视图。
system-view
(2) 关闭FIPS模式。
undo fips mode enable
缺省情况下,FIPS模式处于关闭状态。
(3) 根据命令提示选择自动重启退出FIPS。
(1) 进入系统视图。
system-view
(2) 关闭FIPS模式。
undo fips mode enable
缺省情况下,FIPS模式处于关闭状态。
(3) 设置登录认证方式和登录用户名、密码。
¡ 对于当前远程登录的用户,若要登录非FIPS模式,则必须在不退出当前用户线的情况下,重新设置登录设备的认证方式为scheme,并设置对应的登录用户和密码(也可使用当前的登录用户和密码)。
¡ 对于当前通过Console/AUX/Async口登录的用户,若要登录非FIPS模式的系统,根据用户当前的不同登录方式,需要进行不同的设置,如表1-2所示。
用户当前登录方式 |
设置要求 |
password |
设置认证方式为password,并设置对应的登录密码 |
scheme |
设置认证方式为scheme,并设置对应的登录用户和密码(也可使用当前的登录用户和密码) |
none |
需要认证方式为none |
(4) 根据命令提示选择手动重启。
(5) 保存当前配置文件并设置为下次启动配置文件。
(6) 删除二进制类型的下次启动配置文件(文件名后缀为“.mdb”)。
(7) 重启设备。
在完成上述配置后,在任意视图下执行display命令可以显示配置后FIPS模式的状态,通过查看显示信息验证配置的效果。
表1-3 FIPS的显示和维护
操作 |
命令 |
显示算法库的版本号 |
display crypto version |
显示FIPS模式的状态 |
display fips status |
自动重启设备进入FIPS模式,并采用Console/AUX/Async口登录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/AUX/Async口登录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.
[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/AUX/Async口登录到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.
当前用户已使用Console/AUX/Async口登录到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.
# 将当前配置保存到存储介质的根目录,并将该文件设置为下次启动配置文件。
[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.
[Sysname] quit
# 删除二进制类型的下次启动配置文件。
<Sysname> delete flash:/startup.mdb
Delete flash:/startup.mdb?[Y/N]:y
Deleting file flash:/startup.mdb...Done.
# 重启设备。
<Sysname> reboot
重启设备后,进入非FIPS模式的系统(通过Console/AUX口登录设备的用户缺省认证方式均为none)。
# 显示当前FIPS模式状态,可见设备工作在非FIPS模式下。
<Sysname> display fips status
FIPS mode is disabled.
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!