Connected: An Internet Encyclopedia
RFC 1510

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments

Search: |  | Search Depth: |
Search Type: | String RegEx | Search Options: | NoCase WholeWord

Next: 1. Introduction

Network Working Group
Request for Comments: 1510

J. Kohl
Digital Equipment Corporation
C. Neuman
ISI
September 1993

### The Kerberos Network Authentication Service (V5)

#### Status of this Memo

This RFC specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.

#### Abstract

This document gives an overview and specification of Version 5 of the protocol for the Kerberos network authentication system. Version 4, described elsewhere [1,2], is presently in production use at MIT's Project Athena, and at other Internet sites.

#### Overview

Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, and Zephyr are trademarks of the Massachusetts Institute of Technology (MIT). No commercial use of these trademarks may be made without prior written permission of MIT.

This RFC describes the concepts and model upon which the Kerberos network authentication system is based. It also specifies Version 5 of the Kerberos protocol.

The motivations, goals, assumptions, and rationale behind most design decisions are treated cursorily; for Version 4 they are fully described in the Kerberos portion of the Athena Technical Plan [1]. The protocols are under review, and are not being submitted for consideration as an Internet standard at this time. Comments are encouraged. Requests for addition to an electronic mailing list for discussion of Kerberos, kerberos@MIT.EDU, may be addressed to kerberos-request@MIT.EDU. This mailing list is gatewayed onto the Usenet as the group comp.protocols.kerberos. Requests for further information, including documents and code availability, may be sent to info-kerberos@MIT.EDU.

#### Background

The Kerberos model is based in part on Needham and Schroeder's trusted third-party authentication protocol [3] and on modifications suggested by Denning and Sacco [4]. The original design and implementation of Kerberos Versions 1 through 4 was the work of two former Project Athena staff members, Steve Miller of Digital Equipment Corporation and Clifford Neuman (now at the Information Sciences Institute of the University of Southern California), along with Jerome Saltzer, Technical Director of Project Athena, and Jeffrey Schiller, MIT Campus Network Manager. Many other members of Project Athena have also contributed to the work on Kerberos. Version 4 is publicly available, and has seen wide use across the Internet.

Version 5 (described in this document) has evolved from Version 4 based on new requirements and desires for features not available in Version 4. Details on the differences between Kerberos Versions 4 and 5 can be found in [5].

#### Table of Contents

1. Introduction

1.1. Cross-Realm Operation
1.2. Environmental assumptions
1.3. Glossary of terms

2. Ticket flag uses and requests

2.1. Initial and pre-authenticated tickets
2.2. Invalid tickets
2.3. Renewable tickets
2.4. Postdated tickets
2.5. Proxiable and proxy tickets
2.6. Forwardable tickets
2.7. Other KDC options

3. Message Exchanges

3.1. The Authentication Service Exchange

3.1.1. Generation of KRB_AS_REQ message
3.1.2. Receipt of KRB_AS_REQ message
3.1.3. Generation of KRB_AS_REP message
3.1.4. Generation of KRB_ERROR message
3.1.5. Receipt of KRB_AS_REP message
3.1.6. Receipt of KRB_ERROR message

3.2. The Client/Server Authentication Exchange

3.2.1. The KRB_AP_REQ message
3.2.2. Generation of a KRB_AP_REQ message
3.2.3. Receipt of KRB_AP_REQ message
3.2.4. Generation of a KRB_AP_REP message
3.2.5. Receipt of KRB_AP_REP message
3.2.6. Using the encryption key

3.3. The Ticket-Granting Service (TGS) Exchange

3.3.1. Generation of KRB_TGS_REQ message
3.3.2. Receipt of KRB_TGS_REQ message
3.3.3. Generation of KRB_TGS_REP message

3.3.3.1. Encoding the transited field

3.3.4. Receipt of KRB_TGS_REP message

3.4. The KRB_SAFE Exchange

3.4.1. Generation of a KRB_SAFE message
3.4.2. Receipt of KRB_SAFE message

3.5. The KRB_PRIV Exchange

3.5.1. Generation of a KRB_PRIV message
3.5.2. Receipt of KRB_PRIV message

3.6. The KRB_CRED Exchange

3.6.1. Generation of a KRB_CRED message
3.6.2. Receipt of KRB_CRED message

4. The Kerberos Database

4.1. Database contents
4.2. Additional fields
4.3. Frequently Changing Fields
4.4. Site Constants

5. Message Specifications

5.1. ASN.1 Distinguished Encoding Representation
5.2. ASN.1 Base Definitions
5.3. Tickets and Authenticators

5.3.1. Tickets
5.3.2. Authenticators

5.4. Specifications for the AS and TGS exchanges

5.4.1. KRB_KDC_REQ definition
5.4.2. KRB_KDC_REP definition

5.5. Client/Server (CS) message specifications

5.5.1. KRB_AP_REQ definition
5.5.2. KRB_AP_REP definition
5.5.3. Error message reply

5.6. KRB_SAFE message specification

5.6.1. KRB_SAFE definition

5.7. KRB_PRIV message specification

5.7.1. KRB_PRIV definition

5.8. KRB_CRED message specification

5.8.1. KRB_CRED definition

5.9. Error message specification

5.9.1. KRB_ERROR definition

6. Encryption and Checksum Specifications

6.1. Encryption Specifications
6.2. Encryption Keys
6.3. Encryption Systems

6.3.1. The NULL Encryption System (null)
6.3.2. DES in CBC mode with a CRC-32 checksum (des-cbc-crc)
6.3.3. DES in CBC mode with an MD4 checksum (des-cbc-md4)
6.3.4. DES in CBC mode with an MD5 checksum (des-cbc-md5)

6.4. Checksums

6.4.1. The CRC-32 Checksum (crc32)
6.4.2. The RSA MD4 Checksum (rsa-md4)
6.4.3. RSA MD4 Cryptographic Checksum Using DES (rsa-md4des)
6.4.4. The RSA MD5 Checksum (rsa-md5)
6.4.5. RSA MD5 Cryptographic Checksum Using DES (rsa-md5des)
6.4.6. DES cipher-block chained checksum (des-mac)
6.4.7. RSA MD4 Cryptographic Checksum Using DES alternative
6.4.8. DES cipher-block chained checksum alternative (desmac-k)

7. Naming Constraints

7.1. Realm Names
7.2. Principal Names

7.2.1. Name of server principals

8. Constants and other defined values

8.1. Host address types
8.2. KDC messages

8.2.1. IP transport
8.2.2. OSI transport
8.2.3. Name of the TGS

8.3. Protocol constants and associated values

9. Interoperability requirements

9.1. Specification 1
9.2. Recommended KDC values

10. Acknowledgments
11. References
12. Security Considerations
13. Authors' Addresses
A. Pseudo-code for protocol processing

A.1. KRB_AS_REQ generation
A.2. KRB_AS_REQ verification and KRB_AS_REP generation
A.3. KRB_AS_REP verification
A.4. KRB_AS_REP and KRB_TGS_REP common checks
A.5. KRB_TGS_REQ generation
A.6. KRB_TGS_REQ verification and KRB_TGS_REP generation
A.7. KRB_TGS_REP verification
A.8. Authenticator generation
A.9. KRB_AP_REQ generation
A.10. KRB_AP_REQ verification
A.11. KRB_AP_REP generation
A.12. KRB_AP_REP verification
A.13. KRB_SAFE generation
A.14. KRB_SAFE verification
A.15. KRB_SAFE and KRB_PRIV common checks
A.16. KRB_PRIV generation
A.17. KRB_PRIV verification
A.18. KRB_CRED generation
A.19. KRB_CRED verification
A.20. KRB_ERROR generation

Original text document

Next: 1. Introduction

Connected: An Internet Encyclopedia
RFC 1510