05-keychain命令
本章节下载: 05-keychain命令 (211.30 KB)
accept-lifetime命令用来配置用于报文接收的key的生命周期。
undo accept-lifetime命令用来恢复缺省情况。
【命令】
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 }
accept-lifetime utc start-time start-date { duration { duration-value | infinite } | to end-time end-date }
undo accept-lifetime
【缺省情况】
未配置用于报文接收的key的生命周期。
【视图】
key视图
【缺省用户角色】
network-admin
【参数】
daily:用于报文接收的key在每天指定的时间内生效。
· start-day-time to end-day-time:指定每天内连续的时间范围,start-day-time表示起始时间, end-day-time表示结束时间,格式均为HH:MM:SS(小时:分钟:秒),HH取值范围为0~23,MM和SS取值范围为0~59。
date:用于报文接收的key在每月指定的日期内生效。
· month-day &<1-31>:取值范围为1~31,&<1-31>表示前面的参数最多可以输入31次。
· start-month-day to end-month-day:指定每月内的连续日期范围,start-month-day表示起始日期;end-month-day表示结束日期,结束日期必须大于起始日期。
day:用于报文接收的key在每周指定的日期内生效。
· week-day:取值为:mon、tue、wed、thu、fri、sat、sun。本参数可输入多次,但不可重复。
· start-week-day to end-week-day:指定每周内的连续日期范围,start-week-day表示起始日期;end-week-day表示结束日期,结束日期必须大于起始日期。
month:用于报文接收的key在每年指定的月份内生效。
· month:取值为:jan、feb、mar、apr、may、jun、jul、aug、sep、oct、nov、dec。本参数可输入多次,但不可重复。
· start-month to end-month:指定每年内的连续月份范围,start-month表示起始月份;end-month表示结束月份,结束月份必须大于起始月份。
utc:绝对时间模式的生命周期,表示用于报文接收的key在指定时间范围内(如2019年9月1日8点至2019年9月3日18点)生效。
· start-time:开始时间,格式为HH:MM:SS(小时:分钟:秒),取值范围为0:0:0~23.59:59。
· start-date:开始日期,格式为MM/DD/YYYY(月/日/年)或YYYY/MM/DD(年/月/日),MM的取值范围为1~12,DD的取值范围与月份有关,YYYY的取值范围为2000~2035。
· duration duration-value:指定key的生命周期从设置的start-time和start-date开始所持续时间,取值范围为1~2147483646,单位为秒。
· duration infinite:表示从设置的start-time和start-date开始,key永远可以用来验证接收的报文。
· to:指定结束时间和日期。
· end-time:结束时间,格式为HH:MM:SS(小时:分钟:秒),取值范围为0:0:0~23.59:59。
· end-date:结束日期,格式为MM/DD/YYYY(月/日/年)或YYYY/MM/DD(年/月/日),MM的取值范围为1~12,DD的取值范围与月份有关,YYYY的取值范围为2000~2035。
【使用指导】
只有同时满足如下条件的key,才是有效key,才可被应用程序用于对接收的报文进行校验:
· 配置了认证密钥;
· 配置了认证算法;
· 对于绝对时间模式,系统当前的绝对时间处于accept-lifetime指定的时间范围内;对于各种周期性时间模式,系统当前的本地时间处于accept-lifetime { daily | date | day | month }指定的时间范围内。
如果应用程序接收到的报文中携带key-id信息,且该key-id对应的key是有效的,则使用该key对接收到的报文进行校验;如果该key-id对应的key是无效的,则报文校验失败。
如果应用程序接收到的报文中没有携带key-id信息,将使用当前keychain中所有的有效key对接收到的报文进行校验,如果接收到的报文无法通过任何一个有效key的校验,则报文校验失败。
应用程序可以使用多个有效key对接收到的报文进行校验。
【举例】
# 在工作于绝对时间模式的keychain abc中,配置用来校验接收报文时key 1的生命周期。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1] accept-lifetime utc 12:30 2019/1/21 to 18:30 2019/1/21
# 在工作于weekly时间模式的keychain 123中,配置用来校验接收报文时key 1的生命周期。
<Sysname> system-view
[Sysname] keychain 123 mode periodic weekly
[Sysname-keychain-123] key 1
[Sysname-keychain-123-key-1] accept-lifetime day fri
accept-tolerance命令用来为keychain中的key延长其在报文接收时的生命周期。
undo accept-tolerance命令用来恢复缺省情况。
【命令】
accept-tolerance { value | infinite }
undo accept-tolerance
【缺省情况】
没有为keychain中的key延长其在报文接收时的生命周期。
【视图】
keychain视图
【缺省用户角色】
network-admin
【参数】
value:为指定keychain中的key延长其在报文接收时的生命周期,取值范围为1~8640000,单位为秒。
infinite:为指定keychain中的key无限延长其在报文接收时的生命周期,即key在报文接收的过程中永久有效。
【使用指导】
配置本命令后,由accept-lifetime utc指定的key的生命周期的开始和结束时间都将做相应的延长。当用户需要修改认证双方的校验信息时,可能会出现由于校验信息的不匹配导致的业务中断。为了避免上述情况的发生,可使用该命令为应用协议提供不中断其业务的报文校验服务。
【举例】
# 为keychain abc中的key延长其在报文接收时的生命周期,延长值为100秒。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] accept-tolerance 100
# 为keychain abc中的key延长其在报文接收时的生命周期,延长值为无限大。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] accept-tolerance infinite
authentication-algorithm命令用来配置key的认证算法。
undo authentication-algorithm命令用来恢复缺省情况。
【命令】
authentication-algorithm { hmac-md5 | hmac-sha-1 | hmac-sha-256 | md5 }
undo authentication-algorithm
【缺省情况】
未配置key的认证算法。
【视图】
key视图
【缺省用户角色】
network-admin
【参数】
hmac-md5:HMAC-MD5认证算法。
hmac-sha-1:HMAC-SHA-1认证算法。
hmac-sha-256:HMAC-SHA-256认证算法。
md5:MD5认证算法。
【使用指导】
如果应用程序不支持authentication-algorithm配置的认证算法,则无法使用该key进行报文校验。
【举例】
# 在工作于绝对时间模式的keychain abc中,配置key 1的认证算法为MD5。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1] authentication-algorithm md5
default-send-key命令用来为keychain指定一个缺省发送key。
undo default-send-key命令用来恢复缺省情况。
【命令】
default-send-key
undo default-send-key
【缺省情况】
keychain中不存在缺省发送key。
【视图】
key视图
【缺省用户角色】
network-admin
【使用指导】
当keychain中的发送key处于非活跃状态时,可以通过使用缺省的发送key对报文进行认证。同一个keychain中,只能将一个key指定为缺省的发送key,且需要为该缺省的发送key配置认证算法和认证密钥。
【举例】
# 指定keychain abc中的key 1为缺省发送key。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1] default-send-key
display keychain命令用来显示keychain的信息。
【命令】
display keychain [ name keychain-name [ key key-id ] ]
【视图】
任意视图
【缺省用户角色】
network-admin
network-operator
【参数】
name keychain-name:keychain名称,为1~63个字符的字符串,区分大小写。如果不指定本参数,则显示所有keychain的信息。
key key-id:key的标识符,取值范围为0~281474976710655。如果不指定本参数,则显示属于某keychain的全部key的信息。
【举例】
# 显示keychain的信息。
<Sysname> 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
Default send key ID : 2 (Inactive)
Active send key ID : 1
Active accept key IDs: 1 2
Key ID : 1
Key string : $c$3$vuJpEX3Lah7xcSR2uqmrTK2IZQJZguJh3g==
Algorithm : md5
Send lifetime : 01:00:00 2019/01/22 to 01:00:00 2019/01/25
Send status : Active
Accept lifetime : 01:00:00 2019/01/22 to 01:00:00 2019/01/27
Accept status : Active
Key ID : 2
Key string : $c$3$vuJpEX3Lah7xcSR2uqmrTK2IZQJZguJh3g==
Algorithm : md5
Send lifetime : 01:00:01 2019/01/25 to 01:00:00 2019/01/27
Send status : Inactive
Accept lifetime : 01:00:00 2019/01/22 to 01:00:00 2019/01/27
Accept status : Active
表1-1 display keychain命令显示信息描述表
字段 |
描述 |
Keychain name |
keychain名称 |
Mode |
keychain的时间模式: · absolute:绝对时间模式 · periodic daily:按天的周期性时间模式 · periodic weekly:按周的周期性时间模式 · periodic monthly:按月的周期性时间模式 · periodic yearly:按年的周期性时间模式 |
Accept tolerance |
key在报文接收时的容忍度,单位为秒 |
TCP kind value |
TCP增强认证选项中的类型值 |
TCP algorithm value |
TCP认证算法所对应的算法ID |
Default send key ID |
缺省发送key的ID、以及缺省发送key的状态 |
Active send key ID |
用于对发送报文进行校验的有效key |
Active accept key IDs |
用于对接收报文进行校验的有效key |
Key ID |
key的标识符 |
Key string |
key的认证密钥(密文形式) |
Algorithm |
key的认证算法: · hmac-md5:HMAC-MD5认证算法 · hmac-sha-1:HMAC-SHA-1认证算法 · hmac-sha-256:HMAC-SHA-256认证算法 · md5:MD5认证算法 |
Send lifetime |
用来校验发送报文时key的生命周期 |
Send status |
用来校验发送报文时,key是否有效: · Active:key有效 · Inactive:key无效 |
Accept lifetime |
用来校验接收报文时key的生命周期 |
Accept status |
用来校验接收报文时,key是否有效: · Active:key有效 · Inactive:key无效 |
key命令用来创建一个key,并进入key视图。如果指定的key已经存在,则直接进入key视图。
undo key命令用来删除指定的key及key视图下的所有配置。
【命令】
key key-id
undo key key-id
【缺省情况】
不存在key。
【视图】
keychain视图
【缺省用户角色】
network-admin
【参数】
key-id:key的标识符,取值范围为0~281474976710655。
【使用指导】
一个keychain下可以配置多个key,各个key必须指定不同的key-id。
【举例】
# 创建标识符为1的key,并进入key视图。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1]
keychain命令用来创建一个keychain,并进入keychain视图。如果指定的keychain已经存在,则直接进入keychain视图。
undo keychain命令用来删除指定的keychain及keychain视图下的所有配置。
【命令】
keychain keychain-name [ mode { absolute | periodic { daily | monthly | weekly | yearly } } ]
undo keychain keychain-name
【缺省情况】
不存在keychain。
【视图】
系统视图
【缺省用户角色】
network-admin
【参数】
keychain-name:keychain名,为1~63个字符的字符串,区分大小写。
mode:keychain的时间模式。
absolute:绝对时间模式。该模式的keychain中,key的生命周期是从指定的起始日期、时间到指定的结束日期、时间,各个日期和时间都是UTC(UTC,Coordinated Universal Time,国际协调时间)绝对时间,不受系统的时区和夏令时的影响。
periodic:周期性时间模式。所有周期性时间模式的keychain中,key的生命周期都是根据系统的本地时间计算的,会受到系统的时区和夏令时的影响。
daily:按天的周期性时间模式。
monthly:按月的周期性时间模式。
weekly:按周的周期性时间模式。
yearly:按年的周期性时间模式。
【使用指导】
创建keychain时必须指定其工作的时间模式。对于已存在的keychain,不可修改其工作的时间模式。进入已存在的keychain视图时可以不指定其工作的时间模式。
【举例】
# 创建名为abc的keychain,指定其工作在绝对时间模式下,并进入keychain视图。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc]
key-string命令用来配置key的认证密钥。
undo key-string命令用来恢复缺省情况。
【命令】
key-string { cipher | plain } string
undo key-string
【缺省情况】
未配置key的认证密钥。
【视图】
key视图
【缺省用户角色】
network-admin
【参数】
cipher:以密文方式设置密钥。
plain:以明文方式设置密钥,该密码将以密文形式存储。
string:密钥字符串,区分大小写。明文密钥为1~255个字符的字符串,密文密钥为33~373个字符的字符串。
【使用指导】
key的认证密钥的明文长度有可能会超出应用程序支持的范围,这种情况下应用程序需要截取自己支持的长度范围的明文密钥来对报文进行校验。
【举例】
# 在key视图下,以明文形式设置key 1的密钥为123456。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1] key-string plain 123456
send-lifetime命令用来配置用于报文发送的key的绝对时间模式的生命周期。
undo send-lifetime命令用来恢复缺省情况。
【命令】
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 }
send-lifetime utc start-time start-date { duration { duration-value | infinite } | to end-time end-date }
undo send-lifetime
【缺省情况】
未配置用于报文发送的key的生命周期。
【视图】
key视图
【缺省用户角色】
network-admin
【参数】
daily:用于报文发送的key在每天指定的时间内生效。
· start-day-time to end-day-time:指定每天内连续的时间范围,start-day-time表示起始时间, end-day-time表示结束时间,格式均为HH:MM:SS(小时:分钟:秒),HH取值范围为0~23,MM和SS取值范围为0~59。
date:用于报文发送的key在每月指定的日期内生效。
· month-day &<1-31>:取值范围为1~31,&<1-31>表示前面的参数最多可以输入31次。
· start-month-day to end-month-day:指定每月内的连续日期范围,start-month-day表示起始日期;end-month-day表示结束日期,结束日期必须大于起始日期。
day:用于报文发送的key在每周指定的日期内生效。
· week-day:取值为:mon、tue、wed、thu、fri、sat、sun。本参数可输入多次,但不可重复。
· start-week-day to end-week-day:指定每周内的连续日期范围,start-week-day表示起始日期;end-week-day表示结束日期,结束日期必须大于起始日期。
month:用于报文发送的key在每年指定的月份内生效。
· month:取值为:jan、feb、mar、apr、may、jun、jul、aug、sep、oct、nov、dec。本参数可输入多次,但不可重复。
· start-month to end-month:指定每年内的连续月份范围,start-month表示起始月份;end-month表示结束月份,结束月份必须大于起始月份。
utc:绝对时间模式的生命周期,表示用于报文发送的key在指定时间范围内(如2019年9月1日8点至2019年9月3日18点)生效。
· start-time:开始时间,格式为HH:MM:SS(小时:分钟:秒),取值范围为0:0:0~23.59:59。
· start-date:开始日期,格式为MM/DD/YYYY(月/日/年)或YYYY/MM/DD(年/月/日),MM的取值范围为1~12,DD的取值范围与月份有关,YYYY的取值范围为2000~2035。
· duration duration-value:指定key的生命周期从设置的start-time和start-date开始所持续时间,取值范围为1~2147483646,单位为秒。
· duration infinite:表示从设置的start-time和start-date开始,key永远可以用来验证发送的报文。
· to:指定结束时间和日期。
· end-time:结束时间,格式为HH:MM:SS(小时:分钟:秒),取值范围为0:0:0~23.59:59。
· end-date:结束日期,格式为MM/DD/YYYY(月/日/年)或YYYY/MM/DD(年/月/日),MM的取值范围为1~12,DD的取值范围与月份有关,YYYY的取值范围为2000~2035。
【使用指导】
只有同时满足如下条件的key,才是有效key,才可被应用程序用于对发送的报文进行校验:
· 配置了认证密钥;
· 配置了认证算法;
· 对于绝对时间模式,系统当前的绝对时间处于send-lifetime utc指定的时间范围内;对于各种周期性时间模式,系统当前的本地时间处于send-lifetime { daily | date | day | month }指定的时间范围内。
同一个keychain内的各个key使用send-lifetime指定的生命周期不可重叠,以确保在同一时刻,应用程序只使用一个key对发送的报文进行校验。
【举例】
# 在工作于绝对时间模式的keychain abc下,配置用来校验发送报文时key 1的生命周期。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] key 1
[Sysname-keychain-abc-key-1] send-lifetime utc 12:30 2019/1/21 to 18:30 2019/1/21
# 在工作于weekly时间模式的keychain 123下,配置用来校验发送报文时key 1的生命周期。
<Sysname> system-view
[Sysname] keychain 123 mode periodic weekly
[Sysname-keychain-123] key 1
[Sysname-keychain-123-key-1] send-lifetime day fri
tcp-algorithm-id命令用来配置keychain支持的TCP认证算法的算法ID。
undo tcp-algorithm-id命令用来恢复缺省情况。
【命令】
tcp-algorithm-id { hmac-md5 | hmac-sha-256 | md5 } algorithm-id
undo tcp-algorithm-id { hmac-md5 | hmac-sha-256 | md5 }
【缺省情况】
MD5认证算法的算法ID是3,HMAC-MD5认证算法的算法ID是5,HMAC-SHA-256认证算法的算法ID是7。
【视图】
keychain视图
【缺省用户角色】
network-admin
【参数】
hmac-md5:采用HMAC-MD5认证算法,密钥长度为16字节。
hmac-sha-256:采用HMAC-SHA-256认证算法,密钥长度为16字节。
md5:采用MD5认证算法,密钥长度为16字节。
algorithm-id:认证算法的算法ID,取值范围为1~63。
【使用指导】
建立TCP连接时使用keychain认证的应用程序,其发送和接收的TCP报文中会携带增强认证选项,增强认证选项中的algorithm-id字段用来表示认证算法的算法ID。由于algorithm-id不是IANA(Internet Assigned Numbers Authority,因特网地址分配组织)统一定义的,不同的厂商使用algorithm-id所代表的算法类型不尽相同。在与友商设备互通时,本端对algorithm-id的配置必须与对端的保持一致,例如,当友商设备中HMAC-MD5认证算法的算法ID是3时,需要在本端设备上配置tcp-algorithm-id hmac-md5 3命令才能互通。
【举例】
# 创建名为abc的keychain,并将HMAC-MD5认证算法的algorithm-id配置为1。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] tcp-algorithm-id hmac-md5 1
tcp-kind命令用来配置TCP增强认证选项中的类型值。
undo tcp-kind命令用来恢复缺省情况。
【命令】
tcp-kind kind-value
undo tcp-kind
【缺省情况】
TCP增强认证选项中的类型值为254。
【视图】
keychain视图
【缺省用户角色】
network-admin
【参数】
kind-value:TCP增强认证选项中的类型值,取值范围为28~255,缺省值为254。
【使用指导】
建立TCP连接时使用keychain认证的应用程序,其发送和接收的TCP报文中会携带增强认证选项,通信双方所指定的增强认证选项中的类型值必须保持一致,否则会导致报文校验失败。
【举例】
# 在工作于绝对时间模式的keychain abc下,配置TCP增强认证选项中的类型值为252。
<Sysname> system-view
[Sysname] keychain abc mode absolute
[Sysname-keychain-abc] tcp-kind 252
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!