Merge from vendor branch HEIMDAL:
[dragonfly.git] / crypto / heimdal-0.6.3 / doc / standardisation / draft-thomas-snmpv3-kerbusm-00.txt
1
2
3
4
5
6
7 INTERNET-DRAFT   Kerberized USM Keying    M. Thomas
8                                           Cisco Systems
9                                           K. McCloghrie
10                                           Cisco Systems
11                                           July 13, 2000
12
13
14
15
16
17
18                          Kerberized USM Keying
19
20                    draft-thomas-snmpv3-kerbusm-00.txt
21
22
23
24 Status of this Memo
25
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.
31
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."
36
37    The list of current Internet-Drafts can be accessed at
38    http://www.ietf.org/ietf/1id-abstracts.txt
39
40    The list of Internet-Draft Shadow Directories can be accessed at
41    http://www.ietf.org/shadow.html.
42
43 Abstract
44
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.
50
51 The SNMP Management Framework
52
53    The SNMP Management Framework presently consists of five major
54    components:  An overall architecture, described in RFC 2571
55
56
57
58 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 1]
59
60
61
62
63
64 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
65
66
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].
87
88    A more detailed introduction to the current SNMP Management Framework
89    can be found in RFC 2570 [RFC2570].
90
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.
94
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
103    MIB.
104
105
106 Introduction
107
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
115
116
117
118 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 2]
119
120
121
122
123
124 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
125
126
127    authorized.
128
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.
137
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.
150
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.
159
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.
173
174
175
176
177
178 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 3]
179
180
181
182
183
184 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
185
186
187 Operation
188
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
200    than Managers.
201
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.
213
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
221    centralized keying.
222
223 Keying Transactions
224
225    The following shows an error free transaction:
226
227    Note: optional steps or parameters are shown like [ ]
228
229
230
231
232
233
234
235
236
237
238 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 4]
239
240
241
242
243
244 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
245
246
247
248     Agent                       Manager                            KDC
249  +--                                                               --+
250  | 1) <-------------------------------                               |
251  |     SET (krbUsmPrinTable[usmUserName].krbUsmMibNonce = xxxx;      |
252  |          [ krbUsmPrinTable[usmUserName].krbUsmMibTgt =            |
253  |                                  TGT[usmUserSecurityName] ]);     |
254  |                                                                   |
255  | 2) ------------------------------->                               |
256  |    Response                                                       |
257  +--                     (optional)                                --+
258
259    3) --------------------------------------------------------------->
260         TGS-REQ (krbUsmPrinTable[usmUserName].krbUsmMibMgrPrinName
261                  [, krbUsmPrinTable[usmUserName].krbUsmMibTgt]);
262
263    4) <--------------------------------------------------------------
264         Tick[usmUserSecurityName] = TGS-REP ();
265
266    5)  ------------------------------>
267         INFORM (krbUsmPrinTable[usmUserName].krbUsmMibApReq =
268                    AP_REQ[Tick[usmUserSecurityName]];
269                    [ krbUsmPrinTable[usmUserName].krbUsmMibNonce = xxxx]);
270
271    6)  <------------------------------
272         SET (krbUsmPrinTable[usmUserName].krbUsmMibApRep = AP_REP[]);
273
274
275    7)  ------------------------------>
276        Response
277
278
279    The above flow translates to:
280
281
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).
288
289
290    2)  This step acknowledges the SET. There are no MIB specific errors
291        which can happen here.
292
293
294    3)  If the Agent is not already in possession of a service ticket for
295
296
297
298 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 5]
299
300
301
302
303
304 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
305
306
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]).
314
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.
321
322    4)  If step 3 was performed, this step receives the ticket or an
323        error from the KDC.
324
325
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.
335
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.
345
346
347
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
353        it may be a replay.
354
355
356
357
358 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 6]
359
360
361
362
363
364 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
365
366
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.
378
379        Otherwise, the Manager MUST send a SET PDU to the Agent which
380        contains a krbUsmMibApRep.
381
382
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.
389
390 Unsolicited Agent Keying Requests
391
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
407    false.
408
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.
412
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
415
416
417
418 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 7]
419
420
421
422
423
424 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
425
426
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.
437
438 Retransmissions
439
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].
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 8]
479
480
481
482
483
484 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
485
486
487
488 Manager Solicited Retransmission State Machine
489
490                 Timeout
491                  +---+
492                  |   |
493                  |   V
494               +-----------+ Set-Ack (2) +----------+
495               |           |------------>|          |
496               | Set-Nonce |             |  Ap-Req  |
497               |   (1)     |<------------|   (5)    |
498               +-----------+   Timeout   +----------+
499                    ^                         |
500                    |                         | Set-Ap-Rep
501                    |      +----------+       |  (6)
502                    +------|          |<------+
503                   Timeout | Estab-wt |
504                           |   (7)    |
505                           +----------+
506                                |
507                                |  Set-Ap-Rep-Ack (7)
508                                V
509                           +----------+
510                           |          |
511                           |  Estab   |
512                           |          |
513
514                           +----------+
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538 Thomas               draft-thomas-snmpv3-kerbusm-00             [Page 9]
539
540
541
542
543
544 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
545
546
547
548 Agent Unsolicited Retransmission State Machine
549
550                              Timeout
551                               +---+
552                               |   |
553                               |   V
554                           +----------+
555                           |          |
556                    +----> |  Ap-Req  |-------+
557                    |      |   (5)    |       |
558                    |      +----------+       |
559                    |                         |
560                    |                         | Set-Ap-Rep
561                    |      +----------+       |  (6)
562                    +------|          |<------+
563                   Timeout | Estab-wt |
564                           |   (7)    |
565                           +----------+
566                                |
567                                |  Set-Ap-Rep-Ack (7)
568                                V
569                           +----------+
570                           |          |
571                           |  Estab   |
572                           |          |
573                           +----------+
574
575 Session Duration and Failures
576
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
583    about this?].
584
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.
595
596
597
598 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 10]
599
600
601
602
603
604 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
605
606
607 Manager Collisions
608
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:
616
617
618
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
624     operations.
625
626
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.
634
635    In all cases, the krbUsmMibNonce MUST be the last value to be
636    transmitted, though its position within a PDU is unimportant.
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 11]
659
660
661
662
663
664 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
665
666
667
668    KrbUSM MIB
669
670    KRB-USM-MIB DEFINITIONS ::= BEGIN
671    IMPORTS
672        MODULE-IDENTITY,
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
677
678
679
680    krbUsmMib MODULE-IDENTITY
681            LAST-UPDATED "00071300Z"
682            ORGANIZATION "IETF SNMP V3 Working Group"
683            CONTACT-INFO
684              "Michael Thomas
685               Cisco Systems
686               375 E Tasman Drive
687               San Jose, Ca 95134
688               Phone: +1 408-525-5386
689               Fax: +1 801-382-5284
690               email: mat@cisco.com"
691            DESCRIPTION
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
695                USM keys"
696
697            ::= { snmpModules nnn }   -- not sure what needs to be here.
698    krbUsmMibObjects OBJECT INDENTIFIER ::= { krbUsmMib 1 }
699
700    krbUsmMibAuthInAttemps
701                SYNTAX      Counter32
702                MAX-ACCESS  read-only
703                STATUS      current
704                DESCRIPTION
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 }
710
711    krbUsmMibAuthOutAttemps
712                SYNTAX      Counter32
713                MAX-ACCESS  read-only
714                STATUS      current
715
716
717
718 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 12]
719
720
721
722
723
724 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
725
726
727                DESCRIPTION
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
732                     varbind."
733                ::= { krbUsmMibObjects 2 }
734    krbUsmMibAuthInFail
735                SYNTAX      Counter32
736                MAX-ACCESS  read-only
737                STATUS      current
738                DESCRIPTION
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 }
746
747    krbUsmMibAuthOutFail
748                SYNTAX      Counter32
749                MAX-ACCESS  read-only
750                STATUS      current
751                DESCRIPTION
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 }
759
760    krbUsmMibPrinTable OBJECT-TYPE
761                SYNTAX      SEQUENCE OF krbUsmMibEntry
762                MAX-ACCESS  not-accessible
763                STATUS      current
764                DESCRIPTION
765                    "Table which maps Kerberos principals with USM
766                     users as well as the per user variables to key
767                     up sessions"
768                ::= { krbUsmMibObjects 5 }
769
770    krbUsmMibPrinEntry OBJECT-TYPE
771                SYNTAX     KrbUsmMibPrinEntry
772                MAX-ACCESS  not-accessible
773                STATUS      current
774                DESCRIPTION
775
776
777
778 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 13]
779
780
781
782
783
784 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
785
786
787                    "an entry into the krbMibPrinTable which is a
788                     parallel table to UsmUserEntry table"
789                AUGMENTS { usmUserEntry }
790                ::= { krbUsmMibPrinTable 1 }
791
792    KrbUsmMibPrinEntry SEQUENCE
793     {
794                    krbUsmMibApReq                  OCTET STRING,
795                    krbUsmMibApRep                  OCTET STRING,
796                    krbUsmMibNonce                  OCTET STRING,
797                    krbUsmMibMgrTGT                 OCTET STRING,
798                    krbUsmMibUnsolicitedNotify      TruthValue,
799     }
800
801
802    krbUsmMibApReq OBJECT-TYPE
803                SYNTAX      OCTET STRING
804                MAX-ACCESS  accessible-for-notify
805                STATUS      current
806                DESCRIPTION
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
813                     the Manager.
814                    "
815                ::= { krbUsmMibPrinEntry 1 }
816
817    krbUsmMibApRep OBJECT-TYPE
818                SYNTAX      OCTET STRING
819                MAX-ACCESS  read-write
820                STATUS      current
821                DESCRIPTION
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.
832
833                     This variable is in effect a write-only variable.
834                     attempts to read this variable will result in a
835
836
837
838 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 14]
839
840
841
842
843
844 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
845
846
847                     null octet string being returned"
848                ::= { krbUsmMibPrinEntry 2 }
849
850    krbUsmMibNonce OBJECT-TYPE
851                SYNTAX      OCTET STRING
852                MAX-ACCESS  read-write
853                STATUS      current
854                DESCRIPTION
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:
864
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
872
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
880                     this type.
881
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
885                     nonces which are 0.
886
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"
890
891
892                ::= { krbUsmMibPrinEntry 3 }
893
894
895
896
897
898 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 15]
899
900
901
902
903
904 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
905
906
907    krbUsmMibMgrTgt OBJECT-TYPE
908                SYNTAX      OCTET STRING
909                MAX-ACCESS  read-write
910                STATUS      current
911                DESCRIPTION
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
917                     with krbUsmMibNonce.
918
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
922                     service ticket.
923
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 }
928
929
930    krbUsmMibUnsolicitedNotify OBJECT-TYPE
931                SYNTAX      TruthValue
932                MAX-ACCESS  read-write
933                STATUS      current
934                DESCRIPTION
935                    "If this variable is false, the Agent MUST NOT
936                     send unsolicited INFORM or TRAP PDU's to the
937                     Manager.
938
939                     Attempts to SET this variable by the no-auth
940                     no-priv user MUST be rejected."
941                ::= { krbUsmMibPrinEntry 5 }
942
943    --
944    -- Conformance section... nothing optional.
945
946    krbUsmMibCompliences MODULE-COMPLIANCE
947                STATUS       current
948                DESCRIPTION "The compliance statement for SNMP
949                             engines whichimplement the KRB-USM-MIB
950                    "
951                MODULE       -- this module
952                        MANDATORY-GROUPS { krbUsmMib }
953        ::= { krbUsmMibCompliances 1 }
954
955
956
957
958 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 16]
959
960
961
962
963
964 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
965
966
967    END
968
969
970 Key Derivation
971
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
983    privacy transform.
984
985 Security Considerations
986
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.
997
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.
1003
1004
1005 References
1006
1007 [1]         The CAT Working Group,  J.  Kohl,  C.Neuman,  "The  Kerberos
1008             Network  Authentication  Service  (V5)", RFC 1510, September
1009             1993
1010
1011 [2]         The SNMPV3 Working Group, U.  Blumenthal,  B.  Wijnen,  "The
1012             User-based Security Model of SNMP V3", RFC 2574, April 1999
1013
1014 [3]         The SNMPV3 Working Group, B. Wijnen, R. Presuhn,
1015
1016
1017
1018 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 17]
1019
1020
1021
1022
1023
1024 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
1025
1026
1027             K.McCloghrie, "The View-based Access Control Model of SNMP
1028             V3", RFC 2575, April 1999
1029
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
1033
1034 [5]         Arango, et al, "Media Gateway Control Protocl (MGCP)", RFC
1035             2705, October 1999
1036
1037
1038 [RFC2571]   Harrington, D., Presuhn, R., and B. Wijnen, An Architecture
1039             for Describing SNMP Management Frameworks, RFC 2571, April
1040             1999.
1041
1042 [RFC1155]   Rose, M., and K. McCloghrie, Structure and Identification of
1043             Management Information for TCP/IP-based Internets, STD 16,
1044             RFC 1155, May 1990.
1045
1046 [RFC1212]   Rose, M., and K. McCloghrie, Concise MIB Definitions, STD
1047             16, RFC 1212, March 1991.
1048
1049 [RFC1215]   M. Rose, A Convention for Defining Traps for use with the
1050             SNMP, RFC 1215, March 1991.
1051
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.
1055
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.
1059
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.
1063
1064 [RFC1157]   Case, J., Fedor, M., Schoffstall, M., and J. Davin, Simple
1065             Network Management Protocol, STD 15, RFC 1157, May 1990.
1066
1067 [RFC1901]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
1068             Introduction to Community-based SNMPv2, RFC 1901, January
1069             1996.
1070
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.
1074
1075
1076
1077
1078 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 18]
1079
1080
1081
1082
1083
1084 INTERNET-DRAFT           Kerberized USM Keying              13 July 2000
1085
1086
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.
1090
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.
1094
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.
1098
1099 [RFC2573]   Levi, D., Meyer, P., and B. Stewart, SNMPv3 Applications,
1100             RFC 2573, April 1999.
1101
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.
1105
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.
1109
1110 Author's Address
1111
1112           Michael Thomas
1113           Cisco Systems
1114           375 E Tasman Rd
1115           San Jose, Ca, 95134, USA
1116           Tel: +1 408-525-5386
1117           email: mat@cisco.com
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138 Thomas               draft-thomas-snmpv3-kerbusm-00            [Page 19]
1139
1140