draft-ietf-kitten-iakerb-00.txt   draft-ietf-kitten-iakerb-01.txt 
NETWORK WORKING GROUP J. Schaad, Ed. NETWORK WORKING GROUP J. Schaad, Ed.
Internet-Draft Soaring Hawk Consulting Internet-Draft Soaring Hawk Consulting
Updates: 4120 (if approved) L. Zhu Updates: 4120 (if approved) L. Zhu
Intended status: Standards Track Microsoft Corporation Intended status: Standards Track Microsoft Corporation
Expires: October 12, 2013 J. Altman Expires: August 18, 2014 J. Altman
Secure Endpoints Secure Endpoints
April 10, 2013 February 14, 2014
Initial and Pass Through Authentication Using Kerberos V5 and the GSS- Initial and Pass Through Authentication Using Kerberos V5 and the GSS-
API (IAKERB) API (IAKERB)
draft-ietf-kitten-iakerb-00 draft-ietf-kitten-iakerb-01
Abstract Abstract
This document defines extensions to the Kerberos protocol and the This document defines extensions to the Kerberos protocol and the
GSS-API Kerberos mechanism that enable a GSS-API Kerberos client to GSS-API Kerberos mechanism that enable a GSS-API Kerberos client to
exchange messages with the KDC using the GSS-API acceptor as the exchange messages with the KDC using the GSS-API acceptor as the
proxy, by encapsulating the Kerberos messages inside GSS-API tokens. proxy, by encapsulating the Kerberos messages inside GSS-API tokens.
With these extensions a client can obtain Kerberos tickets for With these extensions a client can obtain Kerberos tickets for
services where the KDC is not accessible to the client, but is services where the KDC is not accessible to the client, but is
accessible to the application server. accessible to the application server.
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 12, 2013. This Internet-Draft will expire on August 18, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions Used in This Document . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. GSS-API Encapsulation . . . . . . . . . . . . . . . . . . . . 3 3. GSS-API Encapsulation . . . . . . . . . . . . . . . . . . . . 3
4. Addresses in Tickets . . . . . . . . . . . . . . . . . . . . 6 4. Finish Message . . . . . . . . . . . . . . . . . . . . . . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . 6 5. Addresses in Tickets . . . . . . . . . . . . . . . . . . . . 7
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
8.1. Normative References . . . . . . . . . . . . . . . . . . 8 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.2. Informative references . . . . . . . . . . . . . . . . . 8 9.1. Normative References . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 9.2. Informative references . . . . . . . . . . . . . . . . . 9
Appendix A. Interoperate with Previous MIT version . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction 1. Introduction
When authenticating using Kerberos V5, clients obtain tickets from a When authenticating using Kerberos V5, clients obtain tickets from a
KDC and present them to services. This model of operation cannot KDC and present them to services. This model of operation cannot
work if the client does not have access to the KDC. For example, in work if the client does not have access to the KDC. For example, in
remote access scenarios, the client must initially authenticate to an remote access scenarios, the client must initially authenticate to an
access point in order to gain full access to the network. Here the access point in order to gain full access to the network. Here the
client may be unable to directly contact the KDC either because it client may be unable to directly contact the KDC either because it
does not have an IP address, or the access point packet filter does does not have an IP address, or the access point packet filter does
not allow the client to send packets to the Internet before it not allow the client to send packets to the Internet before it
authenticates to the access point. authenticates to the access point.
Recent advancements in extending Kerberos permit Kerberos Recent advancements in extending Kerberos permit Kerberos
authentication to complete with the assistance of a proxy. The authentication to complete with the assistance of a proxy. The
Kerberos [RFC4120] pre-authentication framework [KRB-PAFW] prevents Kerberos [RFC4120] pre-authentication framework [RFC6113] prevents
the exposure of weak client keys over the open network. The Kerberos the exposure of weak client keys over the open network. The Kerberos
support of anonymity [KRB-ANON] provides for privacy and further support of anonymity [RFC6112] provides for privacy and further
complicates traffic analysis. The kdc-referrals option defined in complicates traffic analysis. The kdc-referrals option defined in
[KRB-PAFW] may reduce the number of messages exchanged while [RFC6113] may reduce the number of messages exchanged while obtaining
obtaining a ticket to exactly two even in cross-realm a ticket to exactly two even in cross-realm authentications.
authentications.
Building upon these Kerberos extensions, this document extends Building upon these Kerberos extensions, this document extends
[RFC4120] and [RFC4121] such that the client can communicate with the [RFC4120] and [RFC4121] such that the client can communicate with the
KDC using a Generic Security Service Application Program Interface KDC using a Generic Security Service Application Program Interface
(GSS-API) [RFC2743] acceptor as the proxy. The GSS-API acceptor (GSS-API) [RFC2743] acceptor as the proxy. The GSS-API acceptor
relays the KDC request and reply messages between the client and the relays the KDC request and reply messages between the client and the
KDC. The GSS-API acceptor, when relaying the Kerberos messages, is KDC. The GSS-API acceptor, when relaying the Kerberos messages, is
called an IAKERB proxy. Consequently, IAKERB as defined in this called an IAKERB proxy. Consequently, IAKERB as defined in this
document requires the use of GSS-API. document requires the use of GSS-API.
skipping to change at page 3, line 20 skipping to change at page 3, line 21
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. GSS-API Encapsulation 3. GSS-API Encapsulation
The mechanism Objection Identifier (OID) for GSS-API IAKERB, in The mechanism Objection Identifier (OID) for GSS-API IAKERB, in
accordance with the mechanism proposed by [RFC4178] for negotiating accordance with the mechanism proposed by [RFC4178] for negotiating
protocol variations, is id-kerberos-iakerb: protocol variations, is id-kerberos-iakerb:
id-kerberos-iakerb ::= id-kerberos-iakerb ::=
{ iso(1) org(3) dod(6) internet(1) security(5) kerberosV5(2) { iso(1) org(3) dod(6) internet(1) security(5) kerberosV5(2)
iakerb(5) } iakerb(5) }
All context establishment token of IAKERB MUST have the generic token All context establishment token of IAKERB MUST have the generic token
framing described in section 3.1 of [RFC2743] with the mechanism OID framing described in section 3.1 of [RFC2743] with the mechanism OID
being id-kerberos-iakerb. being id-kerberos-iakerb. MIT implemented an earlier draft of this
specification, details on how to inter operate with that
implementation can be found in Appendix A.
The client starts by constructing the ticket request, and if the The client starts by constructing the ticket request, and if the
ticket request is being made to the KDC, the client, instead of ticket request is being made to the KDC, the client, instead of
contacting the KDC directly, encapsulates the request message into contacting the KDC directly, encapsulates the request message into
the output token of the GSS_Init_security_context() call and returns the output token of the GSS_Init_security_context() call and returns
GSS_S_CONTINUE_NEEDED [RFC2743] indicating that at least one more GSS_S_CONTINUE_NEEDED [RFC2743] indicating that at least one more
token is required in order to establish the context. The output token is required in order to establish the context. The output
token is then passed for use as the input token to the token is then passed for use as the input token to the
GSS_Accept_sec_context() call in accordance with GSS-API. The GSS- GSS_Accept_sec_context() call in accordance with GSS-API. The GSS-
API acceptor extracts the Kerberos request in the input token, API acceptor extracts the Kerberos request in the input token,
locates the target KDC, and sends the request on behalf of the locates the target KDC, and sends the request on behalf of the
client. After receiving the KDC reply, the GSS-API acceptor then client. After receiving the KDC reply, the GSS-API acceptor then
encapsulates the reply message into the output token of encapsulates the reply message into the output token of
GSS_Accept_sec_context(). The GSS-API acceptor returns GSS_Accept_sec_context(). The GSS-API acceptor returns
GSS_S_CONTINUE_NEEDED [RFC2743] indicating that at least one more GSS_S_CONTINUE_NEEDED [RFC2743] indicating that at least one more
token is required in order to establish the context. The output token is required in order to establish the context. The output
token is passed to the initiator in accordance with GSS-API. token is passed to the initiator in accordance with GSS-API.
Client <---------> IAKERB proxy <---------> KDC Client <---------> IAKERB proxy <---------> KDC
The innerToken described in section 3.1 of [RFC2743] and subsequent The innerToken described in section 3.1 of [RFC2743] and subsequent
GSS-API mechanism tokens have the following formats: it starts with a GSS-API mechanism tokens have the following formats: it starts with a
two-octet token-identifier (TOK_ID), followed by an IAKERB message or two-octet token-identifier (TOK_ID), followed by an IAKERB message or
a Kerberos message. a Kerberos message.
Only one IAKERB specific message, namely the IAKERB_PROXY message, is Only one IAKERB specific message, namely the IAKERB_PROXY message, is
defined in this document. The TOK_ID values for Kerberos messages defined in this document. The TOK_ID values for Kerberos messages
are the same as defined in [RFC4121]. are the same as defined in [RFC4121].
Token TOK_ID Value in Hex Token TOK_ID Value in Hex
-------------------------------------- --------------------------------------
IAKERB_PROXY 05 01 IAKERB_PROXY 05 01
The content of the IAKERB_PROXY message is defined as an IAKERB- The content of the IAKERB_PROXY message is defined as an IAKERB-
HEADER structure immediately followed by a Kerberos message. The HEADER structure immediately followed by a Kerberos message. The
Kerberos message can be an AS-REQ, an AS-REP, a TGS-REQ, a TGS-REP, Kerberos message can be an AS-REQ, an AS-REP, a TGS-REQ, a TGS-REP,
or a KRB-ERROR as defined in [RFC4120]. or a KRB-ERROR as defined in [RFC4120].
IAKERB-HEADER ::= SEQUENCE { IAKERB-HEADER ::= SEQUENCE {
target-realm [1] UTF8String, target-realm [1] UTF8String,
-- The name of the target realm. -- The name of the target realm.
cookie [2] OCTET STRING OPTIONAL, cookie [2] OCTET STRING OPTIONAL,
-- Opaque data, if sent by the server, -- Opaque data, if sent by the server,
-- MUST be copied by the client verbatim into -- MUST be copied by the client verbatim into
-- the next IAKRB_PROXY message. -- the next IAKRB_PROXY message.
... ...
} }
The IAKERB-HEADER structure and all the Kerberos messages MUST be The IAKERB-HEADER structure and all the Kerberos messages MUST be
encoded using Abstract Syntax Notation One (ASN.1) Distinguished encoded using Abstract Syntax Notation One (ASN.1) Distinguished
Encoding Rules (DER) [X680] [X690]. Encoding Rules (DER) [CCITT.X680.2002] [CCITT.X690.2002].
The IAKERB client fills out the IAKERB-HEADER structure as follows: The IAKERB client fills out the IAKERB-HEADER structure as follows:
the target-realm contains the realm name the ticket request is the target-realm contains the realm name the ticket request is
addressed to. In the initial message from the client, the cookie addressed to. In the initial message from the client, the cookie
field is absent. The client MUST specify a target-realm. If the field is absent. The client MUST specify a target-realm. If the
client does not know the realm of the client's true principal name client does not know the realm of the client's true principal name
[REFERALS], it MUST specify a realm it knows. This can be the realm [RFC6806], it MUST specify a realm it knows. This can be the realm
of the client's host. of the client's host.
Upon receipt of the IAKERB_PROXY message, the GSS-API acceptor Upon receipt of the IAKERB_PROXY message, the GSS-API acceptor
inspects the target-realm field in the IAKERB_HEADER, and locates a inspects the target-realm field in the IAKERB_HEADER, and locates a
KDC of that realm, and sends the ticket request to that KDC. KDC of that realm, and sends the ticket request to that KDC.
The GSS-API server encapsulates the KDC reply message in the returned The GSS-API server encapsulates the KDC reply message in the returned
IAKERB message. It fills out the target realm using the realm sent IAKERB message. It fills out the target realm using the realm sent
by the client and the KDC reply message is included immediately by the client and the KDC reply message is included immediately
following the IAKERB-HEADER header. following the IAKERB-HEADER header.
When the GSS-API acceptor is unable to obtain an IP address for a KDC When the GSS-API acceptor is unable to obtain an IP address for a KDC
in the client's realm, it sends a KRB_ERROR message with the code in the client's realm, it sends a KRB_ERROR message with the code
KRB_AP_ERR_IAKERB_KDC_NOT_FOUND to the client and the context fails KRB_AP_ERR_IAKERB_KDC_NOT_FOUND to the client and the context fails
to establish. There is no accompanying error data defined in this to establish. There is no accompanying error data defined in this
document for this error code. document for this error code.
KRB_AP_ERR_IAKERB_KDC_NOT_FOUND 85 KRB_AP_ERR_IAKERB_KDC_NOT_FOUND 85
-- The IAKERB proxy could not find a KDC. -- The IAKERB proxy could not find a KDC.
When the GSS-API acceptor has an IP address for a KDC in the client When the GSS-API acceptor has an IP address for a KDC in the client
realm, but does not receive a response from any KDC in the realm realm, but does not receive a response from any KDC in the realm
(including in response to retries), it sends a KRB_ERROR message with (including in response to retries), it sends a KRB_ERROR message with
the code KRB_AP_ERR_IAKERB_KDC_NO_RESPONSE to the client and the the code KRB_AP_ERR_IAKERB_KDC_NO_RESPONSE to the client and the
context fails to establish. There is no accompanying error data context fails to establish. There is no accompanying error data
defined in this document for this error code. defined in this document for this error code.
KRB_AP_ERR_IAKERB_KDC_NO_RESPONSE 86 KRB_AP_ERR_IAKERB_KDC_NO_RESPONSE 86
-- The KDC did not respond to the IAKERB proxy. -- The KDC did not respond to the IAKERB proxy.
The IAKERB proxy can send opaque data in the cookie field of the The IAKERB proxy can send opaque data in the cookie field of the
IAKERB-HEADER structure in the server reply to the client, in order IAKERB-HEADER structure in the server reply to the client, in order
to, for example, minimize the amount of state information kept by the to, for example, minimize the amount of state information kept by the
GSS-API acceptor. The content and the encoding of the cookie field GSS-API acceptor. The content and the encoding of the cookie field
is a local matter of the IAKERB proxy. The client MUST copy the is a local matter of the IAKERB proxy. The client MUST copy the
cookie verbatim from the previous server response whenever the cookie cookie verbatim from the previous server response whenever the cookie
is present into the subsequent tokens that contains an IAKERB_PROXY is present into the subsequent tokens that contains an IAKERB_PROXY
message. message.
The client and the server can repeat the sequence of sending and The client and the server can repeat the sequence of sending and
receiving the IAKERB messages as described above, in order to allow receiving the IAKERB messages as described above, in order to allow
the client interact with the KDC through the IAKERB proxy, and to the client interact with the KDC through the IAKERB proxy, and to
obtain Kerberos tickets as needed. obtain Kerberos tickets as needed.
When obtaining the initial TGT, the client may start with an NT- When obtaining the initial TGT, the client may start with an NT-
ENTERPRISE name type and the client host does not have a Kerberos ENTERPRISE name type and the client host does not have a Kerberos
realm. To resolve the NT-ENTERPRISE name type, the client typically realm. To resolve the NT-ENTERPRISE name type, the client typically
starts with the client host realm and then finds out the true realm starts with the client host realm and then finds out the true realm
of the client based on [REFERALS]. In this case the GSS-API client of the client based on [RFC6806]. In this case the GSS-API client
can retrieve the realm of the GSS-API server as follows: the client can retrieve the realm of the GSS-API server as follows: the client
returns GSS_S_CONTINUE_NEEDED with the output token containing an returns GSS_S_CONTINUE_NEEDED with the output token containing an
IAKERB message with an empty target-realm in the IAKERB-HEADER and no IAKERB message with an empty target-realm in the IAKERB-HEADER and no
Kerberos message following the IAKERB-HEADER structure. Upon receipt Kerberos message following the IAKERB-HEADER structure. Upon receipt
of the realm request, the GSS-API server fills out the target realm of the realm request, the GSS-API server fills out the target realm
field using the realm of the server, and returns field using the realm of the server, and returns
GSS_S_CONTINUE_NEEDED with the output token containing the IAKERB GSS_S_CONTINUE_NEEDED with the output token containing the IAKERB
message with the server's realm and no Kerberos message following the message with the server's realm and no Kerberos message following the
IAKERB-HEADER header. The GSS-API client can then use the returned IAKERB-HEADER header. The GSS-API client can then use the returned
realm in subsequent IAKERB messages to resolve the NT-ENTERPRISE name realm in subsequent IAKERB messages to resolve the NT-ENTERPRISE name
type. Since the GSS-API server can act as a Kerberos acceptor, it type. Since the GSS-API server can act as a Kerberos acceptor, it
always has a Kerberos realm in this case. always has a Kerberos realm in this case.
When the client obtained a service ticket, the client sends a When the client obtained a service ticket, the client sends a
KRB_AP_REQ message to the server, and performs the client-server KRB_AP_REQ message to the server, and performs the client-server
application exchange as defined in [RFC4120] and [RFC4121]. application exchange as defined in [RFC4120] and [RFC4121].
For implementations conforming to this specification, both the For implementations conforming to this specification, both the
authenticator subkey and the GSS_EXTS_FINISHED extension as defined authenticator subkey and the GSS_EXTS_FINISHED extension as defined
in [PKU2U] MUST be present in the AP-REQ authenticator. This in Section 4 MUST be present in the AP-REQ authenticator. This
checksum provides integrity protection for the messages exchanged checksum provides integrity protection for the messages exchanged
including the unauthenticated clear texts in the IAKERB-HEADER including the unauthenticated clear texts in the IAKERB-HEADER
structure. structure.
If the pre-authentication data is encrypted in the long-term If the pre-authentication data is encrypted in the long-term
password-based key of the principal, the risk of security exposures password-based key of the principal, the risk of security exposures
is significant. Implementations SHOULD provide the AS_REQ armoring is significant. Implementations SHOULD provide the AS_REQ armoring
as defined in [KRB-PAFW] unless an alternative protection is as defined in [RFC6113] unless an alternative protection is deployed.
deployed. In addition, the anonymous Kerberos FAST option is In addition, the anonymous Kerberos FAST option is RECOMMENDED for
RECOMMENDED for the client to complicate traffic analysis. the client to complicate traffic analysis.
4. Addresses in Tickets 4. Finish Message
For implementations conforming to this specification, the
authenticator subkey in the AP-REQ MUST alway be present, and the
Exts field in the GSS-API authenticator [RFC6542] MUST contain an
extension of the type GSS_EXTS_IAKERB_FINISHED and the extension data
contains the ASN.1 DER encoding of the structure IAKERB-FINISHED.
GSS_EXTS_FINISHED 2
--- Data type for the IAKERB checksum.
KRB-FINISHED ::= {
gss-mic [1] Checksum,
-- Contains the checksum [RFC3961] of the GSS-API tokens
-- exchanged between the initiator and the acceptor,
-- and prior to the containing AP_REQ GSS-API token.
-- The checksum is performed over the GSS-API tokens
-- in the order that the tokens were sent.
...
}
pnp The gss-mic field in the KRB-FINISHED structure contains a
Kerberos checksum [RFC3961] of all the preceding context tokens of
this GSS-API context (including the InitialContextToken header),
concatenated in chronological order (note that GSS-API context token
exchanges are synchronous.) The checksum type is the required
checksum type of the enctype of the subkey in the authenticator, the
protocol key for the checksum operation is the authenticator subkey,
and the key usage number is KEY_USAGE_FINISHED.
KEY_USAGE_FINISHED 41
The GSS-API acceptor MUST then verify the checksum contained in the
GSS_EXTS_FINISHED extension. This checksum provides integrity
protection for the messages exchanged including the unauthenticated
clear texts in the IAKERB-HEADER structure.
5. Addresses in Tickets
In IAKERB, the machine sending requests to the KDC is the GSS-API In IAKERB, the machine sending requests to the KDC is the GSS-API
acceptor and not the client. As a result, the client should not acceptor and not the client. As a result, the client should not
include its addresses in any KDC requests for two reasons. First, include its addresses in any KDC requests for two reasons. First,
the KDC may reject the forwarded request as being from the wrong the KDC may reject the forwarded request as being from the wrong
client. Second, in the case of initial authentication for a dial-up client. Second, in the case of initial authentication for a dial-up
client, the client machine may not yet possess a network address. client, the client machine may not yet possess a network address.
Hence, as allowed by [RFC4120], the addresses field of the AS-REQ and Hence, as allowed by [RFC4120], the addresses field of the AS-REQ and
TGS-REQ requests SHOULD be blank and the caddr field of the ticket TGS-REQ requests SHOULD be blank and the caddr field of the ticket
SHOULD similarly be left blank. SHOULD similarly be left blank.
5. Security Considerations 6. Security Considerations
A typical IAKERB client sends the AS_REQ with pre-authentication data A typical IAKERB client sends the AS_REQ with pre-authentication data
encrypted in the long-term keys of the user before the server is encrypted in the long-term keys of the user before the server is
authenticated. This enables offline attacks by un-trusted servers. authenticated. This enables offline attacks by un-trusted servers.
To mitigate this threat, the client SHOULD use Kerberos To mitigate this threat, the client SHOULD use Kerberos FAST[RFC6113]
FAST[KRB-PAFW] and require KDC authentication to protect the user's and require KDC authentication to protect the user's credentials.
credentials.
The client name is in clear text in the authentication exchange The client name is in clear text in the authentication exchange
messages and ticket granting service exchanges according to [RFC4120] messages and ticket granting service exchanges according to [RFC4120]
whereas the client name is encrypted in client- server application whereas the client name is encrypted in client- server application
exchange messages. By using the IAKERB proxy to relay the ticket exchange messages. By using the IAKERB proxy to relay the ticket
requests and responses, the client's identity could be revealed in requests and responses, the client's identity could be revealed in
the client-server traffic where the same identity could have been the client-server traffic where the same identity could have been
concealed if IAKERB were not used. Hence, to complicate traffic concealed if IAKERB were not used. Hence, to complicate traffic
analysis and provide privacy for the IAKERB client, the IAKERB client analysis and provide privacy for the IAKERB client, the IAKERB client
SHOULD request the anonymous Kerberos FAST option [KRB-PAFW]. SHOULD request the anonymous Kerberos FAST option [RFC6113].
Similar to other network access protocols, IAKERB allows an Similar to other network access protocols, IAKERB allows an
unauthenticated client (possibly outside the security perimeter of an unauthenticated client (possibly outside the security perimeter of an
organization) to send messages that are proxied to interior servers. organization) to send messages that are proxied to interior servers.
To reduce attack surface, firewall filters can be applied to allow To reduce attack surface, firewall filters can be applied to allow
from which hosts the client requests can be proxied and the proxy can from which hosts the client requests can be proxied and the proxy can
further restrict the set of realms to which the requests can be further restrict the set of realms to which the requests can be
proxied. proxied.
In a scenario where DNS SRV RR's are being used to locate the KDC, In a scenario where DNS SRV RR's are being used to locate the KDC,
skipping to change at page 7, line 48 skipping to change at page 8, line 30
3. DNS security can be deployed. This countermeasure is probably 3. DNS security can be deployed. This countermeasure is probably
overkill for this particular problem, but if an organization has overkill for this particular problem, but if an organization has
already deployed DNS security for other reasons, then it might already deployed DNS security for other reasons, then it might
make sense to leverage it here. Note that Kerberos could be used make sense to leverage it here. Note that Kerberos could be used
to protect the DNS exchanges. The initial DNS SRV KDC lookup by to protect the DNS exchanges. The initial DNS SRV KDC lookup by
the proxy will be unprotected, but an attack here is at most a the proxy will be unprotected, but an attack here is at most a
denial of service (the initial lookup will be for the proxy's KDC denial of service (the initial lookup will be for the proxy's KDC
to facilitate Kerberos protection of subsequent DNS exchanges to facilitate Kerberos protection of subsequent DNS exchanges
between itself and the DNS server). between itself and the DNS server).
6. Acknowledgements 7. Acknowledgements
Jonathan Trostle, Michael Swift, Bernard Aboba and Glen Zorn wrote Jonathan Trostle, Michael Swift, Bernard Aboba and Glen Zorn wrote
earlier revision of this document. earlier revision of this document.
The hallway conversations between Larry Zhu and Nicolas Williams The hallway conversations between Larry Zhu and Nicolas Williams
formed the basis of this document. formed the basis of this document.
7. IANA Considerations 8. IANA Considerations
There is no IANA action required for this document. IANA is requested to make a modification in the "Kerberos GSS-API
Token Type Identifiers" registry.
8. References The following data to the table:
8.1. Normative References +-------+--------------+------------+
| ID | Description | Reference |
+-------+--------------+------------+
| 05 01 | IAKERB_PROXY | [THIS RFC] |
+-------+--------------+------------+
[GSS-EXTS] 9. References
Emery, S., "Kerberos Version 5 GSS-API Channel Binding
Hash Agility", internet-draft draft-ietf-krb-wg-gss-cb- 9.1. Normative References
hash-agility-03.txt, 2007.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2743] Linn, J., "Generic Security Service Application Program [RFC2743] Linn, J., "Generic Security Service Application Program
Interface Version 2, Update 1", RFC 2743, January 2000. Interface Version 2, Update 1", RFC 2743, January 2000.
[RFC3961] Raeburn, K., "Encryption and Checksum Specifications for [RFC3961] Raeburn, K., "Encryption and Checksum Specifications for
Kerberos 5", RFC 3961, February 2005. Kerberos 5", RFC 3961, February 2005.
skipping to change at page 8, line 46 skipping to change at page 9, line 38
[RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos [RFC4121] Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos
Version 5 Generic Security Service Application Program Version 5 Generic Security Service Application Program
Interface (GSS-API) Mechanism: Version 2", RFC 4121, July Interface (GSS-API) Mechanism: Version 2", RFC 4121, July
2005. 2005.
[RFC4178] Zhu, L., Leach, P., Jaganathan, K., and W. Ingersoll, "The [RFC4178] Zhu, L., Leach, P., Jaganathan, K., and W. Ingersoll, "The
Simple and Protected Generic Security Service Application Simple and Protected Generic Security Service Application
Program Interface (GSS-API) Negotiation Mechanism", RFC Program Interface (GSS-API) Negotiation Mechanism", RFC
4178, October 2005. 4178, October 2005.
8.2. Informative references [RFC6542] Emery, S., "Kerberos Version 5 Generic Security Service
Application Program Interface (GSS-API) Channel Binding
Hash Agility", RFC 6542, March 2012.
[KRB-ANON] 9.2. Informative references
Zhu, L. and P. Leach, "Kerberos Anonymity Support",
internet-draft draft-ietf-krb-wg-anon-04.txt, 2007.
[KRB-PAFW] [CCITT.X680.2002]
Zhu, L. and S. Hartman, "A Generalized Framework for International International Telephone and Telegraph
Kerberos Pre-Authentication", internet-draft draft-ietf- Consultative Committee, "Abstract Syntax Notation One
krb-wg-preauth-framework-06.txt, 2007. (ASN.1): Specification of basic notation", CCITT
Recommendation X.680, July 2002.
[CCITT.X690.2002]
International International Telephone and Telegraph
Consultative Committee, "ASN.1 encoding rules:
Specification of basic encoding Rules (BER), Canonical
encoding rules (CER) and Distinguished encoding rules
(DER)", CCITT Recommendation X.690, July 2002.
[RFC6112] Zhu, L., Leach, P., and S. Hartman, "Anonymity Support for
Kerberos", RFC 6112, April 2011.
[RFC6113] Hartman, S. and L. Zhu, "A Generalized Framework for
Kerberos Pre-Authentication", RFC 6113, April 2011.
[RFC6806] Hartman, S., Raeburn, K., and L. Zhu, "Kerberos Principal
Name Canonicalization and Cross-Realm Referrals", RFC
6806, November 2012.
Appendix A. Interoperate with Previous MIT version
MIT implemented an early draft version of this document, this section
gives a method for detecting and interoperating with that version.
Initiators behave as follows:
o If the acceptor token is framed, then use the protocol as defined
above.
o Else
* All future tokens sent to the acceptor are to be unframed.
* When creating the finish message, the value of one (1) should
be used in place of GSS_EXTS_FINISHED.
* When computing the checksum, the value of
KEY_USAGE_IAKERB_FINISHED should be used in place of
KEY_USAGE_FINISHED.
KEY_USAGE_IAKERB_FINISHED 42
Acceptors behave as follows:
o If you framed the response token, use the finish extension
processing defined in the main document.
o If you did not frame the response token, use the finish extension
processing defined in the previous paragraph.
Authors' Addresses Authors' Addresses
Jim Schaad (editor) Jim Schaad (editor)
Soaring Hawk Consulting Soaring Hawk Consulting
Email: ietf@augustcellars.com Email: ietf@augustcellars.com
Larry Zhu Larry Zhu
Microsoft Corporation Microsoft Corporation
 End of changes. 33 change blocks. 
60 lines changed or deleted 153 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/