7 INTERNET-DRAFT Kerberized USM Keying M. Thomas
20 draft-thomas-snmpv3-kerbusm-00.txt
26 This document is an Internet-Draft and is in full conformance with
27 all provisions of Section 10 of RFC2026. Internet-Drafts are working
28 documents of the Internet Engineering Task Force (IETF), its areas,
29 and its working groups. Note that other groups may also distribute
30 working documents as Internet-Drafts.
32 Internet-Drafts are draft documents valid for a maximum of six months
33 and may be updated, replaced, or obsoleted by other documents at any
34 time. It is inappropriate to use Internet-Drafts as reference
35 material or to cite them other than as "work in progress."
37 The list of current Internet-Drafts can be accessed at
38 http://www.ietf.org/ietf/1id-abstracts.txt
40 The list of Internet-Draft Shadow Directories can be accessed at
41 http://www.ietf.org/shadow.html.
45 The KerbUSM MIB provides a means of leveraging a trusted third party
46 authentication and authorization mechanism using Kerberos for SNMP V3
47 USM users and their associated VACM views. The MIB encodes the normal
48 Kerberos AP-REQ and AP-REP means of both authenticating and creating
49 a shared secret between the SNMP V3 Manager and Agent.
51 The SNMP Management Framework
53 The SNMP Management Framework presently consists of five major
54 components: An overall architecture, described in RFC 2571
58 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 1]
64 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
67 [RFC2571]. Mechanisms for describing and naming objects and events
68 for the purpose of management. The first version of this Structure
69 of Management Information (SMI) is called SMIv1 and described in STD
70 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215
71 [RFC1215]. The second version, called SMIv2, is described in STD 58,
72 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
73 [RFC2580]. Message protocols for transferring management
74 information. The first version of the SNMP message protocol is
75 called SNMPv1 and described in STD 15, RFC 1157 [RFC1157]. A second
76 version of the SNMP message protocol, which is not an Internet
77 standards track protocol, is called SNMPv2c and described in RFC 1901
78 [RFC1901] and RFC 1906 [RFC1906]. The third version of the message
79 protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC
80 2572 [RFC2572] and RFC 2574 [RFC2574]. Protocol operations for
81 accessing management information. The first set of protocol
82 operations and associated PDU formats is described in STD 15, RFC
83 1157 [RFC1157]. A second set of protocol operations and associated
84 PDU formats is described in RFC 1905 [RFC1905]. A set of fundamental
85 applications described in RFC 2573 [RFC2573] and the view-based
86 access control mechanism described in RFC 2575 [RFC2575].
88 A more detailed introduction to the current SNMP Management Framework
89 can be found in RFC 2570 [RFC2570].
91 Managed objects are accessed via a virtual information store, termed
92 the Management Information Base or MIB. Objects in the MIB are
93 defined using the mechanisms defined in the SMI.
95 This memo specifies a MIB module that is compliant to the SMIv2. A
96 MIB conforming to the SMIv1 can be produced through the appropriate
97 translations. The resulting translated MIB must be semantically
98 equivalent, except where objects or events are omitted because no
99 translation is possible (use of Counter64). Some machine readable
100 information in SMIv2 will be converted into textual descriptions in
101 SMIv1 during the translation process. However, this loss of machine
102 readable information is not considered to change the semantics of the
108 The User based Security Model of SNMP V3 (USM) [2] provides a means
109 of associating different users with different access privileges of
110 the various MIB's that an agent supports. In conjunction with the
111 View based Access Control Model of SNMP V3 (VACM) [3], SNMP V3
112 provides a means of providing resistance from various threats both
113 from outside attacks such as spoofing, and inside attacks such as an
114 user having, say, SET access to MIB variable for which they are not
118 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 2]
124 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
129 SNMP V3, unfortunately, does not specify a means of doing key
130 distribution between the managers and the agents. For small numbers
131 of agents and managers, the O(n*m) manual keying is a cumbersome, but
132 possibly tractable problem. For a large number of agents with
133 distribution of managers, the key distribution quickly goes from
134 cumbersome to unmanageable. Also: there is always the lingering
135 concern of the security precautions taken for keys on either local
136 management stations, or even directories.
138 Kerberos [1] provides a means of centralizing key management into an
139 authentication and authorization server known as a Key Distribution
140 Center (KDC). At a minimum, Kerberos changes the key distribution
141 problem from a O(n*m) problem to a O(n) problem since keys are shared
142 between the KDC and the Kerberos principals rather directly between
143 each host pair. Kerberos also provides a means to use public key
144 based authentication which can be used to further scale down the
145 number of pre-shared secrets required. Furthermore, a KDC is intended
146 and explicitly expected to be a standalone server which is managed
147 with a much higher level of security concern than a management
148 station or even a central directory which may host many services and
149 thus be exposed to many more possible vectors of attack.
151 The MIB defined in this memo describes a means of using the desirable
152 properties of Kerberos within the context of SNMP V3. Kerberos
153 defines a standardized means of communicating with the KDC as well as
154 a standard format of Kerberos tickets which Kerberos principals
155 exchange in order to authenticate to one another. The actual means of
156 exchanging tickets, however, is left as application specific. This
157 MIB defines the SNMP MIB designed to transport Kerberos tickets and
158 by doing so set up SNMP V3 USM keys for authentication and privacy.
160 It should be noted that using Kerberos does introduce reliance on a
161 key network element, the KDC. This flies in the face of one of SNMP's
162 dictums of working when the network is misbehaving. While this is a
163 valid concern, the risk of reliance on the KDC can be significantly
164 diminished with a few common sense actions. Since Kerberos tickets
165 can have long life times (days, weeks) a manager of key network
166 elements can and should maintain Kerberos tickets well ahead ticket
167 expiration so that likelihood of not being able to rekey a session
168 while the network is misbehaving is minimized. For non-critical, but
169 high fanout elements such as user CPE, etc, requiring a pre-fetched
170 ticket may not be practical, which puts the KDC into the critical
171 path. However, if all KDC's are unreachable, the non-critical network
172 elements are probably the least of the worries.
178 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 3]
184 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
189 The normal Kerberos application ticket exchange is accomplished by a
190 client first fetching a service ticket from a KDC for the service
191 principal and then sending an AP-REQ to a server to authenticate
192 itself to the server. The server then sends a AP-REP to finish the
193 exchange. This MIB maps Kerberos' concept of client and server into
194 the SNMP V3 concept of Manager and Agent by designating that the
195 Kerberos Client is the SNMP V3 Agent. Although it could be argued
196 that an Agent is really a server, in practice there may be many, many
197 agents and relatively few managers. Also: Kerberos clients may make
198 use of public key authentication as defined in [4], and it is very
199 advantageous to take advantage of that capability for Agents rather
202 The MIB is intended to be stateless and map USM users to Kerberos
203 principals. This mapping is explicitly done by putting a Kerberos
204 principal name into the usmUserSecurityName in the usmUser MIB and
205 instatiating the krbUsmMibEntry for the usmUserEntry. MIB variables
206 are accessed with INFORM's or TRAP PDU's and SET's to perform a
207 normal Kerberos AP-REQ/AP-REP exchange transaction which causes the
208 keys for a USM user to be derived and installed. The basic structure
209 of the MIB is a table which augements usmUserEntry's with a Kerberos
210 principal name as well as the transaction varbinds. In the normal
211 case, multiple varbinds should be sent in a single PDU which prevents
212 various race conditions, as well as increasing efficiency.
214 It should be noted that this MIB is silent on the subject of how the
215 Agent and Manager find the KDC. In practice, this may be either
216 statically provisioned or use either DNS SRV records (RFC 2782) or
217 Service Location (RFC 2608). This MIB is does not provide for a means
218 of doing cipher suite negotiation either. It is expected that the
219 choices for ciphers in the USM MIB will reflect site specific choices
220 for ciphers. This matches well with the general philosophy of
225 The following shows an error free transaction:
227 Note: optional steps or parameters are shown like [ ]
238 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 4]
244 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
250 | 1) <------------------------------- |
251 | SET (krbUsmPrinTable[usmUserName].krbUsmMibNonce = xxxx; |
252 | [ krbUsmPrinTable[usmUserName].krbUsmMibTgt = |
253 | TGT[usmUserSecurityName] ]); |
255 | 2) -------------------------------> |
259 3) --------------------------------------------------------------->
260 TGS-REQ (krbUsmPrinTable[usmUserName].krbUsmMibMgrPrinName
261 [, krbUsmPrinTable[usmUserName].krbUsmMibTgt]);
263 4) <--------------------------------------------------------------
264 Tick[usmUserSecurityName] = TGS-REP ();
266 5) ------------------------------>
267 INFORM (krbUsmPrinTable[usmUserName].krbUsmMibApReq =
268 AP_REQ[Tick[usmUserSecurityName]];
269 [ krbUsmPrinTable[usmUserName].krbUsmMibNonce = xxxx]);
271 6) <------------------------------
272 SET (krbUsmPrinTable[usmUserName].krbUsmMibApRep = AP_REP[]);
275 7) ------------------------------>
279 The above flow translates to:
282 1) This step is used when the Manager does not currently have a ses-
283 sion with the Agent but wishes to start one. The Manager MAY
284 place a ticket granting ticket into the krbUsmMibMgrTgt varbind
285 in the same PDU as the krbUsmMibNonce if it does not share a
286 secret with the KDC (as would be the case if the Manager used
287 PKinit to do initial authentication with the KDC).
290 2) This step acknowledges the SET. There are no MIB specific errors
291 which can happen here.
294 3) If the Agent is not already in possession of a service ticket for
298 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 5]
304 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
307 the Manager in its ticket cache, it MUST request a service ticket
308 from the Agent's KDC for the service principal given by
309 krbUsmMibMgrPrinName in the row that the krbUsmMibNonce was SET
310 in, optionally adding a krbUsmMibMgrTgt. If the TGT is speci-
311 fied, the Manager's TGT must be placed in the additional-tickets
312 field with the ENC-TKT-IN-SKEY option set in the TGS-REQ to
313 obtain a service ticket (see section 3.3.3 of [1]).
315 Note: a Kerberos TGS-REQ is but one way to obtain a service
316 ticket. An Agent may use any normal Kerberos means to
317 obtain the service ticket. This flow has also elided ini-
318 tial authentication (ie, AS-REQ) and any cross realm con-
319 siderations, though those may be necessary prerequisites
320 to obtaining the service ticket.
322 4) If step 3 was performed, this step receives the ticket or an
326 5) This step sends a krbUsmMibApReq to the Manager via an INFORM or
327 TRAP PDU. If the message is the result of a request by the
328 Manager, krbUsmMibNonce received from the Manager MUST be sent in
329 the same PDU. If the Manager did not initiate the transaction,
330 the Agent MUST NOT send a krbUsmMibNonce varbind. The Agent also
331 MUST check krbUsmMibUnsolicitedNotify is not false, otherwise it
332 MUST abort the transaction. All krbUsmMibApReq's MUST contain a
333 sequence nonce so that the resulting krbUsmMibApRep can provide a
334 proof of the freshness of the message to prevent replay attacks.
336 If the Agent encounters an error either generated by the KDC or
337 internally, the Agent MUST send an INFORM or TRAP PDU indicating
338 the error in the form of a KRB-ERROR placed in krbUsmMibApReq
339 with the same rules applied to krbUsmMibNonce and krbUsmMibUnsol-
340 icitedNotify above. If the Agent suspects that it is being
341 attacked by a purported Manager which is generating many failed
342 TGS-REQ's to the KDC, it SHOULD meter its TGS-REQ transactions
343 for that Manager to the KDC using an exponential backoff mechan-
344 ism truncated at 10 seconds.
348 6) Upon recepit of an INFORM or TRAP PDU with a krbUsmMibApReq, a
349 Manager may accept the AP-REQ. If it is accompanied with a
350 krbUsmMibNonce it MUST correlate it with any outstanding transac-
351 tions using its stored nonce for the transaction. If it does not
352 correlate with a current nonce, the request MUST be rejected as
358 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 6]
364 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
367 If the Manager chooses to reject an unsolicited keying request,
368 it SHOULD send a WrongValue Error to the Agent with the krbUsmMi-
369 bApReq as the subject of the WrongValue. If an Agent receives a
370 WrongValue Error from a Manager it MUST cease retransmission of
371 the INFORM or TRAP PDU's so as to mitigate event avalanches by
372 Agents. There is a possible denial of service attack here, but it
373 must be weighed against the larger problem of network congestion,
374 flapping, etc. Therefore, if the Agent finds that it cannot can-
375 cel an unsolicited Notify (ie, it must be reliable), it MUST use
376 a truncated exponential backoff mechanism with the maximum trun-
377 cation interval set to 10 minutes.
379 Otherwise, the Manager MUST send a SET PDU to the Agent which
380 contains a krbUsmMibApRep.
383 7) If the Agent detects an error (including detecting replays) in
384 the final AP-REP, it MUST send a WrongValue error with a pointer
385 to the krbUsmMibApRep varbind to indicate its inability to estab-
386 lish the security association. Otherwise, receipt of the positive
387 acknowledgement from the final SET indicates to the Manager that
388 the proper keys have been installed on the Agent in the USM MIB.
390 Unsolicited Agent Keying Requests
392 An Agent may find that it needs to set up a security association for
393 a USM user in order to notify a Manager of some event. When the Agent
394 engine receives a request for a notify, it SHOULD check to see if
395 keying material has been established for the user and that the keying
396 material is valid. If the keying material is not valid and the USM
397 user has been tagged as being a Kerberos principal in a realm, the
398 Agent SHOULD first try to instantiate a security association by
399 obtaining a service ticket for the USM User and follow steps 3-7 of
400 the flow above. This insures that the USM User will have proper key-
401 ing material and providing a mechanism to allow for casual security
402 associations to be built up and torn down. This is especially useful
403 for Agents which may not normally need to be under constant Manager
404 supervision, such as the case with high fan out user residential CPE
405 and other SNMP managed "appliances". In all cases, the Agent MUST NOT
406 send an unsolicited Notify if krbUsmUnsolicitedNotify is set to
409 How the Agent obtains the Manager's address, how it determines
410 whether a Manager, realm, and whether it can be keyed using this MIB
411 is outside of the scope of this memo.
413 Note: Although the MIB allows for a Manager to set up a session
414 using User-User mode of Kerberos by sending a TGT along with
418 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 7]
424 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
427 the nonce, this, is limited to Manager initiated sessions
428 only since there is no easy way to store the Manager's ticket
429 in the MIB since it is publicly writable and as such would be
430 subject to denial of service attacks. Another method might be
431 to have the Agent send a krbUsmMibNonce to the Manager which
432 would tell it to instigate a session. Overall, it seems like
433 a marginal feature to allow a PKinit authenticated user be
434 the target of unsolicited informs and it would complicate the
435 transactions. For this reason, this scenario has been omitted
436 in favor of simplicity.
440 Since this MIB defines not only variables, but transactions, discus-
441 sion of the retransmission state machine is in order. There are two
442 similar but different state machines for the Manager Solicited and
443 Agent Unsolicited transactions. There is one timer Timeout which
444 SHOULD take into consideration round trip considerations and MUST
445 implement a truncated exponential backoff mechanism. In addition, in
446 the case where an Agent makes an unsolicited Agent keying request,
447 the Agent SHOULD perform an initial random backoff if the keying
448 request to the Manager may result in a restart avalanche. A suitable
449 method is described in section 4.3.4 of [5].
478 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 8]
484 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
488 Manager Solicited Retransmission State Machine
494 +-----------+ Set-Ack (2) +----------+
496 | Set-Nonce | | Ap-Req |
497 | (1) |<------------| (5) |
498 +-----------+ Timeout +----------+
538 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 9]
544 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
548 Agent Unsolicited Retransmission State Machine
556 +----> | Ap-Req |-------+
575 Session Duration and Failures
577 The KerbUsmMib uses the ticket lifetime to determine the life of the
578 USM session. The Agent MUST keep track of whether the ticket which
579 instigated the session is valid whenever it forms PDU's for that par-
580 ticular user. If a session expires, or if it wasn't valid to begin
581 with (from the Agent's perspective), the Agent MUST reject the PDU by
582 sending a XXX Error [mat: help me here Keith... what does USM say
585 Kerberos also inherently implies adding state to the Agent and
586 Manager since they share not only a key, but a lifetime associated
587 with that key. This is in some sense soft state because failure of an
588 Agent will cause it to reject PDU's for Managers with whom it does
589 not share a secret. The Manager can use the Error PDU's as an indica-
590 tion that it needs to reauthenticate with the Agent, taking care not
591 to loop. The Manager is even easier: when it reboots, it can either
592 check its credential cache to reconstruct state or cause the Agent to
593 reauthenticate to the Manager with its service ticket by initiating a
594 authentication transaction with the manager.
598 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 10]
604 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
609 Managers may freely set up keys for different USM users using this
610 MIB without problem since they access different rows in the krbUsm-
611 PrinTable. However, multiple Managers trying to set up keys for the
612 same USM user is possible but discouraged. The requirement for the
613 Manager is that they MUST share the same service key with the KDC so
614 that they can all decrypt the same service ticket. There are two race
615 conditions, however, which are not well handled:
619 1) At the end of a ticket lifetime, one manager may request the agent
620 to refresh its service ticket causing a new session key to be
621 installed for the USM user leaving the other managers with stale
622 keys. The workaround here is that the Agent will reject the stale
623 manager's PDU's which should inform them to do their own rekeying
627 2) If multiple managers try to access the same row at the same time,
628 the Agent SHOULD try to keep the transactions separate based on the
629 nonce values. The Managers or the Agents SHOULD NOT break the
630 krbUsmMibNonce and any other additional varbinds into separate PDU's
631 as this may result in a meta stable state. Given normal MTU sizes,
632 this should not be an issue in practice, and this should at worst
633 devolve into the case above.
635 In all cases, the krbUsmMibNonce MUST be the last value to be
636 transmitted, though its position within a PDU is unimportant.
658 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 11]
664 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
670 KRB-USM-MIB DEFINITIONS ::= BEGIN
673 OBJECT-TYPE, OBJECT-IDENTITY,
674 snmpModules, Counter32, Unsigned32 FROM SNMPv2-SMI
675 TruthValue, DisplayString FROM SNMPv2-TC
676 usmUserEntry FROM SNMP-USER-BASED-SM-MIB
680 krbUsmMib MODULE-IDENTITY
681 LAST-UPDATED "00071300Z"
682 ORGANIZATION "IETF SNMP V3 Working Group"
688 Phone: +1 408-525-5386
690 email: mat@cisco.com"
692 "This MIB contains the MIB variables to
693 exchange Kerberos credentials and a session
694 key to be used to authenticate and set up
697 ::= { snmpModules nnn } -- not sure what needs to be here.
698 krbUsmMibObjects OBJECT INDENTIFIER ::= { krbUsmMib 1 }
700 krbUsmMibAuthInAttemps
705 "Counter of the number of Kerberos
706 authorization attempts as defined by
707 receipt of a PDU from a Manager with a
708 krbUsmMibNonce set in the principal table."
709 ::= { krbUsmMibObjects 1 }
711 krbUsmMibAuthOutAttemps
718 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 12]
724 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
728 "Counter of the number of unsolicited Kerberos
729 authorization attempts as defined by
730 an Agent sending an INFORM or TRAP PDU with a
731 krbUsmMibApRep but without krbUsmApMibNonce
733 ::= { krbUsmMibObjects 2 }
739 "Counter of the number of Kerberos
740 authorization failures as defined by
741 a Manager setting the krbUsmMibNonce
742 in the principal table which results
743 in some sort of failure to install keys
744 in the requested USM user entry."
745 ::= { krbUsmMibObjects 3 }
752 "Counter of the number of unsolicited Kerberos
753 authorization failures as defined by
754 an Agent sending an INFORM or TRAP PDU with a
755 krbUsmMibApRep but without a krbUsmMibNonce
756 varbind which does not result in keys being
757 installed for that USM user entry."
758 ::= { krbUsmMibObjects 4 }
760 krbUsmMibPrinTable OBJECT-TYPE
761 SYNTAX SEQUENCE OF krbUsmMibEntry
762 MAX-ACCESS not-accessible
765 "Table which maps Kerberos principals with USM
766 users as well as the per user variables to key
768 ::= { krbUsmMibObjects 5 }
770 krbUsmMibPrinEntry OBJECT-TYPE
771 SYNTAX KrbUsmMibPrinEntry
772 MAX-ACCESS not-accessible
778 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 13]
784 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
787 "an entry into the krbMibPrinTable which is a
788 parallel table to UsmUserEntry table"
789 AUGMENTS { usmUserEntry }
790 ::= { krbUsmMibPrinTable 1 }
792 KrbUsmMibPrinEntry SEQUENCE
794 krbUsmMibApReq OCTET STRING,
795 krbUsmMibApRep OCTET STRING,
796 krbUsmMibNonce OCTET STRING,
797 krbUsmMibMgrTGT OCTET STRING,
798 krbUsmMibUnsolicitedNotify TruthValue,
802 krbUsmMibApReq OBJECT-TYPE
804 MAX-ACCESS accessible-for-notify
807 "This variable contains a DER encoded Kerberos
808 AP-REQ or KRB-ERROR for the USM user which is
809 to be keyed. This is sent from the Agent to
810 the Manager in an INFORM or TRAP request.
811 KRB-ERROR MUST only be sent to the Manager
812 if it is in response to a keying request from
815 ::= { krbUsmMibPrinEntry 1 }
817 krbUsmMibApRep OBJECT-TYPE
819 MAX-ACCESS read-write
822 "This variable contains the DER encoded response
823 to an AP-REQ. This variable is SET by the
824 Manager to acknowledge receipt of an AP-REQ. If
825 krbUsmMibApRep contains a Kerberos AP-REP, the
826 Agent must derive keys from the session key
827 of the Kerberos ticket in the AP-REQ and place
828 them in the USM database in a manner specified
829 by [RFC2574]. If the Manager detects an error,
830 it will instead place a KRB-ERROR in this
831 variable to inform the Agent of the error.
833 This variable is in effect a write-only variable.
834 attempts to read this variable will result in a
838 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 14]
844 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
847 null octet string being returned"
848 ::= { krbUsmMibPrinEntry 2 }
850 krbUsmMibNonce OBJECT-TYPE
852 MAX-ACCESS read-write
855 "SET'ing a krbUsmMibnonce allows a Manager to
856 determine whether an INFORM or TRAP from an
857 Agent is an outstanding keying request, or
858 unsolicited from the Agent. The Manager
859 initiates keying for a particular USM user
860 by writing a nonce into the row for which
861 desires to establish a security association.
862 The nonce is an ASCII string of the form
863 ``host:port?nonce'' where:
865 host: is either an FQDN, or valid ipv4 or ipv6
866 numerical notation of the Manager which
867 desires to initiate keying
868 port: is the destination port at which that the
869 Manager may be contacted
870 nonce: is a number generated by the Manager to
871 correlate the transaction
873 The same nonce MUST be sent to the Manager in a
874 subsequent INFORM or TRAP with a krbUsmApReq.
875 The Agent MUST use the host address and port
876 supplied in the nonce as the destination of a
877 subsequent INFORM or TRAP. Unsolicited keying
878 requests MUST NOT contain a nonce, and should
879 instead use the destination stored Notifies of
882 Nonces MUST be highly collision resistant either
883 using a time based method or a suitable random
884 number generator. Managers MUST never create
887 This variable is in effect a write-only variable.
888 Attempts to read this variable will result in a
889 nonce of value 0 being returned"
892 ::= { krbUsmMibPrinEntry 3 }
898 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 15]
904 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
907 krbUsmMibMgrTgt OBJECT-TYPE
909 MAX-ACCESS read-write
912 "If the Manager does not possess a symmetric
913 key with the KDC as would be the case with
914 a Manager using PKinit for authentication,
915 the Manager MUST SET its DER encoded ticket
916 granting ticket into KrbUsmMgrTgt along
919 The agent will then attach the Manager's TGT
920 into the additional tickets field of the
921 TGS-REQ message to the KDC to get a User-User
924 This variable is in effect a write-only variable.
925 Attempts to read this variable will result in a
926 null octet string being returned"
927 ::= { krbUsmMibPrinEntry 4 }
930 krbUsmMibUnsolicitedNotify OBJECT-TYPE
932 MAX-ACCESS read-write
935 "If this variable is false, the Agent MUST NOT
936 send unsolicited INFORM or TRAP PDU's to the
939 Attempts to SET this variable by the no-auth
940 no-priv user MUST be rejected."
941 ::= { krbUsmMibPrinEntry 5 }
944 -- Conformance section... nothing optional.
946 krbUsmMibCompliences MODULE-COMPLIANCE
948 DESCRIPTION "The compliance statement for SNMP
949 engines whichimplement the KRB-USM-MIB
951 MODULE -- this module
952 MANDATORY-GROUPS { krbUsmMib }
953 ::= { krbUsmMibCompliances 1 }
958 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 16]
964 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
972 The session key provides the basis for the keying material for the
973 USM user specified in the AP-REQ. The actual keys for use for the
974 authentication and privacy are produced using the cryptographic hash-
975 ing function used to protect the ticket itself. The keying material
976 is derived using this function, F(key, salt), using successive
977 interations of F over the salt string "SNMPV3RULZ%d", where %d is a
978 monotonic counter starting at zero. The bits are taken directly from
979 the successive interations to produce two keys of appropriate size
980 (as specified in the USM user row) for the authentication transform
981 first, and the privacy transform second. If the authentication
982 transform is null, the first bits of the derived key are used for the
985 Security Considerations
987 Various elements of this MIB must be readable and writable as the
988 no-auth, no-priv user. Unless specifically necessary for the key
989 negotiation, elements of this MIB SHOULD be protected by VACM views
990 which limit access. In particular, there is no reason anything in
991 this MIB should be visible to a no-auth, no-priv user with the excep-
992 tion of KrbUsmMibApReq, KrbUsmMibApRep, KrbUsmMibNonce, and
993 KrbUsmMibMgrTgt, and then only with the restrictions placed on them
994 in the MIB. As such, probing attacks are still possible, but should
995 not be profitable: all of the writable variables with interesting
996 information in them are defined in such a way as to be write only.
998 There are some interesting denial of service attacks which are possi-
999 ble by attackers spoofing managers and putting load on the KDC to
1000 generate unnecessary tickets. For large numbers or agents this could
1001 be problematic. This can probably be mitigated by the KDC prioritiz-
1002 ing TGS-REQ's though.
1007 [1] The CAT Working Group, J. Kohl, C.Neuman, "The Kerberos
1008 Network Authentication Service (V5)", RFC 1510, September
1011 [2] The SNMPV3 Working Group, U. Blumenthal, B. Wijnen, "The
1012 User-based Security Model of SNMP V3", RFC 2574, April 1999
1014 [3] The SNMPV3 Working Group, B. Wijnen, R. Presuhn,
1018 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 17]
1024 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
1027 K.McCloghrie, "The View-based Access Control Model of SNMP
1028 V3", RFC 2575, April 1999
1030 [4] The CAT Working Group, Tung, et al, "Public Key Cryptography
1031 for Initial Authentication in Kerberos", draft-ietf-cat-pk-
1032 init-11, November 1999
1034 [5] Arango, et al, "Media Gateway Control Protocl (MGCP)", RFC
1038 [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, An Architecture
1039 for Describing SNMP Management Frameworks, RFC 2571, April
1042 [RFC1155] Rose, M., and K. McCloghrie, Structure and Identification of
1043 Management Information for TCP/IP-based Internets, STD 16,
1046 [RFC1212] Rose, M., and K. McCloghrie, Concise MIB Definitions, STD
1047 16, RFC 1212, March 1991.
1049 [RFC1215] M. Rose, A Convention for Defining Traps for use with the
1050 SNMP, RFC 1215, March 1991.
1052 [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
1053 Rose, M., and S. Waldbusser, Structure of Management Infor-
1054 mation Version 2 (SMIv2), STD 58, RFC 2578, April 1999.
1056 [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
1057 Rose, M., and S. Waldbusser, Textual Conventions for SMIv2,
1058 STD 58, RFC 2579, April 1999.
1060 [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
1061 Rose, M., and S. Waldbusser, Conformance Statements for
1062 SMIv2, STD 58, RFC 2580, April 1999.
1064 [RFC1157] Case, J., Fedor, M., Schoffstall, M., and J. Davin, Simple
1065 Network Management Protocol, STD 15, RFC 1157, May 1990.
1067 [RFC1901] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
1068 Introduction to Community-based SNMPv2, RFC 1901, January
1071 [RFC1906] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, Tran-
1072 sport Mappings for Version 2 of the Simple Network Manage-
1073 ment Protocol (SNMPv2), RFC 1906, January 1996.
1078 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 18]
1084 INTERNET-DRAFT Kerberized USM Keying 13 July 2000
1087 [RFC2572] Case, J., Harrington D., Presuhn R., and B. Wijnen, Message
1088 Processing and Dispatching for the Simple Network Management
1089 Protocol (SNMP), RFC 2572, April 1999.
1091 [RFC2574] Blumenthal, U., and B. Wijnen, User-based Security Model
1092 (USM) for version 3 of the Simple Network Management Proto-
1093 col (SNMPv3), RFC 2574, April 1999.
1095 [RFC1905] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, Pro-
1096 tocol Operations for Version 2 of the Simple Network Manage-
1097 ment Protocol (SNMPv2), RFC 1905, January 1996.
1099 [RFC2573] Levi, D., Meyer, P., and B. Stewart, SNMPv3 Applications,
1100 RFC 2573, April 1999.
1102 [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, View-based
1103 Access Control Model (VACM) for the Simple Network Manage-
1104 ment Protocol (SNMP), RFC 2575, April 1999.
1106 [RFC2570] Case, J., Mundy, R., Partain, D., and B. Stewart, Introduc-
1107 tion to Version 3 of the Internet-standard Network Manage-
1108 ment Framework, RFC 2570, April 1999.
1115 San Jose, Ca, 95134, USA
1116 Tel: +1 408-525-5386
1117 email: mat@cisco.com
1138 Thomas draft-thomas-snmpv3-kerbusm-00 [Page 19]