This section describes the Digest Authentication Protocol. It provides both for verifying the integrity of a received message (i.e., the message received is the message sent) and for verifying the origin of a message (i.e., the reliable identification of the originator). The integrity of the message is protected by computing a digest over an appropriate portion of a message. The digest is computed by the originator of the message, transmitted with the message, and verified by the recipient of the message.
A secret value known only to the originator and recipient of the message is prefixed to the message prior to the digest computation. Thus, the origin of the message is known implicitly with the verification of the digest.
A requirement on parties using this Digest Authentication Protocol is that they shall not originate messages for transmission to any destination party which does not also use this Digest Authentication Protocol. This restriction excludes undesirable side effects of communication between a party which uses these security protocols and a party which does not.
Recall from [1] that a SNMPv2 management communication is represented by an ASN.1 value with the following syntax:
SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
dstParty
OBJECT IDENTIFIER,
srcParty
OBJECT IDENTIFIER,
context
OBJECT IDENTIFIER,
pdu
PDUs
}
For each SnmpMgmtCom value that represents a SNMPv2 management communication, the following statements are true:
Recall from [1] that a SNMPv2 authenticated management communication is represented by an ASN.1 value with the following syntax:
SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE { authInfo ANY, - defined by authentication protocol authData SnmpMgmtCom }
For each SnmpAuthMsg value that represents a SNMPv2 authenticated management communication, the following statements are true:
In support of the Digest Authentication Protocol, an authInfo component is of type AuthInformation:
AuthInformation ::= [2] IMPLICIT SEQUENCE {
authDigest
OCTET STRING,
authDstTimestamp
UInteger32,
authSrcTimestamp
UInteger32
}
For each AuthInformation value that represents authentication information, the following statements are true: