Network Working Group                                        R. Van Rein
Internet-Draft                                                 ARPA2.net
Intended status: Experimental                          February 28, 2019
Expires: September 1, 2019


            Diameter Messages in Kerberos5 AuthorizationData
                draft-vanrein-krb5-authzdata-diameter-01

Abstract

   The Kerberos5 infrastructure is concerned with authentication, but it
   can also carry AuthorizationData in a variety of formats.  Diameter
   is an extensible standard for the expression of authorisation
   information.  This specification defines an embedding of Diameter
   data in the AuthorizationData fields of Kerberos5.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 1, 2019.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Van Rein                Expires September 1, 2019               [Page 1]


Internet-Draft             Kerberos5 Diameter              February 2019


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Embedding Diameter in Kerberos5 . . . . . . . . . . . . . . .   3
   3.  Use with Realm Crossover  . . . . . . . . . . . . . . . . . .   5
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   6.  Normative References  . . . . . . . . . . . . . . . . . . . .   6
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   Kerberos5 [RFC4120] is a single-signon system that provides the users
   of its realms with authentication tickets to individual services.
   Such tickets tend to be valid for the remaining user session,
   typically up to a day.  Service tickets are provided by a central
   realm service known as the Key Distribution Center or KDC.

   The KDC may not be able to supply tickets for all services.  When it
   knows that a service belongs to another realm, and when it can locate
   a crossover key to the service's KDC, it will forward the user to a
   remote realm through a realm-crossing ticket.  The user follows such
   tickets under current Kerberos semantics [RFC6806].

   Though designed for authentication and not authorisation, the realm-
   centric position of a KDC makes it a suitable place to control both
   aspects of access control.  The message formats can indeed carry
   AuthorizationData, consisting of a numerical tag and data to be
   interpreted according to that tag.  This specification adds a tag
   value to describe AuthorizationData holding Diameter protocol
   messages.

   AuthorizationData can be included in requests to the KDC, and the KDC
   can include AuthorizationData in a ticket.  When requesting a service
   ticket from the KDC, a single-signon ticket with possible
   AuthorizationData is attached to that request by the Kerberos client.
   All this data is protected in transit; requests to the KDC are
   encrypted with the TGT secret or a sub-key; tickets carry it to a
   service using a key shared between the server and KDC.  The KDC can
   prove to a ticket-receiving service that it originated certain parts
   of AuthorizationData by wrapping it in CAMMAC [RFC7751] structures.

   Diameter frames [RFC6733] hold a list of Attribute-Value Pairs (AVP),
   with optional nesting into group AVPs.  The format is easily parsed
   and applications exist (or can be defined) to capture a class of
   usage scenarios.  Among the existing applications is an extensible
   network access application that lends itself for authorisation



Van Rein                Expires September 1, 2019               [Page 2]


Internet-Draft             Kerberos5 Diameter              February 2019


   applications.  These Diameter frames are herein proposed as an
   AuthorizationData format in Kerberos.

   The purpose of using Diameter in Kerberos is to employ the existing
   authentication infrastructure of Kerberos to also pass authorisation
   settings between hosts.  The standardised format of Diameter
   simplifies access to services in foreign realms; this is useful to
   the InternetWide.org purpose to Bring Your Own IDentity (BYOID),
   which requires passing standardised authentication and authorisation
   information between collaborating but otherwise independent parties.

2.  Embedding Diameter in Kerberos5

   Diameter messages consist of a header choosing an application,
   followed by the AVPs that are meaningful within that application.
   The header guides the interpretation of the AVPs and is therefore a
   meaningful part in proper understanding of the exchange.  This is why
   inclusion of Diameter as Kerberos AuthorizationData must not be
   limited to a set of AVPs but instead include a header.  Formally, we
   define

         AD-DIAMETER ::= -- A concatenation of byte strings:
                         --  1. one Diameter Header, as defined
                         --     in Section 3 of RFC 6733
                         --  2. zero or more AVP Headers, with
                         --     applicable AVP Data, as defined
                         --     in Section 4 of RFC 6733
                         -- The whole adhering to the Command
                         -- Code Format Specification defined
                         -- in Section 3.2 of RFC 6733 and its
                         -- extensions.

   and shall use it under this specification when the preceding ad-type
   field has value TBD assigned for this purpose.  Note that AD-DIAMETER
   does not follow an ASN.1 encoding.

   Diameter messages are always carried over a protected transport such
   as SCTP with DTLS or TCP with TLS, where the purpose is to mutually
   authenticate Diameter Peers in protection of in-transit data against
   rogue alterations and to conceal sensitive data from similarly
   undesirable parties.  These security requirements are alternatively
   met by the Kerberos framework when AuthorizationData is used to carry
   the Diameter frames.

   Diameter distinguishes between sessions and connections.  Connections
   represent coherent message carriers such as TCP or SCTP connections,
   whereas a session specifies a conceptual relationship that may span
   multiple connections.  Each connection may carry multiple sessions.



Van Rein                Expires September 1, 2019               [Page 3]


Internet-Draft             Kerberos5 Diameter              February 2019


   Requests over one connection may even be responded to over another.
   For the purposes of Diameter, passing messages via Kerberos can be
   viewed as an alternative form of connection; the collaboration
   between KDC and services can be considered a connection, consisting
   of a multitude of individual packages but together forming a coherent
   message carrier.

   The average Diameter exchange is a request/response interaction
   between a resource requesting access and an oracle granting or
   withholding it.  This model does not fit well on the Kerberos system,
   when the KDC is an intermediate.  A modified form does hold; the
   client may request certain kinds of access in a Diameter frame, and
   the KDC may filter, modify and pass it on.  It is also possible for
   the KDC to use just the client identity to state privileges that are
   granted to it.

   An AuthorizationData field with a Diameter message reaching the
   service from an known-aware KDC can be treated as a pro-active hint,
   to prepare an answer that might come up when interpreting a service
   request.  This is possible because the KDC is always aware of the
   service being targeted by a requested ticket.  The hint provided
   would stand for the entire duration of the service ticket,
   effectively turning such tickets into client-held caches of their
   authorisations.

   Diameter connections must start interactions with a Capabilities
   Exchange.  This specification answers that with a default setup with
   the Network Access Application [RFC7155] and possible overrides to
   take place during administrative setup, such as during the creation
   of service keys or the establishment of realm crossover.  This
   loosely addresses the requirement for Capabilities Exchange.

   This looseness is warranted because the customary need for a
   Capabilities Exchange is not fully applicable to the use of Diameter
   messages in AuthorizationData, not even when crossing realms.  First,
   this can be used as a pro-active mechanism and it is generally safe
   to ignore any misunderstood Diameter messages.  Second, tickets tend
   to be cached for a day, which makes their generation less resource-
   demanding.  Third, the purpose can help avoid traditional Diameter
   traffic, thus limiting the danger of a lot of spurious network
   traffic.

   Peers that process Kerberos messages should not be considered
   Diameter processing nodes, as they may be just passing traffic,
   except for the end points that produce and consume Diameter messages
   in AuthorizationData.  By default, a KDC will pass AuthorizationData
   that the client supplies as-is, though it reserves the right to make
   modifications.  This means that clients under a KDC unaware of



Van Rein                Expires September 1, 2019               [Page 4]


Internet-Draft             Kerberos5 Diameter              February 2019


   Diameter-formatted AuthorizationData might send any claims they like
   to a foreign realm, and that the KDC cannot be considered a Diameter
   end point unless it adds a proof of origination.

3.  Use with Realm Crossover

   When crossing over between realms under independent administrative
   control, matters of trust and security arise.  This has implications
   for the interpretation of the AuthorizationData fields, including the
   form described herein.

   To overcome this problem, the client KDC must use CAMMAC [RFC7751] to
   protectively wrap the AuthorizationData for AD-DIAMETER.  Trusting
   services should validate the origin to be the intended KDC.  This
   usually means that the KDC of the service realm validates the AD-
   DIAMETER data as having originated from the client realm.

   With the possible exception for manual overrides, it is not safe to
   rely on any other delivery form of AD-DIAMETER data from another
   realm.

4.  Security Considerations

   This specification suggests some leniency in terms of attempting to
   access Diameter services that may extend beyond available
   capabilities.  To mitigate any risk, unrecognised messages could be
   silently ignored.  In other uses of Diameter, this would instead
   cause an explicit error message.  As long as no actions are taken on
   unrecognised content, this should not impact security.

   Diameter messaging parties must take responsibility for what they
   send.  Kerberos KDCs may pass AuthorizationData without looking, so
   any such fields with AD-DIAMETER data must be sent under CAMMAC
   protection to prove the agreement of the originating KDC.

   During realm crossing, privileges may be passed in from a KDC of
   another realm.  It is important for any service realm to be mindful
   of this.  Whether this concern is implemented in individual services
   or generally dealt with in the realm's KDC is a local operational
   choice of the service realm; the KDC for the service realm always
   participates in realm crossover, because it needs to supply the
   service ticket to the client that crosses over.

   During realm crossing, the client's KDC releases a crossover ticket
   to reach a remote realm.  The information contained in this ticket's
   AuthorizationData may be visible to all services in the remote realm,
   and is therefore a privacy concern.  It may be necessary to either




Van Rein                Expires September 1, 2019               [Page 5]


Internet-Draft             Kerberos5 Diameter              February 2019


   supply only generic or selected information (such as descriptive
   attributes) or use only one or a few foreign services per realm.

5.  IANA Considerations

   When IANA takes on the registration of AuthorizationData tags, it
   will take the following allocation into account:

   TODO

6.  Normative References

   [RFC4120]  Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The
              Kerberos Network Authentication Service (V5)", RFC 4120,
              DOI 10.17487/RFC4120, July 2005,
              <https://www.rfc-editor.org/info/rfc4120>.

   [RFC6733]  Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
              Ed., "Diameter Base Protocol", RFC 6733,
              DOI 10.17487/RFC6733, October 2012,
              <https://www.rfc-editor.org/info/rfc6733>.

   [RFC6806]  Hartman, S., Ed., Raeburn, K., and L. Zhu, "Kerberos
              Principal Name Canonicalization and Cross-Realm
              Referrals", RFC 6806, DOI 10.17487/RFC6806, November 2012,
              <https://www.rfc-editor.org/info/rfc6806>.

   [RFC7155]  Zorn, G., Ed., "Diameter Network Access Server
              Application", RFC 7155, DOI 10.17487/RFC7155, April 2014,
              <https://www.rfc-editor.org/info/rfc7155>.

   [RFC7751]  Sorce, S. and T. Yu, "Kerberos Authorization Data
              Container Authenticated by Multiple Message Authentication
              Codes (MACs)", RFC 7751, DOI 10.17487/RFC7751, March 2016,
              <https://www.rfc-editor.org/info/rfc7751>.

Appendix A.  Acknowledgements

   Thanks to the Kerberos list at MIT and especially Greg Hudson, for a
   lot of information about Kerberos and GSSAPI.

   This work was conducted as part of the InternetWide.org project, and
   aims to support authorisation data that crosses over between
   platforms and realms.  Implementation projects under this
   architecture are named ARPA2 projects.

   We thank NLnet foundation and SURFnet for funding (parts of) this
   work.



Van Rein                Expires September 1, 2019               [Page 6]


Internet-Draft             Kerberos5 Diameter              February 2019


Author's Address

   Rick van Rein
   ARPA2.net
   Haarlebrink 5
   Enschede, Overijssel  7544 WP
   The Netherlands

   Email: rick@openfortress.nl










































Van Rein                Expires September 1, 2019               [Page 7]