02-keychain配置
本章节下载: 02-keychain配置 (209.31 KB)
目 录
keychain是加密规则(key)的集合,用来为应用程序提供动态认证功能。keychain在不中断业务的前提下,通过定期更改用于认证的密钥和算法来提升网络数据传输的安全性。
一个keychain中的不同key可配置各自的认证密钥、认证算法和生命周期。当系统时间处于key的生命周期内时,应用程序可以利用它对发送和接收的报文进行校验。当keychain内各个key的生命周期具有连续性时,随着系统时间的推移,各个key能够依次生效,从而实现动态地更改应用程序使用的认证算法和认证密钥。
keychain支持绝对时间模式和周期性时间模式,不同时间模式下,key的生命周期不同:
· 绝对时间模式:该模式的keychain中,key的生命周期是UTC(Coordinated Universal Time,国际协调时间)绝对时间,不受系统的时区和夏令时的影响。
· 周期性时间模式:该模式的keychain中,key的生命周期是根据系统的本地时间计算的,会受到系统的时区和夏令时的影响。包括以下四种模式:
¡ daily:按天的周期性时间模式,key的生命周期是从一天之内的指定起始时间到指定结束时间,每天重复。
¡ weekly:按周的周期性时间模式,key的生命周期是从一周之内的指定起始日到指定结束日,每周重复。
¡ monthly:按月的周期性时间模式,key的生命周期是从一月之内的指定起始日期到指定结束日期,每月重复。
¡ yearly:按年的周期性时间模式,key的生命周期是从一年之内的指定起始月到指定结束月,每年重复。
配置keychain时需要注意以下几点:
· 同一个keychain内的各个key使用send-lifetime指定的生命周期不可重叠,以确保在同一时刻,应用程序只使用一个key对发送的报文进行校验。
· 认证双方在同一时间内所使用的key的认证算法和认证密钥必须一致。
(1) 进入系统视图。
system-view
(2) 创建keychain,并进入keychain视图。
keychain keychain-name mode absolute
(3) (可选)配置TCP认证。
¡ 配置TCP增强认证选项中的类型值。
tcp-kind kind-value
缺省情况下,TCP增强认证选项中的类型值为254。
¡ 配置TCP认证算法对应的算法ID。
tcp-algorithm-id { hmac-md5 | hmac-sha-256 | hmac-sm3 | md5 | sm3 } algorithm-id
缺省情况下,MD5认证算法的算法ID是3,HMAC-MD5认证算法的算法ID是5,HMAC-SHA-256认证算法的算法ID是7,SM3认证算法的算法ID是51,HMAC-SM3认证算法的算法ID是52。
使用TCP作为传输层协议的通信双方,类型值及相同的算法ID对应的认证算法必须一致。在与友商设备互通时,请检查类型值及算法ID的配置,确保两端一致。
(4) (可选)延长key在报文接收时的生命周期。
accept-tolerance { value | infinite }
缺省情况下,没有为keychain中的key延长其在报文接收时的生命周期。
用户需要修改认证双方的校验信息时,可能会出现由于校验信息的不匹配导致的业务中断。为了避免上述情况的发生,可使用该命令为应用协议提供不中断其业务的报文校验服务。
(5) 创建一个key,并进入key视图。
key key-id
(6) 配置key。
¡ 配置key的认证算法。
authentication-algorithm { hmac-md5 | hmac-sha-1 | hmac-sha-256 | hmac-sm3 | md5 | sm3 }
缺省情况下,未配置key的认证算法。
¡ 配置key的认证密钥。
key-string { cipher | plain } string
缺省情况下,未配置key的认证密钥。
¡ 配置用来校验发送报文时key的UTC模式的生命周期。
send-lifetime utc start-time start-date { duration { duration-value | infinite } | to end-time end-date }
缺省情况下,未配置用来校验发送报文时key的生命周期。
¡ 配置用来校验接收报文时key的UTC模式的生命周期。
accept-lifetime utc start-time start-date { duration { duration-value | infinite } | to end-time end-date }
缺省情况下,未配置用来校验接收报文时key的生命周期。
¡ (可选)将当前key指定为keychain的缺省发送key。
default-send-key
缺省情况下,keychain中不存在缺省发送key。
同一个keychain中,只能将一个key指定为缺省的发送key。
(1) 进入系统视图。
system-view
(2) 创建keychain,并进入keychain视图。
keychain keychain-name mode periodic { daily | monthly | weekly | yearly }
(3) (可选)配置TCP认证。
¡ 配置TCP增强认证选项中的类型值。
tcp-kind kind-value
缺省情况下,TCP增强认证选项中的类型值为254。
¡ 配置TCP认证算法对应的算法ID。
tcp-algorithm-id { hmac-md5 | hmac-sha-256 | hmac-sm3 | md5 | sm3 } algorithm-id
缺省情况下,MD5认证算法的算法ID是3,HMAC-MD5认证算法的算法ID是5,HMAC-SHA-256认证算法的算法ID是7,SM3认证算法的算法ID是51,HMAC-SM3认证算法的算法ID是52。
使用TCP作为传输层协议的通信双方,类型值及相同的算法ID对应的认证算法必须一致。在与友商设备互通时,请检查类型值及算法ID的配置,确保两端一致。
(4) (可选)为keychain中的key延长其在报文接收时的生命周期。
accept-tolerance { value | infinite }
缺省情况下,没有为keychain中的key延长其在报文接收时的生命周期。
用户需要修改认证双方的校验信息时,可能会出现由于校验信息的不匹配导致的业务中断。为了避免上述情况的发生,可使用该命令为应用协议提供不中断其业务的报文校验服务。
(5) 在keychain中添加key。
¡ 创建一个key,并进入key视图。
key key-id
(6) 配置key。
¡ 配置key的认证算法。
authentication-algorithm { hmac-md5 | hmac-sha-1 | hmac-sha-256 | hmac-sm3 | md5 | sm3 }
缺省情况下,未配置key的认证算法。
¡ 配置key的认证密钥。
key-string { cipher | plain } string
缺省情况下,未配置key的认证密钥。
¡ 配置用来校验发送报文时key的周期性时间模式的生命周期。请选择其中一项进行配置。
send-lifetime daily start-day-time to end-day-time
send-lifetime date { month-day&<1-31> | start-month-day to end-month-day }
send-lifetime day { week-day | start-week-day to end-week-day }
send-lifetime month { month | start-month to end-month }
缺省情况下,未配置用来校验发送报文时key的生命周期。
¡ 配置用来校验接收报文时key的周期性时间模式的生命周期。请选择其中一项进行配置。
accept-lifetime daily start-day-time to end-day-time
accept-lifetime date { month-day&<1-31> | start-month-day to end-month-day }
accept-lifetime day { week-day | start-week-day to end-week-day }
accept-lifetime month { month | start-month to end-month }
缺省情况下,未配置用来校验接收报文时key的生命周期。
¡ (可选)将当前key指定为keychain的缺省发送key。
default-send-key
缺省情况下,keychain中不存在缺省发送key。
同一个keychain中,只能将一个key指定为缺省的发送key。
可在任意视图下执行以下命令,显示keychain信息。
display keychain [ name keychain-name [ key key-id ] ]
Router A和Router B之间建立OSPF邻居,使用keychain认证方式对发送和接收的报文进行校验。具体要求为:Router A和Router B的keychain中创建key 1和key 2,key 1的生命周期结束后,自动切换成key 2来对报文进行校验。
图1-1 keychain配置组网图
(1) 配置Router A
# 配置接口的IP地址(略)。
# 配置OSPF基本功能。
<RouterA> system-view
[RouterA] ospf 1 router-id 1.1.1.1
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
# 配置名称为abc的keychain,并指定其工作于绝对时间模式。
[RouterA] keychain abc mode absolute
# 在keychain abc中创建key 1和key 2,并配置其认证算法、认证密钥和生命周期。
[RouterA-keychain-abc] key 1
[RouterA-keychain-abc-key-1] authentication-algorithm md5
[RouterA-keychain-abc-key-1] key-string plain 123456
[RouterA-keychain-abc-key-1] send-lifetime utc 10:00:00 2019/02/06 to 11:00:00 2019/02/06
[RouterA-keychain-abc-key-1] accept-lifetime utc 10:00:00 2019/02/06 to 11:00:00 2019/02/06
[RouterA-keychain-abc-key-1] quit
[RouterA-keychain-abc] key 2
[RouterA-keychain-abc-key-2] authentication-algorithm hmac-md5
[RouterA-keychain-abc-key-2] key-string plain pwd123
[RouterA-keychain-abc-key-2] send-lifetime utc 11:00:00 2019/02/06 to 12:00:00 2019/02/06
[RouterA-keychain-abc-key-2] accept-lifetime utc 11:00:00 2019/02/06 to 12:00:00 2019/02/06
[RouterA-keychain-abc-key-2] quit
[RouterA-keychain-abc] quit
# 配置接口GigabitEthernet0/0/1使用keychain验证模式。
[RouterA] interface GigabitEthernet0/0/1
[RouterA-GigabitEthernet0/0/1] ospf authentication-mode keychain abc
[RouterA-GigabitEthernet0/0/1] quit
(2) 配置Router B
# 配置接口的IP地址(略)。
# 配置OSPF基本功能。
<RouterB> system-view
[RouterB] ospf 1 router-id 2.2.2.2
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置名称为abc的keychain,并指定其工作于绝对时间模式。
[RouterB] keychain abc mode absolute
# 在keychain abc中创建key 1和key2,并配置其认证算法、认证密钥和生命周期。
[RouterB-keychain-abc] key 1
[RouterB-keychain-abc-key-1] authentication-algorithm md5
[RouterB-keychain-abc-key-1] key-string plain 123456
[RouterB-keychain-abc-key-1] send-lifetime utc 10:00:00 2019/02/06 to 11:00:00 2019/02/06
[RouterB-keychain-abc-key-1] accept-lifetime utc 10:00:00 2019/02/06 to 11:10:00 2019/02/06
[RouterB-keychain-abc-key-1] quit
[RouterB-keychain-abc] key 2
[RouterB-keychain-abc-key-2] key-string plain pwd123
[RouterB-keychain-abc-key-2] authentication-algorithm hmac-md5
[RouterB-keychain-abc-key-2] send-lifetime utc 11:00:00 2019/02/06 to 12:00:00 2019/02/06
[RouterB-keychain-abc-key-2] accept-lifetime utc 11:00:00 2019/02/06 to 12:00:00 2019/02/06
[RouterB-keychain-abc-key-2] quit
[RouterB-keychain-abc] quit
# 配置接口GigabitEthernet0/0/1使用keychain验证模式。
[RouterB] interface GigabitEthernet0/0/1
[RouterB-GigabitEthernet0/0/1] ospf authentication-mode keychain abc
[RouterB-GigabitEthernet0/0/1] quit
(1) 当系统时间处于2019/02/06的10:00:00到11:00:00时,通过查看以下信息来确认keychain的运行状态。
# 查看Router A的keychain信息,发现key 1为有效key。
[RouterA] display keychain
Keychain name : abc
Mode : absolute
Accept tolerance : 0
TCP kind value : 254
TCP algorithm value
HMAC-MD5 : 5
HMAC-SHA-256 : 7
MD5 : 3
HMAC-SM3 : 52
SM3 : 51
Default send key ID : None
Active send key ID : 1
Active accept key IDs: 1
Key ID : 1
Key string : $c$3$dYTC8QeOKJkwFwP2k/rWL+1p6uMTw3MqNg==
Algorithm : md5
Send lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Send status : Active
Accept lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Accept status : Active
Key ID : 2
Key string : $c$3$7TSPbUxoP1ytOqkdcJ3K3x0BnXEWl4mOEw==
Algorithm : hmac-md5
Send lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Send status : Inactive
Accept lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Accept status : Inactive
# 查看Router B的keychain信息,发现key 1为有效key。
[RouterB]display keychain
Keychain name : abc
Mode : absolute
Accept tolerance : 0
TCP kind value : 254
TCP algorithm value
HMAC-MD5 : 5
HMAC-SHA-256 : 7
MD5 : 3
HMAC-SM3 : 52
SM3 : 51
Default send key ID : None
Active send key ID : 1
Active accept key IDs: 1
Key ID : 1
Key string : $c$3$/G/Shnh6heXWprlSQy/XDmftHa2JZJBSgg==
Algorithm : md5
Send lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Send status : Active
Accept lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Accept status : Active
Key ID : 2
Key string : $c$3$t4qHAw1hpZYN0JKIEpXPcMFMVT81u0hiOw==
Algorithm : hmac-md5
Send lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Send status : Inactive
Accept lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Accept status : Inactive
(2) 当系统时间处于2019/02/06的11:10:00到12:00:00时,通过查看以下信息来确认keychain的运行状态。
# 查看Router A的keychain信息,发现key 2为有效key。
[RouterA]display keychain
Keychain name : abc
Mode : absolute
Accept tolerance : 0
TCP kind value : 254
TCP algorithm value
HMAC-MD5 : 5
HMAC-SHA-256 : 7
MD5 : 3
HMAC-SM3 : 52
SM3 : 51
Default send key ID : None
Active send key ID : 2
Active accept key IDs: 2
Key ID : 1
Key string : $c$3$dYTC8QeOKJkwFwP2k/rWL+1p6uMTw3MqNg==
Algorithm : md5
Send lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Send status : Inactive
Accept lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Accept status : Inactive
Key ID : 2
Key string : $c$3$7TSPbUxoP1ytOqkdcJ3K3x0BnXEWl4mOEw==
Algorithm : hmac-md5
Send lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Send status : Active
Accept lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Accept status : Active
# 查看Router B的keychain信息,发现key 2为有效key。
[RouterB]display keychain
Keychain name : abc
Mode : absolute
Accept tolerance : 0
TCP kind value : 254
TCP algorithm value
HMAC-MD5 : 5
HMAC-SHA-256 : 7
MD5 : 3
HMAC-SM3 : 52
SM3 : 51
Default send key ID : None
Active send key ID : 1
Active accept key IDs: 1
Key ID : 1
Key string : $c$3$/G/Shnh6heXWprlSQy/XDmftHa2JZJBSgg==
Algorithm : md5
Send lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Send status : Inactive
Accept lifetime : 10:00:00 2019/02/06 to 11:00:00 2019/02/06
Accept status : Inactive
Key ID : 2
Key string : $c$3$t4qHAw1hpZYN0JKIEpXPcMFMVT81u0hiOw==
Algorithm : hmac-md5
Send lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Send status : Active
Accept lifetime : 11:00:00 2019/02/06 to 12:00:00 2019/02/06
Accept status : Active
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!