SNMPv3认证和加密过程

前面的一些文章详细讲解了SNMPv3的报文内容,下面主要的内容就是SNMPv3的加密和认证过程!

USM的定义为实现以下功能:

鉴别

数据加密

密钥管理

时钟同步化

避免延时和重播攻击

 

1、UsmSecurityParameters(安全参数)

安全参数存在于snmp消息中的msgSecurityParameters字段,以ASN.1语法定义如下:

UsmSecurityParameters ::=

          SEQUENCE {

           -- global User-based security parameters

              msgAuthoritativeEngineID     OCTET STRING,

              msgAuthoritativeEngineBoots  INTEGER (0..2147483647),

              msgAuthoritativeEngineTime   INTEGER (0..2147483647),

              msgUserName                  OCTET STRING (SIZE(0..32)),

           -- authentication protocol specific parameters

              msgAuthenticationParameters  OCTET STRING,

           -- privacy protocol specific parameters

              msgPrivacyParameters         OCTET STRING

          }

msgAuthoritativeEngineID 权威引擎id。请求及inform消息中此值为接收方引擎id。Trap及应答消息中此值为发送方引擎id

msgAuthoritativeEngineBoots 权威引擎已重启次数

msgAuthoritativeEngineTime 权威引擎发送此消息时的时间

msgUserName  用户名

msgAuthenticationParameters 消息鉴别代码

msgPrivacyParameters 用于解密的salt值

 

2、鉴别和加密的实现

2.1  鉴别

使用MD5或SHA-1作为内嵌安全散列函数,通过HMAC进行鉴别。

从用户口令到鉴别密钥产生方法:

假设用户口令为password,不断重复串接password必要多的次数达到1048576字节长度。然后通过MD5或SHA-1散列函数得到一个16字节或20字节的密钥。

鉴别过程:

发送消息时用鉴别密钥产生一个消息鉴别代码,并将其填入msgAuthenticationParameters字段。收到一个消息时用发送此消息的用户对应的鉴别密钥对消息产生一个消息鉴别代码,与msgAuthenticationParameters字段中的值进行比较,若相等则认为通过鉴别。

 

2.2  加密解密

用和产生鉴别密钥相同的方法从用户口令生成加密密钥。

加密过程:

用16字节的加密密钥的最后8位用作预IV,该引擎的snmpEngineBoots 的当前值(4个字节)和由本地维护的一个4字节整数串连构成一个salt值。由本地维护的这个4字节整数在每次发送消息时应采用不同的值。Salt值和预IV按位异或生成IV,加密密钥和IV通过DES的CBC加密算法对ScopedPduData字段数据进行加密。并将salt值放入msgPrivacyParameters字段。

解密过程:

从收到的消息中取出msgPrivacyParameters字段内的salt值。用本地维护的16字节的密钥的最后8位用作预IV,将salt值与预IV按位异或生成IV用密钥和IV对已加密的数据进行解密。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为交换机配置SNMPv3过程如下: 1. 进入交换机的用户视图模式,使用命令`system-view`。 2. 创建SNMPv3用户组,使用命令`snmpv3 group <group-name> [v1|v2c]`。其中,`<group-name>`为用户组名称,`v1|v2c`表示该组可以访问的SNMP版本。 3. 配置SNMPv3用户组的安全级别,使用命令`snmpv3 group <group-name> sec-model {usm|any|tsm}`。其中,`usm`表示使用USM模型,`any`表示使用任意模型,`tsm`表示使用TSM模型。 4. 创建SNMPv3用户,使用命令`snmpv3 user <user-name> <group-name> [remote-host {ipv4-address | ipv6-address}]`。其中,`<user-name>`为用户名称,`<group-name>`为用户所属的用户组名称,`remote-host`为允许该用户访问的远程主机地址。 5. 配置SNMPv3用户的安全级别和认证参数,使用命令`snmpv3 user <user-name> secur-level {noauth|auth|priv} [auth-protocol {md5|sha} auth-key {auth-key}] [priv-protocol {des|aes} priv-key {priv-key}]`。其中,`secur-level`表示安全级别,`auth-protocol`表示认证协议,`auth-key`表示认证密钥,`priv-protocol`表示加密协议,`priv-key`表示加密密钥。 6. 配置SNMPv3引擎ID,使用命令`snmp-agent sys-info engineid {local <hex> | remote-hex}`。其中,`local <hex>`表示使用本地引擎ID,`remote-hex`表示使用远程引擎ID。 7. 启用SNMPv3协议,使用命令`snmp-agent`。 8. 配置SNMPv3访问控制,使用命令`snmp-agent target-host target-host-address <address> params security-name <user-name>`。其中,`<address>`为目标主机地址,`<user-name>`为用户名称。 9. 配置SNMPv3视图,使用命令`snmp-agent view view-name {iso-view | internet-view | mib-view} included subtree <subtree>`。其中,`<subtree>`为视图所包含的子树。 10. 保存配置,使用命令`save`。 以上步骤是华为交换机配置SNMPv3的基本过程,请根据实际情况进行相应的参数配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值