Structure of the Generic Security Service (GSS) Negotiation Loop
RFC 7546

Document Type RFC - Informational (May 2015; No errata)
Last updated 2015-10-14
Stream IETF
Formats plain text pdf html bibtex
Reviews
Stream WG state Submitted to IESG for Publication
Document shepherd Matthew Miller
Shepherd write-up Show (last changed 2015-01-06)
IESG IESG state RFC 7546 (Informational)
Consensus Boilerplate Yes
Telechat date
Responsible AD Stephen Farrell
Send notices to (None)
IANA IANA review state Version Changed - Review Needed
IANA action state No IANA Actions
Internet Engineering Task Force (IETF)                          B. Kaduk
Request for Comments: 7546                                           MIT
Category: Informational                                         May 2015
ISSN: 2070-1721

    Structure of the Generic Security Service (GSS) Negotiation Loop

Abstract

   This document specifies the generic structure of the negotiation loop
   to establish a Generic Security Service (GSS) security context
   between initiator and acceptor.  The control flow of the loop is
   indicated for both parties, including error conditions, and
   indications are given for where application-specific behavior must be
   specified.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7546.

Copyright Notice

   Copyright (c) 2015 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
   (http://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.

Kaduk                         Informational                     [Page 1]
RFC 7546          Structure of the GSS Negotiation Loop         May 2015

Table of Contents

   1. Introduction ....................................................2
   2. Application Protocol Requirements ...............................3
   3. Loop Structure ..................................................4
      3.1. Anonymous Initiators .......................................5
      3.2. GSS_Init_sec_context .......................................5
      3.3. Sending from Initiator to Acceptor .........................6
      3.4. Acceptor Sanity Checking ...................................6
      3.5. GSS_Accept_sec_context .....................................7
      3.6. Sending from Acceptor to Initiator .........................8
      3.7. Initiator Input Validation .................................9
      3.8. Continue the Loop ..........................................9
   4. After Security Context Negotiation ..............................9
      4.1. Authorization Checks ......................................10
      4.2. Using Partially Complete Security Contexts ................10
      4.3. Additional Context Tokens .................................11
   5. Sample Code ....................................................12
      5.1. GSS Application Sample Code ...............................13
   6. Security Considerations ........................................19
   7. References .....................................................20
      7.1. Normative References ......................................20
      7.2. Informative References ....................................20
   Acknowledgements ..................................................21
   Author's Address ..................................................21

1.  Introduction

   "Generic Security Service Application Program Interface Version 2,
   Update 1" [RFC2743] provides a generic interface for security
   services in the form of an abstraction layer over the underlying
   security mechanisms that an application may use.  A GSS initiator and
   acceptor exchange messages, called "tokens", until a security context
   is established.  Such a security context allows for each party to
   authenticate the other, the passing of confidential and/or integrity-
   protected messages between the initiator and acceptor, the generation
   of identical pseudorandom bit strings by both participants [RFC4401],
   and more.

   During context establishment, security context tokens are exchanged
   synchronously, one at a time; the initiator sends the first context
   token.  The number of tokens that must be exchanged between the
   initiator and acceptor in order to establish the security context is
   dependent on the underlying mechanism as well as the desired
   properties of the security context and is, in general, not known to
Show full document text