[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS shishi/doc/specifications
From: |
shishi-commit |
Subject: |
CVS shishi/doc/specifications |
Date: |
Thu, 12 Jan 2006 22:40:39 +0100 |
Update of /home/cvs/shishi/doc/specifications
In directory dopio:/tmp/cvs-serv399
Added Files:
draft-ietf-cat-kerberos-pk-init-32.txt
Log Message:
Add.
--- /home/cvs/shishi/doc/specifications/draft-ietf-cat-kerberos-pk-init-32.txt
2006/01/12 21:40:39 NONE
+++ /home/cvs/shishi/doc/specifications/draft-ietf-cat-kerberos-pk-init-32.txt
2006/01/12 21:40:39 1.1
NETWORK WORKING GROUP L. Zhu
Internet-Draft Microsoft Corporation
Expires: July 15, 2006 B. Tung
USC Information Sciences Institute
January 11, 2006
Public Key Cryptography for Initial Authentication in Kerberos
draft-ietf-cat-kerberos-pk-init-32
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 15, 2006.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This document describes protocol extensions (hereafter called PKINIT)
to the Kerberos protocol specification. These extensions provide a
method for integrating public key cryptography into the initial
authentication exchange, by using asymmetric-key signature and/or
encryption algorithms in pre-authentication data fields.
Zhu & Tung Expires July 15, 2006 [Page 1]
Internet-Draft PKINIT January 2006
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions Used in This Document . . . . . . . . . . . . . . 5
3. Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Definitions, Requirements, and Constants . . . . . . . . . 6
3.1.1. Required Algorithms . . . . . . . . . . . . . . . . . 6
3.1.2. Defined Message and Encryption Types . . . . . . . . . 6
3.1.3. Algorithm Identifiers . . . . . . . . . . . . . . . . 7
3.2. PKINIT Pre-authentication Syntax and Use . . . . . . . . . 9
3.2.1. Generation of Client Request . . . . . . . . . . . . . 9
3.2.2. Receipt of Client Request . . . . . . . . . . . . . . 13
3.2.3. Generation of KDC Reply . . . . . . . . . . . . . . . 17
3.2.4. Receipt of KDC Reply . . . . . . . . . . . . . . . . . 24
3.3. Interoperability Requirements . . . . . . . . . . . . . . 25
3.4. KDC Indication of PKINIT Support . . . . . . . . . . . . . 26
4. Security Considerations . . . . . . . . . . . . . . . . . . . 26
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1. Normative References . . . . . . . . . . . . . . . . . . . 29
7.2. Informative References . . . . . . . . . . . . . . . . . . 31
Appendix A. PKINIT ASN.1 Module . . . . . . . . . . . . . . . . . 31
Appendix B. Test Vectors . . . . . . . . . . . . . . . . . . . . 36
Appendix C. Miscellaneous Information about Microsoft Windows
PKINIT Implementations . . . . . . . . . . . . . . . 38
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 40
Intellectual Property and Copyright Statements . . . . . . . . . . 41
Zhu & Tung Expires July 15, 2006 [Page 2]
Internet-Draft PKINIT January 2006
1. Introduction
The Kerberos V5 protocol [RFC4120] involves use of a trusted third
party known as the Key Distribution Center (KDC) to negotiate shared
session keys between clients and services and provide mutual
authentication between them.
The corner-stone of Kerberos V5 is the Ticket and the Authenticator.
A Ticket encapsulates a symmetric key (the ticket session key) in an
envelope (a public message) intended for a specific service. The
contents of the Ticket are encrypted with a symmetric key shared
between the service principal and the issuing KDC. The encrypted
part of the Ticket contains the client principal name, amongst other
items. An Authenticator is a record that can be shown to have been
recently generated using the ticket session key in the associated
Ticket. The ticket session key is known by the client who requested
the ticket. The contents of the Authenticator are encrypted with the
associated ticket session key. The encrypted part of an
Authenticator contains a timestamp and the client principal name,
amongst other items.
As shown in Figure 1 below, the Kerberos V5 protocol consists of the
following message exchanges between the client and the KDC, and the
client and the application service:
- The Authentication Service (AS) Exchange
The client obtains an "initial" ticket from the Kerberos
authentication server (AS), typically a Ticket Granting Ticket
(TGT). The AS-REQ message and the AS-REP message are the request
and the reply message respectively between the client and the AS.
- The Ticket Granting Service (TGS) Exchange
The client subsequently uses the TGT to authenticate and request a
service ticket for a particular service, from the Kerberos ticket-
granting server (TGS). The TGS-REQ message and the TGS-REP
message are the request and the reply message respectively between
the client and the TGS.
- The Client/Server Authentication Protocol (AP) Exchange
The client then makes a request with an AP-REQ message, consisting
of a service ticket and an authenticator that certifies the
client's possession of the ticket session key. The server may
optionally reply with an AP-REP message. AP exchanges typically
negotiate session specific symmetric keys.
Zhu & Tung Expires July 15, 2006 [Page 3]
Internet-Draft PKINIT January 2006
Usually, the AS and TGS are integrated in a single device also known
as the KDC.
Figure 1: The Message Exchanges in the Kerberos V5 Protocol
+--------------+
+--------->| KDC |
AS-REQ / +-------| |
/ / +--------------+
/ / ^ |
/ |AS-REP / |
| | / TGS-REQ + TGS-REP
| | / /
| | / /
| | / +---------+
| | / /
| | / /
| | / /
| v / v
++-------+------+ +-----------------+
| Client +------------>| Application |
| | AP-REQ | Server |
| |<------------| |
+---------------+ AP-REP +-----------------+
In the AS exchange, the KDC reply contains the ticket session key,
amongst other items, that is encrypted using a key (the AS reply key)
shared between the client and the KDC. The AS reply key is typically
derived from the client's password for human users. Therefore for
human users the attack resistance strength of the Kerberos protocol
is no stronger than the strength of their passwords.
The use of asymmetric cryptography in the form of X.509 certificates
[RFC3280] is popular for facilitating non-repudiation and perfect
secrecy. An established Public Key Infrastructure (PKI) provides key
management and key distribution mechanisms that can be used to
establish authentication and secure communication. Adding public-key
cryptography to Kerberos provides a nice congruence to public-key
protocols, obviates the human users' burden to manage strong
passwords, and allows Kerberized applications to take advantage of
existing key services and identity management.
The advantage afforded by the Kerberos TGT is that the client exposes
his long-term secrets only once. The TGT and its associated session
key can then be used for any subsequent service ticket requests. One
result of this is that all further authentication is independent of
the method by which the initial authentication was performed.
Consequently, initial authentication provides a convenient place to
Zhu & Tung Expires July 15, 2006 [Page 4]
Internet-Draft PKINIT January 2006
integrate public-key cryptography into Kerberos authentication. In
addition, the use of symmetric cryptography after the initial
exchange is preferred for performance.
This document describes the methods and data formats using which the
client and the KDC can use public and private key pairs to mutually
authenticate in the AS exchange and negotiate the AS reply key, known
only by the client and the KDC, to encrypt the AS-REP sent by the
KDC.
2. Conventions Used in This Document
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 [RFC2119].
In this protocol, both the client and the KDC have a public-private
key pair in order to prove their identities to each other over the
open network. The term "signature key" is used to refer to the
private key of the key pair being used.
The encryption key used to encrypt the enc-part field of the KDC-REP
in the AS-REP [RFC4120] is referred to as the AS reply key.
An empty sequence in an optional field can be either included or
omitted: both encodings are permitted and considered equivalent.
The term "Modular Exponential Diffie-Hellman" is used to refer to the
Diffie-Hellman key exchange as described in [RFC2631], in order to
differentiate it from other equivalent representations of the same
key agreement algorithm.
3. Extensions
This section describes extensions to [RFC4120] for supporting the use
of public-key cryptography in the initial request for a ticket.
Briefly, this document defines the following extensions to [RFC4120]:
1. The client indicates the use of public-key authentication by
including a special preauthenticator in the initial request. This
preauthenticator contains the client's public-key data and a
signature.
Zhu & Tung Expires July 15, 2006 [Page 5]
Internet-Draft PKINIT January 2006
2. The KDC tests the client's request against its authentication
policy and trusted Certification Authorities (CAs).
3. If the request passes the verification tests, the KDC replies as
usual, but the reply is encrypted using either:
a. a key generated through a Diffie-Hellman (DH) key exchange
[RFC2631] [IEEE1363] with the client, signed using the KDC's
signature key; or
b. a symmetric encryption key, signed using the KDC's signature
key and encrypted using the client's public key.
Any keying material required by the client to obtain the
encryption key for decrypting the KDC reply is returned in a pre-
authentication field accompanying the usual reply.
4. The client validates the KDC's signature, obtains the encryption
key, decrypts the reply, and then proceeds as usual.
Section 3.1 of this document enumerates the required algorithms and
necessary extension message types. Section 3.2 describes the
extension messages in greater detail.
3.1. Definitions, Requirements, and Constants
3.1.1. Required Algorithms
All PKINIT implementations MUST support the following algorithms:
o AS reply key enctype: aes128-cts-hmac-sha1-96 and aes256-cts-hmac-
sha1-96 [RFC3962].
o Signature algorithm: sha-1WithRSAEncryption [RFC3279].
o AS reply key delivery method: Diffie-Hellman key exchange
[RFC2631].
In addition, implementations of this specification MUST be capable of
processing the Extended Key Usage (EKU) extension and the id-pkinit-
san (as defined in Section 3.2.2) otherName of the Subject
Alternative Name (SAN) extension in X.509 certificates [RFC3280], if
present.
3.1.2. Defined Message and Encryption Types
PKINIT makes use of the following new pre-authentication types:
Zhu & Tung Expires July 15, 2006 [Page 6]
Internet-Draft PKINIT January 2006
PA_PK_AS_REQ 16
PA_PK_AS_REP 17
PKINIT also makes use of the following new authorization data type:
AD_INITIAL_VERIFIED_CAS 9
PKINIT introduces the following new error codes:
KDC_ERR_CLIENT_NOT_TRUSTED 62
KDC_ERR_INVALID_SIG 64
KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED 65
KDC_ERR_CANT_VERIFY_CERTIFICATE 70
KDC_ERR_INVALID_CERTIFICATE 71
KDC_ERR_REVOKED_CERTIFICATE 72
KDC_ERR_REVOCATION_STATUS_UNKNOWN 73
KDC_ERR_CLIENT_NAME_MISMATCH 75
KDC_ERR_INCONSISTENT_KEY_PURPOSE 77
KDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTED 78
KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED 79
KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED 80
PKINIT uses the following typed data types for errors:
TD_TRUSTED_CERTIFIERS 104
TD_INVALID_CERTIFICATES 105
TD_DH_PARAMETERS 109
The ASN.1 module for all structures defined in this document (plus
IMPORT statements for all imported structures) is given in
Appendix A.
All structures defined in or imported into this document MUST be
encoded using Distinguished Encoding Rules (DER) [X680] [X690]
(unless otherwise noted). All data structures carried in OCTET
STRINGs must be encoded according to the rules specified in
corresponding specifications.
Interoperability note: Some implementations may not be able to decode
wrapped CMS objects encoded with BER; specifically, they may not be
able to decode indefinite length encodings. To maximize
interoperability, implementers SHOULD encode CMS objects used in
PKINIT with DER.
3.1.3. Algorithm Identifiers
PKINIT does not define, but does make use of, the following algorithm
identifiers.
Zhu & Tung Expires July 15, 2006 [Page 7]
Internet-Draft PKINIT January 2006
PKINIT uses the following algorithm identifier(s) for Modular
Exponential Diffie-Hellman key agreement [RFC2631] [RFC3279]:
dhpublicnumber (as described in [RFC3279])
[1893 lines skipped]
- CVS shishi/doc/specifications,
shishi-commit <=