<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!-- 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml' -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY rfc2025 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2025.xml'>
<!ENTITY rfc0854 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.0854.xml'>
<!ENTITY rfc1035 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml'>
<!ENTITY rfc3008 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3008.xml'>
<!ENTITY rfc2203 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2203.xml'>
<!ENTITY rfc2623 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2623.xml'>
<!ENTITY rfc3530 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3530.xml'>
<!ENTITY rfc2478 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2478.xml'>
<!ENTITY rfc2743 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2743.xml'>
<!ENTITY rfc2744 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2744.xml'>
<!ENTITY rfc4121 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4121.xml'>
<!ENTITY rfc5056 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5056.xml'>
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>

<rfc category="std" ipr="full3978" docName="draft-ietf-kitten-gssapi-channel-bindings-05.txt">
    <front>
        <title abbrev="GSS-API Channel Bindings">Clarifications and
            Extensions to the GSS-API for the Use of Channel
            Bindings</title>
        <author initials='N.' surname="Williams" fullname='Nicolas
            Williams'>
            <organization abbrev="Sun">Sun Microsystems</organization>
            <address>
                <postal>
                    <street>5300 Riata Trace Ct</street>
                    <city>Austin</city> <region>TX</region>
                    <code>78727</code> <country>US</country>
                </postal>
                <email>Nicolas.Williams@sun.com</email>
            </address>
        </author>
        <date year="2008"/>
        <area>Security</area>
        <workgroup>KITTEN WG</workgroup>
        <keyword>Internet-Draft</keyword>
        <abstract><t>This document clarifies and generalizes the Generic
                Security Services Application Programming Interface
                (GSS-API) "channel bindings" facility, and imposes
                requirements on future GSS-API mechanisms and
                programming language bindings of the GSS-API.</t>
        </abstract>
    </front>

    <middle>
        <section title="Conventions used in this document">
            <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
            "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
            and "OPTIONAL" in this document are to be interpreted as
            described in <xref target="RFC2119"/>.</t>
        </section>

	<section title="Introduction">
            <t>The base GSS-API v2, update 1 specification <xref
                    target="RFC2743"/> provides a facility for channel
		binding (see also <xref target="RFC5056"/>), but its
		treatment was incomplete.  The C-bindings of the GSS-API
		<xref target="RFC2744"/> expanded a little on this
		facility in what should have been a generic way, but was
		a C-specific way, and still, the treatment of this
		facility was incomplete.</t>
	    <t>This document clarifies the GSS-API's channel binding
		facility and generalizes the parts of it that are
		specified in the C-bindings document but which should
		have been generic from the first.</t>
	</section>

        <section title="New Requirements for GSS-API Mechanisms">
            <t>Given the publication of RFC5056 we now assert that
                all new GSS-API mechanisms that support channel binding
                MUST conform to <xref target="RFC5056"/>.</t>
        </section>

        <section title="Generic Structure for GSS-API Channel Bindings">
            <t>The base GSS-API v2, update 1 specification <xref
                    target="RFC2743"/> provides a facility for channel
                binding.  It models channel bindings as an OCTET STRING
                and leaves it to the GSS-API v2, update 1 C-Bindings
                specification to specify the structure of the contents
                of the channel bindings OCTET STRINGs.  The C-Bindings
                specification <xref target="RFC2744"/> then defines, in
                terms of C, what should have been a generic structure
                for channel bindings.  The Kerberos V GSS mechanism
                <xref target="RFC4121"/> also defines a method for
                encoding GSS channel bindings in a way that is
                independent of the C-Bindings -- otherwise the
                mechanism's channel binding facility would not be
                useable with other language bindings.</t>
            <t>In other words, the structure of GSS channel bindings
                given in <xref target="RFC2744"/> is actually generic,
                rather than specific to the C programming language.</t>
            <figure>
                <preamble>Here, then, is a generic re-statement of this structure,
                    in pseudo-ASN.1:</preamble>
                <artwork><![CDATA[
   GSS-CHANNEL-BINDINGS ::= SEQUENCE {
           initiator-address-type  INTEGER,      -- See RFC2744
           initiator-address       OCTET STRING, -- See RFC2744
           acceptor-address-type   INTEGER,      -- See RFC2744
           acceptor-address        OCTET STRING, -- See RFC2744
           application-data        OCTET STRING, -- See RFC5056
   }
                ]]></artwork>
            </figure>

            <t>The values for the address fields are described in <xref
                    target="RFC2744"/>.</t>

            <t>New language-specific bindings of the GSS-API SHOULD
                specify a language-specific formulation of this
                structure.</t>

            <t>Where a language binding of the GSS-API models channel
                bindings as OCTET STRINGs (or the language's
                equivalent), then the implementation MUST assume that
                the given bindings correspond only to the
                application-data field of GSS-CHANNEL-BINDINGS as shown
                above, rather than some encoding of
                GSS-CHANNEL-BINDINGS.</t>

	    <t>As mentioned above, <xref target="RFC4121"/> describes an
		encoding of the above GSS-CHANNEL-BINDINGS structure,
		and then hashes that encoding.  Other GSS-API mechanisms
		are free to use that encoding.</t>

        </section>

        <section title="IANA Considerations">
	    <t>There are no IANA considerations in this document.</t>
        </section>

        <section title="Security Considerations">
            <t>For general security considerations relating to channel
                bindings see <xref target="RFC5056"/>.</t>
            <t>Language bindings that use OCTET STRING (or equivalent)
                for channel bindings will not support the use of network
                addresses as channel bindings.  This should not cause
                any security problems, as the use of network addresses
                as channel bindings is not generally secure.  However,
                it is important that "end-point channel bindings" not be
                modelled as network addresses, otherwise such channel
                bindings may not be useable with all language bindings
                of the GSS-API.</t>
        </section>

    </middle>

    <back>
        <references
            title="Normative References">&rfc2119;&rfc4121;&rfc5056;&rfc2743;&rfc2744;</references>
    </back>

</rfc>
