RFC1510 日本語訳
1510 The Kerberos Network Authentication Service (V5). J. Kohl, C.Neuman. September 1993. (Format: TXT=275395 bytes) (Obsoleted by RFC4120) (Status: PROPOSED STANDARD)
プログラムでの自動翻訳です。
RFC一覧
英語原文
Network Working Group J. Kohl Request for Comments: 1510 Digital Equipment Corporation C. Neuman ISI September 1993
コメントを求めるワーキンググループJ.コール要求をネットワークでつないでください: 1510 DEC C.ヌーマンISI1993年9月
The Kerberos Network Authentication Service (V5)
ケルベロスネットワーク認証サービス(V5)
Status of this Memo
この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.
このRFCはインターネットコミュニティにインターネット標準化過程プロトコルを指定して、改良のために議論と提案を要求します。 このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」の現行版を参照してください。 このメモの分配は無制限です。
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.
このドキュメントはケルベロスネットワーク認証システムのためにプロトコルのバージョン5の概要と仕様を与えます。 MITのProjectアティナにおいて他のインターネット・サイトにほかの場所[1、2]で説明されたバージョン4が現在、生産使用であります。
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.
プロジェクトアティナ、アテーナー、アティナミューズ、Discuss、ヘシオドス、ケルベロス、モイラ、およびZephyrはマサチューセッツ工科大学(MIT)の商標です。 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.
このRFCはケルベロスネットワーク認証システムが基づいている概念とモデルについて説明します。 また、それはケルベロスプロトコルのバージョン5を指定します。
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.
ほとんどのデザイン決定の後ろの動機、目標、仮定、および原理は粗略に扱われます。 バージョン4において、それらはアテーナーTechnical Plan[1]のケルベロス一部で完全に説明されます。 プロトコルはレビューであって、このとき、考慮のためにインターネット標準として提出していません。 コメントは奨励されます。 ケルベロスの議論のためのメーリング・リストへの追加を求める要求( kerberos@MIT.EDU )は kerberos-request@MIT.EDU に扱われるかもしれません。 このメーリングリストはグループcomp.protocols.kerberosとしてUsenetにgatewayedされます。 ドキュメントとコードの有用性を含む詳細に関する要求を info-kerberos@MIT.EDU に送るかもしれません。
Kohl & Neuman [Page 1] RFC 1510 Kerberos September 1993
コールとヌーマン[1ページ]のRFCの1510のケルベロスの1993年9月
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.
ケルベロスモデルがニーダムに一部基づいていて、シュローダーは、第三者認証プロトコル[3]を信じて、変更のときにデニングとサッコ[4]のそばに示しました。 ケルベロスバージョン1〜4のオリジナルの設計と実装は2人の元Projectアティナ職員とDECのスティーブ・ミラーとジェロームSaltzer、Projectアテーナーの技術部長に伴うクリフォード・ヌーマン(現在、南カリフォルニア大学の情報Sciences Instituteの)とジェフリー・シラー(MITのCampus Networkマネージャ)の仕事でした。 また、Projectアテーナーの多くの他のメンバーがケルベロスに対する仕事に貢献しました。 バージョン4は、公的に利用可能であり、インターネットの向こう側に広い使用を見ました。
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].
バージョン5(本書では説明されます)はバージョン4で利用可能でない特徴に関する新しい要件と願望に基づくバージョン4から発展しました。 [5]でケルベロスバージョン4と5の違いに関する詳細を見つけることができます。
Table of Contents
目次
1. Introduction ....................................... 5 1.1. Cross-Realm Operation ............................ 7 1.2. Environmental assumptions ........................ 8 1.3. Glossary of terms ................................ 9 2. Ticket flag uses and requests ...................... 12 2.1. Initial and pre-authenticated tickets ............ 12 2.2. Invalid tickets .................................. 12 2.3. Renewable tickets ................................ 12 2.4. Postdated tickets ................................ 13 2.5. Proxiable and proxy tickets ...................... 14 2.6. Forwardable tickets .............................. 15 2.7. Other KDC options ................................ 15 3. Message Exchanges .................................. 16 3.1. The Authentication Service Exchange .............. 16 3.1.1. Generation of KRB_AS_REQ message ............... 17 3.1.2. Receipt of KRB_AS_REQ message .................. 17 3.1.3. Generation of KRB_AS_REP message ............... 17 3.1.4. Generation of KRB_ERROR message ................ 19 3.1.5. Receipt of KRB_AS_REP message .................. 19 3.1.6. Receipt of KRB_ERROR message ................... 20 3.2. The Client/Server Authentication Exchange ........ 20 3.2.1. The KRB_AP_REQ message ......................... 20 3.2.2. Generation of a KRB_AP_REQ message ............. 20 3.2.3. Receipt of KRB_AP_REQ message .................. 21 3.2.4. Generation of a KRB_AP_REP message ............. 23 3.2.5. Receipt of KRB_AP_REP message .................. 23
1. 序論… 5 1.1. 交差している分野操作… 7 1.2. 環境仮定… 8 1.3. 用語の用語集… 9 2. チケット旗の用途と要求… 12 2.1. 初期の、そして、あらかじめ認証されたチケット… 12 2.2. 無効のチケット… 12 2.3. 再生可能なものチケット… 12 2.4. チケットに先日付を書きます… 13 2.5. Proxiableとプロキシチケット… 14 2.6. Forwardableチケット… 15 2.7. 他のKDCオプション… 15 3. 交換処理… 16 3.1. 認証サービス交換… 16 3.1.1. KRB_AS_REQメッセージの世代… 17 3.1.2. KRB_AS_REQメッセージの領収書… 17 3.1.3. KRB_AS_REPメッセージの世代… 17 3.1.4. KRB_ERRORメッセージの世代… 19 3.1.5. KRB_AS_REPメッセージの領収書… 19 3.1.6. KRB_ERRORメッセージの領収書… 20 3.2. クライアント/サーバー証明交換… 20 3.2.1. KRB_AP_REQメッセージ… 20 3.2.2. KRB_AP_REQメッセージの世代… 20 3.2.3. KRB_AP_REQメッセージの領収書… 21 3.2.4. KRB_AP_REPメッセージの世代… 23 3.2.5. KRB_AP_REPメッセージの領収書… 23
Kohl & Neuman [Page 2] RFC 1510 Kerberos September 1993
コールとヌーマン[2ページ]のRFCの1510のケルベロスの1993年9月
3.2.6. Using the encryption key ....................... 24 3.3. The Ticket-Granting Service (TGS) Exchange ....... 24 3.3.1. Generation of KRB_TGS_REQ message .............. 25 3.3.2. Receipt of KRB_TGS_REQ message ................. 26 3.3.3. Generation of KRB_TGS_REP message .............. 27 3.3.3.1. Encoding the transited field ................. 29 3.3.4. Receipt of KRB_TGS_REP message ................. 31 3.4. The KRB_SAFE Exchange ............................ 31 3.4.1. Generation of a KRB_SAFE message ............... 31 3.4.2. Receipt of KRB_SAFE message .................... 32 3.5. The KRB_PRIV Exchange ............................ 33 3.5.1. Generation of a KRB_PRIV message ............... 33 3.5.2. Receipt of KRB_PRIV message .................... 33 3.6. The KRB_CRED Exchange ............................ 34 3.6.1. Generation of a KRB_CRED message ............... 34 3.6.2. Receipt of KRB_CRED message .................... 34 4. The Kerberos Database .............................. 35 4.1. Database contents ................................ 35 4.2. Additional fields ................................ 36 4.3. Frequently Changing Fields ....................... 37 4.4. Site Constants ................................... 37 5. Message Specifications ............................. 38 5.1. ASN.1 Distinguished Encoding Representation ...... 38 5.2. ASN.1 Base Definitions ........................... 38 5.3. Tickets and Authenticators ....................... 42 5.3.1. Tickets ........................................ 42 5.3.2. Authenticators ................................. 47 5.4. Specifications for the AS and TGS exchanges ...... 49 5.4.1. KRB_KDC_REQ definition ......................... 49 5.4.2. KRB_KDC_REP definition ......................... 56 5.5. Client/Server (CS) message specifications ........ 58 5.5.1. KRB_AP_REQ definition .......................... 58 5.5.2. KRB_AP_REP definition .......................... 60 5.5.3. Error message reply ............................ 61 5.6. KRB_SAFE message specification ................... 61 5.6.1. KRB_SAFE definition ............................ 61 5.7. KRB_PRIV message specification ................... 62 5.7.1. KRB_PRIV definition ............................ 62 5.8. KRB_CRED message specification ................... 63 5.8.1. KRB_CRED definition ............................ 63 5.9. Error message specification ...................... 65 5.9.1. KRB_ERROR definition ........................... 66 6. Encryption and Checksum Specifications ............. 67 6.1. Encryption Specifications ........................ 68 6.2. Encryption Keys .................................. 71 6.3. Encryption Systems ............................... 71 6.3.1. The NULL Encryption System (null) .............. 71 6.3.2. DES in CBC mode with a CRC-32 checksum (descbc-crc)71
3.2.6. 暗号化キーを使用します… 24 3.3. チケットを与えるサービス(TGS)交換… 24 3.3.1. KRB_TGS_REQメッセージの世代… 25 3.3.2. KRB_TGS_REQメッセージの領収書… 26 3.3.3. KRB_TGS_REPメッセージの世代… 27 3.3.3.1. 通過している分野をコード化します… 29 3.3.4. KRB_TGS_REPメッセージの領収書… 31 3.4. KRBの_の安全な交換… 31 3.4.1. KRB_SAFEメッセージの世代… 31 3.4.2. KRB_SAFEメッセージの領収書… 32 3.5. KRB_PRIV交換… 33 3.5.1. KRB_PRIVメッセージの世代… 33 3.5.2. KRB_PRIVメッセージの領収書… 33 3.6. KRB_信用交換… 34 3.6.1. KRB_CREDメッセージの世代… 34 3.6.2. KRB_CREDメッセージの領収書… 34 4. ケルベロスデータベース… 35 4.1. データベースコンテンツ… 35 4.2. 追加分野… 36 4.3. 頻繁に職業を替えます… 37 4.4. サイト定数… 37 5. メッセージ仕様… 38 5.1. ASN.1は表現をコード化しながら、区別しました… 38 5.2. ASN.1は定義を基礎づけます… 38 5.3. チケットと固有識別文字… 42 5.3.1. チケット… 42 5.3.2. 固有識別文字… 47 5.4. ASのための仕様とTGS交換… 49 5.4.1. KRB_KDC_REQ定義… 49 5.4.2. KRB_KDC_REP定義… 56 5.5. クライアント/サーバ(CS)メッセージ仕様… 58 5.5.1. KRB_AP_REQ定義… 58 5.5.2. KRB_AP_REP定義… 60 5.5.3. エラーメッセージ回答… 61 5.6. KRB_SAFEメッセージ仕様… 61 5.6.1. KRB_SAFE定義… 61 5.7. KRB_PRIVメッセージ仕様… 62 5.7.1. KRB_PRIV定義… 62 5.8. KRB_CREDメッセージ仕様… 63 5.8.1. KRB_CRED定義… 63 5.9. エラーメッセージ仕様… 65 5.9.1. KRB_ERROR定義… 66 6. 暗号化とチェックサム仕様… 67 6.1. 暗号化仕様… 68 6.2. 暗号化キー… 71 6.3. 暗号化システム… 71 6.3.1. ヌル暗号化システム(ヌル)… 71 6.3.2. CRC-32チェックサム(descbc-crc)71があるCBCモードによるDES
Kohl & Neuman [Page 3] RFC 1510 Kerberos September 1993
コールとヌーマン[3ページ]のRFCの1510のケルベロスの1993年9月
6.3.3. DES in CBC mode with an MD4 checksum (descbc-md4) 72 6.3.4. DES in CBC mode with an MD5 checksum (descbc-md5) 72 6.4. Checksums ........................................ 74 6.4.1. The CRC-32 Checksum (crc32) .................... 74 6.4.2. The RSA MD4 Checksum (rsa-md4) ................. 75 6.4.3. RSA MD4 Cryptographic Checksum Using DES (rsa-md4-des) ......................................... 75 6.4.4. The RSA MD5 Checksum (rsa-md5) ................. 76 6.4.5. RSA MD5 Cryptographic Checksum Using DES (rsa-md5-des) ......................................... 76 6.4.6. DES cipher-block chained checksum (des-mac) 6.4.7. RSA MD4 Cryptographic Checksum Using DES alternative (rsa-md4-des-k) ........................... 77 6.4.8. DES cipher-block chained checksum alternative (des-mac-k) ........................................... 77 7. Naming Constraints ................................. 78 7.1. Realm Names ...................................... 77 7.2. Principal Names .................................. 79 7.2.1. Name of server principals ...................... 80 8. Constants and other defined values ................. 80 8.1. Host address types ............................... 80 8.2. KDC messages ..................................... 81 8.2.1. IP transport ................................... 81 8.2.2. OSI transport .................................. 82 8.2.3. Name of the TGS ................................ 82 8.3. Protocol constants and associated values ......... 82 9. Interoperability requirements ...................... 86 9.1. Specification 1 .................................. 86 9.2. Recommended KDC values ........................... 88 10. Acknowledgments ................................... 88 11. References ........................................ 89 12. Security Considerations ........................... 90 13. Authors' Addresses ................................ 90 A. Pseudo-code for protocol processing ................ 91 A.1. KRB_AS_REQ generation ............................ 91 A.2. KRB_AS_REQ verification and KRB_AS_REP generation 92 A.3. KRB_AS_REP verification .......................... 95 A.4. KRB_AS_REP and KRB_TGS_REP common checks ......... 96 A.5. KRB_TGS_REQ generation ........................... 97 A.6. KRB_TGS_REQ verification and KRB_TGS_REP generation 98 A.7. KRB_TGS_REP verification ......................... 104 A.8. Authenticator generation ......................... 104 A.9. KRB_AP_REQ generation ............................ 105 A.10. KRB_AP_REQ verification ......................... 105 A.11. KRB_AP_REP generation ........................... 106 A.12. KRB_AP_REP verification ......................... 107 A.13. KRB_SAFE generation ............................. 107 A.14. KRB_SAFE verification ........................... 108
6.3.3. MD4チェックサム(descbc-md4)72 6.3.4があるCBCモードによるDES。 MD5チェックサム(descbc-md5)72 6.4があるCBCモードによるDES。 チェックサム… 74 6.4.1. CRC-32チェックサム(crc32)… 74 6.4.2. RSA MD4チェックサム(rsa-md4)… 75 6.4.3. DES(rsa-md4-des)を使用するRSA MD4の暗号のチェックサム… 75 6.4.4. RSA MD5チェックサム(rsa-md5)… 76 6.4.5. DES(rsa-md5-des)を使用するRSA MD5の暗号のチェックサム… 76 6.4.6. DES暗号ブロックはチェックサム(des-mac)6.4.7をチェーニングしました。 RSA MD4 Cryptographic Checksum Using DES代替手段(rsa-md4-des-k)… 77 6.4.8. DES暗号ブロックはチェックサム代替手段(des-mac-k)をチェーニングしました… 77 7. 規制を命名します… 78 7.1. 分野名… 77 7.2. 主要な名前… 79 7.2.1. サーバ主体の名前… 80 8. 定数と他の定義された値… 80 8.1. アドレスタイプをホスティングしてください… 80 8.2. KDCメッセージ… 81 8.2.1. IP輸送… 81 8.2.2. OSI輸送… 82 8.2.3. TGSという名前… 82 8.3. 定数と関連値について議定書の中で述べてください… 82 9. 相互運用性要件… 86 9.1. 仕様1… 86 9.2. お勧めのKDC値… 88 10. 承認… 88 11. 参照… 89 12. セキュリティ問題… 90 13. 作者のアドレス… プロトコル処理のための90A.中間コード… 91 A.1。 _REQ世代としてのKRB_… 91 A.2。 KRB_AS_REQ検証とKRB_AS_REP世代92A.3。 KRB_AS_REP検証… 95 A.4。 KRB_AS_REPと_のREPの一般的なKRB_TGSチェック… 96 A.5。 KRB_TGS_REQ世代… 97 A.6。 KRB_TGS_REQ検証とKRB_TGS_REP世代98A.7。 KRB_TGS_REP検証… 104 A.8。 固有識別文字世代… 104 A.9。 KRB_AP_REQ世代… 105 A.10。 KRB_AP_REQ検証… 105 A.11。 KRB_AP_レップ世代… 106 A.12。 KRB_AP_REP検証… 107 A.13。 KRBの_の安全な世代… 107 A.14。 KRB_SAFE検証… 108
Kohl & Neuman [Page 4] RFC 1510 Kerberos September 1993
コールとヌーマン[4ページ]のRFCの1510のケルベロスの1993年9月
A.15. KRB_SAFE and KRB_PRIV common checks ............. 108 A.16. KRB_PRIV generation ............................. 109 A.17. KRB_PRIV verification ........................... 110 A.18. KRB_CRED generation ............................. 110 A.19. KRB_CRED verification ........................... 111 A.20. KRB_ERROR generation ............................ 112
A.15。 KRB_SAFEとKRB_PRIVの一般的なチェック… 108 A.16。 KRB_PRIV世代… 109 A.17。 KRB_PRIV検証… 110 A.18。 KRB_信用世代… 110 A.19。 KRB_CRED検証… 111 A.20。 KRB_エラー生成… 112
1. Introduction
1. 序論
Kerberos provides a means of verifying the identities of principals, (e.g., a workstation user or a network server) on an open (unprotected) network. This is accomplished without relying on authentication by the host operating system, without basing trust on host addresses, without requiring physical security of all the hosts on the network, and under the assumption that packets traveling along the network can be read, modified, and inserted at will. (Note, however, that many applications use Kerberos' functions only upon the initiation of a stream-based network connection, and assume the absence of any "hijackers" who might subvert such a connection. Such use implicitly trusts the host addresses involved.) Kerberos performs authentication under these conditions as a trusted third- party authentication service by using conventional cryptography, i.e., shared secret key. (shared secret key - Secret and private are often used interchangeably in the literature. In our usage, it takes two (or more) to share a secret, thus a shared DES key is a secret key. Something is only private when no one but its owner knows it. Thus, in public key cryptosystems, one has a public and a private key.)
ケルベロスは開いている(保護のない)ネットワークで主体のアイデンティティについて確かめる手段か、(例えば、ワークステーションユーザかネットワークサーバ)を提供します。 ホスト・オペレーティング・システムで認証に依存しないで、これは達成されます、信頼をホスト・アドレスに基礎づけないで、ネットワーク、およびネットワークに沿って移動するパケットは読んで、変更されて、自由自在に挿入できるという仮定ですべてのホストの物理的なセキュリティを必要としないで。 (しかしながら、多くのアプリケーションが単にストリームベースのネットワーク接続の開始のときにケルベロスの機能を使用することに注意してください、そして、そのような接続を打倒するかもしれないどんな「ハイジャック犯」の不在も仮定してください。 そのような使用はそれとなくアドレスがかかわったホストを信じます。) これらの条件ですなわち、従来の暗号を使用するのによる3番目の信じられたパーティー認証サービスが秘密鍵を共有したようにケルベロスは認証を実行します。 (共有された秘密鍵--秘密と兵卒は文学でしばしば互換性を持って使用されます。 私たちの用法で、秘密を共有するのに、2(さらに)を要します、その結果、共有されたDESキーは秘密鍵です。 所有者以外のだれもそれを知らないときだけ、何かが個人的です。 したがって、公開鍵暗号方式では、1つは公衆と秘密鍵を持っています。)
The authentication process proceeds as follows: A client sends a request to the authentication server (AS) requesting "credentials" for a given server. The AS responds with these credentials, encrypted in the client's key. The credentials consist of 1) a "ticket" for the server and 2) a temporary encryption key (often called a "session key"). The client transmits the ticket (which contains the client's identity and a copy of the session key, all encrypted in the server's key) to the server. The session key (now shared by the client and server) is used to authenticate the client, and may optionally be used to authenticate the server. It may also be used to encrypt further communication between the two parties or to exchange a separate sub-session key to be used to encrypt further communication.
認証過程は以下の通り続きます: クライアントは与えられたサーバのために「資格証明書」を要求する認証サーバ(AS)に要求を送ります。ASはクライアントのキーで暗号化されたこれらの資格証明書で応じます。 資格証明書はサーバと2つのものの「チケット」) 一時的な暗号化キー(しばしば「セッションキー」と呼ばれる)あたり1から)成ります。 クライアントはチケット(主要で、サーバのキーですべて暗号化されたセッションのクライアントのアイデンティティとコピーを含む)をサーバに伝えます。セッションキー(現在、クライアントとサーバによって共有される)は、クライアントを認証するのに使用されて、サーバを認証するのに任意に使用されるかもしれません。また、それは、2回のパーティーのさらなるコミュニケーションを暗号化するか、またはさらなるコミュニケーションを暗号化するのに使用されるために別々のサブセッションキーを交換するのに使用されるかもしれません。
The implementation consists of one or more authentication servers running on physically secure hosts. The authentication servers maintain a database of principals (i.e., users and servers) and their secret keys. Code libraries provide encryption and implement the Kerberos protocol. In order to add authentication to its
実装は肉体的に安全なホストで走る1つ以上の認証サーバから成ります。 認証サーバは主体(すなわち、ユーザとサーバ)とそれらの秘密鍵に関するデータベースを維持します。 コードライブラリは、暗号化を提供して、ケルベロスプロトコルを実装します。 認証を加える、それ
Kohl & Neuman [Page 5] RFC 1510 Kerberos September 1993
コールとヌーマン[5ページ]のRFCの1510のケルベロスの1993年9月
transactions, a typical network application adds one or two calls to the Kerberos library, which results in the transmission of the necessary messages to achieve authentication.
トランザクション、典型的なネットワーク応用は1か2つの呼び出しをケルベロスライブラリに追加します。(それは、認証を達成する必要なメッセージの伝達をもたらします)。
The Kerberos protocol consists of several sub-protocols (or exchanges). There are two methods by which a client can ask a Kerberos server for credentials. In the first approach, the client sends a cleartext request for a ticket for the desired server to the AS. The reply is sent encrypted in the client's secret key. Usually this request is for a ticket-granting ticket (TGT) which can later be used with the ticket-granting server (TGS). In the second method, the client sends a request to the TGS. The client sends the TGT to the TGS in the same manner as if it were contacting any other application server which requires Kerberos credentials. The reply is encrypted in the session key from the TGT.
ケルベロスプロトコルはいくつかのサブプロトコル(または、交換)から成ります。 クライアントがケルベロスサーバに資格証明書を求めることができる2つのメソッドがあります。 最初のアプローチでは、クライアントは必要なサーバのチケットを求めるcleartext要求をASに送ります。 クライアントの秘密鍵で暗号化されていた状態で回答を送ります。 通常、この要求は後でチケットを与えるサーバ(TGS)と共に使用できるチケットを与えるチケット(TGT)のためのものです。 2番目のメソッドで、クライアントは要求をTGSに送ります。 まるでそれがケルベロス資格証明書を必要とするいかなる他のアプリケーション・サーバーにも連絡しているかのようにクライアントは同じ方法でTGTをTGSに送ります。 回答はTGTから主要なセッションのときに暗号化されます。
Once obtained, credentials may be used to verify the identity of the principals in a transaction, to ensure the integrity of messages exchanged between them, or to preserve privacy of the messages. The application is free to choose whatever protection may be necessary.
一度得ます、資格証明書は、トランザクションにおける、主体のアイデンティティについて確かめるか、それらの間で交換されたメッセージの保全を確実にするか、またはメッセージのプライバシーを保存するのに使用されるかもしれません。 アプリケーションは無料でどんな必要であるかもしれない保護も選ぶことができます。
To verify the identities of the principals in a transaction, the client transmits the ticket to the server. Since the ticket is sent "in the clear" (parts of it are encrypted, but this encryption doesn't thwart replay) and might be intercepted and reused by an attacker, additional information is sent to prove that the message was originated by the principal to whom the ticket was issued. This information (called the authenticator) is encrypted in the session key, and includes a timestamp. The timestamp proves that the message was recently generated and is not a replay. Encrypting the authenticator in the session key proves that it was generated by a party possessing the session key. Since no one except the requesting principal and the server know the session key (it is never sent over the network in the clear) this guarantees the identity of the client.
トランザクションにおける、主体のアイデンティティについて確かめるために、クライアントはチケットをサーバに伝えます。チケットが攻撃者によって「明確」で送られて(それの部品は暗号化されていますが、この暗号化は再生を阻みません)、妨害されて、再利用されるかもしれないので、メッセージがチケットが発行された主体によって溯源されたと立証するために追加情報を送ります。 この情報(固有識別文字と呼ばれる)は、セッションキーで暗号化されて、タイムスタンプを含んでいます。 タイムスタンプは、メッセージが最近生成されたと立証して、再生ではありません。 セッションキーで固有識別文字を暗号化するのは、それがセッションキーを所有しているパーティーによって生成されたと立証します。 要求主体以外のだれともサーバがセッションキーを知っているので(明確のネットワークの上にそれを決して送りません)、これはクライアントのアイデンティティを保証します。
The integrity of the messages exchanged between principals can also be guaranteed using the session key (passed in the ticket and contained in the credentials). This approach provides detection of both replay attacks and message stream modification attacks. It is accomplished by generating and transmitting a collision-proof checksum (elsewhere called a hash or digest function) of the client's message, keyed with the session key. Privacy and integrity of the messages exchanged between principals can be secured by encrypting the data to be passed using the session key passed in the ticket, and contained in the credentials.
また、セッションキー(チケットの中に通過されて、資格証明書に含まれている)を使用することで主体の間で交換されたメッセージの保全を保証できます。 このアプローチは反射攻撃とメッセージストリーム変更攻撃の両方の検出を提供します。 それは、セッションキーで合わせられたクライアントのメッセージの耐衝突のチェックサム(ほかの場所では、ハッシュかダイジェスト機能と呼ばれる)を生成して、伝えることによって、達成されます。 チケットの中に渡されて、資格証明書に含まれたセッションキーを使用することで通過されるためにデータを暗号化することによって、主体の間で交換されたメッセージのプライバシーと保全を保証できます。
The authentication exchanges mentioned above require read-only access to the Kerberos database. Sometimes, however, the entries in the
前記のように認証交換はケルベロスデータベースへのリード・オンリー・アクセスを必要とします。 しかしながら、時々、中のエントリー
Kohl & Neuman [Page 6] RFC 1510 Kerberos September 1993
コールとヌーマン[6ページ]のRFCの1510のケルベロスの1993年9月
database must be modified, such as when adding new principals or changing a principal's key. This is done using a protocol between a client and a third Kerberos server, the Kerberos Administration Server (KADM). The administration protocol is not described in this document. There is also a protocol for maintaining multiple copies of the Kerberos database, but this can be considered an implementation detail and may vary to support different database technologies.
変更されていて、データベースは新しい主体を加えるか、または主体を変えるのが主要である時のようにそうしなければなりません。 これはクライアントと3番目のケルベロスサーバ、ケルベロス政権Server(KADM)の間のプロトコルを使用し終わっています。 管理プロトコルは本書では説明されません。 また、ケルベロスデータベースの複本を維持するためのプロトコルがありますが、これは、実装の詳細であると考えることができて、異なったデータベース技術をサポートするために異なるかもしれません。
1.1. Cross-Realm Operation
1.1. 交差している分野操作
The Kerberos protocol is designed to operate across organizational boundaries. A client in one organization can be authenticated to a server in another. Each organization wishing to run a Kerberos server establishes its own "realm". The name of the realm in which a client is registered is part of the client's name, and can be used by the end-service to decide whether to honor a request.
ケルベロスプロトコルは、組織境界の向こう側に作動するように設計されています。 別のもののサーバに1つの組織のクライアントを認証できます。 ケルベロスサーバを実行したがっている各組織がそれ自身の「分野」を設立します。 クライアントが登録されている分野の名前は、クライアントの名前の一部であり、要求を光栄に思うかどうか決めるのに終わりサービスで使用できます。
By establishing "inter-realm" keys, the administrators of two realms can allow a client authenticated in the local realm to use its authentication remotely (Of course, with appropriate permission the client could arrange registration of a separately-named principal in a remote realm, and engage in normal exchanges with that realm's services. However, for even small numbers of clients this becomes cumbersome, and more automatic methods as described here are necessary). The exchange of inter-realm keys (a separate key may be used for each direction) registers the ticket-granting service of each realm as a principal in the other realm. A client is then able to obtain a ticket-granting ticket for the remote realm's ticket- granting service from its local realm. When that ticket-granting ticket is used, the remote ticket-granting service uses the inter- realm key (which usually differs from its own normal TGS key) to decrypt the ticket-granting ticket, and is thus certain that it was issued by the client's own TGS. Tickets issued by the remote ticket- granting service will indicate to the end-service that the client was authenticated from another realm.
「相互分野」キーを設立することによって、2つの分野の管理者は地方の分野で認証されたクライアントに認証を離れて使用させることができます。(もちろん、適切な許可で、クライアントはリモート分野での別々に命名された元本の登録をアレンジして、その分野のサービスによる通常の交換に従事できました。 しかしながら、少ない数のクライアントに関してさえ、これは厄介になります、そして、ここで説明されるより自動であるメソッドが必要です。). 相互分野キー(別々のキーは各方向に使用されるかもしれない)の交換は元本としてもう片方の分野にそれぞれの分野のチケットを与えるサービスを登録します。 クライアントは、その時、地方の分野からサービスを承諾しながら、リモート分野のチケットのチケットを与えるチケットを得ることができます。 そのチケットを与えるチケットが使用されているとき、リモートチケットを与えるサービスは、チケットを与えるチケットを解読するのに、相互分野キー(通常、それ自身の正常なTGSキーと異なっている)を使用して、その結果、それがクライアントの自身のTGSによって発行されたのを確信しています。 サービスを承諾しながらリモートチケットによって発行されたチケットは、クライアントが別の分野から認証されたのを終わりサービスに示すでしょう。
A realm is said to communicate with another realm if the two realms share an inter-realm key, or if the local realm shares an inter-realm key with an intermediate realm that communicates with the remote realm. An authentication path is the sequence of intermediate realms that are transited in communicating from one realm to another.
2つの分野が相互分野キーを共有するか、または地方の分野がリモート分野とコミュニケートする中間的分野のために主要な相互分野を共有するなら、分野は別の分野とコミュニケートすると言われます。 認証経路は1つの分野から別の分野まで交信する際に通過される中間的分野の系列です。
Realms are typically organized hierarchically. Each realm shares a key with its parent and a different key with each child. If an inter-realm key is not directly shared by two realms, the hierarchical organization allows an authentication path to be easily constructed. If a hierarchical organization is not used, it may be necessary to consult some database in order to construct an
分野は階層的で通常組織化されます。 各分野は各子供と共に親と異なったキーとキーを共有します。 相互分野キーが2つの分野によって直接共有されないなら、階層的な組織は、認証経路が容易に構成されるのを許容します。 階層的な組織が使用されていないなら、何らかのデータベースに相談するのが必要であるかもしれない、構造物
Kohl & Neuman [Page 7] RFC 1510 Kerberos September 1993
コールとヌーマン[7ページ]のRFCの1510のケルベロスの1993年9月
authentication path between realms.
分野の間の認証経路。
Although realms are typically hierarchical, intermediate realms may be bypassed to achieve cross-realm authentication through alternate authentication paths (these might be established to make communication between two realms more efficient). It is important for the end-service to know which realms were transited when deciding how much faith to place in the authentication process. To facilitate this decision, a field in each ticket contains the names of the realms that were involved in authenticating the client.
分野が通常階層的ですが、中間的分野が代替の認証経路を通した交差している分野認証を達成するために迂回するかもしれない、(これらがそうするかもしれない、設立されて、2つの分野のコミュニケーションをより効率的にしてください、) 終わりサービスに、どのくらいの信頼を認証過程に置くかを決めるとき、どの分野が通過されたかを知るのは重要です。 この決定を容易にするために、各チケットの分野はクライアントを認証するのにかかわった分野の名前を含んでいます。
1.2. Environmental assumptions
1.2. 環境仮定
Kerberos imposes a few assumptions on the environment in which it can properly function:
ケルベロスはそれが適切に機能できる環境にいくつかの仮定を課します:
+ "Denial of service" attacks are not solved with Kerberos. There are places in these protocols where an intruder intruder can prevent an application from participating in the proper authentication steps. Detection and solution of such attacks (some of which can appear to be not-uncommon "normal" failure modes for the system) is usually best left to the human administrators and users.
+ 「サービスの否定」攻撃はケルベロスで解決されていません。 これらのプロトコルには場所が侵入者侵入者が、アプリケーションが適切な認証ステップに参加するのを防ぐことができるところにあります。 通常、そのような攻撃(それの或るものはシステムのための珍しくない「正常な」故障モードであるように見えることができる)の検出と解答を人間の管理者とユーザに任せるのは最も良いです。
+ Principals must keep their secret keys secret. If an intruder somehow steals a principal's key, it will be able to masquerade as that principal or impersonate any server to the legitimate principal.
+ 校長はそれらの秘密鍵を秘密にしなければなりません。 侵入者がどうにか主体のキーを横取りすると、その主体のふりをするか、または正統の主体にどんなサーバもまねることができるでしょう。
+ "Password guessing" attacks are not solved by Kerberos. If a user chooses a poor password, it is possible for an attacker to successfully mount an offline dictionary attack by repeatedly attempting to decrypt, with successive entries from a dictionary, messages obtained which are encrypted under a key derived from the user's password.
+ 「パスワード推測」攻撃はケルベロスで解決されていません。 ユーザが不十分なパスワードを選ぶなら、辞書からの連続したエントリーでユーザのパスワードから得られたキーの下で暗号化される得られたメッセージを解読するのを繰り返して試みることによって攻撃者がオフライン辞書攻撃を首尾よく仕掛けるのは、可能です。
+ Each host on the network must have a clock which is "loosely synchronized" to the time of the other hosts; this synchronization is used to reduce the bookkeeping needs of application servers when they do replay detection. The degree of "looseness" can be configured on a per-server basis. If the clocks are synchronized over the network, the clock synchronization protocol must itself be secured from network attackers.
+ ネットワークの各ホストは他のホストの時間まで「緩く連動する」時計を持たなければなりません。 この同期は、検出を再演するとき、アプリケーション・サーバーの簿記の必要性を減少させるのに使用されます。 1サーバあたり1個のベースで「ゆるみ」の度合いを構成できます。 時計はネットワークの上で連動して、時計同期プロトコルは必須自体です。ネットワーク攻撃者から、機密保護されます。
+ Principal identifiers are not recycled on a short-term basis. A typical mode of access control will use access control lists (ACLs) to grant permissions to particular principals. If a
+ 主要な識別子は短期的ベースで再生されません。 アクセスコントロールの典型的な方法は、特定の主体に許可を与えるのに、アクセスコントロールリスト(ACLs)を使用するでしょう。 aです。
Kohl & Neuman [Page 8] RFC 1510 Kerberos September 1993
コールとヌーマン[8ページ]のRFCの1510のケルベロスの1993年9月
stale ACL entry remains for a deleted principal and the principal identifier is reused, the new principal will inherit rights specified in the stale ACL entry. By not re-using principal identifiers, the danger of inadvertent access is removed.
聞き古したACLエントリーは削除された元本のために残っています、そして、主要な識別子は再利用されます、そして、新しい主体は聞き古したACLエントリーで指定された権利を引き継ぐでしょう。 主要な識別子を再使用しないことによって、不注意なアクセスという危険を取り除きます。
1.3. Glossary of terms
1.3. 用語の用語集
Below is a list of terms used throughout this document.
以下に、このドキュメント中で使用される用語のリストがあります。
Authentication Verifying the claimed identity of a principal.
認証Verifying、元本の要求されたアイデンティティ。
Authentication header A record containing a Ticket and an Authenticator to be presented to a server as part of the authentication process.
認証過程の一部としてサーバに提示されるべきTicketとAuthenticatorを含む認証ヘッダーA記録。
Authentication path A sequence of intermediate realms transited in the authentication process when communicating from one realm to another.
1つの分野から別の分野まで交信するとき、中間的分野の認証経路A系列は認証過程で通過しました。
Authenticator A record containing information that can be shown to have been recently generated using the session key known only by the client and server.
最近単にクライアントとサーバによって知られていたセッションキーを使用することで生成されたために示すことができる情報を含む固有識別文字A記録。
Authorization The process of determining whether a client may use a service, which objects the client is allowed to access, and the type of access allowed for each.
クライアントがサービスを利用するかもしれないかどうか決定するプロセス、クライアントがどのオブジェクトにアクセスできるか、そして、およびアクセスのタイプがそれぞれ考慮した承認。
Capability A token that grants the bearer permission to access an object or service. In Kerberos, this might be a ticket whose use is restricted by the contents of the authorization data field, but which lists no network addresses, together with the session key necessary to use the ticket.
オブジェクトかサービスにアクセスする運搬人許可を与える能力Aトークン。 ケルベロスで、これは使用が承認データ・フィールドのコンテンツによって制限されますが、ネットワーク・アドレスを全く記載しないチケットであるかもしれません、チケットを使用するのに必要なセッションキーと共に。
Kohl & Neuman [Page 9] RFC 1510 Kerberos September 1993
コールとヌーマン[9ページ]のRFCの1510のケルベロスの1993年9月
Ciphertext The output of an encryption function. Encryption transforms plaintext into ciphertext.
暗号文、暗号化機能の出力。 暗号化は平文を暗号文に変えます。
Client A process that makes use of a network service on behalf of a user. Note that in some cases a Server may itself be a client of some other server (e.g., a print server may be a client of a file server).
ユーザを代表してネットワーク・サービスを利用するクライアントAプロセス。 aがある他のサーバのクライアントであったならいくつかの場合Serverがそうするかもしれないことにそれ自体で注意してください(例えば、プリント・サーバはファイルサーバーのクライアントであるかもしれません)。
Credentials A ticket plus the secret session key necessary to successfully use that ticket in an authentication exchange.
認証交換にそのチケットを首尾よく使用するのに必要な資格証明書Aチケットと非公開会議キー。
KDC Key Distribution Center, a network service that supplies tickets and temporary session keys; or an instance of that service or the host on which it runs. The KDC services both initial ticket and ticket-granting ticket requests. The initial ticket portion is sometimes referred to as the Authentication Server (or service). The ticket-granting ticket portion is sometimes referred to as the ticket-granting server (or service).
KDC Key Distributionセンター、チケットを供給するネットワーク・サービス、および一時的なセッションキー。 または、それが稼働するそのサービスかホストのインスタンス。 KDCサービスはともにチケットとチケットを与えるチケット要求に頭文字をつけます。 初期のチケット部分は時々Authentication Server(または、サービス)と呼ばれます。 チケットを与えるチケット部分は時々チケットを与えるサーバ(または、サービス)と呼ばれます。
Kerberos Aside from the 3-headed dog guarding Hades, the name given to Project Athena's authentication service, the protocol used by that service, or the code used to implement the authentication service.
ハーデスを警備する3頭の犬、Projectアテーナーの認証サービスに与えられた名前、そのサービスで使用されるプロトコル、またはコードからのケルベロスAsideは以前はよく認証サービスを実装していました。
Plaintext The input to an encryption function or the output of a decryption function. Decryption transforms ciphertext into plaintext.
平文、暗号化機能への入力か復号化機能の出力。 復号化は暗号文を平文に変えます。
Principal A uniquely named client or server instance that participates in a network communication.
主体Aは唯一ネットワークに参加するクライアントかサーバインスタンスをコミュニケーションと命名しました。
Kohl & Neuman [Page 10] RFC 1510 Kerberos September 1993
コールとヌーマン[10ページ]のRFCの1510のケルベロスの1993年9月
Principal identifier The name used to uniquely identify each different principal.
名前が唯一それぞれの異なった主体を特定するのに使用した主要な識別子。
Seal To encipher a record containing several fields in such a way that the fields cannot be individually replaced without either knowledge of the encryption key or leaving evidence of tampering.
シールToは暗号化キーに関する知識も改ざんに関する退出証拠のどちらかなしで野原を個別に取り替えることができないような方法でいくつかの分野を含む記録を暗号化します。
Secret key An encryption key shared by a principal and the KDC, distributed outside the bounds of the system, with a long lifetime. In the case of a human user's principal, the secret key is derived from a password.
秘密鍵An暗号化キーはシステムの領域の外で分配された元本とKDCによって長い生涯と共有されました。 人間のユーザの主体の場合では、パスワードから秘密鍵を得ます。
Server A particular Principal which provides a resource to network clients.
ネットワーククライアントにリソースを提供するサーバAの特定のプリンシパル。
Service A resource provided to network clients; often provided by more than one server (for example, remote file service).
サービスAリソースはネットワーククライアントに提供されました。 1つ以上のサーバ(例えば、リモートファイルサービス)でしばしば提供しています。
Session key A temporary encryption key used between two principals, with a lifetime limited to the duration of a single login "session".
2つの主体の間で単一のログイン「セッション」の持続時間に制限される生涯で使用されるセッションの主要なA一時的な暗号化キー。
Sub-session key A temporary encryption key used between two principals, selected and exchanged by the principals using the session key, and with a lifetime limited to the duration of a single association.
生涯と共に主体によってセッションキーを使用することで選択されて、交換された2つの主体の間と、そして、単一の協会の持続時間に制限される使用されるサブセッションの主要なA一時的な暗号化キー。
Ticket A record that helps a client authenticate itself to a server; it contains the client's identity, a session key, a timestamp, and other information, all sealed using the server's secret key. It only serves to authenticate a client when presented along with a fresh Authenticator.
クライアントがサーバにそれ自体を認証するのを助けるチケットA記録。 それはクライアントのアイデンティティ、セッションキー、タイムスタンプ、および他の情報、サーバの秘密鍵を使用することで堅く閉じられていたすべてを含んでいます。 新鮮なAuthenticatorと共に提示されると、それは、クライアントを認証するのに役立つだけです。
Kohl & Neuman [Page 11] RFC 1510 Kerberos September 1993
コールとヌーマン[11ページ]のRFCの1510のケルベロスの1993年9月
2. Ticket flag uses and requests
2. チケット旗の用途と要求
Each Kerberos ticket contains a set of flags which are used to indicate various attributes of that ticket. Most flags may be requested by a client when the ticket is obtained; some are automatically turned on and off by a Kerberos server as required. The following sections explain what the various flags mean, and gives examples of reasons to use such a flag.
それぞれのケルベロスチケットはそのチケットの様々な属性を示すのに使用される1セットの旗を含んでいます。 チケットを得るとき、クライアントはほとんどの旗を要求するかもしれません。 或るものは必要に応じて断続的にケルベロスサーバによって自動的にターンされます。 以下のセクションは、様々な旗が意味することについて説明して、そのような旗を使用する理由に関する例を出します。
2.1. Initial and pre-authenticated tickets
2.1. 初期の、そして、あらかじめ認証されたチケット
The INITIAL flag indicates that a ticket was issued using the AS protocol and not issued based on a ticket-granting ticket. Application servers that want to require the knowledge of a client's secret key (e.g., a passwordchanging program) can insist that this flag be set in any tickets they accept, and thus be assured that the client's key was recently presented to the application client.
INITIAL旗は、チケットはASプロトコルを使用することで発行されて、チケットを与えるチケットに基づいて発行されなかったのを示します。 クライアントの秘密鍵(例えば、passwordchangingプログラム)に関する知識を必要としたがっているアプリケーション・サーバーは、この旗がそれらが受け入れるどんなチケットの中にも設定されて、その結果、クライアントのキーが最近アプリケーションクライアントに贈られたことが保証されると主張できます。
The PRE-AUTHENT and HW-AUTHENT flags provide addition information about the initial authentication, regardless of whether the current ticket was issued directly (in which case INITIAL will also be set) or issued on the basis of a ticket-granting ticket (in which case the INITIAL flag is clear, but the PRE-AUTHENT and HW-AUTHENT flags are carried forward from the ticket-granting ticket).
PRE-AUTHENTとHW-AUTHENT旗は初期の認証の追加情報を提供します、当日券が直接(その場合、また、INITIALは用意ができる)産出されたか、またはチケットを与えるチケットに基づいて産出されたこと(その場合、INITIAL旗が明確ですが、PRE-AUTHENTとHW-AUTHENT旗はチケットを与えるチケットから進展します)にかかわらず。
2.2. Invalid tickets
2.2. 無効のチケット
The INVALID flag indicates that a ticket is invalid. Application servers must reject tickets which have this flag set. A postdated ticket will usually be issued in this form. Invalid tickets must be validated by the KDC before use, by presenting them to the KDC in a TGS request with the VALIDATE option specified. The KDC will only validate tickets after their starttime has passed. The validation is required so that postdated tickets which have been stolen before their starttime can be rendered permanently invalid (through a hot- list mechanism).
INVALID旗は、チケットが無効であることを示します。 アプリケーション・サーバーはこの旗を設定するチケットを拒絶しなければなりません。 通常、先日付を書かれたチケットはこのフォームで発行されるでしょう。 KDCは使用の前に無効のチケットを有効にしなければなりません、VALIDATEオプションが指定されている状態でTGS要求におけるKDCにそれらを提示することによって。 それらのstarttimeが通った後にKDCはチケットを有効にするだけでしょう。 合法化が必要であるので、それは永久にそれらのstarttimeを無効に(熱いリストメカニズムを通した)することができる前に盗まれたチケットに先日付を書きました。
2.3. Renewable tickets
2.3. 再生可能なものチケット
Applications may desire to hold tickets which can be valid for long periods of time. However, this can expose their credentials to potential theft for equally long periods, and those stolen credentials would be valid until the expiration time of the ticket(s). Simply using shortlived tickets and obtaining new ones periodically would require the client to have long-term access to its secret key, an even greater risk. Renewable tickets can be used to mitigate the consequences of theft. Renewable tickets have two "expiration times": the first is when the current instance of the
アプリケーションは、長期間の間有効である場合があるチケットを保つことを望むかもしれません。 しかしながら、これは等しく長い期間、潜在的窃盗にそれらの資格証明書を暴露することができます、そして、それらの盗まれた資格証明書はチケットの満了時間まで有効でしょう。 単にshortlivedチケットを使用して、定期的に新しいものを得るのは、クライアントが秘密鍵(同等の、より高いリスク)に長期のアクセスを持っているのを必要とするでしょう。 窃盗の結果を緩和するのに再生可能なものチケットを使用できます。 再生可能なものチケットには、2「満了時間」があります: 現在のインスタンスであるときに、最初に、あります。
Kohl & Neuman [Page 12] RFC 1510 Kerberos September 1993
コールとヌーマン[12ページ]のRFCの1510のケルベロスの1993年9月
ticket expires, and the second is the latest permissible value for an individual expiration time. An application client must periodically (i.e., before it expires) present a renewable ticket to the KDC, with the RENEW option set in the KDC request. The KDC will issue a new ticket with a new session key and a later expiration time. All other fields of the ticket are left unmodified by the renewal process. When the latest permissible expiration time arrives, the ticket expires permanently. At each renewal, the KDC may consult a hot-list to determine if the ticket had been reported stolen since its last renewal; it will refuse to renew such stolen tickets, and thus the usable lifetime of stolen tickets is reduced.
チケットは期限が切れます、そして、2番目は個々の満了時間最新の許容値です。 アプリケーションクライアントは定期的に再生可能なものチケットをKDCに贈らなければなりません(すなわち、期限が切れる前に)、KDC要求に設定されたRENEWオプションで。 KDCは新しいセッションキーと満了時間より後半がある新しいチケットを発行するでしょう。 チケットの他のすべての野原が更新プロセスによって変更されていないままにされます。 最も遅い許されている満了時間が永久に来るとき、チケットは期限が切れます。 各更新のときに、KDCはチケットが最後の更新以来盗まれた状態で報告されていたかどうか決定するためにホットリストに相談するかもしれません。 それは、そのような盗まれたチケットを取り替えるのを拒否するでしょう、そして、その結果、盗まれたチケットの使用可能な寿命は短縮されます。
The RENEWABLE flag in a ticket is normally only interpreted by the ticket-granting service (discussed below in section 3.3). It can usually be ignored by application servers. However, some particularly careful application servers may wish to disallow renewable tickets.
チケットを与えるサービス(以下では、セクション3.3で、議論する)で通常、チケットの中のRENEWABLE旗は解釈されるだけです。 通常、アプリケーション・サーバーはそれを無視できます。 しかしながら、いくつかの特に慎重なアプリケーション・サーバーが再生可能なものチケットを禁じたがっているかもしれません。
If a renewable ticket is not renewed by its expiration time, the KDC will not renew the ticket. The RENEWABLE flag is reset by default, but a client may request it be set by setting the RENEWABLE option in the KRB_AS_REQ message. If it is set, then the renew-till field in the ticket contains the time after which the ticket may not be renewed.
再生可能なものチケットが満了時間までに取り替えられないと、KDCはチケットを取り替えないでしょう。 RENEWABLE旗はデフォルトでリセットされますが、クライアントは、それがKRB_AS_REQメッセージにRENEWABLEオプションをはめ込むことによって設定されるよう要求するかもしれません。 それが設定されるなら、チケットの現金箱を取り替えている分野はチケットが取り替えられないかもしれない時を含んでいます。
2.4. Postdated tickets
2.4. 先日付を書かれたチケット
Applications may occasionally need to obtain tickets for use much later, e.g., a batch submission system would need tickets to be valid at the time the batch job is serviced. However, it is dangerous to hold valid tickets in a batch queue, since they will be on-line longer and more prone to theft. Postdated tickets provide a way to obtain these tickets from the KDC at job submission time, but to leave them "dormant" until they are activated and validated by a further request of the KDC. If a ticket theft were reported in the interim, the KDC would refuse to validate the ticket, and the thief would be foiled.
アプリケーションは、時折後で使用のチケットをたくさん得る必要があるかもしれません、例えば、バッチ・ジョブが修理されるとき、バッチ服従システムがチケットが有効である必要があるでしょう。 しかしながら、オンラインになって以来のバッチ待ち行列における有効なチケットを窃盗により長くより傾向があるように保つのは危険です。 先日付を書かれたチケットは、それらがKDCのさらなる要求で動かされて、有効にされるまでそれらを「眠っていた」状態でおくためにしかしジョブ依頼時にKDCからこれらのチケットを得る方法を提供します。 チケット窃盗がその間報告されるなら、KDCは、チケットを有効にするのを拒否するでしょうに、そして、泥棒はくじかれるでしょう。
The MAY-POSTDATE flag in a ticket is normally only interpreted by the ticket-granting service. It can be ignored by application servers. This flag must be set in a ticket-granting ticket in order to issue a postdated ticket based on the presented ticket. It is reset by default; it may be requested by a client by setting the ALLOW- POSTDATE option in the KRB_AS_REQ message. This flag does not allow a client to obtain a postdated ticket-granting ticket; postdated ticket-granting tickets can only by obtained by requesting the postdating in the KRB_AS_REQ message. The life (endtime-starttime) of a postdated ticket will be the remaining life of the ticket-
通常、チケットの中の5月-POSTDATE旗はチケットを与えるサービスで解釈されるだけです。 アプリケーション・サーバーはそれを無視できます。 提示されたチケットに基づく先日付を書かれたチケットを発行するためにチケットを与えるチケットの中にこの旗を設定しなければなりません。 それはデフォルトでリセットされます。 それは、KRB_AS_REQメッセージにALLOW- POSTDATEオプションをはめ込むことによって、クライアントによって要求されているかもしれません。 この旗で、クライアントは先日付を書かれたチケットを与えるチケットを得ることができません。 先日付を書かれたチケットを与えるチケットはKRB_AS_REQメッセージにおける得られるだけの要求するのによる先日付を書くことをそうすることができます。 先日付を書かれたチケットの寿命(endtime-starttime)はチケットの残っている寿命になるでしょう。
Kohl & Neuman [Page 13] RFC 1510 Kerberos September 1993
コールとヌーマン[13ページ]のRFCの1510のケルベロスの1993年9月
granting ticket at the time of the request, unless the RENEWABLE option is also set, in which case it can be the full life (endtime- starttime) of the ticket-granting ticket. The KDC may limit how far in the future a ticket may be postdated.
また、RENEWABLEオプションが設定されない場合要求時点でチケットを与えて、その場合、それはチケットを与えるチケットの充実した生活であるかもしれません(endtime- starttime)。 KDCは遠くに未来にチケットがどう先日付を書かれるかもしれないかを制限するかもしれません。
The POSTDATED flag indicates that a ticket has been postdated. The application server can check the authtime field in the ticket to see when the original authentication occurred. Some services may choose to reject postdated tickets, or they may only accept them within a certain period after the original authentication. When the KDC issues a POSTDATED ticket, it will also be marked as INVALID, so that the application client must present the ticket to the KDC to be validated before use.
POSTDATED旗は、チケットが先日付を書かれたのを示します。 アプリケーション・サーバーは、オリジナルの認証がいつ起こったかを確認するためにチケットのauthtime分野をチェックできます。 いくつかのサービスが、先日付を書かれたチケットを拒絶するのを選ぶかもしれませんか、またはそれらはオリジナルの認証の後に、ある期間以内にそれらを受け入れるだけであるかもしれません。 また、KDCがPOSTDATEDチケットを発行するとき、それはINVALIDとしてマークされるでしょう、アプリケーションクライアントが使用の前に有効にされるためにチケットをKDCに贈らなければならないように。
2.5. Proxiable and proxy tickets
2.5. Proxiableとプロキシチケット
At times it may be necessary for a principal to allow a service to perform an operation on its behalf. The service must be able to take on the identity of the client, but only for a particular purpose. A principal can allow a service to take on the principal's identity for a particular purpose by granting it a proxy.
時には、元本がサービスに利益に操作を実行させるのが必要であるかもしれません。 サービスはクライアントのアイデンティティ、しかし、単に特定の目的に取ることができなければなりません。 元本は、サービスに特定の目的のためにプロキシをそれに与えることによって、主体のアイデンティティを呈させることができます。
The PROXIABLE flag in a ticket is normally only interpreted by the ticket-granting service. It can be ignored by application servers. When set, this flag tells the ticket-granting server that it is OK to issue a new ticket (but not a ticket-granting ticket) with a different network address based on this ticket. This flag is set by default.
通常、チケットの中のPROXIABLE旗はチケットを与えるサービスで解釈されるだけです。 アプリケーション・サーバーはそれを無視できます。 設定されると、この旗は、このチケットに基づく異なったネットワーク・アドレスで新しいチケット(しかし、チケットを与えるチケットでない)を発行するのがOKであるとチケットを与えるサーバに言います。 この旗はデフォルトで設定されます。
This flag allows a client to pass a proxy to a server to perform a remote request on its behalf, e.g., a print service client can give the print server a proxy to access the client's files on a particular file server in order to satisfy a print request.
クライアントは利益にリモート要求を実行するためにこの旗でプロキシをサーバに通過できます、例えば、印刷サービスクライアントが印刷要求を満たすために特定のファイルサーバーのクライアントのファイルにアクセスするためにプロキシをプリント・サーバに与えることができます。
In order to complicate the use of stolen credentials, Kerberos tickets are usually valid from only those network addresses specifically included in the ticket (It is permissible to request or issue tickets with no network addresses specified, but we do not recommend it). For this reason, a client wishing to grant a proxy must request a new ticket valid for the network address of the service to be granted the proxy.
盗まれた資格証明書の使用を複雑にするために、通常、ケルベロスチケットはチケットに明確に含まれていたそれらのネットワーク・アドレスだけから有効です(それが要求するのにおいて許されているか、ネットワーク・アドレスのない問題チケットが指定しましたが、または私たちはそれを推薦しません)。 この理由で、プロキシを与えたがっているクライアントは、プロキシに与えられるようサービスのネットワーク・アドレスに、有効な新しいチケットに要求しなければなりません。
The PROXY flag is set in a ticket by the TGS when it issues a proxy ticket. Application servers may check this flag and require additional authentication from the agent presenting the proxy in order to provide an audit trail.
それがプロキシチケットを発行するとき、PROXY旗はチケットの中にTGSによって設定されます。 アプリケーション・サーバーは、監査証跡を提供するためにプロキシを紹介するエージェントから、この旗をチェックして、追加認証を必要とするかもしれません。
Kohl & Neuman [Page 14] RFC 1510 Kerberos September 1993
コールとヌーマン[14ページ]のRFCの1510のケルベロスの1993年9月
2.6. Forwardable tickets
2.6. Forwardableチケット
Authentication forwarding is an instance of the proxy case where the service is granted complete use of the client's identity. An example where it might be used is when a user logs in to a remote system and wants authentication to work from that system as if the login were local.
認証推進はクライアントのアイデンティティの完全な使用がサービスに承諾されるプロキシ事件のインスタンスです。 それが使用されるかもしれない例はユーザがリモートシステムにログインして、まるでログインが地方であるかのように認証がそのシステムから働いて欲しい時です。
The FORWARDABLE flag in a ticket is normally only interpreted by the ticket-granting service. It can be ignored by application servers. The FORWARDABLE flag has an interpretation similar to that of the PROXIABLE flag, except ticket-granting tickets may also be issued with different network addresses. This flag is reset by default, but users may request that it be set by setting the FORWARDABLE option in the AS request when they request their initial ticket-granting ticket.
通常、チケットの中のFORWARDABLE旗はチケットを与えるサービスで解釈されるだけです。 アプリケーション・サーバーはそれを無視できます。 FORWARDABLE旗は、PROXIABLE旗のものと同様の解釈を持って、また、チケットを与えるチケットを除いて、異なったネットワーク・アドレスで支給されるかもしれません。 この旗はデフォルトでリセットされますが、ユーザは、それが彼らが自分達の初期のチケットを与えるチケットを要求するときAS要求にFORWARDABLEオプションをはめ込むことによって設定されるよう要求するかもしれません。
This flag allows for authentication forwarding without requiring the user to enter a password again. If the flag is not set, then authentication forwarding is not permitted, but the same end result can still be achieved if the user engages in the AS exchange with the requested network addresses and supplies a password.
この旗は、ユーザが入る必要でない再びパスワードを転送しながら、認証を考慮します。 旗が設定されないなら、認証推進は受入れられませんが、ユーザが要求されたネットワーク・アドレスでAS交換に従事して、パスワードを提供するなら、まだ同じ結末を獲得できます。
The FORWARDED flag is set by the TGS when a client presents a ticket with the FORWARDABLE flag set and requests it be set by specifying the FORWARDED KDC option and supplying a set of addresses for the new ticket. It is also set in all tickets issued based on tickets with the FORWARDED flag set. Application servers may wish to process FORWARDED tickets differently than non-FORWARDED tickets.
FORWARDED旗は、クライアントがFORWARDABLE旗のセットでチケットを贈るとTGSによって設定されて、FORWARDED KDCオプションを指定することによって設定されて、1セットのアドレスを新しいチケットに供給しながら、それを要求します。 また、それはチケットに基づいてFORWARDED旗のセットで発行されたすべてのチケットの中に設定されます。 アプリケーション・サーバーは非FORWARDEDチケットと異なってFORWARDEDチケットを処理したがっているかもしれません。
2.7. Other KDC options
2.7. 他のKDCオプション
There are two additional options which may be set in a client's request of the KDC. The RENEWABLE-OK option indicates that the client will accept a renewable ticket if a ticket with the requested life cannot otherwise be provided. If a ticket with the requested life cannot be provided, then the KDC may issue a renewable ticket with a renew-till equal to the the requested endtime. The value of the renew-till field may still be adjusted by site-determined limits or limits imposed by the individual principal or server.
クライアントのKDCの要求に設定されるかもしれない2つの追加オプションがあります。 RENEWABLE-OKオプションは、別の方法で要求された寿命があるチケットを供給できないとクライアントが再生可能なものチケットを受け入れるのを示します。 要求された寿命があるチケットを供給できないなら、KDCは現金箱を取り替えている同輩と共に要求されたendtimeに再生可能なものチケットを発行するかもしれません。 現金箱を取り替えている分野の値はサイトで決定している限界か個々の主体かサーバによって課された限界でまだ調整されているかもしれません。
The ENC-TKT-IN-SKEY option is honored only by the ticket-granting service. It indicates that the to-be-issued ticket for the end server is to be encrypted in the session key from the additional ticket-granting ticket provided with the request. See section 3.3.3 for specific details.
ENC-TKT IN SKEYオプションは単にチケットを与えるサービスで光栄に思われます。 それは、エンドサーバの発行されたチケットが要求が提供された追加チケットを与えるチケットから主要なセッションのときに暗号化されることになっているのを示します。 特定の詳細に関してセクション3.3.3を見てください。
Kohl & Neuman [Page 15] RFC 1510 Kerberos September 1993
コールとヌーマン[15ページ]のRFCの1510のケルベロスの1993年9月
3. Message Exchanges
3. 交換処理
The following sections describe the interactions between network clients and servers and the messages involved in those exchanges.
以下のセクションはそれらの交換にかかわるネットワーククライアントの間の相互作用、サーバ、およびメッセージについて説明します。
3.1. The Authentication Service Exchange
3.1. 認証サービス交換
Summary
概要
Message direction Message type Section 1. Client to Kerberos KRB_AS_REQ 5.4.1 2. Kerberos to client KRB_AS_REP or 5.4.2 KRB_ERROR 5.9.1
メッセージ方向Messageはセクション1をタイプします。 _REQ5.4.1 2としてのケルベロスKRB_へのクライアント。 クライアントKRB_AS_REPへのケルベロスか5.4.2KRB_ERROR5.9.1
The Authentication Service (AS) Exchange between the client and the Kerberos Authentication Server is usually initiated by a client when it wishes to obtain authentication credentials for a given server but currently holds no credentials. The client's secret key is used for encryption and decryption. This exchange is typically used at the initiation of a login session, to obtain credentials for a Ticket- Granting Server, which will subsequently be used to obtain credentials for other servers (see section 3.3) without requiring further use of the client's secret key. This exchange is also used to request credentials for services which must not be mediated through the Ticket-Granting Service, but rather require a principal's secret key, such as the password-changing service. (The password- changing request must not be honored unless the requester can provide the old password (the user's current secret key). Otherwise, it would be possible for someone to walk up to an unattended session and change another user's password.) This exchange does not by itself provide any assurance of the the identity of the user. (To authenticate a user logging on to a local system, the credentials obtained in the AS exchange may first be used in a TGS exchange to obtain credentials for a local server. Those credentials must then be verified by the local server through successful completion of the Client/Server exchange.)
クライアントとケルベロスAuthentication Serverの間のAuthentication Service(AS)交換は、認証資格証明書を与えられたサーバに得たがっているとき、クライアントによって通常開始されますが、現在、資格証明書を全く開催しません。 クライアントの秘密鍵は暗号化と復号化に使用されます。 この交換は、ログインセッションの手引きで次にクライアントの秘密鍵のさらなる使用を必要としないで他のサーバ(セクション3.3を見る)に資格証明書を得るのに使用されるServerを与えながら資格証明書をTicketに得るのに通常使用されます。 また、この交換はTicketを与えているServiceを通して調停してはいけないサービスのために資格証明書を要求するのに使用されますが、むしろ主体の秘密鍵を必要としてください、パスワードを変えるサービスなどのように。 リクエスタが古いパスワード(ユーザの現在の秘密鍵)を提供できないなら、パスワード変化要求は光栄に思っているはずがありません。(さもなければ、だれかが無人のセッションまで歩いて、別のユーザのパスワードを変えるのは、可能でしょう。) この交換自体はユーザのアイデンティティのどんな保証も提供しません。 ユーザ伐採をローカルシステムに認証するなら、AS交換で得られた資格証明書は、最初に、資格証明書をローカルサーバに得るのにTGS交換に使用されるかもしれません。(次に、ローカルサーバはClient/サーバ交換の無事終了でそれらの資格証明書について確かめなければなりません。)
The exchange consists of two messages: KRB_AS_REQ from the client to Kerberos, and KRB_AS_REP or KRB_ERROR in reply. The formats for these messages are described in sections 5.4.1, 5.4.2, and 5.9.1.
交換は2つのメッセージから成ります: KRB、_回答におけるクライアントからケルベロスまでのAS_REQと、KRB_AS_REPかKRB_ERROR。 説明されたコネセクション5.4.1、5.4は、.2と、5.9です。これらのメッセージのための形式、.1。
In the request, the client sends (in cleartext) its own identity and the identity of the server for which it is requesting credentials. The response, KRB_AS_REP, contains a ticket for the client to present to the server, and a session key that will be shared by the client and the server. The session key and additional information are encrypted in the client's secret key. The KRB_AS_REP message contains information which can be used to detect replays, and to
要求では、クライアントはそれ自身のアイデンティティとそれが資格証明書を要求しているサーバのアイデンティティを送ります(cleartextで)。 応答(KRB_AS_REP)はクライアントがサーバ、およびクライアントとサーバによって共有されるセッションキーに贈るチケットを含んでいます。セッションの主要で追加している情報はクライアントの秘密鍵で暗号化されます。 そしてKRB_AS_REPメッセージが再生を検出するのに使用できる情報を含んでいる。
Kohl & Neuman [Page 16] RFC 1510 Kerberos September 1993
コールとヌーマン[16ページ]のRFCの1510のケルベロスの1993年9月
associate it with the message to which it replies. Various errors can occur; these are indicated by an error response (KRB_ERROR) instead of the KRB_AS_REP response. The error message is not encrypted. The KRB_ERROR message also contains information which can be used to associate it with the message to which it replies. The lack of encryption in the KRB_ERROR message precludes the ability to detect replays or fabrications of such messages.
それが返答するメッセージにそれを関連づけてください。 様々な誤りは発生できます。 KRB_AS_REP応答の代わりに誤り応答(KRB_ERROR)でこれらは示されます。 エラーメッセージは暗号化されていません。 また、KRB_ERRORメッセージはそれが返答するメッセージにそれを関連づけるのに使用できる情報を含んでいます。 KRB_ERRORメッセージにおける、暗号化の不足はそのようなメッセージの再生か製作を検出する能力を排除します。
In the normal case the authentication server does not know whether the client is actually the principal named in the request. It simply sends a reply without knowing or caring whether they are the same. This is acceptable because nobody but the principal whose identity was given in the request will be able to use the reply. Its critical information is encrypted in that principal's key. The initial request supports an optional field that can be used to pass additional information that might be needed for the initial exchange. This field may be used for preauthentication if desired, but the mechanism is not currently specified.
正常な場合では、認証サーバは、クライアントが実際に要求で指定された主体であるかどうかを知りません。 知っているか、またはそれらが同じであるかどうか気にかけない、それは単に返信します。 アイデンティティが要求で与えられた主体以外のだれも回答を使用できないので、これは許容できます。 重要情報はその主体のキーで暗号化されます。 初期の要求は初期の交換に必要であるかもしれない追加情報を通過するのに使用できる任意の分野をサポートします。 望まれているなら、この分野は前認証に使用されるかもしれませんが、メカニズムは現在、指定されません。
3.1.1. Generation of KRB_AS_REQ message
3.1.1. KRB_AS_REQメッセージの世代
The client may specify a number of options in the initial request. Among these options are whether preauthentication is to be performed; whether the requested ticket is to be renewable, proxiable, or forwardable; whether it should be postdated or allow postdating of derivative tickets; and whether a renewable ticket will be accepted in lieu of a non-renewable ticket if the requested ticket expiration date cannot be satisfied by a nonrenewable ticket (due to configuration constraints; see section 4). See section A.1 for pseudocode.
クライアントは初期の要求における多くのオプションを指定するかもしれません。 このうち、オプションは前認証が実行されることになっているかどうかということです。 要求されたチケットによる再生可能なものであることになっているか、そして、proxiable、または前進可能。 先日付を書かれるべきであるか、または派生しているチケットについて先日付を書くのを許容するべきであることにかかわらず。 そして、「非-再生可能なもの」チケットで要求されたチケット有効期限を満たすことができないと(構成規制のため; セクション4を見てください)、非再生可能なものチケットの代わりに再生可能なものチケットを受け入れるのであるかどうか 擬似コードに関してセクションA.1を見てください。
The client prepares the KRB_AS_REQ message and sends it to the KDC.
クライアントは、KRB_AS_REQメッセージを準備して、それをKDCに送ります。
3.1.2. Receipt of KRB_AS_REQ message
3.1.2. KRB_AS_REQメッセージの領収書
If all goes well, processing the KRB_AS_REQ message will result in the creation of a ticket for the client to present to the server. The format for the ticket is described in section 5.3.1. The contents of the ticket are determined as follows.
すべてがうまく行くと、KRB_AS_REQメッセージを処理すると、クライアントがサーバに贈るチケットの作成はもたらされるでしょう。チケットのための形式はセクション5.3.1で説明されます。 チケットの内容は以下の通り決定しています。
3.1.3. Generation of KRB_AS_REP message
3.1.3. KRB_AS_REPメッセージの世代
The authentication server looks up the client and server principals named in the KRB_AS_REQ in its database, extracting their respective keys. If required, the server pre-authenticates the request, and if the pre-authentication check fails, an error message with the code KDC_ERR_PREAUTH_FAILED is returned. If the server cannot accommodate the requested encryption type, an error message with code
クライアントとサーバ主体への認証サーバ一見はデータベースでKRBでAS_REQと_を命名しました、彼らのそれぞれのキーを抽出して。 必要なら、サーバは要求をあらかじめ認証します、そして、プレ認証チェックが失敗するなら、コードKDC_ERR_PREAUTH_FAILEDがあるエラーメッセージを返します。 サーバが要求された暗号化タイプ、コードがあるエラーメッセージに対応できないなら
Kohl & Neuman [Page 17] RFC 1510 Kerberos September 1993
コールとヌーマン[17ページ]のRFCの1510のケルベロスの1993年9月
KDC_ERR_ETYPE_NOSUPP is returned. Otherwise it generates a "random" session key ("Random" means that, among other things, it should be impossible to guess the next session key based on knowledge of past session keys. This can only be achieved in a pseudo-random number generator if it is based on cryptographic principles. It would be more desirable to use a truly random number generator, such as one based on measurements of random physical phenomena.).
KDC_ERR_ETYPE_NOSUPPを返します。 さもなければ、それは「無作為」のセッションキーを生成します。(「無作為」は、過去のセッションキーに関する知識に基づいて主要な次のセッションを推測するのが特に、不可能であるべきであることを意味します。 暗号の原則に基づいている場合にだけ、疑似乱数生成器でこれを達成できます。 本当に乱数発生器を使用するのは、より望ましいでしょう、無作為の物理的な現象の測定値に基づいた1などのように。).
If the requested start time is absent or indicates a time in the past, then the start time of the ticket is set to the authentication server's current time. If it indicates a time in the future, but the POSTDATED option has not been specified, then the error KDC_ERR_CANNOT_POSTDATE is returned. Otherwise the requested start time is checked against the policy of the local realm (the administrator might decide to prohibit certain types or ranges of postdated tickets), and if acceptable, the ticket's start time is set as requested and the INVALID flag is set in the new ticket. The postdated ticket must be validated before use by presenting it to the KDC after the start time has been reached.
要求された開始時刻が休むか、または過去に時間を示すなら、チケットの開始時刻は認証サーバの現在の時間に決められます。 _POSTDATEが将来POSTDATEDオプションだけが指定されていなくて、また次に、誤りKDC_ERR_がそうしない時代に返されるのを示すなら。 さもなければ、要求された開始時刻は地方の分野の方針に対してチェックされます、そして、(管理者は、あるタイプか範囲の先日付を書かれたチケットを禁止すると決めるかもしれません)許容できるなら、チケットの開始時刻は要求された通り決められます、そして、INVALID旗は新しいチケットの中に設定されます。 開始時刻の後にKDCにそれを提示するのによる使用に達する前に先日付を書かれたチケットを有効にしなければなりません。
The expiration time of the ticket will be set to the minimum of the following:
チケットの満了時間は以下の最小限に設定されるでしょう:
+The expiration time (endtime) requested in the KRB_AS_REQ message.
+KRB_AS_REQメッセージで要求された満了時間(endtime)。
+The ticket's start time plus the maximum allowable lifetime associated with the client principal (the authentication server's database includes a maximum ticket lifetime field in each principal's record; see section 4).
+ クライアント主体(認証サーバのデータベースは各主体の記録に最大のチケット生涯分野を含んでいます; セクション4を見る)に関連しているチケットの開始時刻と最大の許容できる生涯。
+The ticket's start time plus the maximum allowable lifetime associated with the server principal.
+ サーバ主体に関連しているチケットの開始時刻と最大の許容できる生涯。
+The ticket's start time plus the maximum lifetime set by the policy of the local realm.
+ チケットの開始時刻と最大の寿命は地方の分野の方針でセットしました。
If the requested expiration time minus the start time (as determined above) is less than a site-determined minimum lifetime, an error message with code KDC_ERR_NEVER_VALID is returned. If the requested expiration time for the ticket exceeds what was determined as above, and if the "RENEWABLE-OK" option was requested, then the "RENEWABLE" flag is set in the new ticket, and the renew-till value is set as if the "RENEWABLE" option were requested (the field and option names are described fully in section 5.4.1). If the RENEWABLE option has been requested or if the RENEWABLE-OK option has been set and a renewable ticket is to be issued, then the renew-till field is set to the minimum of:
開始時刻(上で決定するように)を引いた要求された満了時間がサイトで決定している最小の生涯以下であるなら、まさか、_VALIDが返されるコードKDC_ERR_があるエラーメッセージです。 チケットのための要求された満了時間が同じくらい上で決定したことを超えて、「RENEWABLE OK」オプションが要求されたなら、「再生可能なもの」旗は新しいチケットの中に設定されます、そして、まるで「再生可能なもの」オプションが要求されているかのように(分野とオプション名はセクション5.4.1で完全に説明されます)現金箱を取り替えている値は設定されます。 RENEWABLEオプションが要求されているか、RENEWABLE-OKオプションが設定されて、または再生可能なものチケットが発行されるつもりであるなら、現金箱を取り替えている分野は以下の最小限に設定されます。
Kohl & Neuman [Page 18] RFC 1510 Kerberos September 1993
コールとヌーマン[18ページ]のRFCの1510のケルベロスの1993年9月
+Its requested value.
+ 要求された値。
+The start time of the ticket plus the minimum of the two maximum renewable lifetimes associated with the principals' database entries.
+ チケットの開始時刻と主体のデータベースエントリーに関連している2つの最大の再生可能なもの生涯の最小限。
+The start time of the ticket plus the maximum renewable lifetime set by the policy of the local realm.
+ チケットの開始時刻と地方の分野の方針で決められた最大の再生可能なもの生涯。
The flags field of the new ticket will have the following options set if they have been requested and if the policy of the local realm allows: FORWARDABLE, MAY-POSTDATE, POSTDATED, PROXIABLE, RENEWABLE. If the new ticket is postdated (the start time is in the future), its INVALID flag will also be set.
要求されていて、地方の分野の方針が以下を許容するなら、以下のオプションがそれらであるなら新しいチケットの分野で設定する旗がありました。 FORWARDABLE、先日付を書かれて、PROXIABLE、再生可能なものに5月先日付を書いてください。 また、新しいチケットが先日付を書かれると(未来に、開始時刻があります)、INVALID旗は設定されるでしょう。
If all of the above succeed, the server formats a KRB_AS_REP message (see section 5.4.2), copying the addresses in the request into the caddr of the response, placing any required pre-authentication data into the padata of the response, and encrypts the ciphertext part in the client's key using the requested encryption method, and sends it to the client. See section A.2 for pseudocode.
上記のすべてが成功するなら、サーバは、どんな必要なプレ認証データも応答のpadataに置いて、応答のcaddrに要求におけるアドレスをコピーして、KRB_AS_REPメッセージ(セクション5.4.2を見る)をフォーマットして、クライアントのキーで要求された暗号化メソッドを使用することで暗号文部分を暗号化して、それをクライアントに送ります。 擬似コードに関してセクションA.2を見てください。
3.1.4. Generation of KRB_ERROR message
3.1.4. KRB_ERRORメッセージの世代
Several errors can occur, and the Authentication Server responds by returning an error message, KRB_ERROR, to the client, with the error-code and e-text fields set to appropriate values. The error message contents and details are described in Section 5.9.1.
いくつかの誤りが発生できます、そして、Authentication Serverはエラーメッセージを返すことによって、応じます、KRB_ERROR、クライアントに、値を当てるように設定されたエラーコードと電子テキストフィールドで。 エラーメッセージコンテンツと詳細はセクション5.9.1で説明されます。
3.1.5. Receipt of KRB_AS_REP message
3.1.5. KRB_AS_REPメッセージの領収書
If the reply message type is KRB_AS_REP, then the client verifies that the cname and crealm fields in the cleartext portion of the reply match what it requested. If any padata fields are present, they may be used to derive the proper secret key to decrypt the message. The client decrypts the encrypted part of the response using its secret key, verifies that the nonce in the encrypted part matches the nonce it supplied in its request (to detect replays). It also verifies that the sname and srealm in the response match those in the request, and that the host address field is also correct. It then stores the ticket, session key, start and expiration times, and other information for later use. The key-expiration field from the encrypted part of the response may be checked to notify the user of impending key expiration (the client program could then suggest remedial action, such as a password change). See section A.3 for pseudocode.
応答メッセージタイプがKRB_AS_REPであるなら、クライアントは、回答のcleartext部分のcnameとcrealm分野がそれが要求したことに合っていることを確かめます。 何かpadata分野が存在しているなら、それらは、メッセージを解読するために適切な秘密鍵を引き出すのに使用されるかもしれません。 クライアントは、秘密鍵を使用することで応答の暗号化された部分を解読して、暗号化された部分の一回だけがそれが要求(再生を検出する)で供給した一回だけに合っていることを確かめます。 また、それは応答におけるsnameとsrealmが要求におけるそれらに合って、また、ホストアドレス・フィールドも正しいことを確かめます。 そして、それは後の使用のためのチケット、セッションキー、始め、満了時間、および他の情報を保存します。 応答の暗号化された部分からの主要な満了分野は、主要な満了を迫らせるのについてユーザに通知するためにチェックされるかもしれません(次に、クライアントプログラムが改善措置を示すかもしれません、パスワード変化のように)。 擬似コードに関してセクションA.3を見てください。
Proper decryption of the KRB_AS_REP message is not sufficient to
REPメッセージが十分でないKRB_AS_の適切な復号化
Kohl & Neuman [Page 19] RFC 1510 Kerberos September 1993
コールとヌーマン[19ページ]のRFCの1510のケルベロスの1993年9月
verify the identity of the user; the user and an attacker could cooperate to generate a KRB_AS_REP format message which decrypts properly but is not from the proper KDC. If the host wishes to verify the identity of the user, it must require the user to present application credentials which can be verified using a securely-stored secret key. If those credentials can be verified, then the identity of the user can be assured.
ユーザのアイデンティティについて確かめてください。 ユーザと攻撃者が協力して、KRB_AS_REP形式メッセージを生成することができた、どれ、しかし、適切に解読するか、適切なKDCから、ありません。 ホストがユーザのアイデンティティについて確かめたいなら、それは、ユーザがしっかりと保存された秘密鍵を使用することで確かめることができるアプリケーション資格証明書を提示するのを必要としなければなりません。 それらの資格証明書について確かめることができるなら、ユーザのアイデンティティを保証できます。
3.1.6. Receipt of KRB_ERROR message
3.1.6. KRB_ERRORメッセージの領収書
If the reply message type is KRB_ERROR, then the client interprets it as an error and performs whatever application-specific tasks are necessary to recover.
応答メッセージタイプがKRB_ERRORであるなら、クライアントは、回復するために誤りとしてそれを解釈して、どんな必要なアプリケーション特有のタスクも実行します。
3.2. The Client/Server Authentication Exchange
3.2. クライアント/サーバー証明交換
Summary
概要
Message direction Message type Section Client to Application server KRB_AP_REQ 5.5.1 [optional] Application server to client KRB_AP_REP or 5.5.2 KRB_ERROR 5.9.1
クライアントKRB_AP_REPへのApplicationサーバKRB_AP_REQ5.5.1の[任意]のアプリケーション・サーバーか5.5.2KRB_ERROR5.9.1へのメッセージ方向MessageタイプセクションClient
The client/server authentication (CS) exchange is used by network applications to authenticate the client to the server and vice versa. The client must have already acquired credentials for the server using the AS or TGS exchange.
クライアント/サーバ証明(CS)交換は、逆もまた同様にサーバにクライアントを認証するのにネットワーク応用で使用されます。 クライアントは、サーバのためにASかTGS交換を使用することで既に資格証明書を取得したに違いありません。
3.2.1. The KRB_AP_REQ message
3.2.1. KRB_AP_REQメッセージ
The KRB_AP_REQ contains authentication information which should be part of the first message in an authenticated transaction. It contains a ticket, an authenticator, and some additional bookkeeping information (see section 5.5.1 for the exact format). The ticket by itself is insufficient to authenticate a client, since tickets are passed across the network in cleartext(Tickets contain both an encrypted and unencrypted portion, so cleartext here refers to the entire unit, which can be copied from one message and replayed in another without any cryptographic skill.), so the authenticator is used to prevent invalid replay of tickets by proving to the server that the client knows the session key of the ticket and thus is entitled to use it. The KRB_AP_REQ message is referred to elsewhere as the "authentication header."
KRB_AP_REQは認証されたトランザクションにおける最初のメッセージの一部であるべきである認証情報を含んでいます。 それはチケット、固有識別文字、および何らかの追加簿記情報を含んでいます(正確な形式に関してセクション5.5.1を見てください)。 それ自体でチケットはクライアントを認証するためには不十分です、チケットがcleartextのネットワークの向こう側に渡されるので(チケットが暗号化されて非暗号化された部分を含んでいるので、ここのcleartextは全体の単位に言及します。)、固有識別文字は、クライアントがチケットのセッションキーを知っているとサーバに立証することによってチケットの無効の再生を防ぐのに使用されて、その結果、それを使用する権利を与えられます。単位を1つのメッセージからコピーして、別のもので少しも暗号の技能なしで再演できます。 KRB_AP_REQメッセージは「認証ヘッダー」としてほかの場所と呼ばれます。
3.2.2. Generation of a KRB_AP_REQ message
3.2.2. KRB_AP_REQメッセージの世代
When a client wishes to initiate authentication to a server, it obtains (either through a credentials cache, the AS exchange, or the
またはクライアントがそうしたがっているとき、サーバに認証を開始してください、それ、入手、(資格証明書キャッシュ、AS交換を通どちらかだって。
Kohl & Neuman [Page 20] RFC 1510 Kerberos September 1993
コールとヌーマン[20ページ]のRFCの1510のケルベロスの1993年9月
TGS exchange) a ticket and session key for the desired service. The client may re-use any tickets it holds until they expire. The client then constructs a new Authenticator from the the system time, its name, and optionally an application specific checksum, an initial sequence number to be used in KRB_SAFE or KRB_PRIV messages, and/or a session subkey to be used in negotiations for a session key unique to this particular session. Authenticators may not be re-used and will be rejected if replayed to a server (Note that this can make applications based on unreliable transports difficult to code correctly, if the transport might deliver duplicated messages. In such cases, a new authenticator must be generated for each retry.). If a sequence number is to be included, it should be randomly chosen so that even after many messages have been exchanged it is not likely to collide with other sequence numbers in use.
TGS交換) 必要なサービスに、主要なチケットとセッション。 クライアントは期限が切れるまでそれが保つどんなチケットも再使用するかもしれません。 そしてクライアントはシステム時間、名前から新しいAuthenticatorを任意に組み立てます。アプリケーションの特定のチェックサム(この特定のセッションにユニークなセッションキーに交渉に使用されるのにKRB_SAFEかKRB_PRIVメッセージ、そして/または、セッションサブキーで使用されるべき初期シーケンス番号)。 固有識別文字は、再使用されないかもしれなくて、サーバに再演されると、拒絶されるでしょう。(これが、正しく頼り無い輸送に基づくアプリケーションをコード化するのを難しくすることができることに注意してください、輸送がコピーされたメッセージを提供するかもしれないなら。 そのようなものがケースに入れるコネ、各再試行のために新しい固有識別文字を生成しなければならないa)。 一連番号が含まれることであるなら、手当たりしだいに選ばれるべきであるので、多くのメッセージを交換した後にさえ、それは使用中の他の一連番号と衝突しそうにはありません。
The client may indicate a requirement of mutual authentication or the use of a session-key based ticket by setting the appropriate flag(s) in the ap-options field of the message.
クライアントは、メッセージのap-オプション分野に適切なフラグをはめ込むことによって、互いの認証の要件かセッション主要なベースのチケットの使用を示すかもしれません。
The Authenticator is encrypted in the session key and combined with the ticket to form the KRB_AP_REQ message which is then sent to the end server along with any additional application-specific information. See section A.9 for pseudocode.
Authenticatorは、次にどんな追加アプリケーション特有の情報に伴うエンドサーバにも送られるKRB_AP_REQメッセージを形成するためにセッションキーで暗号化されて、チケットに合成されます。 擬似コードに関してセクションA.9を見てください。
3.2.3. Receipt of KRB_AP_REQ message
3.2.3. KRB_AP_REQメッセージの領収書
Authentication is based on the server's current time of day (clocks must be loosely synchronized), the authenticator, and the ticket. Several errors are possible. If an error occurs, the server is expected to reply to the client with a KRB_ERROR message. This message may be encapsulated in the application protocol if its "raw" form is not acceptable to the protocol. The format of error messages is described in section 5.9.1.
認証はサーバの現在の時刻(時計は緩く連動しなければならない)、固有識別文字、およびチケットに基づいています。 いくつかの誤りが可能です。 誤りが発生するなら、サーバがKRB_ERRORメッセージでクライアントに答えると予想されます。 「生」のフォームがプロトコルに許容していないなら、このメッセージはアプリケーション・プロトコルでカプセル化されるかもしれません。 エラーメッセージの形式はセクション5.9.1で説明されます。
The algorithm for verifying authentication information is as follows. If the message type is not KRB_AP_REQ, the server returns the KRB_AP_ERR_MSG_TYPE error. If the key version indicated by the Ticket in the KRB_AP_REQ is not one the server can use (e.g., it indicates an old key, and the server no longer possesses a copy of the old key), the KRB_AP_ERR_BADKEYVER error is returned. If the USE- SESSION-KEY flag is set in the ap-options field, it indicates to the server that the ticket is encrypted in the session key from the server's ticket-granting ticket rather than its secret key (This is used for user-to-user authentication as described in [6]). Since it is possible for the server to be registered in multiple realms, with different keys in each, the srealm field in the unencrypted portion of the ticket in the KRB_AP_REQ is used to specify which secret key the server should use to decrypt that ticket. The KRB_AP_ERR_NOKEY
認証情報について確かめるためのアルゴリズムは以下の通りです。 メッセージタイプがKRB_AP_REQでないなら、サーバは_ERR_エムエスジー_TYPE誤りをKRB_APに返します。 主要なバージョンが、KRBのTicketで_AP_REQがサーバが使用できる1つ(古いキーを示します、そして、サーバには、古いキーのコピーがもうない)でないことを示したなら、KRB_AP_ERR_BADKEYVER誤りは返されます。 USE- SESSION-KEY旗がap-オプション分野に設定されるなら、それは、チケットが秘密鍵よりむしろサーバのチケットを与えるチケットから主要なセッションのときに暗号化されるのをサーバに示します。(これはユーザからユーザー認証に[6])で説明されるように使用されます。 サーバが複数の分野にそれぞれの異なったキーに登録されるのが、可能であるので、KRB_AP_REQのチケットの非暗号化された部分のsrealm分野はサーバがそのチケットを解読するのにどの秘密鍵を使用するべきであるかを指定するのに使用されます。 KRB_AP_が間違える、_NOKEY
Kohl & Neuman [Page 21] RFC 1510 Kerberos September 1993
コールとヌーマン[21ページ]のRFCの1510のケルベロスの1993年9月
error code is returned if the server doesn't have the proper key to decipher the ticket.
サーバにチケットを解読する適切なキーがないなら、エラーコードは返されます。
The ticket is decrypted using the version of the server's key specified by the ticket. If the decryption routines detect a modification of the ticket (each encryption system must provide safeguards to detect modified ciphertext; see section 6), the KRB_AP_ERR_BAD_INTEGRITY error is returned (chances are good that different keys were used to encrypt and decrypt).
チケットは、チケットによって指定されたサーバのキーのバージョンを使用することで解読されます。 復号化ルーチンがチケットの変更を検出するなら(それぞれの暗号化システムは変更された暗号文を検出するために安全装置を提供しなければなりません; セクション6を見てください)、KRB_AP_ERR_BAD_INTEGRITY誤りは返されます(異なったキーが暗号化して、解読するのにおいて使用されていたという可能性は十分です)。
The authenticator is decrypted using the session key extracted from the decrypted ticket. If decryption shows it to have been modified, the KRB_AP_ERR_BAD_INTEGRITY error is returned. The name and realm of the client from the ticket are compared against the same fields in the authenticator. If they don't match, the KRB_AP_ERR_BADMATCH error is returned (they might not match, for example, if the wrong session key was used to encrypt the authenticator). The addresses in the ticket (if any) are then searched for an address matching the operating-system reported address of the client. If no match is found or the server insists on ticket addresses but none are present in the ticket, the KRB_AP_ERR_BADADDR error is returned.
固有識別文字は、解読されたチケットから抽出されたセッションキーを使用することで解読されます。 復号化が変更されたためにそれを示しているなら、KRB_AP_ERR_BAD_INTEGRITY誤りは返されます。 チケットからのクライアントの名前と分野は固有識別文字の同じ分野に対してたとえられます。 彼らが合っていないなら、KRB_AP_ERR_BADMATCH誤りは返されます(例えば、間違ったセッションキーが固有識別文字を暗号化するのに使用されるなら、彼らは合っていないでしょうに)。 そして、チケット(もしあれば)の中のアドレスはクライアントのオペレーティングシステムの報告されたアドレスに合っているアドレスを捜されます。 マッチが全く見つけられないか、サーバがチケットアドレスを主張しますが、またはなにもチケットの中に存在していないなら、KRB_AP_ERR_BADADDR誤りは返されます。
If the local (server) time and the client time in the authenticator differ by more than the allowable clock skew (e.g., 5 minutes), the KRB_AP_ERR_SKEW error is returned. If the server name, along with the client name, time and microsecond fields from the Authenticator match any recently-seen such tuples, the KRB_AP_ERR_REPEAT error is returned (Note that the rejection here is restricted to authenticators from the same principal to the same server. Other client principals communicating with the same server principal should not be have their authenticators rejected if the time and microsecond fields happen to match some other client's authenticator.). The server must remember any authenticator presented within the allowable clock skew, so that a replay attempt is guaranteed to fail. If a server loses track of any authenticator presented within the allowable clock skew, it must reject all requests until the clock skew interval has passed. This assures that any lost or re-played authenticators will fall outside the allowable clock skew and can no longer be successfully replayed (If this is not done, an attacker could conceivably record the ticket and authenticator sent over the network to a server, then disable the client's host, pose as the disabled host, and replay the ticket and authenticator to subvert the authentication.). If a sequence number is provided in the authenticator, the server saves it for later use in processing KRB_SAFE and/or KRB_PRIV messages. If a subkey is present, the server either saves it for later use or uses it to help generate its own choice for a subkey to be returned in a KRB_AP_REP message.
地方の(サーバ)時間と固有識別文字のクライアント時間が許容できる時計斜行(例えば、5分)以上で異なるなら、KRB_AP_ERR_SKEW誤りは返されます。 ここでの拒絶が同じ主体から同じサーバまで固有識別文字に制限されることに注意してください。時間とマイクロセカンドがクライアント名と共にAuthenticatorからさばくサーバー名が最近見られた状態でいずれかにも合っているなら、そのようなtuples、KRB_AP_ERR_REPEAT誤りは返されます(同じサーバ主体で交信する他のクライアント主体は時間とマイクロセカンド分野がたまたまある他のクライアントの固有識別文字に合っているならそれらの固有識別文字を拒絶させることであるべきではありません。)。 サーバは許容できる時計斜行の中に提示されたどんな固有識別文字も覚えていなければなりません、再生試みが失敗するように保証されるように。 サーバが何か許容できる時計斜行の中に提示された固有識別文字を見失うなら、時計斜行間隔が過ぎるまで、それはすべての要求を拒絶しなければなりません。 これはどんな無くなっているか再演された固有識別文字も許容できる時計斜行をそらせて、もう首尾よく再演できないことを保証します(これが完了していないなら、攻撃者は、認証を打倒するために多分ネットワークの上に送られたチケットと固有識別文字をサーバに記録して、次に、クライアントのホストを無効にして、障害があるホストのふりをして、チケットと固有識別文字を再演するかもしれません。)。 一連番号を固有識別文字に提供するなら、サーバは処理KRB_SAFE、そして/または、KRB_PRIVメッセージにおける後の使用のためにそれを貯蓄します。 サブキーが存在しているなら、サーバは、後の使用のためにそれを貯蓄するか、またはサブキーがKRB_AP_REPメッセージで返されるそれ自身の選択を生成するのを助けるのにそれを使用します。
Kohl & Neuman [Page 22] RFC 1510 Kerberos September 1993
コールとヌーマン[22ページ]のRFCの1510のケルベロスの1993年9月
The server computes the age of the ticket: local (server) time minus the start time inside the Ticket. If the start time is later than the current time by more than the allowable clock skew or if the INVALID flag is set in the ticket, the KRB_AP_ERR_TKT_NYV error is returned. Otherwise, if the current time is later than end time by more than the allowable clock skew, the KRB_AP_ERR_TKT_EXPIRED error is returned.
サーバはチケットの時代を計算します: Ticketの中の開始時刻を引いた地方の(サーバ)時間。 開始時刻が許容できる時計斜行かそれともINVALIDが弛むかどうか以上による現在の時間がチケットの中に設定されるより遅いなら、KRB_AP_ERR_TKT_NYV誤りは返されます。 さもなければ、現在の時間が終わりの時間より遅く許容できる時計斜行以上であるなら、KRB_AP_ERR_TKT_EXPIRED誤りは返されます。
If all these checks succeed without an error, the server is assured that the client possesses the credentials of the principal named in the ticket and thus, the client has been authenticated to the server. See section A.10 for pseudocode.
これらのすべてのチェックが誤りなしで成功するなら、サーバはクライアントにはチケットの中に指定された主体の資格証明書があることが保証されます、そして、その結果、クライアントはサーバに認証されました。擬似コードに関してセクションA.10を見てください。
3.2.4. Generation of a KRB_AP_REP message
3.2.4. KRB_AP_REPメッセージの世代
Typically, a client's request will include both the authentication information and its initial request in the same message, and the server need not explicitly reply to the KRB_AP_REQ. However, if mutual authentication (not only authenticating the client to the server, but also the server to the client) is being performed, the KRB_AP_REQ message will have MUTUAL-REQUIRED set in its ap-options field, and a KRB_AP_REP message is required in response. As with the error message, this message may be encapsulated in the application protocol if its "raw" form is not acceptable to the application's protocol. The timestamp and microsecond field used in the reply must be the client's timestamp and microsecond field (as provided in the authenticator). [Note: In the Kerberos version 4 protocol, the timestamp in the reply was the client's timestamp plus one. This is not necessary in version 5 because version 5 messages are formatted in such a way that it is not possible to create the reply by judicious message surgery (even in encrypted form) without knowledge of the appropriate encryption keys.] If a sequence number is to be included, it should be randomly chosen as described above for the authenticator. A subkey may be included if the server desires to negotiate a different subkey. The KRB_AP_REP message is encrypted in the session key extracted from the ticket. See section A.11 for pseudocode.
通常、クライアントの要求は同じメッセージに認証情報とその初期の要求の両方を含むでしょう、そして、サーバは明らかにKRB_AP_REQに答える必要はありません。 しかしながら、互いの認証(サーバにクライアントを認証するだけの、クライアントへのサーバ)が実行されていると、KRB_AP_REQメッセージで、ap-オプション分野でMUTUAL-REQUIREDを用意ができさせるでしょう、そして、KRB_AP_REPメッセージが応答で必要です。 エラーメッセージ、「生」のフォームがアプリケーションのプロトコルに許容していないなら、このメッセージはアプリケーション・プロトコルでカプセル化されるかもしれません。 回答に使用されるタイムスタンプとマイクロセカンド分野は、クライアントのタイムスタンプとマイクロセカンド分野であるに違いありません(固有識別文字に提供するように)。 [以下に注意してください。 ケルベロスバージョン4プロトコルでは、回答におけるタイムスタンプは、クライアントのタイムスタンプと1でした。 バージョン5メッセージが賢明なメッセージ外科(暗号化されたフォームさえでの)で適切な暗号化キーに関する知識なしで回答を作成するのが可能でないような方法でフォーマットされるので、これはバージョン5で必要ではありません。] 一連番号が含まれることであるなら、それは固有識別文字のために上で説明されるように手当たりしだいに選ばれるべきです。 サーバが、異なったサブキーを交渉することを望んでいるなら、サブキーは含まれるかもしれません。 KRB_AP_REPメッセージはチケットから抽出されたセッションキーで暗号化されます。 擬似コードに関してセクションA.11を見てください。
3.2.5. Receipt of KRB_AP_REP message
3.2.5. KRB_AP_REPメッセージの領収書
If a KRB_AP_REP message is returned, the client uses the session key from the credentials obtained for the server (Note that for encrypting the KRB_AP_REP message, the sub-session key is not used, even if present in the Authenticator.) to decrypt the message, and verifies that the timestamp and microsecond fields match those in the Authenticator it sent to the server. If they match, then the client is assured that the server is genuine. The sequence number and subkey (if present) are retained for later use. See section A.12 for
KRB_AP_REPメッセージを返すなら、クライアントは、サーバ(KRB_AP_REPメッセージを暗号化するのにおいて、サブセッションキーが使用されていないことに注意してください、Authenticatorに存在していても。)がメッセージを解読するように得られた資格証明書から主要なセッションを使用して、タイムスタンプとマイクロセカンド分野がそれがサーバに送ったAuthenticatorでそれらに合っていることを確かめます。合っているなら、クライアントはサーバが本物であると確信しています。 一連番号とサブキー(存在しているなら)は後の使用のために保有されます。 セクションA.12を見ます。
Kohl & Neuman [Page 23] RFC 1510 Kerberos September 1993
コールとヌーマン[23ページ]のRFCの1510のケルベロスの1993年9月
pseudocode.
擬似コード。
3.2.6. Using the encryption key
3.2.6. 暗号化キーを使用します。
After the KRB_AP_REQ/KRB_AP_REP exchange has occurred, the client and server share an encryption key which can be used by the application. The "true session key" to be used for KRB_PRIV, KRB_SAFE, or other application-specific uses may be chosen by the application based on the subkeys in the KRB_AP_REP message and the authenticator (Implementations of the protocol may wish to provide routines to choose subkeys based on session keys and random numbers and to orchestrate a negotiated key to be returned in the KRB_AP_REP message.). In some cases, the use of this session key will be implicit in the protocol; in others the method of use must be chosen from a several alternatives. We leave the protocol negotiations of how to use the key (e.g., selecting an encryption or checksum type) to the application programmer; the Kerberos protocol does not constrain the implementation options.
KRB_AP_REQ/KRB_AP_REP交換が起こった後に、クライアントとサーバはアプリケーションで使用できる暗号化キーを共有します。 KRB_PRIV、KRB_SAFE、または他のアプリケーション特有の用途に使用されるべき「本当のセッションキー」はKRB_AP_REPメッセージと固有識別文字でサブキーに基づくアプリケーションで選ばれるかもしれません(プロトコルの実装はセッションキーと乱数に基づくサブキーを選んで、KRB_AP_REPメッセージで返される交渉されたキーを調整するためにルーチンを提供したがっているかもしれません。)。 いくつかの場合、このセッションキーの使用はプロトコルで暗黙になるでしょう。 他のものでは、いくつかの選択肢から使用のメソッドを選ばなければなりません。 私たちはどう、キー(例えば、暗号化を選択するか、チェックサムタイプ)を使用するかに関する議定書交渉をアプリケーション・プログラマーに任せます。 ケルベロスプロトコルは実装オプションを抑制しません。
With both the one-way and mutual authentication exchanges, the peers should take care not to send sensitive information to each other without proper assurances. In particular, applications that require privacy or integrity should use the KRB_AP_REP or KRB_ERROR responses from the server to client to assure both client and server of their peer's identity. If an application protocol requires privacy of its messages, it can use the KRB_PRIV message (section 3.5). The KRB_SAFE message (section 3.4) can be used to assure integrity.
両方の一方向の、そして、互いの認証交換で、同輩は、適切な保証なしで機密情報を互いに送らないように注意するべきです。 特に、プライバシーか保全を必要とするアプリケーションは、クライアントと彼らの同輩のアイデンティティのサーバの両方を保証するのにサーバからクライアントにKRB_AP_REPかKRB_ERROR応答を使用するべきです。 アプリケーション・プロトコルがメッセージのプライバシーを必要とするなら、それはKRB_PRIVメッセージ(セクション3.5)を使用できます。 保全を保証するのに、KRB_SAFEメッセージ(セクション3.4)を使用できます。
3.3. The Ticket-Granting Service (TGS) Exchange
3.3. チケットを与えるサービス(TGS)交換
Summary
概要
Message direction Message type Section 1. Client to Kerberos KRB_TGS_REQ 5.4.1 2. Kerberos to client KRB_TGS_REP or 5.4.2 KRB_ERROR 5.9.1
メッセージ方向Messageはセクション1をタイプします。 ケルベロスKRB_TGS_REQ5.4.1 2へのクライアント。 クライアントKRB_TGS_REPへのケルベロスか5.4.2KRB_ERROR5.9.1
The TGS exchange between a client and the Kerberos Ticket-Granting Server is initiated by a client when it wishes to obtain authentication credentials for a given server (which might be registered in a remote realm), when it wishes to renew or validate an existing ticket, or when it wishes to obtain a proxy ticket. In the first case, the client must already have acquired a ticket for the Ticket-Granting Service using the AS exchange (the ticket-granting ticket is usually obtained when a client initially authenticates to the system, such as when a user logs in). The message format for the TGS exchange is almost identical to that for the AS exchange. The primary difference is that encryption and decryption in the TGS
与えられたサーバ(リモート分野に登録されるかもしれない)に認証資格証明書を得たがっているとき、クライアントとTicketを与えているケルベロスServerの間のTGS交換はクライアントによって起こされます、既存のチケットを更新したいか、有効にしたがっている、またはプロキシチケットを得たがっているとき。 前者の場合、クライアントがAS交換を使用することで既にTicketを与えているServiceのチケットを入手したに違いない、(クライアントが初めはいつとしてそのようなシステムにユーザを認証するかと通常、チケットを与えるチケットを得る、中のログ) AS交換に、TGS交換のためのメッセージ・フォーマットはそれとほとんど同じです。 プライマリ違いは、TGSのその暗号化と復号化です。
Kohl & Neuman [Page 24] RFC 1510 Kerberos September 1993
コールとヌーマン[24ページ]のRFCの1510のケルベロスの1993年9月
exchange does not take place under the client's key. Instead, the session key from the ticket-granting ticket or renewable ticket, or sub-session key from an Authenticator is used. As is the case for all application servers, expired tickets are not accepted by the TGS, so once a renewable or ticket-granting ticket expires, the client must use a separate exchange to obtain valid tickets.
交換はクライアントのキーの下に起こりません。 代わりに、Authenticatorからのセッションのチケットを与えるチケットか再生可能なものチケットから主要であるか、またはサブセッションのキーは使用されています。 すべてのアプリケーション・サーバーのためのケースのように、有効期限の切れた切符がTGSによって受け入れられないので、再生可能なものかチケットを与えるチケットがいったん期限が切れると、クライアントは有効なチケットを得るのに別々の交換を使用しなければなりません。
The TGS exchange consists of two messages: A request (KRB_TGS_REQ) from the client to the Kerberos Ticket-Granting Server, and a reply (KRB_TGS_REP or KRB_ERROR). The KRB_TGS_REQ message includes information authenticating the client plus a request for credentials. The authentication information consists of the authentication header (KRB_AP_REQ) which includes the client's previously obtained ticket- granting, renewable, or invalid ticket. In the ticket-granting ticket and proxy cases, the request may include one or more of: a list of network addresses, a collection of typed authorization data to be sealed in the ticket for authorization use by the application server, or additional tickets (the use of which are described later). The TGS reply (KRB_TGS_REP) contains the requested credentials, encrypted in the session key from the ticket-granting ticket or renewable ticket, or if present, in the subsession key from the Authenticator (part of the authentication header). The KRB_ERROR message contains an error code and text explaining what went wrong. The KRB_ERROR message is not encrypted. The KRB_TGS_REP message contains information which can be used to detect replays, and to associate it with the message to which it replies. The KRB_ERROR message also contains information which can be used to associate it with the message to which it replies, but the lack of encryption in the KRB_ERROR message precludes the ability to detect replays or fabrications of such messages.
TGS交換は2つのメッセージから成ります: クライアントからTicketを与えているケルベロスServerまでの要求(KRB_TGS_REQ)、および回答(KRB_TGS_REPかKRB_ERROR)。 KRB_TGS_REQメッセージはクライアントを認証する情報と資格証明書を求める要求を含んでいます。 どれがクライアントの以前に得られたチケットの与える、再生可能なもの、または無効のチケットを含んでいるかという認証情報は認証ヘッダー(KRB_AP_REQ)から成ります。 チケットを与えるチケットとプロキシ事件では、要求は以下について1つ以上を含むかもしれません。 ネットワーク・アドレスのリスト、承認使用のチケットの中にアプリケーション・サーバーによって封ををされるべきタイプされた承認データ、または追加チケット(それの使用は後で説明される)の収集。 TGS回答(KRB_TGS_REP)はチケットを与えるチケットか再生可能なものチケットから主要なセッション、または存在しているなら暗号化された要求された資格証明書を含んでいます、Authenticator(認証ヘッダーの一部)から主要な「副-セッション」で。 KRB_ERRORメッセージは何が支障をきたしたかがわかるエラーコードとテキストを含んでいます。 KRB_ERRORメッセージは暗号化されていません。 KRB_TGS_REPメッセージは再生を検出して、それが返答するメッセージにそれを関連づけるのに使用できる情報を含んでいます。 また、KRB_ERRORメッセージはそれが返答するメッセージにそれを関連づけるのに使用できる情報を含んでいますが、KRB_ERRORメッセージにおける、暗号化の不足はそのようなメッセージの再生か製作を検出する能力を排除します。
3.3.1. Generation of KRB_TGS_REQ message
3.3.1. KRB_TGS_REQメッセージの世代
Before sending a request to the ticket-granting service, the client must determine in which realm the application server is registered [Note: This can be accomplished in several ways. It might be known beforehand (since the realm is part of the principal identifier), or it might be stored in a nameserver. Presently, however, this information is obtained from a configuration file. If the realm to be used is obtained from a nameserver, there is a danger of being spoofed if the nameservice providing the realm name is not authenticated. This might result in the use of a realm which has been compromised, and would result in an attacker's ability to compromise the authentication of the application server to the client.]. If the client does not already possess a ticket-granting ticket for the appropriate realm, then one must be obtained. This is first attempted by requesting a ticket-granting ticket for the destination realm from the local Kerberos server (using the
チケットを与えるサービスに要求を送る前に、クライアントは、アプリケーション・サーバーがどの分野で登録されているかを決心しなければなりません。[以下に注意してください。 いくつかの方法でこれを達成できます。 あらかじめ、それを知っているかもしれませんか(分野が主要な識別子の一部であるので)、またはネームサーバでそれを保存するかもしれません。しかしながら、現在、構成ファイルからこの情報を得ます。 ネームサーバから使用されるべき分野を得るなら、分野名を提供するnameserviceが認証されないなら偽造されるという危険があります。 これは、感染された分野の使用をもたらすかもしれなくて、アプリケーション・サーバーの認証にクライアントに感染する攻撃者の能力をもたらすでしょう。]. クライアントが既に適切な分野のチケットを与えるチケットを所有しないなら、得なければなりません。 これが最初にローカルのケルベロスサーバから目的地分野のチケットを与えるチケットを要求することによって試みられる、(使用
Kohl & Neuman [Page 25] RFC 1510 Kerberos September 1993
コールとヌーマン[25ページ]のRFCの1510のケルベロスの1993年9月
KRB_TGS_REQ message recursively). The Kerberos server may return a TGT for the desired realm in which case one can proceed. Alternatively, the Kerberos server may return a TGT for a realm which is "closer" to the desired realm (further along the standard hierarchical path), in which case this step must be repeated with a Kerberos server in the realm specified in the returned TGT. If neither are returned, then the request must be retried with a Kerberos server for a realm higher in the hierarchy. This request will itself require a ticket-granting ticket for the higher realm which must be obtained by recursively applying these directions.
REQが再帰的に通信させるKRB_TGS_) ケルベロスサーバはケース1が続くことができる必要な分野にTGTを返すかもしれません。 あるいはまた、ケルベロスサーバは「より近いところに必要な分野の」(標準の階層的な経路に沿って、より遠くに)ある分野にTGTを返すかもしれません、その場合、返されたTGTで指定された分野でケルベロスサーバでこのステップを繰り返さなければなりません。 どちらも返さないなら、ケルベロスサーバで分野に要求を階層構造で、より高く再試行しなければなりません。 この要求はこれらの方向を再帰的に適用することによって得なければならないより高い分野のチケットを与えるチケットを必要とするためにそれ自体で望んでいます。
Once the client obtains a ticket-granting ticket for the appropriate realm, it determines which Kerberos servers serve that realm, and contacts one. The list might be obtained through a configuration file or network service; as long as the secret keys exchanged by realms are kept secret, only denial of service results from a false Kerberos server.
クライアントがいったん適切な分野のチケットを与えるチケットを得ると、それは、どのケルベロスサーバがその分野に役立つかを決定して、1つに連絡します。 構成ファイルかネットワーク・サービスでリストを得るかもしれません。 分野によって交換された秘密鍵が秘密にされる限り、サービスの否定だけが誤ったケルベロスサーバから生じます。
As in the AS exchange, the client may specify a number of options in the KRB_TGS_REQ message. The client prepares the KRB_TGS_REQ message, providing an authentication header as an element of the padata field, and including the same fields as used in the KRB_AS_REQ message along with several optional fields: the enc-authorization- data field for application server use and additional tickets required by some options.
AS交換のように、クライアントはKRB_TGS_REQメッセージにおける多くのオプションを指定するかもしれません。 クライアントはKRB_TGS_REQメッセージを準備します、padata分野の要素として認証ヘッダーを提供して、いくつかの任意の分野に伴うKRB_AS_REQメッセージで使用されるのと同じ分野を含んでいて: アプリケーション・サーバー使用と追加チケットのためのenc-承認データ・フィールドがいくつかのオプションで必要です。
In preparing the authentication header, the client can select a sub- session key under which the response from the Kerberos server will be encrypted (If the client selects a sub-session key, care must be taken to ensure the randomness of the selected subsession key. One approach would be to generate a random number and XOR it with the session key from the ticket-granting ticket.). If the sub-session key is not specified, the session key from the ticket-granting ticket will be used. If the enc-authorization-data is present, it must be encrypted in the sub-session key, if present, from the authenticator portion of the authentication header, or if not present in the session key from the ticket-granting ticket.
認証ヘッダーに準備させる際に、クライアントはケルベロスサーバからの応答が暗号化されるサブセッションキーを選択できます。(クライアントがサブセッションキーを選択するなら、選択された「副-セッション」キーの偶発性を確実にするために注意しなければなりません。 1つのアプローチは乱数を生成するだろうことであり、XORはそれです。チケットを与えるチケットから主要なセッションで。). サブセッションキーが指定されないと、チケットを与えるチケットから主要なセッションは使用されるでしょう。 enc承認データが存在しているなら、認証ヘッダーの固有識別文字一部、またはまして、チケットを与えるチケットから主要なセッションにおけるプレゼントから主要で、現在のサブセッションのときにそれを暗号化しなければなりません。
Once prepared, the message is sent to a Kerberos server for the destination realm. See section A.5 for pseudocode.
いったん準備すると、目的地分野のためにケルベロスサーバにメッセージを送ります。 擬似コードに関してセクションA.5を見てください。
3.3.2. Receipt of KRB_TGS_REQ message
3.3.2. KRB_TGS_REQメッセージの領収書
The KRB_TGS_REQ message is processed in a manner similar to the KRB_AS_REQ message, but there are many additional checks to be performed. First, the Kerberos server must determine which server the accompanying ticket is for and it must select the appropriate key to decrypt it. For a normal KRB_TGS_REQ message, it will be for the
KRB_TGS_REQメッセージはKRB_AS_REQメッセージと同様の方法で処理されますが、実行されるために、多くの追加チェックがあります。 まず最初に、ケルベロスサーバは、付随のチケットがどのサーバのためにあるかを決定しなければなりません、そして、それはそれを解読するために適切なキーを選択しなければなりません。 正常なKRB_TGS_REQメッセージに関しては、それはそうでしょう。
Kohl & Neuman [Page 26] RFC 1510 Kerberos September 1993
コールとヌーマン[26ページ]のRFCの1510のケルベロスの1993年9月
ticket granting service, and the TGS's key will be used. If the TGT was issued by another realm, then the appropriate inter-realm key must be used. If the accompanying ticket is not a ticket granting ticket for the current realm, but is for an application server in the current realm, the RENEW, VALIDATE, or PROXY options are specified in the request, and the server for which a ticket is requested is the server named in the accompanying ticket, then the KDC will decrypt the ticket in the authentication header using the key of the server for which it was issued. If no ticket can be found in the padata field, the KDC_ERR_PADATA_TYPE_NOSUPP error is returned.
サービスを承諾するチケット、およびTGSのキーは使用されるでしょう。 TGTが別の分野によって発行されたなら、適切な相互分野キーを使用しなければなりません。 付随のチケットが現在の分野のチケットを与えないどんなチケットですがも、アプリケーション・サーバーのために現在の分野にあって、RENEW、VALIDATE、またはPROXYオプションが要求で指定されて、チケットが要求されているサーバが付随のチケットの中に指定されたサーバであるなら、KDCは、それが発行されたサーバのキーを使用することで認証ヘッダーのチケットを解読するでしょう。 padata野原でチケットを全く発見されることができないなら、KDC_ERR_PADATA_TYPE_NOSUPP誤りは返されます。
Once the accompanying ticket has been decrypted, the user-supplied checksum in the Authenticator must be verified against the contents of the request, and the message rejected if the checksums do not match (with an error code of KRB_AP_ERR_MODIFIED) or if the checksum is not keyed or not collision-proof (with an error code of KRB_AP_ERR_INAPP_CKSUM). If the checksum type is not supported, the KDC_ERR_SUMTYPE_NOSUPP error is returned. If the authorization-data are present, they are decrypted using the sub-session key from the Authenticator.
付随のチケットがいったん解読されると、要求のコンテンツ、およびチェックサムが合っていないか(KRB_AP_ERR_MODIFIEDのエラーコードで)、合わせられないまたは耐でないならチェックサム衝突の(KRB_AP_ERR_INAPP_CKSUMのエラーコードがある)拒絶されたメッセージに対してAuthenticatorのユーザによって供給されたチェックサムについて確かめなければなりません。 チェックサムタイプが支持されないなら、KDC_ERR_SUMTYPE_NOSUPP誤りは返されます。 認可データが存在しているなら、それらは、Authenticatorから主要なサブセッションを使用することで解読されます。
If any of the decryptions indicate failed integrity checks, the KRB_AP_ERR_BAD_INTEGRITY error is returned.
復号化のどれかが、失敗した保全がチェックするのを示すなら、KRB_AP_ERR_BAD_INTEGRITY誤りは返されます。
3.3.3. Generation of KRB_TGS_REP message
3.3.3. KRB_TGS_REPメッセージの世代
The KRB_TGS_REP message shares its format with the KRB_AS_REP (KRB_KDC_REP), but with its type field set to KRB_TGS_REP. The detailed specification is in section 5.4.2.
KRB_TGS_REPメッセージはKRB_AS_REP(KRB_KDC_REP)にもかかわらず、KRB_TGS_REPに設定されたタイプ分野と形式を共有します。セクション5.4.2には仕様詳細があります。
The response will include a ticket for the requested server. The Kerberos database is queried to retrieve the record for the requested server (including the key with which the ticket will be encrypted). If the request is for a ticket granting ticket for a remote realm, and if no key is shared with the requested realm, then the Kerberos server will select the realm "closest" to the requested realm with which it does share a key, and use that realm instead. This is the only case where the response from the KDC will be for a different server than that requested by the client.
応答は要求されたサーバのチケットを含むでしょう。ケルベロスデータベースは、要求されたサーバのための記録を検索するために質問されます(チケットがコード化されるキーを含んでいて)。 要求がリモート分野のチケットを与えるチケットのためのものであり、キーが全く要求された分野と共有されないと、ケルベロスサーバは「最も近いところでそれとキーを共有して、代わりにその分野を使用する要求された分野の」分野を選択するでしょう。 これはKDCからの応答がクライアントによって要求されたそれと異なったサーバのためにある唯一のそうです。
By default, the address field, the client's name and realm, the list of transited realms, the time of initial authentication, the expiration time, and the authorization data of the newly-issued ticket will be copied from the ticket-granting ticket (TGT) or renewable ticket. If the transited field needs to be updated, but the transited type is not supported, the KDC_ERR_TRTYPE_NOSUPP error is returned.
初期の認証、満了時間、および認可のデフォルトでとアドレス・フィールドとクライアントの名前と分野、通過している分野のリスト、時に、新譜のチケットに関するデータはチケットを与えるチケット(TGT)か再生可能なものチケットからコピーされるでしょう。 通過している分野が、アップデートする必要がありますが、通過しているタイプが支持されないなら、KDC_ERR_TRTYPE_NOSUPP誤りは返されます。
Kohl & Neuman [Page 27] RFC 1510 Kerberos September 1993
コールとヌーマン[27ページ]のRFCの1510のケルベロスの1993年9月
If the request specifies an endtime, then the endtime of the new ticket is set to the minimum of (a) that request, (b) the endtime from the TGT, and (c) the starttime of the TGT plus the minimum of the maximum life for the application server and the maximum life for the local realm (the maximum life for the requesting principal was already applied when the TGT was issued). If the new ticket is to be a renewal, then the endtime above is replaced by the minimum of (a) the value of the renew_till field of the ticket and (b) the starttime for the new ticket plus the life (endtimestarttime) of the old ticket.
要求がendtimeを指定するなら、新しいチケットのendtimeは(a) その要求、(b) TGTからのendtime、および(c) TGTのstarttimeの最小限とアプリケーション・サーバーのための最大の人生と地方の分野に、最大の人生の最小限へのセット(TGTが発行されたとき、要求している校長にとって、最大の人生は既に適用された)です。 新しいチケットによる更新であるつもりであるなら上のendtimeを(a) 価値の最小限に取り替える、(b) 新しいチケットのためのチケットとstarttimeの分野と古いチケットの人生(endtimestarttime)まで_を取り替えてください。
If the FORWARDED option has been requested, then the resulting ticket will contain the addresses specified by the client. This option will only be honored if the FORWARDABLE flag is set in the TGT. The PROXY option is similar; the resulting ticket will contain the addresses specified by the client. It will be honored only if the PROXIABLE flag in the TGT is set. The PROXY option will not be honored on requests for additional ticket-granting tickets.
FORWARDEDオプションが要求されると、結果として起こるチケットはクライアントによって指定されたアドレスを含むでしょう。 FORWARDABLE旗がTGTに設定される場合にだけ、このオプションは光栄に思うようになるでしょう。 PROXYオプションは同様です。 結果として起こるチケットはクライアントによって指定されたアドレスを含むでしょう。 TGTのPROXIABLE旗が設定される場合にだけ、光栄に思うようになるでしょう。 PROXYオプションは追加チケットを与えるチケットを求める要求のときに光栄に思うようにならないでしょう。
If the requested start time is absent or indicates a time in the past, then the start time of the ticket is set to the authentication server's current time. If it indicates a time in the future, but the POSTDATED option has not been specified or the MAY-POSTDATE flag is not set in the TGT, then the error KDC_ERR_CANNOT_POSTDATE is returned. Otherwise, if the ticket-granting ticket has the MAYPOSTDATE flag set, then the resulting ticket will be postdated and the requested starttime is checked against the policy of the local realm. If acceptable, the ticket's start time is set as requested, and the INVALID flag is set. The postdated ticket must be validated before use by presenting it to the KDC after the starttime has been reached. However, in no case may the starttime, endtime, or renew- till time of a newly-issued postdated ticket extend beyond the renew-till time of the ticket-granting ticket.
要求された開始時刻が休むか、または過去に時間を示すなら、チケットの開始時刻は認証サーバの現在の時間に決められます。 _POSTDATEが将来、POSTDATEDオプションだけが指定されていないか、5月-POSTDATE旗がTGTに設定されないで、またまたは次に、誤りKDC_ERR_が指定されない時代に返されるのを示すなら。 さもなければ、チケットを与えるチケットでMAYPOSTDATE旗を設定すると、結果として起こるチケットは先日付を書かれるでしょう、そして、要求されたstarttimeは地方の分野の方針に対してチェックされます。 許容できるなら、チケットの開始時刻は要求された通り決められます、そして、INVALID旗は設定されます。 starttimeの後のKDCにそれを提示するのによる使用に達する前に先日付を書かれたチケットを有効にしなければなりません。 しかしながら、いいえがケースに入れるコネがそうするかもしれない、starttime、新譜の先日付を書かれたチケットの時間がチケットを与えるチケットの現金箱を取り替えている時間を超えたところまで広げる現金箱をendtimeするか、または取り替えてください。
If the ENC-TKT-IN-SKEY option has been specified and an additional ticket has been included in the request, the KDC will decrypt the additional ticket using the key for the server to which the additional ticket was issued and verify that it is a ticket-granting ticket. If the name of the requested server is missing from the request, the name of the client in the additional ticket will be used. Otherwise the name of the requested server will be compared to the name of the client in the additional ticket and if different, the request will be rejected. If the request succeeds, the session key from the additional ticket will be used to encrypt the new ticket that is issued instead of using the key of the server for which the new ticket will be used (This allows easy implementation of user-to- user authentication [6], which uses ticket-granting ticket session keys in lieu of secret server keys in situations where such secret
ENC-TKT IN SKEYオプションが指定されて、追加チケットが要求に含まれているなら、KDCは、追加チケットが発行されたサーバにキーを使用することで追加チケットを解読して、それがチケットを与えるチケットであることを確かめるでしょう。 要求されたサーバの名前が要求によってなくなると、追加チケットの中のクライアントの名前は使用されるでしょう。 さもなければ、要求されたサーバの名前は追加チケットの中にクライアントの名前と比較されるでしょう、そして、異なると、要求は拒絶されるでしょう。 要求が成功すると、追加チケットから主要なセッションは、新しいチケットが使用されるサーバのキーを使用することの代わりに発行される新しいチケットをコード化するのに使用されるでしょう。(これがユーザからユーザー認証への[6]の簡単な実現を許す、どれが状況における秘密のサーバキーの代わりにあれほど秘密であるところでチケットを与えるチケットセッションキーを使用するか。
Kohl & Neuman [Page 28] RFC 1510 Kerberos September 1993
コールとヌーマン[28ページ]のRFCの1510のケルベロスの1993年9月
keys could be easily compromised.).
キーが容易に妥協できた、)
If the name of the server in the ticket that is presented to the KDC as part of the authentication header is not that of the ticket- granting server itself, and the server is registered in the realm of the KDC, If the RENEW option is requested, then the KDC will verify that the RENEWABLE flag is set in the ticket and that the renew_till time is still in the future. If the VALIDATE option is rqeuested, the KDC will check that the starttime has passed and the INVALID flag is set. If the PROXY option is requested, then the KDC will check that the PROXIABLE flag is set in the ticket. If the tests succeed, the KDC will issue the appropriate new ticket.
チケットの中の認証ヘッダーの一部としてKDCに提示されているのが、サーバ自体を与えるチケットのものであり、サーバはKDCの分野に登録されます、IfということであるサーバではRENEWオプションが名前であるなら要求されて、次に、KDCが、RENEWABLE旗がチケットとそれに設定されることを確かめる、_まだ未来に、時間があるまで、更新してください。 VALIDATEオプションがrqeuestedされると、KDCは、starttimeが通ったのをチェックするでしょう、そして、INVALID旗は設定されます。 PROXYオプションが要求されると、KDCは、PROXIABLE旗がチケットの中に設定されるのをチェックするでしょう。 テストが成功すると、KDCは適切な新しいチケットを発行するでしょう。
Whenever a request is made to the ticket-granting server, the presented ticket(s) is(are) checked against a hot-list of tickets which have been canceled. This hot-list might be implemented by storing a range of issue dates for "suspect tickets"; if a presented ticket had an authtime in that range, it would be rejected. In this way, a stolen ticket-granting ticket or renewable ticket cannot be used to gain additional tickets (renewals or otherwise) once the theft has been reported. Any normal ticket obtained before it was reported stolen will still be valid (because they require no interaction with the KDC), but only until their normal expiration time.
要求をチケットを与えるサーバにするときはいつも、提示されたチケットはホットリストに対してチェックされます(あります)。 このホットリストは「疑わしいチケット」のさまざまな問題日付を格納することによって、実行されるかもしれません。 提示されたチケットがその範囲にauthtimeを持っているなら、それは拒絶されるでしょうに。 このように、窃盗がいったん報告されたあとに追加チケット(更新であるかそうでない)を獲得するのに盗まれたチケットを与えるチケットか再生可能なものチケットを使用できません。 まだ有効であると(彼らがKDCとの相互作用を全く必要としないので)盗まれた状態で報告される前にもかかわらず、彼らの正常な満了時間までしか得られなかったどんな通常のチケット。
The ciphertext part of the response in the KRB_TGS_REP message is encrypted in the sub-session key from the Authenticator, if present, or the session key key from the ticket-granting ticket. It is not encrypted using the client's secret key. Furthermore, the client's key's expiration date and the key version number fields are left out since these values are stored along with the client's database record, and that record is not needed to satisfy a request based on a ticket-granting ticket. See section A.6 for pseudocode.
KRB_TGS_REPメッセージにおける応答の暗号文部分はAuthenticatorから主要で、現在のサブセッション、またはチケットを与えるチケットから主要なセッションキーでコード化されます。 それは、クライアントの秘密鍵を使用することでコード化されていません。 その上、これらの値がクライアントのデータベース・レコードと共に格納されるので、クライアントのキーの有効期限と主要なバージョンナンバーフィールドは省かれます、そして、その記録はチケットを与えるチケットに基づく要望に応じるのに必要ではありません。 擬似コードに関してセクションA.6を見てください。
3.3.3.1. Encoding the transited field
3.3.3.1. 通過している分野をコード化します。
If the identity of the server in the TGT that is presented to the KDC as part of the authentication header is that of the ticket-granting service, but the TGT was issued from another realm, the KDC will look up the inter-realm key shared with that realm and use that key to decrypt the ticket. If the ticket is valid, then the KDC will honor the request, subject to the constraints outlined above in the section describing the AS exchange. The realm part of the client's identity will be taken from the ticket-granting ticket. The name of the realm that issued the ticket-granting ticket will be added to the transited field of the ticket to be issued. This is accomplished by reading the transited field from the ticket-granting ticket (which is treated as an unordered set of realm names), adding the new realm to the set,
認証ヘッダーの一部としてKDCに寄贈されるTGTのサーバのアイデンティティがチケットを与えるサービスのものですが、TGTが別の分野に起こされたなら、KDCはチケットを解読するためにそんなに主要なその分野と使用と共有された相互分野キーを見上げるでしょう。 チケットが有効であるなら、KDCは上にAS交換について説明するセクションで概説された規制を条件として要求を光栄に思うでしょう。 チケットを与えるチケットからクライアントのアイデンティティの分野の部分を取るでしょう。 チケットを与えるチケットを発行した分野の名前は発行されるチケットの通過している分野に加えられるでしょう。 これはチケットを与えるチケット(順不同のセットの分野名として扱われる)から通過している分野を読むことによって、達成されます、新しい分野をセットに追加して
Kohl & Neuman [Page 29] RFC 1510 Kerberos September 1993
コールとヌーマン[29ページ]のRFCの1510のケルベロスの1993年9月
then constructing and writing out its encoded (shorthand) form (this may involve a rearrangement of the existing encoding).
次に、コード化された(速記)書式(これは既存のコード化の配列換えにかかわるかもしれない)を構成して、書き上げます。
Note that the ticket-granting service does not add the name of its own realm. Instead, its responsibility is to add the name of the previous realm. This prevents a malicious Kerberos server from intentionally leaving out its own name (it could, however, omit other realms' names).
チケットを与えるサービスがそれ自身の分野の名前を加えないことに注意してください。 代わりに、責任は前の分野の名前を加えることです。 これは、悪意があるケルベロスサーバが故意にそれ自身の名前を省くのを防ぎます(しかしながら、それは他の分野の名前を省略するかもしれません)。
The names of neither the local realm nor the principal's realm are to be included in the transited field. They appear elsewhere in the ticket and both are known to have taken part in authenticating the principal. Since the endpoints are not included, both local and single-hop inter-realm authentication result in a transited field that is empty.
どちらも地方の分野か校長の分野の名前は通過している分野に含まれることです。 それらは、チケットの中のほかの場所に見えて、校長を認証するのに参加したのがともに知られています。 終点が含まれていないので、ともに地方の、そして、単一のホップの相互分野認証は人影がない通過している分野をもたらします。
Because the name of each realm transited is added to this field, it might potentially be very long. To decrease the length of this field, its contents are encoded. The initially supported encoding is optimized for the normal case of inter-realm communication: a hierarchical arrangement of realms using either domain or X.500 style realm names. This encoding (called DOMAIN-X500-COMPRESS) is now described.
通過されたそれぞれの分野の名前がこの分野に加えられるので、それは潜在的に非常に長いかもしれません。 この分野の長さを減少させるために、内容はコード化されます。 初めは支持されたコード化は相互分野コミュニケーションの正常なケースのために最適化されます: ドメインかX.500スタイル分野名のどちらかを使用する分野の階層的配列。 このコード化(DOMAIN-X500-COMPRESSと呼ばれる)は現在、説明されます。
Realm names in the transited field are separated by a ",". The ",", "\", trailing "."s, and leading spaces (" ") are special characters, and if they are part of a realm name, they must be quoted in the transited field by preceding them with a "\".
「通過している分野の分野名はa」によって切り離されます」 「The」、」、引きずる「\」、「s、および主な空間、(「「)、特殊文字と「\」でそれらに先行することによってそれらが分野名の一部、通過している分野でそれらを引用しなければならないということであるかどうかということである、」
A realm name ending with a "." is interpreted as being prepended to the previous realm. For example, we can encode traversal of EDU, MIT.EDU, ATHENA.MIT.EDU, WASHINGTON.EDU, and CS.WASHINGTON.EDU as:
「a」がある分野名前結末」は、前の分野にprependedされながら、解釈されます。 例えば、私たちは以下としてEDU、MIT.EDU、ATHENA.MIT.EDU、WASHINGTON.EDU、およびCS.WASHINGTON.EDUの縦断をコード化できます。
"EDU,MIT.,ATHENA.,WASHINGTON.EDU,CS.".
「EDU、MIT、アテーナー、WASHINGTON.EDU、Cs、」
Note that if ATHENA.MIT.EDU, or CS.WASHINGTON.EDU were endpoints, that they would not be included in this field, and we would have:
それらがこの分野に含まれていなくて、私たちが含まれていただろうというATHENA.MIT.EDU、またはCS.WASHINGTON.EDUであるなら終点であったメモ:
"EDU,MIT.,WASHINGTON.EDU"
「EDU、MIT、WASHINGTON.EDU、」
A realm name beginning with a "/" is interpreted as being appended to the previous realm (For the purpose of appending, the realm preceding the first listed realm is considered to be the null realm ("")). If it is to stand by itself, then it should be preceded by a space (" "). For example, we can encode traversal of /COM/HP/APOLLO, /COM/HP, /COM, and /COM/DEC as:
「a」/で始まる分野名」が前の分野に追加しながら解釈される、(追加の目的のために、最初の記載された分野に先行する分野がヌル分野であると考えられる、(「「)。」 それがそれ自体のそばにあるつもりであるならスペースがそれに先行するべきである、(「「)、」 例えば、私たちは以下として/COM/HP/APOLLO、/COM/HP、/COM、および/COM/DECの縦断をコード化できます。
"/COM,/HP,/APOLLO, /COM/DEC".
「/COM、/hp、/アポロ、/COM/DEC。」
Kohl & Neuman [Page 30] RFC 1510 Kerberos September 1993
コールとヌーマン[30ページ]のRFCの1510のケルベロスの1993年9月
Like the example above, if /COM/HP/APOLLO and /COM/DEC are endpoints, they they would not be included in this field, and we would have:
/COM/HP/APOLLOと/COM/DECは終点であり、それらはそれらです。上記の例のようにこの分野に含まれていなくて、私たちは含まれていたでしょう:
"/COM,/HP"
「/COM、/hp」
A null subfield preceding or following a "," indicates that all realms between the previous realm and the next realm have been traversed (For the purpose of interpreting null subfields, the client's realm is considered to precede those in the transited field, and the server's realm is considered to follow them.). Thus, "," means that all realms along the path between the client and the server have been traversed. ",EDU, /COM," means that that all realms from the client's realm up to EDU (in a domain style hierarchy) have been traversed, and that everything from /COM down to the server's realm in an X.500 style has also been traversed. This could occur if the EDU realm in one hierarchy shares an inter-realm key directly with the /COM realm in another hierarchy.
「aに先行するか、または続くヌル部分体」、」 前の分野と次の分野の間のすべての分野が横断されたのを示します(ヌル部分体を解釈する目的のために、クライアントの分野が通過している分野でそれらに先行すると考えられて、サーバの分野がそれらに続くと考えられます。)。 」 「このようにして、」手段、横断されています。 「EDU、/COM」、クライアントの分野からのすべての分野がEDU(ドメインスタイル階層構造の)に上げるそれが横断されて、また、/COMからX.500スタイルのサーバの分野までのそのすべてが横断されたことを意味します。 1つの階層構造のEDU分野が直接/COM分野のために別の階層構造で主要な相互分野を共有するなら、これは起こるかもしれません。
3.3.4. Receipt of KRB_TGS_REP message
3.3.4. KRB_TGS_REPメッセージの領収書
When the KRB_TGS_REP is received by the client, it is processed in the same manner as the KRB_AS_REP processing described above. The primary difference is that the ciphertext part of the response must be decrypted using the session key from the ticket-granting ticket rather than the client's secret key. See section A.7 for pseudocode.
KRB_TGS_REPがクライアントによって受け取られるとき、それは上で説明されたKRB_AS_REP処理と同じ方法で処理されます。 第一の違いはクライアントの秘密鍵よりむしろチケットを与えるチケットから主要なセッションを使用することで応答の暗号文部分を解読しなければならないということです。 擬似コードに関してセクションA.7を見てください。
3.4. The KRB_SAFE Exchange
3.4. KRBの_の安全な交換
The KRB_SAFE message may be used by clients requiring the ability to detect modifications of messages they exchange. It achieves this by including a keyed collisionproof checksum of the user data and some control information. The checksum is keyed with an encryption key (usually the last key negotiated via subkeys, or the session key if no negotiation has occured).
KRB_SAFEメッセージはそれらが交換するメッセージの変更を検出する能力を必要とするクライアントによって使用されるかもしれません。 それは、利用者データと何らかの制御情報の合わせられたcollisionproofチェックサムを含んでいることによって、これを達成します。 チェックサムは暗号化キーで合わせられます(通常、最後のキーがサブキーを通して交渉されたか、またはセッションキーは交渉でないならoccuredされました)。
3.4.1. Generation of a KRB_SAFE message
3.4.1. KRB_SAFEメッセージの世代
When an application wishes to send a KRB_SAFE message, it collects its data and the appropriate control information and computes a checksum over them. The checksum algorithm should be some sort of keyed one-way hash function (such as the RSA-MD5-DES checksum algorithm specified in section 6.4.5, or the DES MAC), generated using the sub-session key if present, or the session key. Different algorithms may be selected by changing the checksum type in the message. Unkeyed or non-collision-proof checksums are not suitable for this use.
アプリケーションがKRB_SAFEメッセージを送りたがっているとき、それは、データと適切な制御情報を集めて、それらの上でチェックサムを計算します。 チェックサムアルゴリズムは、主要な、しかし、現在のサブセッションを使用することで発生するある種の合わせられた片道ハッシュ関数(セクション6.4.5、またはDES MACで指定されたRSA-MD5-DESチェックサムアルゴリズムなどの)かセッションキーであるべきです。 異なったアルゴリズムは、メッセージでチェックサムタイプを変えることによって、選択されるかもしれません。 Unkeyedされるか耐非衝突のチェックサムはこの使用に適していません。
The control information for the KRB_SAFE message includes both a
KRB_SAFEメッセージのための制御情報は両方を含んでいます。
Kohl & Neuman [Page 31] RFC 1510 Kerberos September 1993
コールとヌーマン[31ページ]のRFCの1510のケルベロスの1993年9月
timestamp and a sequence number. The designer of an application using the KRB_SAFE message must choose at least one of the two mechanisms. This choice should be based on the needs of the application protocol.
タイムスタンプと一連番号。 KRB_SAFEメッセージを使用するアプリケーションのデザイナーは少なくとも2つのメカニズムの1つを選ばなければなりません。この選択はアプリケーション・プロトコルの必要性に基づくべきです。
Sequence numbers are useful when all messages sent will be received by one's peer. Connection state is presently required to maintain the session key, so maintaining the next sequence number should not present an additional problem.
メッセージが送ったすべてが人の同輩によって受け取られるとき、一連番号は役に立ちます。 接続状態は現在、次の一連番号が追加問題を提示するべきでないように、主要で、そう維持しているセッションを維持しなければなりません。
If the application protocol is expected to tolerate lost messages without them being resent, the use of the timestamp is the appropriate replay detection mechanism. Using timestamps is also the appropriate mechanism for multi-cast protocols where all of one's peers share a common sub-session key, but some messages will be sent to a subset of one's peers.
アプリケーション・プロトコルがそれらのない再送される無くなっているメッセージを許容すると予想されるなら、タイムスタンプの使用は適切な再生検出メカニズムです。 また、タイムスタンプを使用するのは、人の同輩が皆、一般的なサブセッションキーを共有するマルチキャストプロトコルのための適切な手段ですが、人の同輩の部分集合にいくつかのメッセージを送るでしょう。
After computing the checksum, the client then transmits the information and checksum to the recipient in the message format specified in section 5.6.1.
そして、チェックサムを計算した後に、クライアントはセクション5.6.1で指定されたメッセージ・フォーマットで情報とチェックサムを受取人に伝えます。
3.4.2. Receipt of KRB_SAFE message
3.4.2. KRB_SAFEメッセージの領収書
When an application receives a KRB_SAFE message, it verifies it as follows. If any error occurs, an error code is reported for use by the application.
アプリケーションがKRB_SAFEメッセージを受け取るとき、それは以下の通りそれについて確かめます。 何か誤りが発生するなら、エラーコードは使用のためにアプリケーションで報告されます。
The message is first checked by verifying that the protocol version and type fields match the current version and KRB_SAFE, respectively. A mismatch generates a KRB_AP_ERR_BADVERSION or KRB_AP_ERR_MSG_TYPE error. The application verifies that the checksum used is a collisionproof keyed checksum, and if it is not, a KRB_AP_ERR_INAPP_CKSUM error is generated. The recipient verifies that the operating system's report of the sender's address matches the sender's address in the message, and (if a recipient address is specified or the recipient requires an address) that one of the recipient's addresses appears as the recipient's address in the message. A failed match for either case generates a KRB_AP_ERR_BADADDR error. Then the timestamp and usec and/or the sequence number fields are checked. If timestamp and usec are expected and not present, or they are present but not current, the KRB_AP_ERR_SKEW error is generated. If the server name, along with the client name, time and microsecond fields from the Authenticator match any recently-seen such tuples, the KRB_AP_ERR_REPEAT error is generated. If an incorrect sequence number is included, or a sequence number is expected but not present, the KRB_AP_ERR_BADORDER error is generated. If neither a timestamp and usec or a sequence number is present, a KRB_AP_ERR_MODIFIED error is generated.
プロトコルバージョンとタイプ分野がそれぞれ最新版とKRB_SAFEに合っていることを確かめることによって、メッセージは最初に、チェックされます。 ミスマッチは、KRB_AP_がERR_BADVERSIONかKRB_AP_ERR_エムエスジー_TYPE誤りであると生成します。 アプリケーションは、使用されるチェックサムがcollisionproofがチェックサムを合わせたということであることを確かめます、そして、それがそうでないなら、KRB_AP_ERR_INAPP_CKSUM誤りは発生しています。 受取人は、オペレーティングシステムの送付者のレポートが、マッチがメッセージの送付者のアドレスと、(受取人アドレスが指定されるか、または受取人がアドレスを必要とするなら)それであると扱うことを確かめます。受取人のアドレスの1つはメッセージの受取人のアドレスとして現れます。 どちらかのケースのための失敗したマッチは、KRB_AP_がERR_BADADDR誤りであると生成します。 そして、タイムスタンプとusec、そして/または、一連番号分野はチェックされます。 それらがタイムスタンプとusecが予想されていて存在していないか、現在にもかかわらず、またはよく見られないなら、KRB_AP_ERR_SKEW誤りは発生しています。 時間とマイクロセカンドがクライアント名と共にAuthenticatorからさばくサーバー名が最近見られた状態でいずれかにも合っているなら、そのようなtuples、KRB_AP_ERR_REPEAT誤りは発生しています。 一連番号が不正確な一連番号が含まれているか、予想されていますが、または存在していないなら、KRB_AP_ERR_BADORDER誤りは発生しています。 タイムスタンプとusecも一連番号も存在していないなら、KRB_AP_ERR_MODIFIED誤りは発生しています。
Kohl & Neuman [Page 32] RFC 1510 Kerberos September 1993
コールとヌーマン[32ページ]のRFCの1510のケルベロスの1993年9月
Finally, the checksum is computed over the data and control information, and if it doesn't match the received checksum, a KRB_AP_ERR_MODIFIED error is generated.
最終的に、チェックサムはデータと制御情報に関して計算されます、そして、容認されたチェックサムを合わせないなら、KRB_AP_ERR_MODIFIED誤りは発生しています。
If all the checks succeed, the application is assured that the message was generated by its peer and was not modified in transit.
すべてのチェックが成功するなら、アプリケーションはメッセージが同輩によって生成されて、トランジットで変更されなかったことが保証されます。
3.5. The KRB_PRIV Exchange
3.5. KRB_PRIV交換
The KRB_PRIV message may be used by clients requiring confidentiality and the ability to detect modifications of exchanged messages. It achieves this by encrypting the messages and adding control information.
KRB_PRIVメッセージは秘密性と交換されたメッセージの変更を検出する能力を必要とするクライアントによって使用されるかもしれません。 それは、メッセージを暗号化して、制御情報を加えることによって、これを達成します。
3.5.1. Generation of a KRB_PRIV message
3.5.1. KRB_PRIVメッセージの世代
When an application wishes to send a KRB_PRIV message, it collects its data and the appropriate control information (specified in section 5.7.1) and encrypts them under an encryption key (usually the last key negotiated via subkeys, or the session key if no negotiation has occured). As part of the control information, the client must choose to use either a timestamp or a sequence number (or both); see the discussion in section 3.4.1 for guidelines on which to use. After the user data and control information are encrypted, the client transmits the ciphertext and some "envelope" information to the recipient.
アプリケーションがKRB_PRIVメッセージを送りたがっているとき、それは、データと適切な制御情報(セクション5.7.1では、指定される)を集めて、暗号化キーの下でそれらを暗号化します(通常、最後のキーがサブキーを通して交渉されたか、またはセッションキーは交渉でないならoccuredされました)。 制御情報の一部として、クライアントは、タイムスタンプか一連番号のどちらかを使用するのを選ばなければなりません(ともに)。 ガイドラインのためのセクション3.4.1における議論が進行中であるのを見てください、どれを使用するか。 利用者データと制御情報が暗号化されていた後に、クライアントは暗号文と何らかの「封筒」情報を受取人に伝えます。
3.5.2. Receipt of KRB_PRIV message
3.5.2. KRB_PRIVメッセージの領収書
When an application receives a KRB_PRIV message, it verifies it as follows. If any error occurs, an error code is reported for use by the application.
アプリケーションがKRB_PRIVメッセージを受け取るとき、それは以下の通りそれについて確かめます。 何か誤りが発生するなら、エラーコードは使用のためにアプリケーションで報告されます。
The message is first checked by verifying that the protocol version and type fields match the current version and KRB_PRIV, respectively. A mismatch generates a KRB_AP_ERR_BADVERSION or KRB_AP_ERR_MSG_TYPE error. The application then decrypts the ciphertext and processes the resultant plaintext. If decryption shows the data to have been modified, a KRB_AP_ERR_BAD_INTEGRITY error is generated. The recipient verifies that the operating system's report of the sender's address matches the sender's address in the message, and (if a recipient address is specified or the recipient requires an address) that one of the recipient's addresses appears as the recipient's address in the message. A failed match for either case generates a KRB_AP_ERR_BADADDR error. Then the timestamp and usec and/or the sequence number fields are checked. If timestamp and usec are expected and not present, or they are present but not current, the KRB_AP_ERR_SKEW error is generated. If the server name, along with
プロトコルバージョンとタイプ分野がそれぞれ最新版とKRB_PRIVに合っていることを確かめることによって、メッセージは最初に、チェックされます。 ミスマッチは、KRB_AP_がERR_BADVERSIONかKRB_AP_ERR_エムエスジー_TYPE誤りであると生成します。 アプリケーションは、次に、暗号文を解読して、結果の平文を処理します。 復号化が変更されたためにデータを示しているなら、KRB_AP_ERR_BAD_INTEGRITY誤りは発生しています。 受取人は、オペレーティングシステムの送付者のレポートが、マッチがメッセージの送付者のアドレスと、(受取人アドレスが指定されるか、または受取人がアドレスを必要とするなら)それであると扱うことを確かめます。受取人のアドレスの1つはメッセージの受取人のアドレスとして現れます。 どちらかのケースのための失敗したマッチは、KRB_AP_がERR_BADADDR誤りであると生成します。 そして、タイムスタンプとusec、そして/または、一連番号分野はチェックされます。 それらがタイムスタンプとusecが予想されていて存在していないか、現在にもかかわらず、またはよく見られないなら、KRB_AP_ERR_SKEW誤りは発生しています。 サーバー名であるなら
Kohl & Neuman [Page 33] RFC 1510 Kerberos September 1993
コールとヌーマン[33ページ]のRFCの1510のケルベロスの1993年9月
the client name, time and microsecond fields from the Authenticator match any recently-seen such tuples, the KRB_AP_ERR_REPEAT error is generated. If an incorrect sequence number is included, or a sequence number is expected but not present, the KRB_AP_ERR_BADORDER error is generated. If neither a timestamp and usec or a sequence number is present, a KRB_AP_ERR_MODIFIED error is generated.
Authenticatorからのクライアント名、時間、およびマイクロセカンド分野はどんな最近目にふれているそのようなtuplesにも合って、KRB_AP_ERR_REPEAT誤りは発生しています。 一連番号が不正確な一連番号が含まれているか、予想されていますが、または存在していないなら、KRB_AP_ERR_BADORDER誤りは発生しています。 タイムスタンプとusecも一連番号も存在していないなら、KRB_AP_ERR_MODIFIED誤りは発生しています。
If all the checks succeed, the application can assume the message was generated by its peer, and was securely transmitted (without intruders able to see the unencrypted contents).
すべてのチェックが成功するなら、アプリケーションは、メッセージが同輩によって生成されて、しっかりと送られた(非暗号化されたコンテンツを見ることができる侵入者なしで)と仮定できます。
3.6. The KRB_CRED Exchange
3.6. KRB_信用交換
The KRB_CRED message may be used by clients requiring the ability to send Kerberos credentials from one host to another. It achieves this by sending the tickets together with encrypted data containing the session keys and other information associated with the tickets.
KRB_CREDメッセージは1人のホストから別のものにケルベロス資格証明書を送る能力を必要とするクライアントによって使用されるかもしれません。 それは、セッションキーを含む暗号化されたデータとチケットに関連している他の情報と共にチケットを送ることによって、これを達成します。
3.6.1. Generation of a KRB_CRED message
3.6.1. KRB_CREDメッセージの世代
When an application wishes to send a KRB_CRED message it first (using the KRB_TGS exchange) obtains credentials to be sent to the remote host. It then constructs a KRB_CRED message using the ticket or tickets so obtained, placing the session key needed to use each ticket in the key field of the corresponding KrbCredInfo sequence of the encrypted part of the the KRB_CRED message.
アプリケーションがKRB_CREDメッセージを送りたがっているとき、それは最初に、リモートホストに送られる資格証明書を得ます(KRB_TGS交換を使用します)。 次に、それはそのように得られたチケットかチケットを使用することでKRB_CREDメッセージを構成します、KRB_CREDメッセージの暗号化された部分の対応するKrbCredInfo系列のキーフィールドに各チケットを使用するのに必要であるセッションキーを置いて。
Other information associated with each ticket and obtained during the KRB_TGS exchange is also placed in the corresponding KrbCredInfo sequence in the encrypted part of the KRB_CRED message. The current time and, if specifically required by the application the nonce, s- address, and raddress fields, are placed in the encrypted part of the KRB_CRED message which is then encrypted under an encryption key previosuly exchanged in the KRB_AP exchange (usually the last key negotiated via subkeys, or the session key if no negotiation has occured).
また、各チケットに関連づけられて、KRB_TGS交換の間に得られた他の情報はKRB_CREDメッセージの暗号化された部分に対応するKrbCredInfo系列に置かれます。 電流は調節されます、そして、アプリケーションで明確に必要であるなら、一回だけ、sアドレス、およびraddress野原は次に主要なpreviosulyがKRB_AP交換で交換した暗号化で暗号化されるKRB_CREDメッセージの暗号化された部分に置かれます(通常、最後のキーがサブキーを通して交渉されたか、またはセッションキーは交渉でないならoccuredされました)。
3.6.2. Receipt of KRB_CRED message
3.6.2. KRB_CREDメッセージの領収書
When an application receives a KRB_CRED message, it verifies it. If any error occurs, an error code is reported for use by the application. The message is verified by checking that the protocol version and type fields match the current version and KRB_CRED, respectively. A mismatch generates a KRB_AP_ERR_BADVERSION or KRB_AP_ERR_MSG_TYPE error. The application then decrypts the ciphertext and processes the resultant plaintext. If decryption shows the data to have been modified, a KRB_AP_ERR_BAD_INTEGRITY error is generated.
アプリケーションがKRB_CREDメッセージを受け取るとき、それはそれについて確かめます。 何か誤りが発生するなら、エラーコードは使用のためにアプリケーションで報告されます。 プロトコルバージョンとタイプ分野がそれぞれ最新版とKRB_CREDに合っているのをチェックすることによって、メッセージは確かめられます。 ミスマッチは、KRB_AP_がERR_BADVERSIONかKRB_AP_ERR_エムエスジー_TYPE誤りであると生成します。 アプリケーションは、次に、暗号文を解読して、結果の平文を処理します。 復号化が変更されたためにデータを示しているなら、KRB_AP_ERR_BAD_INTEGRITY誤りは発生しています。
Kohl & Neuman [Page 34] RFC 1510 Kerberos September 1993
コールとヌーマン[34ページ]のRFCの1510のケルベロスの1993年9月
If present or required, the recipient verifies that the operating system's report of the sender's address matches the sender's address in the message, and that one of the recipient's addresses appears as the recipient's address in the message. A failed match for either case generates a KRB_AP_ERR_BADADDR error. The timestamp and usec fields (and the nonce field if required) are checked next. If the timestamp and usec are not present, or they are present but not current, the KRB_AP_ERR_SKEW error is generated.
現在である、または必要であるなら、受取人は送付者のアドレスに関するオペレーティングシステムのレポートがメッセージの送付者のアドレスに合って、受取人のアドレスの1つがメッセージの受取人のアドレスとして現れることを確かめます。 どちらかのケースのための失敗したマッチは、KRB_AP_がERR_BADADDR誤りであると生成します。 そして、タイムスタンプとusec分野、(必要なら、一回だけがさばく、)、次に、チェックされます。 それらがタイムスタンプとusecが存在していないか、現在にもかかわらず、またはよく見られないなら、KRB_AP_ERR_SKEW誤りは発生しています。
If all the checks succeed, the application stores each of the new tickets in its ticket cache together with the session key and other information in the corresponding KrbCredInfo sequence from the encrypted part of the KRB_CRED message.
すべてのチェックが成功するなら、アプリケーションは対応するKrbCredInfo系列のセッションの主要で他の情報と共にKRB_CREDメッセージの暗号化された部分からチケットキャッシュでそれぞれの新しいチケットを保存します。
4. The Kerberos Database
4. ケルベロスデータベース
The Kerberos server must have access to a database containing the principal identifiers and secret keys of principals to be authenticated (The implementation of the Kerberos server need not combine the database and the server on the same machine; it is feasible to store the principal database in, say, a network name service, as long as the entries stored therein are protected from disclosure to and modification by unauthorized parties. However, we recommend against such strategies, as they can make system management and threat analysis quite complex.).
ケルベロスサーバは、認証されるために主体の主要な識別子を含むデータベースと秘密鍵に近づく手段を持たなければなりません。(ケルベロスサーバの実装は同じマシンの上でデータベースとサーバを結合する必要はありません。 たとえば、主要なデータベースを蓄えるのは可能です、ネットワーク名サービス、そこに保存されたエントリーが権限のないパーティーによる公開と変更から保護される限り。 しかしながら、システム管理と脅威分析がそれらでかなり複雑になる場合があるように私たちはそのようなものに対して戦略を推薦します。).
4.1. Database contents
4.1. データベースコンテンツ
A database entry should contain at least the following fields:
データベースエントリーは少なくとも以下の分野を含むべきです:
Field Value
分野値
name Principal's identifier key Principal's secret key p_kvno Principal's key version max_life Maximum lifetime for Tickets max_renewable_life Maximum total lifetime for renewable Tickets
再生可能なもののためのTicketsの最大_再生可能なものの_の寿命のMaximumの総生涯のためのプリンシパルの識別子主要なプリンシパルの秘密の主要なp_kvnoプリンシパルの主要なバージョン最大_寿命Maximum生涯をTicketsと命名してください。
The name field is an encoding of the principal's identifier. The key field contains an encryption key. This key is the principal's secret key. (The key can be encrypted before storage under a Kerberos "master key" to protect it in case the database is compromised but the master key is not. In that case, an extra field must be added to indicate the master key version used, see below.) The p_kvno field is the key version number of the principal's secret key. The max_life field contains the maximum allowable lifetime (endtime - starttime) for any Ticket issued for this principal. The max_renewable_life
名前欄は主体の識別子のコード化です。 キーフィールドは暗号化キーを含んでいます。 このキーは主体の秘密鍵です。 (ストレージの前にデータベースが感染されるといけないのでそれを保護するためにケルベロス「マスターキー」の下でキーを暗号化できますが、マスターキーは暗号化されるというわけではありません。 その場合、マスターキーバージョンが使用されて、以下を見るように示すために付加的な分野を加えなければなりません。) p_kvno分野は主体の秘密鍵の主要なバージョン番号です。 最大_寿命分野は最大のこの主体のために発行されたどんなTicketにおいても、許容できる生涯(endtime--starttime)を含んでいます。 最大_再生可能なもの_の寿命
Kohl & Neuman [Page 35] RFC 1510 Kerberos September 1993
コールとヌーマン[35ページ]のRFCの1510のケルベロスの1993年9月
field contains the maximum allowable total lifetime for any renewable Ticket issued for this principal. (See section 3.1 for a description of how these lifetimes are used in determining the lifetime of a given Ticket.)
分野は最大のこの主体のために発行されたどんな再生可能なものTicketにおいても、許容できる総生涯を含んでいます。 (これらの寿命が与えられたTicketの生涯を決定する際にどう費やされるかに関する記述に関してセクション3.1を見てください。)
A server may provide KDC service to several realms, as long as the database representation provides a mechanism to distinguish between principal records with identifiers which differ only in the realm name.
サーバはいくつかの分野に対するサービスをKDCに供給するかもしれません、データベース表現が分野名だけにおいて異なる識別子がある主要な記録を見分けるためにメカニズムを提供する限り。
When an application server's key changes, if the change is routine (i.e., not the result of disclosure of the old key), the old key should be retained by the server until all tickets that had been issued using that key have expired. Because of this, it is possible for several keys to be active for a single principal. Ciphertext encrypted in a principal's key is always tagged with the version of the key that was used for encryption, to help the recipient find the proper key for decryption.
変化が日常的であるならアプリケーション・サーバーのキーが変化するとき(すなわち、古いキーの公開の結果でない)、そのキーを使用することで発行されたすべてのチケットが期限が切れるまで、古いキーはサーバによって保有されるべきです。 これのために、ただ一つの元本に、数個のキーがアクティブであることは、可能です。 主体のキーで暗号化された暗号文はいつも暗号化に使用されたキーのバージョンでタグ付けをされて、受取人が復号化に関して適切なキーを見つけるのを助けます。
When more than one key is active for a particular principal, the principal will have more than one record in the Kerberos database. The keys and key version numbers will differ between the records (the rest of the fields may or may not be the same). Whenever Kerberos issues a ticket, or responds to a request for initial authentication, the most recent key (known by the Kerberos server) will be used for encryption. This is the key with the highest key version number.
特定の元本に、1個以上のキーがアクティブであるときに、校長には、ケルベロスデータベースでの1つ以上の記録があるでしょう。 キーと主要なバージョン番号は記録の間で異なるでしょう(分野の残りは同じであるかもしれません)。 ケルベロスがチケットを発行するか、または初期の認証を求める要求に応じるときはいつも、最新のキー(ケルベロスサーバによって知られている)は暗号化に使用されるでしょう。 これは最も大きい主要なバージョン番号があるキーです。
4.2. Additional fields
4.2. 追加分野
Project Athena's KDC implementation uses additional fields in its database:
プロジェクトアティナのKDC実装はデータベースで追加分野を使用します:
Field Value
分野値
K_kvno Kerberos' key version expiration Expiration date for entry attributes Bit field of attributes mod_date Timestamp of last modification mod_name Modifying principal's identifier
K_kvnoケルベロスのBitがさばく_最後の変更モッズ_名前Modifying主体の識別子の属性モッズ日付Timestampのエントリー属性の主要なバージョン満了Expiration期日
The K_kvno field indicates the key version of the Kerberos master key under which the principal's secret key is encrypted.
K_kvno分野は主体の秘密鍵が暗号化されているケルベロスマスターキーの主要なバージョンを示します。
After an entry's expiration date has passed, the KDC will return an error to any client attempting to gain tickets as or for the principal. (A database may want to maintain two expiration dates: one for the principal, and one for the principal's current key. This allows password aging to work independently of the principal's
エントリーの有効期限が経過した後に、KDCは主体か主体のチケットを獲得するのを試みるどんなクライアントにも誤りを返すでしょう。 (データベースは2つの有効期限を維持したがっているかもしれません: 主体のためのもの、および主体の現在のキーのためのもの、これは、パスワードの年をとることが主体の如何にかかわらず働くのを許容します。
Kohl & Neuman [Page 36] RFC 1510 Kerberos September 1993
コールとヌーマン[36ページ]のRFCの1510のケルベロスの1993年9月
expiration date. However, due to the limited space in the responses, the KDC must combine the key expiration and principal expiration date into a single value called "key_exp", which is used as a hint to the user to take administrative action.)
有効期限。 しかしながら、応答における限られたスペースのため、KDCは管理行動を取るのにヒントとしてユーザに使用される「キー_exp」と呼ばれるただ一つの値に主要な満了と主要な有効期限を結合しなければなりません。)
The attributes field is a bitfield used to govern the operations involving the principal. This field might be useful in conjunction with user registration procedures, for site-specific policy implementations (Project Athena currently uses it for their user registration process controlled by the system-wide database service, Moira [7]), or to identify the "string to key" conversion algorithm used for a principal's key. (See the discussion of the padata field in section 5.4.2 for details on why this can be useful.) Other bits are used to indicate that certain ticket options should not be allowed in tickets encrypted under a principal's key (one bit each): Disallow issuing postdated tickets, disallow issuing forwardable tickets, disallow issuing tickets based on TGT authentication, disallow issuing renewable tickets, disallow issuing proxiable tickets, and disallow issuing tickets for which the principal is the server.
属性分野は主体にかかわる操作を治めるのに使用されるbitfieldです。 この分野はユーザ登録手順に関連して役に立つかもしれません、サイト特定保険証券実装のために。(プロジェクトアテーナーは、現在、システム全体のデータベース・サービスで制御されたそれらのユーザ登録手続、モイラ[7])か主体のキーに使用される「キーへのストリング」変換アルゴリズムを特定するのにそれを使用します。 (これが役に立つ場合がある理由に関する詳細に関してセクション5.4.2における、padata分野の議論を見てください。) 他のビットはあるチケットオプションが主体のキー(それぞれ1ビット)の下で暗号化されたチケットの中に許容されるべきでないのを示すのに使用されます: 先日付を書かれたチケットを発行するのを禁じてください、そして、前進可能チケットを発行するのを禁じてください、そして、TGT認証に基づくチケットを発行するのを禁じてください、そして、再生可能なものチケットを発行するのを禁じてください、そして、proxiableチケットを発行するのを禁じてください、そして、主体がサーバであるチケットを発行するのを禁じてください。
The mod_date field contains the time of last modification of the entry, and the mod_name field contains the name of the principal which last modified the entry.
モッズ_年月日欄はエントリーの最後の変更の時間を含んでいます、そして、モッズ_名前欄は最後にエントリーを変更した校長の名前を含んでいます。
4.3. Frequently Changing Fields
4.3. 頻繁に職業を替えます。
Some KDC implementations may wish to maintain the last time that a request was made by a particular principal. Information that might be maintained includes the time of the last request, the time of the last request for a ticket-granting ticket, the time of the last use of a ticket-granting ticket, or other times. This information can then be returned to the user in the last-req field (see section 5.2).
いくつかのKDC実装が、最後の時間、特定の元本で要求をしたと主張したがっているかもしれません。 保守されるかもしれない情報は最後の要求の時間、チケットを与えるチケットを求める最後の要求の時間、チケットを与えるチケット、または他の回の最後の使用の時間を含んでいます。 そして、最後のreq分野のユーザにこの情報を返すことができます(セクション5.2を見てください)。
Other frequently changing information that can be maintained is the latest expiration time for any tickets that have been issued using each key. This field would be used to indicate how long old keys must remain valid to allow the continued use of outstanding tickets.
保守できる他の頻繁に変化している情報は各キーを使用することで発行されたどんなチケットのための最も遅い満了時間です。 この分野は、長く古いキーがどのように傑出しているチケットの継続的な使用を許すために有効なままで残らなければならないかを示すのに使用されるでしょう。
4.4. Site Constants
4.4. サイト定数
The KDC implementation should have the following configurable constants or options, to allow an administrator to make and enforce policy decisions:
KDC実装には、管理者が政策決定を作って、実施するのを許容するために、以下の構成可能な定数かオプションがあるべきです:
+ The minimum supported lifetime (used to determine whether the KDC_ERR_NEVER_VALID error should be returned). This constant should reflect reasonable expectations of round-trip time to the
+ 最小のサポートしている生涯、(以前はよく決定していた、__決してVALID誤りでないのがそうするべきであるKDC_ERR、返してください、) この定数は往復の時間への合理的な期待を反映するべきです。
Kohl & Neuman [Page 37] RFC 1510 Kerberos September 1993
コールとヌーマン[37ページ]のRFCの1510のケルベロスの1993年9月
KDC, encryption/decryption time, and processing time by the client and target server, and it should allow for a minimum "useful" lifetime.
KDC、暗号化/復号化時間、クライアントと目標サーバによる処理時間、およびそれは最小の「役に立つ」生涯を考慮するべきです。
+ The maximum allowable total (renewable) lifetime of a ticket (renew_till - starttime).
+ チケット(starttimeに_現金箱を取り替える)の最大の許容できる総(再生可能なもの)生涯。
+ The maximum allowable lifetime of a ticket (endtime - starttime).
+ チケット(endtime--starttime)の最大の許容できる生涯。
+ Whether to allow the issue of tickets with empty address fields (including the ability to specify that such tickets may only be issued if the request specifies some authorization_data).
+、人影のないアドレス・フィールド(要求がいくつかの認可_データを指定する場合にだけそのようなチケットが発行されるかもしれないと指定する能力を含んでいる)があるチケットの問題を許容であるかどうか
+ Whether proxiable, forwardable, renewable or post-datable tickets are to be issued.
proxiable、前進可能、再生可能なものまたはポスト時代を推定できるチケットであることにかかわらず+は発行されることになっています。
5. Message Specifications
5. メッセージ仕様
The following sections describe the exact contents and encoding of protocol messages and objects. The ASN.1 base definitions are presented in the first subsection. The remaining subsections specify the protocol objects (tickets and authenticators) and messages. Specification of encryption and checksum techniques, and the fields related to them, appear in section 6.
以下のセクションはプロトコルメッセージと物の正確なコンテンツとコード化について説明します。 ASN.1ベース定義は最初の小区分で提示されます。 残っている小区分はプロトコル物(チケットと固有識別文字)とメッセージを指定します。 暗号化の仕様、チェックサムのテクニック、およびそれらに関連する野原はセクション6に現れます。
5.1. ASN.1 Distinguished Encoding Representation
5.1. 表現をコード化しながら区別されたASN.1
All uses of ASN.1 in Kerberos shall use the Distinguished Encoding Representation of the data elements as described in the X.509 specification, section 8.7 [8].
ケルベロスにおける、ASN.1のすべての用途がX.509仕様(セクション8.7[8])で説明されるようにデータ要素のDistinguished Encoding Representationを使用するものとします。
5.2. ASN.1 Base Definitions
5.2. ASN.1基地の定義
The following ASN.1 base definitions are used in the rest of this section. Note that since the underscore character (_) is not permitted in ASN.1 names, the hyphen (-) is used in its place for the purposes of ASN.1 names.
以下のASN.1ベース定義はこのセクションの残りに使用されます。 強調キャラクタ(_)がASN.1名で受入れられないのでハイフン(-)がASN.1名の目的に場所で使用されることに注意してください。
Realm ::= GeneralString PrincipalName ::= SEQUENCE { name-type[0] INTEGER, name-string[1] SEQUENCE OF GeneralString }
分野:、:= GeneralString PrincipalName:、:= 系列名前タイプ[0]INTEGER、名前ストリング[1]SEQUENCE OF GeneralString
Kerberos realms are encoded as GeneralStrings. Realms shall not contain a character with the code 0 (the ASCII NUL). Most realms will usually consist of several components separated by periods (.), in the style of Internet Domain Names, or separated by slashes (/) in
ケルベロス分野はGeneralStringsとしてコード化されます。 分野はコード0(ASCII NUL)でキャラクタを含まないものとします。 通常、ほとんどの分野が周期的に切り離されている数個のコンポーネントから成る、()、Domain Namesの、または、中のスラッシュ(/)によって切り離されたインターネットのスタイル
Kohl & Neuman [Page 38] RFC 1510 Kerberos September 1993
コールとヌーマン[38ページ]のRFCの1510のケルベロスの1993年9月
the style of X.500 names. Acceptable forms for realm names are specified in section 7. A PrincipalName is a typed sequence of components consisting of the following sub-fields:
X.500名のスタイル。 分野名のための許容フォームはセクション7で指定されます。 PrincipalNameは以下のサブ分野から成るコンポーネントのタイプされた系列です:
name-type This field specifies the type of name that follows. Pre-defined values for this field are specified in section 7.2. The name-type should be treated as a hint. Ignoring the name type, no two names can be the same (i.e., at least one of the components, or the realm, must be different). This constraint may be eliminated in the future.
Thisがさばく名前タイプは従う名前のタイプを指定します。 この分野への事前に定義された値はセクション7.2で指定されます。 名前タイプはヒントとして扱われるべきです。 どんな2歳のタイプも挙げない名前を無視するのは同じである場合があります(すなわち、少なくともコンポーネント、または分野の1つは異なっているに違いありません)。 この規制は将来、取り除かれるかもしれません。
name-string This field encodes a sequence of components that form a name, each component encoded as a General String. Taken together, a PrincipalName and a Realm form a principal identifier. Most PrincipalNames will have only a few components (typically one or two).
名前ストリングThis分野は名前を形成するコンポーネント、String司令官としてコード化されたそれぞれのコンポーネントの系列をコード化します。 一緒に取って、PrincipalNameとRealmは主要な識別子を形成します。 ほとんどのPrincipalNamesには、ほんのいくつかのコンポーネント(通常1か2)があるでしょう。
KerberosTime ::= GeneralizedTime -- Specifying UTC time zone (Z)
KerberosTime:、:= GeneralizedTime--UTCの時間帯を指定すること。(Z)
The timestamps used in Kerberos are encoded as GeneralizedTimes. An encoding shall specify the UTC time zone (Z) and shall not include any fractional portions of the seconds. It further shall not include any separators. Example: The only valid format for UTC time 6 minutes, 27 seconds after 9 pm on 6 November 1985 is 19851106210627Z.
ケルベロスで使用されるタイムスタンプはGeneralizedTimesとしてコード化されます。 コード化は、UTCの時間帯(Z)を指定して、秒のどんな断片的な部分も含んでいないものとします。 それはさらにどんな分離符も含んでいないものとします。 例: 27秒午後1985年11月6日9時以降6分間のUTC時間の唯一の有効な形式が19851106210627Zです。
HostAddress ::= SEQUENCE { addr-type[0] INTEGER, address[1] OCTET STRING }
HostAddress:、:= 系列[1] [0] addr-タイプINTEGER、アドレスOCTET STRING
HostAddresses ::= SEQUENCE OF SEQUENCE { addr-type[0] INTEGER, address[1] OCTET STRING }
HostAddresses:、:= 系列の系列[1] [0] addr-タイプINTEGER、アドレスOCTET STRING
The host adddress encodings consists of two fields:
ホストadddress encodingsは2つの分野から成ります:
addr-type This field specifies the type of address that follows. Pre-defined values for this field are specified in section 8.1.
Thisがさばくaddr-タイプは従うアドレスのタイプを指定します。 この分野への事前に定義された値はセクション8.1で指定されます。
address This field encodes a single address of type addr-type.
Thisがさばくアドレスはタイプaddr-タイプのただ一つのアドレスをコード化します。
The two forms differ slightly. HostAddress contains exactly one
2つのフォームが若干異なります。 HostAddressはちょうど1つを含んでいます。
Kohl & Neuman [Page 39] RFC 1510 Kerberos September 1993
コールとヌーマン[39ページ]のRFCの1510のケルベロスの1993年9月
address; HostAddresses contains a sequence of possibly many addresses.
アドレス。 HostAddressesはことによると多くのアドレスの系列を含んでいます。
AuthorizationData ::= SEQUENCE OF SEQUENCE { ad-type[0] INTEGER, ad-data[1] OCTET STRING }
AuthorizationData:、:= 系列の系列[1] [0] 広告タイプINTEGER、広告データOCTET STRING
ad-data This field contains authorization data to be interpreted according to the value of the corresponding ad-type field.
Thisがさばく広告データは対応する広告タイプ分野の値に従って解釈されるべき認可データを含んでいます。
ad-type This field specifies the format for the ad-data subfield. All negative values are reserved for local use. Non-negative values are reserved for registered use.
Thisがさばく広告タイプは広告データ部分体に形式を指定します。 すべての負の数が地方の使用のために予約されます。 非負の数は登録された使用のために予約されます。
APOptions ::= BIT STRING { reserved(0), use-session-key(1), mutual-required(2) }
APOptions:、:= ビット列予約された(0)、使用セッション主要な(1)、互いに必要な(2)
TicketFlags ::= BIT STRING { reserved(0), forwardable(1), forwarded(2), proxiable(3), proxy(4), may-postdate(5), postdated(6), invalid(7), renewable(8), initial(9), pre-authent(10), hw-authent(11) }
TicketFlags:、:= ビット列予約された(0)(forwardable(1))が(2)を進めて、proxiable(3)、プロキシ(4)がそうするかもしれない、-、(5)に先日付を書いて、(6)、病人(7)、再生可能なもの(8)、authent(10)プレ初期の(9)hw-authent(11)に先日付を書きます。
KDCOptions ::= BIT STRING { reserved(0), forwardable(1), forwarded(2), proxiable(3), proxy(4), allow-postdate(5), postdated(6),
KDCOptions:、:= BIT STRING、proxiable(3)、プロキシ(4)が予約された(0)(forwardable(1))に(2)を進めさせた、-、(5)に先日付を書いて、(6)に先日付を書きました。
Kohl & Neuman [Page 40] RFC 1510 Kerberos September 1993
コールとヌーマン[40ページ]のRFCの1510のケルベロスの1993年9月
unused7(7), renewable(8), unused9(9), unused10(10), unused11(11), renewable-ok(27), enc-tkt-in-skey(28), renew(30), validate(31) }
unused7(7)、再生可能なもの(8)、unused9(9)、unused10(10)、unused11(11)、再生可能なもの間違いない(27)、skey(28)のenc-tkt、(30)を更新してください、そして、(31)を有効にしてください。
LastReq ::= SEQUENCE OF SEQUENCE { lr-type[0] INTEGER, lr-value[1] KerberosTime }
LastReq:、:= 系列の系列[1] [0] lr-タイプINTEGER、lr-値のKerberosTime
lr-type This field indicates how the following lr-value field is to be interpreted. Negative values indicate that the information pertains only to the responding server. Non-negative values pertain to all servers for the realm.
Thisがさばくlr-タイプは解釈される以下のlr-値の分野がことである方法を示します。 負の数は、情報が応じるサーバだけに関係するのを示します。非負の数は分野へのすべてのサーバに関係します。
If the lr-type field is zero (0), then no information is conveyed by the lr-value subfield. If the absolute value of the lr-type field is one (1), then the lr-value subfield is the time of last initial request for a TGT. If it is two (2), then the lr-value subfield is the time of last initial request. If it is three (3), then the lr-value subfield is the time of issue for the newest ticket-granting ticket used. If it is four (4), then the lr-value subfield is the time of the last renewal. If it is five (5), then the lr-value subfield is the time of last request (of any type).
lr-タイプ分野が(0)でないなら、情報は全くlr-値の部分体によって伝えられません。 lr-タイプ分野の絶対値が1つ(1)であるなら、lr-値の部分体はTGTを求める姓のイニシャル要求の時間です。 それが2(2)であるなら、lr-値の部分体は姓のイニシャル要求の時間です。 それが3(3)であるなら、lr-値の部分体はチケットを与えるチケットが使用した中で最も新しいもののための問題の時間です。 それが4(4)であるなら、lr-値の部分体は最後の更新の時間です。 それが5(5)であるなら、lr-値の部分体は最後の要求(どんなタイプのも)の時間です。
lr-value This field contains the time of the last request. The time must be interpreted according to the contents of the accompanying lr-type subfield.
Thisがさばくlr-値は最後の要求の時間を含んでいます。 付随のlr-タイプ部分体のコンテンツに従って、時間を解釈しなければなりません。
See section 6 for the definitions of Checksum, ChecksumType, EncryptedData, EncryptionKey, EncryptionType, and KeyType.
Checksum、ChecksumType、EncryptedData、EncryptionKey、EncryptionType、およびKeyTypeの定義に関してセクション6を見てください。
Kohl & Neuman [Page 41] RFC 1510 Kerberos September 1993
コールとヌーマン[41ページ]のRFCの1510のケルベロスの1993年9月
5.3. Tickets and Authenticators
5.3. チケットと固有識別文字
This section describes the format and encryption parameters for tickets and authenticators. When a ticket or authenticator is included in a protocol message it is treated as an opaque object.
このセクションはチケットと固有識別文字のための形式と暗号化パラメタについて説明します。 チケットか固有識別文字がプロトコルメッセージに含まれているとき、それは不明瞭な物として扱われます。
5.3.1. Tickets
5.3.1. チケット
A ticket is a record that helps a client authenticate to a service. A Ticket contains the following information:
チケットはクライアントがaにサービスを認証するのを助ける記録です。 Ticketは以下の情報を含んでいます:
Ticket ::= [APPLICATION 1] SEQUENCE { tkt-vno[0] INTEGER, realm[1] Realm, sname[2] PrincipalName, enc-part[3] EncryptedData } -- Encrypted part of ticket EncTicketPart ::= [APPLICATION 3] SEQUENCE { flags[0] TicketFlags, key[1] EncryptionKey, crealm[2] Realm, cname[3] PrincipalName, transited[4] TransitedEncoding, authtime[5] KerberosTime, starttime[6] KerberosTime OPTIONAL, endtime[7] KerberosTime, renew-till[8] KerberosTime OPTIONAL, caddr[9] HostAddresses OPTIONAL, authorization-data[10] AuthorizationData OPTIONAL } -- encoded Transited field TransitedEncoding ::= SEQUENCE { tr-type[0] INTEGER, -- must be registered contents[1] OCTET STRING }
以下にレッテルをはってください:= [APPLICATION1]SEQUENCE、tkt-vno[0] INTEGER、分野[1]分野、sname[2] PrincipalName、enc-パート[3]EncryptedData--チケットEncTicketPartのコード化された部分:、:= [APPLICATION3] SEQUENCEは[0]TicketFlags、キー[1]EncryptionKey、crealm[2]分野、cname[3] PrincipalNameに旗を揚げさせて、[4] TransitedEncoding、authtime[5] KerberosTime、starttime[6] KerberosTime OPTIONAL、endtime[7] KerberosTime、現金箱[8]KerberosTime OPTIONAL、caddr[9] HostAddresses OPTIONALを取り替えている認可データ[10]AuthorizationData OPTIONALを通過しました--Transited分野TransitedEncodingをコード化します:、:= 系列[0] tr-タイプINTEGER--登録されたコンテンツ[1]OCTET STRINGでなければなりません。
The encoding of EncTicketPart is encrypted in the key shared by Kerberos and the end server (the server's secret key). See section 6 for the format of the ciphertext.
EncTicketPartのコード化はケルベロスで共有されたキーとエンドサーバ(サーバの秘密鍵)でコード化されます。 暗号文の形式に関してセクション6を見てください。
tkt-vno This field specifies the version number for the ticket format. This document describes version number 5.
tkt-vno This分野はチケット形式のバージョン番号を指定します。 このドキュメントはバージョンNo.5について説明します。
realm This field specifies the realm that issued a ticket. It also serves to identify the realm part of the server's principal identifier. Since a Kerberos server can only issue tickets for servers within its realm, the two will
分野This分野はチケットを発行した分野を指定します。 また、それは、サーバの主要な識別子の分野の部分を特定するのに役立ちます。 ケルベロスサーバが分野の中でサーバのチケットを発行できるだけであるので、2は発行するでしょう。
Kohl & Neuman [Page 42] RFC 1510 Kerberos September 1993
コールとヌーマン[42ページ]のRFCの1510のケルベロスの1993年9月
always be identical.
いつも同じであってください。
sname This field specifies the name part of the server's identity.
sname This分野はサーバのアイデンティティの名前一部を指定します。
enc-part This field holds the encrypted encoding of the EncTicketPart sequence.
Thisがさばくenc-部分はEncTicketPart系列のコード化されたコード化を保持します。
flags This field indicates which of various options were used or requested when the ticket was issued. It is a bit-field, where the selected options are indicated by the bit being set (1), and the unselected options and reserved fields being reset (0). Bit 0 is the most significant bit. The encoding of the bits is specified in section 5.2. The flags are described in more detail above in section 2. The meanings of the flags are:
This分野が示すチケットが発行されたとき様々なオプションについて使用されたか、または要求された旗。 それによるリセット(0)であるしばらく分野と、選ばれていないオプションと予約された分野です。そこで、選択されたオプションはセット(1)であるビットによって示されます。 ビット0は最も重要なビットです。 ビットのコード化はセクション5.2で指定されます。 旗はさらに詳細に上でセクション2で説明されます。 旗の意味は以下の通りです。
Bit(s) Name Description
ビット(s)名前記述
0 RESERVED Reserved for future expansion of this field.
0 この分野の今後の拡大のためのRESERVED Reserved。
1 FORWARDABLE The FORWARDABLE flag is normally only interpreted by the TGS, and can be ignored by end servers. When set, this flag tells the ticket-granting server that it is OK to issue a new ticket- granting ticket with a different network address based on the presented ticket.
FORWARDABLE FORWARDABLEが旗を揚げさせる1を通常、TGSが解釈するだけであり、エンドサーバは無視できます。 設定されると、この旗は新しいチケットを発行するのがOKであって、提示されたチケットに基づく異なったネットワーク・アドレスがあるチケットを与えるとチケットを与えるサーバに言います。
2 FORWARDED When set, this flag indicates that the ticket has either been forwarded or was issued based on authentication involving a forwarded ticket-granting ticket.
2FORWARDED Whenセット、この旗はチケットを進めたか、または進められたチケットを与えるチケットにかかわる認証に基づいて発行したのを示します。
3 PROXIABLE The PROXIABLE flag is normally only interpreted by the TGS, and can be ignored by end servers. The PROXIABLE flag has an interpretation identical to that of the FORWARDABLE flag, except that the PROXIABLE flag tells the ticket-granting server that only non- ticket-granting tickets may be issued with different network addresses.
PROXIABLE PROXIABLEが旗を揚げさせる3を通常、TGSが解釈するだけであり、エンドサーバは無視できます。 PROXIABLE旗には、FORWARDABLE旗のものと同じ解釈があります、PROXIABLE旗が、異なったネットワーク・アドレスでチケットを非与えるチケットだけを発行してもよいとチケットを与えるサーバに言うのを除いて。
Kohl & Neuman [Page 43] RFC 1510 Kerberos September 1993
コールとヌーマン[43ページ]のRFCの1510のケルベロスの1993年9月
4 PROXY When set, this flag indicates that a ticket is a proxy.
4 PROXY Whenはセットして、この旗は、チケットがプロキシであることを示します。
5 MAY-POSTDATE The MAY-POSTDATE flag is normally only interpreted by the TGS, and can be ignored by end servers. This flag tells the ticket-granting server that a post- dated ticket may be issued based on this ticket-granting ticket.
5月-POSTDATE5月-POSTDATEが旗を揚げさせる5を通常、TGSが解釈するだけであり、エンドサーバは無視できます。 この旗は、ポストの時代遅れのチケットがこのチケットを与えるチケットに基づいて発行されるかもしれないとチケットを与えるサーバに言います。
6 POSTDATED This flag indicates that this ticket has been postdated. The end-service can check the authtime field to see when the original authentication occurred.
6POSTDATED This旗は、このチケットが先日付を書かれたのを示します。 終わりサービスは、オリジナルの認証がいつ起こったかを確認するためにauthtime分野をチェックできます。
7 INVALID This flag indicates that a ticket is invalid, and it must be validated by the KDC before use. Application servers must reject tickets which have this flag set.
7INVALID This旗は、チケットが無効であることを示します、そして、KDCは使用の前にそれを有効にしなければなりません。 アプリケーション・サーバーはこの旗を設定するチケットを拒絶しなければなりません。
8 RENEWABLE The RENEWABLE flag is normally only interpreted by the TGS, and can usually be ignored by end servers (some particularly careful servers may wish to disallow renewable tickets). A renewable ticket can be used to obtain a replacement ticket that expires at a later date.
RENEWABLE RENEWABLEが旗を揚げさせる8を通常、TGSが解釈するだけであり、通常、エンドサーバは無視できます(いくつかの特に慎重なサーバが再生可能なものチケットを禁じたがっているかもしれません)。 その後に期限が切れる交換チケットを得るのに再生可能なものチケットを使用できます。
9 INITIAL This flag indicates that this ticket was issued using the AS protocol, and not issued based on a ticket-granting ticket.
9INITIAL This旗は、このチケットはASプロトコルを使用することで発行されて、チケットを与えるチケットに基づいて発行されなかったのを示します。
10 PRE-AUTHENT This flag indicates that during initial authentication, the client was authenticated by the KDC before a ticket was issued. The strength of the preauthentication method is not indicated, but is acceptable to the KDC.
10PRE-AUTHENT This旗は初期の認証の間、それを示して、チケットが発行される前にクライアントはKDCによって認証されました。 前認証メソッドの強さは、示されませんが、KDCに許容できます。
11 HW-AUTHENT This flag indicates that the protocol employed for initial authentication required the use of hardware expected to be possessed solely by the named
11HW-AUTHENT This旗は、初期の認証に使われたプロトコルが唯一命名によって所有されていると予想されたハードウェアの使用を必要としたのを示します。
Kohl & Neuman [Page 44] RFC 1510 Kerberos September 1993
コールとヌーマン[44ページ]のRFCの1510のケルベロスの1993年9月
client. The hardware authentication method is selected by the KDC and the strength of the method is not indicated.
クライアント。 ハードウェア認証方法はKDCによって選択されます、そして、メソッドの強さは示されません。
12-31 RESERVED Reserved for future use.
12-31 今後の使用のためのRESERVED Reserved。
key This field exists in the ticket and the KDC response and is used to pass the session key from Kerberos to the application server and the client. The field's encoding is described in section 6.2.
主要なThis分野は、チケットとKDC応答で存在していて、ケルベロスからアプリケーション・サーバーとクライアントまで主要なセッションを過ぎるのに使用されます。 フィールドのコード化はセクション6.2で説明されます。
crealm This field contains the name of the realm in which the client is registered and in which initial authentication took place.
crealm This分野はクライアントが登録されていて、初期の認証が行われた分野の名前を含んでいます。
cname This field contains the name part of the client's principal identifier.
cname This分野はクライアントの主要な識別子の名前部分を含んでいます。
transited This field lists the names of the Kerberos realms that took part in authenticating the user to whom this ticket was issued. It does not specify the order in which the realms were transited. See section 3.3.3.1 for details on how this field encodes the traversed realms.
通過しているThis分野はこのチケットが発行されたユーザを認証するのに参加したケルベロス分野の名前を記載します。 それは分野が通過されたオーダーを指定しません。 セクション3.3を見てください。.3 .1 この分野がどう横断された分野をコード化するかに関する詳細のために。
authtime This field indicates the time of initial authentication for the named principal. It is the time of issue for the original ticket on which this ticket is based. It is included in the ticket to provide additional information to the end service, and to provide the necessary information for implementation of a `hot list' service at the KDC. An end service that is particularly paranoid could refuse to accept tickets for which the initial authentication occurred "too far" in the past.
authtime This分野は命名された主体のための初期の認証の時間を示します。 このチケットが基づいているオリジナルのチケットのための問題の時間です。 それは、終わりのサービスに追加情報を提供して、KDCで'ホットリスト'サービスの実装のための必要事項を提供するためにチケットに含まれています。 特にパラノイアであることの終わりのサービスは、初期の認証が過去に「あまりにはるかに」起こったチケットを受け入れるのを拒否するかもしれません。
This field is also returned as part of the response from the KDC. When returned as part of the response to initial authentication (KRB_AS_REP), this is the current time on the Kerberos server (It is NOT recommended that this time value be used to adjust the workstation's clock since the workstation cannot reliably determine that such a KRB_AS_REP actually came from the proper KDC in a timely manner.).
また、応答の一部としてKDCからこの野原を返します。 認証(KRB_AS_REP)に頭文字をつけるために応答の一部として返すと、これはケルベロスサーバの現在の時間(この時間的価値がワークステーションが、そのようなKRB_AS_REPが実際に適切なKDCから直ちに来たことを確かに決定できないのでワークステーションの時計を調整するのに使用されることが勧められません。)です。
starttime This field in the ticket specifies the time after which the ticket is valid. Together with endtime, this field specifies the life of the ticket. If it is absent from the ticket, its value should be treated as that of the
チケットのstarttime This分野はチケットが有効である時を指定します。 endtimeと共に、この分野はチケットの寿命を指定します。 チケット、値からそれとして扱われるべきでなくて、それはあります。
Kohl & Neuman [Page 45] RFC 1510 Kerberos September 1993
コールとヌーマン[45ページ]のRFCの1510のケルベロスの1993年9月
authtime field.
authtime分野。
endtime This field contains the time after which the ticket will not be honored (its expiration time). Note that individual services may place their own limits on the life of a ticket and may reject tickets which have not yet expired. As such, this is really an upper bound on the expiration time for the ticket.
endtime This分野はチケットが光栄に思うようにならない時(満了時間)を含んでいます。 個々のサービスがチケットの寿命にそれら自身の限界を置いて、まだ期限が切れていないチケットを拒絶するかもしれないことに注意してください。 そういうものとして、これはチケットのための満了時間に本当に上限です。
renew-till This field is only present in tickets that have the RENEWABLE flag set in the flags field. It indicates the maximum endtime that may be included in a renewal. It can be thought of as the absolute expiration time for the ticket, including all renewals.
現金箱を取り替えているThis分野は中の旗がさばくRENEWABLE旗のセットを持っているチケットの中に存在しているだけです。 それは更新に含まれるかもしれない最大のendtimeを示します。 すべての更新を含むチケットのための絶対満了時間としてそれを考えることができます。
caddr This field in a ticket contains zero (if omitted) or more (if present) host addresses. These are the addresses from which the ticket can be used. If there are no addresses, the ticket can be used from any location. The decision by the KDC to issue or by the end server to accept zero- address tickets is a policy decision and is left to the Kerberos and end-service administrators; they may refuse to issue or accept such tickets. The suggested and default policy, however, is that such tickets will only be issued or accepted when additional information that can be used to restrict the use of the ticket is included in the authorization_data field. Such a ticket is a capability.
チケットのcaddr This分野はゼロ(省略されるなら)か、より多くて(現在)のホスト・アドレスを含んでいます。 これらはチケットを使用できるアドレスです。 アドレスが全くなければ、どんな位置からもチケットを使用できます。 問題かエンドサーバによるKDCによる無アドレスチケットを受け入れるという決定は、政策決定であり、ケルベロスと終わりサービス管理者に任せます。 彼らは、そのようなチケットを発行するか、または受け入れるのを拒否するかもしれません。 しかしながら、示されるのとデフォルト方針は承認_データ・フィールドにチケットの使用を制限するのに使用できる追加情報を含んでいるときだけ、そのようなチケットを発行するか、または受け入れるということです。 そのようなチケットは能力です。
Network addresses are included in the ticket to make it harder for an attacker to use stolen credentials. Because the session key is not sent over the network in cleartext, credentials can't be stolen simply by listening to the network; an attacker has to gain access to the session key (perhaps through operating system security breaches or a careless user's unattended session) to make use of stolen tickets.
ネットワーク・アドレスは、攻撃者が盗まれた資格証明書を使用するのをより困難にするようにチケットに含まれています。 セッションキーがcleartextのネットワークの上に送られないので、単にネットワークを聞くことによって、資格証明書を盗むことができません。 攻撃者は、盗まれたチケットを利用するためにセッションキー(恐らくオペレーティングシステム機密保護違反か不注意なユーザの無人のセッションによる)へのアクセスを得なければなりません。
It is important to note that the network address from which a connection is received cannot be reliably determined. Even if it could be, an attacker who has compromised the client's workstation could use the credentials from there. Including the network addresses only makes it more difficult, not impossible, for an attacker to walk off with stolen credentials and then use them from a "safe" location.
接続が受け取られているネットワーク・アドレスが確かに決定できないことに注意するのは重要です。 それがそうだったことができるとしても、クライアントのワークステーションに感染した攻撃者はそこから資格証明書を使用できるでしょうに。 ネットワーク・アドレスを含んでいるのに、盗まれた資格証明書を盗んで、次に、「安全な」位置からそれらを使用するのが攻撃者にとって不可能であるのではなく、難しくなるだけです。
Kohl & Neuman [Page 46] RFC 1510 Kerberos September 1993
コールとヌーマン[46ページ]のRFCの1510のケルベロスの1993年9月
authorization-data The authorization-data field is used to pass authorization data from the principal on whose behalf a ticket was issued to the application service. If no authorization data is included, this field will be left out. The data in this field are specific to the end service. It is expected that the field will contain the names of service specific objects, and the rights to those objects. The format for this field is described in section 5.2. Although Kerberos is not concerned with the format of the contents of the subfields, it does carry type information (ad-type).
チケットがだれの代理に発行されたかの主体からアプリケーション・サービスまでの承認データ・フィールドが使用されている承認データパス承認データ。 どんな承認データも含まれていないと、この分野は省かれるでしょう。 この分野のデータは終わりのサービスに特定です。 分野がサービスの特定のオブジェクトの名前、およびそれらのオブジェクトへの権利を含むと予想されます。 形式はセクション5.2でこの分野に説明されます。 ケルベロスは部分体のコンテンツの形式に関係がありませんが、それは情報(広告タイプ)を桁上げの型にします。
By using the authorization_data field, a principal is able to issue a proxy that is valid for a specific purpose. For example, a client wishing to print a file can obtain a file server proxy to be passed to the print server. By specifying the name of the file in the authorization_data field, the file server knows that the print server can only use the client's rights when accessing the particular file to be printed.
承認_データ・フィールドを使用することによって、元本はある特定の目的で有効なプロキシを発行できます。 例えば. プリント・サーバへのファイルの指定するのによる名前が承認_データ・フィールド、ファイルサーバーで通過される場合ファイルがファイルサーバープロキシを得ることができる印刷に願っているクライアントは、印刷されるために特定のファイルにアクセスするときだけ、プリント・サーバがクライアントの権利を使用できるのを知っています。
It is interesting to note that if one specifies the authorization-data field of a proxy and leaves the host addresses blank, the resulting ticket and session key can be treated as a capability. See [9] for some suggested uses of this field.
1つがプロキシの承認データ・フィールドを指定して、ホスト・アドレスを空白の状態でおくなら、結果として起こるチケットとセッションキーを能力として扱うことができることに注意するのはおもしろいです。 いくつかのための[9]がこの分野の用途を示したのを確実にしてください。
The authorization-data field is optional and does not have to be included in a ticket.
承認データ・フィールドは、任意であり、チケットに含まれる必要はありません。
5.3.2. Authenticators
5.3.2. 固有識別文字
An authenticator is a record sent with a ticket to a server to certify the client's knowledge of the encryption key in the ticket, to help the server detect replays, and to help choose a "true session key" to use with the particular session. The encoding is encrypted in the ticket's session key shared by the client and the server:
固有識別文字はチケットでサーバに送られた、暗号化に関するクライアントの知識がチケットの中に主要であることを公認して、サーバが再生を検出するのを助けて、特定のセッションと共に使用する「本当のセッションキー」を選ぶのを助けた記録です。 コード化はクライアントとサーバによって共有されたチケットのセッションキーで暗号化されます:
-- Unencrypted authenticator Authenticator ::= [APPLICATION 2] SEQUENCE { authenticator-vno[0] INTEGER, crealm[1] Realm, cname[2] PrincipalName, cksum[3] Checksum OPTIONAL, cusec[4] INTEGER, ctime[5] KerberosTime, subkey[6] EncryptionKey OPTIONAL, seq-number[7] INTEGER OPTIONAL,
-- Unencrypted固有識別文字Authenticator:、:= [APPLICATION2]SEQUENCE、固有識別文字-vno[0] INTEGER、crealm[1]分野、cname[2] PrincipalName、cksum[3]チェックサムOPTIONAL、キューセック[4]INTEGER、ctime[5] KerberosTime、サブキー[6]EncryptionKey OPTIONAL、seq-数の[7]INTEGER OPTIONAL
Kohl & Neuman [Page 47] RFC 1510 Kerberos September 1993
コールとヌーマン[47ページ]のRFCの1510のケルベロスの1993年9月
authorization-data[8] AuthorizationData OPTIONAL }
承認データ[8]AuthorizationData OPTIONAL
authenticator-vno This field specifies the version number for the format of the authenticator. This document specifies version 5.
固有識別文字-vno This分野は固有識別文字の形式のバージョン番号を指定します。 このドキュメントはバージョン5を指定します。
crealm and cname These fields are the same as those described for the ticket in section 5.3.1.
crealmとcname These分野はものがチケットのためにセクション5.3.1で説明したのと同じです。
cksum This field contains a checksum of the the application data that accompanies the KRB_AP_REQ.
cksum This分野はKRB_AP_REQに同伴するアプリケーションデータのチェックサムを含んでいます。
cusec This field contains the microsecond part of the client's timestamp. Its value (before encryption) ranges from 0 to 999999. It often appears along with ctime. The two fields are used together to specify a reasonably accurate timestamp.
キューセックThis分野はクライアントのタイムスタンプのマイクロセカンド部分を含んでいます。 値(暗号化の前の)は0〜999999まで及びます。 それはctimeと共にしばしば現れます。 2つの分野が、合理的に正確なタイムスタンプを指定するのに一緒に使用されます。
ctime This field contains the current time on the client's host.
ctime This分野はクライアントのホストの上に現在の時間を含んでいます。
subkey This field contains the client's choice for an encryption key which is to be used to protect this specific application session. Unless an application specifies otherwise, if this field is left out the session key from the ticket will be used.
サブキーThis分野はこの特定のアプリケーションセッションのときに保護するのに使用されることになっている暗号化キーのためのクライアントの選択を含んでいます。 この分野が省かれて、アプリケーションが別の方法で指定しないと、チケットから主要なセッションは使用されるでしょう。
seq-number This optional field includes the initial sequence number to be used by the KRB_PRIV or KRB_SAFE messages when sequence numbers are used to detect replays (It may also be used by application specific messages). When included in the authenticator this field specifies the initial sequence number for messages from the client to the server. When included in the AP-REP message, the initial sequence number is that for messages from the server to the client. When used in KRB_PRIV or KRB_SAFE messages, it is incremented by one after each message is sent.
seq-数のThisの任意の分野は、一連番号が再生を検出するのに使用されるとき(また、それはアプリケーションの特定のメッセージによって使用されるかもしれません)、KRB_PRIVかKRB_SAFEメッセージによって使用されるために初期シーケンス番号を含んでいます。 固有識別文字に含まれていると、この分野はクライアントからサーバまでメッセージの初期シーケンス番号を指定します。含まれていると、AP-REPメッセージ、初期シーケンス番号には、サーバからクライアントまでのメッセージのためのそれがいます。 KRB_PRIVかKRB_SAFEメッセージで使用すると、各メッセージを送った後にそれを1つ増加します。
For sequence numbers to adequately support the detection of replays they should be non-repeating, even across connection boundaries. The initial sequence number should be random and uniformly distributed across the full space of possible sequence numbers, so that it cannot be guessed by an attacker and so that it and the successive sequence numbers do not repeat other sequences.
それらが一連番号が適切に再生の検出をサポートするためには、接続境界さえの向こう側の非反復であるべきです。 初期シーケンス番号は、無作為で可能な一連番号の満杯の向こう側に一様に分散されているべきです、攻撃者がそれを推測できないで、それと連続した一連番号が他の系列を繰り返さないように。
Kohl & Neuman [Page 48] RFC 1510 Kerberos September 1993
コールとヌーマン[48ページ]のRFCの1510のケルベロスの1993年9月
authorization-data This field is the same as described for the ticket in section 5.3.1. It is optional and will only appear when additional restrictions are to be placed on the use of a ticket, beyond those carried in the ticket itself.
Thisがさばく承認データはセクション5.3.1でチケットのために説明されるのと同じです。 それは、任意であり、追加制限がチケットの使用に置かれるだけことであるときに、現れるでしょう、チケット自体の中に運ばれたものを超えて。
5.4. Specifications for the AS and TGS exchanges
5.4. ASのための仕様とTGS交換
This section specifies the format of the messages used in exchange between the client and the Kerberos server. The format of possible error messages appears in section 5.9.1.
このセクションはクライアントとケルベロスサーバの間の交換に使用されるメッセージの形式を指定します。可能なエラーメッセージの形式はセクション5.9.1に現れます。
5.4.1. KRB_KDC_REQ definition
5.4.1. KRB_KDC_REQ定義
The KRB_KDC_REQ message has no type of its own. Instead, its type is one of KRB_AS_REQ or KRB_TGS_REQ depending on whether the request is for an initial ticket or an additional ticket. In either case, the message is sent from the client to the Authentication Server to request credentials for a service.
KRB_KDC_REQメッセージには、それ自身のタイプが全くありません。 代わりに、要求が初期のチケットか追加チケットのためのものであるかによって、タイプはKRB_AS_REQかKRB_TGS_REQのひとりです。 どちらの場合ではも、サービスのために資格証明書を要求するためにクライアントからAuthentication Serverにメッセージを送ります。
The message fields are:
メッセージ分野は以下の通りです。
AS-REQ ::= [APPLICATION 10] KDC-REQ TGS-REQ ::= [APPLICATION 12] KDC-REQ
REQとして:、:= [アプリケーション10]KDC-REQ TGS-REQ:、:= [アプリケーション12] KDC-REQ
KDC-REQ ::= SEQUENCE { pvno[1] INTEGER, msg-type[2] INTEGER, padata[3] SEQUENCE OF PA-DATA OPTIONAL, req-body[4] KDC-REQ-BODY }
KDC-REQ:、:= 系列pvno[1] INTEGER、msg-タイプ[2]INTEGER、padata[3] SEQUENCE OF PA-DATA OPTIONAL、reqボディー[4]KDC-REQ-BODY
PA-DATA ::= SEQUENCE { padata-type[1] INTEGER, padata-value[2] OCTET STRING, -- might be encoded AP-REQ }
PA-データ:、:= 系列[2] [1] padata-タイプINTEGER、padata-値のOCTET STRING--コード化されたAP-REQであるかもしれません。
KDC-REQ-BODY ::= SEQUENCE { kdc-options[0] KDCOptions, cname[1] PrincipalName OPTIONAL, -- Used only in AS-REQ realm[2] Realm, -- Server's realm -- Also client's in AS-REQ sname[3] PrincipalName OPTIONAL, from[4] KerberosTime OPTIONAL, till[5] KerberosTime, rtime[6] KerberosTime OPTIONAL, nonce[7] INTEGER,
以下をKDC-REQ具体化させてください:= SEQUENCE、{がkdc-オプション[0]KDCOptions、cname[1] PrincipalName OPTIONAL--AS-REQ分野[2]分野だけでは、使用されます--サーバの分野--クライアントも[4] [5] KerberosTime、rtime[6] KerberosTime OPTIONAL、一回だけ[7]INTEGERまでのKerberosTime OPTIONALからのAS-REQ sname[3] PrincipalName OPTIONALにあります。
Kohl & Neuman [Page 49] RFC 1510 Kerberos September 1993
コールとヌーマン[49ページ]のRFCの1510のケルベロスの1993年9月
etype[8] SEQUENCE OF INTEGER, -- EncryptionType, -- in preference order addresses[9] HostAddresses OPTIONAL, enc-authorization-data[10] EncryptedData OPTIONAL, -- Encrypted AuthorizationData encoding additional-tickets[11] SEQUENCE OF Ticket OPTIONAL }
好みの命令におけるetype[8] SEQUENCE OF INTEGER(EncryptionType)は、[9]がHostAddresses OPTIONALであると扱います、enc-承認データ[10]EncryptedData OPTIONAL--追加チケット[11]SEQUENCE OF Ticket OPTIONALをコード化するAuthorizationDataを暗号化します。
The fields in this message are:
このメッセージの分野は以下の通りです。
pvno This field is included in each message, and specifies the protocol version number. This document specifies protocol version 5.
pvno This分野は、各メッセージに含まれていて、プロトコルバージョン番号を指定します。 このドキュメントはプロトコルバージョン5を指定します。
msg-type This field indicates the type of a protocol message. It will almost always be the same as the application identifier associated with a message. It is included to make the identifier more readily accessible to the application. For the KDC-REQ message, this type will be KRB_AS_REQ or KRB_TGS_REQ.
Thisがさばくmsg-タイプはプロトコルメッセージのタイプを示します。 それはほとんどいつもメッセージに関連しているアプリケーション識別子と同じになるでしょう。 識別子を容易にアプリケーションによりアクセスしやすくするのは含まれています。 KDC-REQメッセージに関しては、このタイプは、KRB_AS_REQかKRB_TGS_REQになるでしょう。
padata The padata (pre-authentication data) field contains a of authentication information which may be needed before credentials can be issued or decrypted. In the case of requests for additional tickets (KRB_TGS_REQ), this field will include an element with padata-type of PA-TGS-REQ and data of an authentication header (ticket-granting ticket and authenticator). The checksum in the authenticator (which must be collisionproof) is to be computed over the KDC-REQ-BODY encoding. In most requests for initial authentication (KRB_AS_REQ) and most replies (KDC-REP), the padata field will be left out.
padata(プレ認証データ)がさばくpadataは信任状を発行するか、または解読することができる前に必要とするかもしれない認証情報のaを含んでいます。 追加チケット(KRB_TGS_REQ)を求める要求の場合では、この分野はPA-TGS-REQのpadata-タイプと認証ヘッダー(チケットを与えるチケットと固有識別文字)に関するデータがある要素を含むでしょう。 固有識別文字(collisionproofであるに違いない)のチェックサムはKDC-REQ-BODYコード化に関して計算されることです。 初期の認証(KRB_AS_REQ)とほとんどの回答(KDC-REP)を求めるほとんどの要求では、padata分野は省かれるでしょう。
This field may also contain information needed by certain extensions to the Kerberos protocol. For example, it might be used to initially verify the identity of a client before any response is returned. This is accomplished with a padata field with padata-type equal to PA-ENC-TIMESTAMP and padata-value defined as follows:
また、この分野はケルベロスプロトコルへのある拡大で必要である情報を含むかもしれません。 例えば、それは、どんな応答も返す前に初めはクライアントのアイデンティティについて確かめるのに使用されるかもしれません。 これはpadata分野でPA-ENC-TIMESTAMPと以下の通り定義されたpadata-値と等しいpadata-タイプで達成されます:
padata-type ::= PA-ENC-TIMESTAMP padata-value ::= EncryptedData -- PA-ENC-TS-ENC
以下をpadataタイプしてください:= PA ENC-TIMESTAMP padata価値:、:= EncryptedData--PA ENC t ENC
PA-ENC-TS-ENC ::= SEQUENCE { patimestamp[0] KerberosTime, -- client's time pausec[1] INTEGER OPTIONAL }
PA ENC t ENC:、:= 系列patimestamp[0] KerberosTime、--クライアントのものがpausec[1] INTEGER OPTIONALを調節する
Kohl & Neuman [Page 50] RFC 1510 Kerberos September 1993
コールとヌーマン[50ページ]のRFCの1510のケルベロスの1993年9月
with patimestamp containing the client's time and pausec containing the microseconds which may be omitted if a client will not generate more than one request per second. The ciphertext (padata-value) consists of the PA-ENC-TS-ENC sequence, encrypted using the client's secret key.
patimestampがクライアントの時間を含んでいて、pausecがクライアントが1秒あたり1つ以上の要求を発生させないなら省略されるかもしれないマイクロセカンドを含んでいて。 暗号文(padata-値)はクライアントの秘密鍵を使用することでコード化されたPA-ENC-TS-ENC系列から成ります。
The padata field can also contain information needed to help the KDC or the client select the key needed for generating or decrypting the response. This form of the padata is useful for supporting the use of certain "smartcards" with Kerberos. The details of such extensions are beyond the scope of this specification. See [10] for additional uses of this field.
また、padata分野はKDCかクライアントが応答を発生するか、または解読するのに必要であるキーを選択するのを助けるのに必要である情報を含むことができます。 padataのこのフォームはケルベロスとのある「スマートカード」の使用を支持することの役に立ちます。 そのような拡大の詳細はこの仕様の範囲を超えています。 この分野の追加用途のための[10]を見てください。
padata-type The padata-type element of the padata field indicates the way that the padata-value element is to be interpreted. Negative values of padata-type are reserved for unregistered use; non-negative values are used for a registered interpretation of the element type.
padata分野のpadata-タイプ・エレメントのpadata-タイプは解釈されるpadata-価値要素がことである方法を示します。 padata-タイプの負の数は登録されていない使用のために予約されます。 非負の数は要素型の登録された解釈に使用されます。
req-body This field is a placeholder delimiting the extent of the remaining fields. If a checksum is to be calculated over the request, it is calculated over an encoding of the KDC- REQ-BODY sequence which is enclosed within the req-body field.
req-ボディーThis分野は残りの範囲がさばくプレースホルダの区切りです。 チェックサムが要求に関して計算されることであるなら、KDC- REQ-BODY系列のコード化に関してどれがreq-ボディー分野の中に同封されるかと見込まれます。
kdc-options This field appears in the KRB_AS_REQ and KRB_TGS_REQ requests to the KDC and indicates the flags that the client wants set on the tickets as well as other information that is to modify the behavior of the KDC. Where appropriate, the name of an option may be the same as the flag that is set by that option. Although in most case, the bit in the options field will be the same as that in the flags field, this is not guaranteed, so it is not acceptable to simply copy the options field to the flags field. There are various checks that must be made before honoring an option anyway.
kdc-オプションThis分野は、KRB_AS_REQとKRB_TGS_REQ要求でKDCにおいて見えて、クライアントが欲しい旗がKDCの動きを変更することになっている他の情報と同様にチケットの上にセットしたのを示します。 適切であるところでは、オプションの名前がそのオプションで設定される旗と同じであるかもしれません。 ケース、オプション分野の大部分のビットが旗の分野のそれと同じになりますが、これが保証されないので、単に旗の分野にオプション分野をコピーするのは許容できません。 とにかくオプションを光栄に思う前にしなければならない様々なチェックがあります。
The kdc_options field is a bit-field, where the selected options are indicated by the bit being set (1), and the unselected options and reserved fields being reset (0). The encoding of the bits is specified in section 5.2. The options are described in more detail above in section 2. The meanings of the options are:
kdc_オプション分野によるリセット(0)であるしばらく分野と、選ばれていないオプションと予約された分野です。そこで、選択されたオプションはセット(1)であるビットによって示されます。 ビットのコード化はセクション5.2で指定されます。 オプションはさらに詳細に上でセクション2で説明されます。 オプションの意味は以下の通りです。
Kohl & Neuman [Page 51] RFC 1510 Kerberos September 1993
コールとヌーマン[51ページ]のRFCの1510のケルベロスの1993年9月
Bit(s) Name Description
ビット(s)名前記述
0 RESERVED Reserved for future expansion of this field.
0 この分野の今後の拡大のためのRESERVED Reserved。
1 FORWARDABLE The FORWARDABLE option indicates that the ticket to be issued is to have its forwardable flag set. It may only be set on the initial request, or in a subsequent request if the ticket- granting ticket on which it is based is also forwardable.
1 前進可能を持つために発行されるチケットをあるオプションが示すFORWARDABLE FORWARDABLEはセットに旗を揚げさせます。 それが初期の要求に設定されるだけであるかもしれませんか、またはまた、その後の要求では、それが基づいているチケットを与えるのもチケットであるなら前進可能です。
2 FORWARDED The FORWARDED option is only specified in a request to the ticket-granting server and will only be honored if the ticket-granting ticket in the request has its FORWARDABLE bit set. This option indicates that this is a request for forwarding. The address(es) of the host from which the resulting ticket is to be valid are included in the addresses field of the request.
2 FORWARDEDがゆだねるFORWARDEDは要求でチケットを与えるサーバに指定されるだけであり、要求におけるチケットを与えるチケットでFORWARDABLEビットを設定する場合にだけ、光栄に思うようになるでしょう。 このオプションは、これが推進を求めて要求であることを示します。 結果として起こるチケットが有効であることになっているホストのアドレス(es)は要求のアドレス分野に含まれています。
3 PROXIABLE The PROXIABLE option indicates that the ticket to be issued is to have its proxiable flag set. It may only be set on the initial request, or in a subsequent request if the ticket- granting ticket on which it is based is also proxiable.
3 proxiableを持つために発行されるチケットをあるオプションが示すPROXIABLE PROXIABLEはセットに旗を揚げさせます。 それが初期の要求に設定されるだけであるかもしれませんか、またはまた、その後の要求では、それが基づいているチケットを与えるのもチケットであるならproxiableです。
4 PROXY The PROXY option indicates that this is a request for a proxy. This option will only be honored if the ticket- granting ticket in the request has its PROXIABLE bit set. The address(es) of the host from which the resulting ticket is to be valid are included in the addresses field of the request.
4 PROXYがゆだねるPROXYは、これがプロキシを求めて要求であることを示します。 要求でチケットを与えるチケットでPROXIABLEビットを設定する場合にだけ、このオプションは光栄に思うようになるでしょう。 結果として起こるチケットが有効であることになっているホストのアドレス(es)は要求のアドレス分野に含まれています。
5 ALLOW-POSTDATE The ALLOW-POSTDATE option indicates that the ticket to be issued is to have its MAY-POSTDATE flag set. It may only be set on the initial request, or in a subsequent request if
5 ALLOW-POSTDATEがゆだねるALLOW-POSTDATEは、発行されるチケットで5月-POSTDATE旗を設定することになっているのを示します。 それは初期の要求の上、または、その後の要求に設定されるだけであるかもしれません。
Kohl & Neuman [Page 52] RFC 1510 Kerberos September 1993
コールとヌーマン[52ページ]のRFCの1510のケルベロスの1993年9月
the ticket-granting ticket on which it is based also has its MAY-POSTDATE flag set.
また、それが基づいているチケットを与えるチケットで、5月-POSTDATE旗を設定します。
6 POSTDATED The POSTDATED option indicates that this is a request for a postdated ticket. This option will only be honored if the ticket-granting ticket on which it is based has its MAY- POSTDATE flag set. The resulting ticket will also have its INVALID flag set, and that flag may be reset by a subsequent request to the KDC after the starttime in the ticket has been reached.
6 POSTDATEDがゆだねるPOSTDATEDは、これが先日付を書かれたチケットを求めて要求であることを示します。 それが基づいているチケットを与えるチケットで5月のPOSTDATE旗を設定する場合にだけ、このオプションは光栄に思うようになるでしょう。 また、結果として起こるチケットで、INVALID旗を設定するでしょう、そして、チケットの中のstarttimeに達した後にその旗はKDCへのその後の要求でリセットされるかもしれません。
7 UNUSED This option is presently unused.
7UNUSED Thisオプションは現在、未使用です。
8 RENEWABLE The RENEWABLE option indicates that the ticket to be issued is to have its RENEWABLE flag set. It may only be set on the initial request, or when the ticket-granting ticket on which the request is based is also renewable. If this option is requested, then the rtime field in the request contains the desired absolute expiration time for the ticket.
8 RENEWABLE旗を持つために発行されるチケットをあるオプションが示すRENEWABLE RENEWABLEはセットしました。 それは初期の要求に設定されるだけであるかもしれなく、また、いつ要求が基づいているチケットを与えるチケットが再生可能なものであるかをそうされます。 このオプションが要求されるなら、要求におけるrtime分野はチケットのための必要な絶対満了時間を含んでいます。
9-26 RESERVED Reserved for future use.
9-26 今後の使用のためのRESERVED Reserved。
27 RENEWABLE-OK The RENEWABLE-OK option indicates that a renewable ticket will be acceptable if a ticket with the requested life cannot otherwise be provided. If a ticket with the requested life cannot be provided, then a renewable ticket may be issued with a renew-till equal to the the requested endtime. The value of the renew-till field may still be limited by local limits, or limits selected by the individual principal or server.
RENEWABLE-OKがゆだねる27RENEWABLE-OKは、別の方法で要求された人生を伴うチケットを供給できないと再生可能なものチケットを許容できるのを示します。 要求された人生を伴うチケットを供給できないなら、再生可能なものチケットは現金箱を取り替えている同輩と共に要求されたendtimeに発行されるかもしれません。 現金箱を取り替えている分野の値は地方の限界、または個々の校長かサーバによって選択された限界でまだ制限されているかもしれません。
28 ENC-TKT-IN-SKEY This option is used only by the ticket-granting service. The ENC- TKT-IN-SKEY option indicates that the ticket for the end server is to be
28 ENC-TKT IN SKEY Thisオプションは単にチケットを与えるサービスで使用されます。 オプションがエンドサーバのチケットがそうであることを示すENC- TKT IN SKEY
Kohl & Neuman [Page 53] RFC 1510 Kerberos September 1993
コールとヌーマン[53ページ]のRFCの1510のケルベロスの1993年9月
encrypted in the session key from the additional ticket-granting ticket provided.
供給された追加チケットを与えるチケットから主要なセッションのときに、コード化されています。
29 RESERVED Reserved for future use.
29 今後の使用のためのRESERVED Reserved。
30 RENEW This option is used only by the ticket-granting service. The RENEW option indicates that the present request is for a renewal. The ticket provided is encrypted in the secret key for the server on which it is valid. This option will only be honored if the ticket to be renewed has its RENEWABLE flag set and if the time in its renew till field has not passed. The ticket to be renewed is passed in the padata field as part of the authentication header.
30RENEW Thisオプションは単にチケットを与えるサービスで使用されます。 RENEWオプションは、現在の要求が更新のためのものであることを示します。 供給されたチケットはそれが有効であるサーバのために秘密鍵でコード化されます。 分野まで更新してください。このオプションが更新されるべきチケットでRENEWABLE旗を設定して、中の時間である場合にだけ光栄に思うようになる、それ、通っていません。 更新されるべきチケットは認証ヘッダーの一部としてpadata分野で渡されます。
31 VALIDATE This option is used only by the ticket-granting service. The VALIDATE option indicates that the request is to validate a postdated ticket. It will only be honored if the ticket presented is postdated, presently has its INVALID flag set, and would be otherwise usable at this time. A ticket cannot be validated before its starttime. The ticket presented for validation is encrypted in the key of the server for which it is valid and is passed in the padata field as part of the authentication header.
31VALIDATE Thisオプションは単にチケットを与えるサービスで使用されます。 VALIDATEオプションは、要求が先日付を書かれたチケットを有効にすることであることを示します。 贈られたチケットが先日付を書かれる場合にだけ、光栄に思うでしょう。現在INVALID旗を設定させます。そうでなければ、それは、このとき、使用可能でしょう。 starttimeの前でチケットを有効にすることができません。 合法化のために贈られたチケットは、それが有効であるサーバのキーでコード化されて、認証ヘッダーの一部としてpadata分野で渡されます。
cname and sname These fields are the same as those described for the ticket in section 5.3.1. sname may only be absent when the ENC-TKT-IN-SKEY option is specified. If absent, the name of the server is taken from the name of the client in the ticket passed as additional-tickets.
cnameとsname These分野はENC-TKT IN SKEYオプションが指定されるときだけ、セクション5.3.1snameのチケットのために説明されたものが休むかもしれないのと同じです。 休むなら、追加チケットとして渡されたチケットの中にクライアントの名前からサーバの名前を取ります。
enc-authorization-data The enc-authorization-data, if present (and it can only be present in the TGS_REQ form), is an encoding of the desired authorization-data encrypted under the sub- session key if present in the Authenticator, or alternatively from the session key in the ticket-granting ticket, both from the padata field in the KRB_AP_REQ.
enc認可データ、存在しているなら(それは単にTGS_REQフォームに存在している場合があります)、enc認可データは主要な、しかし、Authenticatorの現在のサブセッションでコード化された必要な認可データのコード化であるかあるいはまた、チケットを与えるチケットの中に主要なセッションから、padataからの両方がKRBで_AP_REQをさばきます。
Kohl & Neuman [Page 54] RFC 1510 Kerberos September 1993
コールとヌーマン[54ページ]のRFCの1510のケルベロスの1993年9月
realm This field specifies the realm part of the server's principal identifier. In the AS exchange, this is also the realm part of the client's principal identifier.
分野This分野はサーバの主要な識別子の分野の部分を指定します。 AS交換では、また、これはクライアントの主要な識別子の分野の部分です。
from This field is included in the KRB_AS_REQ and KRB_TGS_REQ ticket requests when the requested ticket is to be postdated. It specifies the desired start time for the requested ticket.
要求されたチケットが先日付を書かれることになっているとき、Thisから、分野はKRB_AS_REQとKRB_TGS_REQチケット要求に含まれています。 それは要求されたチケットのための必要な開始時刻を指定します。
till This field contains the expiration date requested by the client in a ticket request.
Thisまで、分野はチケット要求でクライアントによって要求された有効期限を含んでいます。
rtime This field is the requested renew-till time sent from a client to the KDC in a ticket request. It is optional.
rtime This分野はチケット要求でクライアントからKDCに送られた要求された現金箱を取り替えている時間です。 それは任意です。
nonce This field is part of the KDC request and response. It it intended to hold a random number generated by the client. If the same number is included in the encrypted response from the KDC, it provides evidence that the response is fresh and has not been replayed by an attacker. Nonces must never be re-used. Ideally, it should be gen erated randomly, but if the correct time is known, it may suffice (Note, however, that if the time is used as the nonce, one must make sure that the workstation time is monotonically increasing. If the time is ever reset backwards, there is a small, but finite, probability that a nonce will be reused.).
一回だけのThis分野はKDC要求と応答の一部です。 それ、それは、乱数がクライアントによって生成されるままにするつもりでした。 同じ数が暗号化された応答にKDCから含まれているなら、それは、応答が新鮮であるという証拠を提供して、攻撃者によって再演されていません。 一回だけを決して再使用してはいけません。 手当たりしだいにeratedされていた状態で情報を得る理想的に、ことであるべきですが、正しい時間が知られているなら、それは十分であるかもしれません。(しかしながら、時間が一回だけとして費やされるなら、ワークステーション時間が単調に増加しているのを確実にしなければならないことに注意してください。 時間が今までに後方にリセットされるなら、一回だけが再利用されるという小さい、しかし、有限な確率があります。).
etype This field specifies the desired encryption algorithm to be used in the response.
etype This分野は、応答に使用されるために必要な暗号化アルゴリズムを指定します。
addresses This field is included in the initial request for tickets, and optionally included in requests for additional tickets from the ticket-granting server. It specifies the addresses from which the requested ticket is to be valid. Normally it includes the addresses for the client's host. If a proxy is requested, this field will contain other addresses. The contents of this field are usually copied by the KDC into the caddr field of the resulting ticket.
Thisがさばくアドレスは、チケットのために初期の要求に含まれていて、チケットを与えるサーバからの追加チケットのために要求に任意に含まれています。それは要求されたチケットが有効であることになっているアドレスを指定します。 通常、それはクライアントのホストのためのアドレスを含んでいます。 プロキシが要求されると、この分野は他のアドレスを含むでしょう。 通常、この分野の内容はKDCによって結果として起こるチケットのcaddr分野にコピーされます。
additional-tickets Additional tickets may be optionally included in a request to the ticket-granting server. If the ENC-TKT-IN- SKEY option has been specified, then the session key from the additional ticket will be used in place of the server's key to encrypt the new ticket. If more than one option which requires additional tickets has been specified, then the additional tickets are used in the order specified by the ordering of the options bits (see kdc-options, above).
追加チケットAdditionalチケットは要求で任意にチケットを与えるサーバに含められるかもしれません。オプションはENC-TKT-IN SKEYであるなら指定されて、次に、追加チケットから主要なセッションは、新しいチケットを暗号化するのにサーバのキーに代わって使用されるでしょう。 追加チケットを必要とする1つ以上のオプションが指定されたなら、追加チケットはオプションビットの注文で指定されたオーダーで使用されます(kdc-オプションを見てください、上です)。
Kohl & Neuman [Page 55] RFC 1510 Kerberos September 1993
コールとヌーマン[55ページ]のRFCの1510のケルベロスの1993年9月
The application code will be either ten (10) or twelve (12) depending on whether the request is for an initial ticket (AS-REQ) or for an additional ticket (TGS-REQ).
応用コードは、要求が初期のチケット(AS-REQ)のためのものであるか、そして、追加チケット(TGS-REQ)のために10(10)か依存のどちらかに12(12)なるだろうこと。
The optional fields (addresses, authorization-data and additional- tickets) are only included if necessary to perform the operation specified in the kdc-options field.
任意の分野(アドレス、承認データ、および追加チケット)は、必要なら、kdc-オプション分野で指定された操作を実行するために含まれているだけです。
It should be noted that in KRB_TGS_REQ, the protocol version number appears twice and two different message types appear: the KRB_TGS_REQ message contains these fields as does the authentication header (KRB_AP_REQ) that is passed in the padata field.
KRB_TGS_REQでは、プロトコルバージョン番号が二度現れることに注意されるべきであり、2つの異なったメッセージタイプが見えます: KRB_TGS_REQメッセージはpadata分野で渡される認証ヘッダー(KRB_AP_REQ)のようにこれらの分野を含んでいます。
5.4.2. KRB_KDC_REP definition
5.4.2. KRB_KDC_REP定義
The KRB_KDC_REP message format is used for the reply from the KDC for either an initial (AS) request or a subsequent (TGS) request. There is no message type for KRB_KDC_REP. Instead, the type will be either KRB_AS_REP or KRB_TGS_REP. The key used to encrypt the ciphertext part of the reply depends on the message type. For KRB_AS_REP, the ciphertext is encrypted in the client's secret key, and the client's key version number is included in the key version number for the encrypted data. For KRB_TGS_REP, the ciphertext is encrypted in the sub-session key from the Authenticator, or if absent, the session key from the ticket-granting ticket used in the request. In that case, no version number will be present in the EncryptedData sequence.
KRB_KDC_REPメッセージ・フォーマットは回答に初期の(AS)要求かその後の(TGS)要求のどちらかのためのKDCから使用されます。 KRB_KDC_REPのためのメッセージタイプが全くありません。タイプは、代わりに、KRB_AS_REPかKRB_TGS_REPになどちらかでしょう。回答の暗号文部分を暗号化するのに使用されるキーはメッセージタイプに頼っています。 KRB_AS_REPに関しては、暗号文はクライアントの秘密鍵で暗号化されます、そして、クライアントの主要なバージョン番号は暗号化されたデータの主要なバージョン番号に含まれています。 KRB_TGS_REPに関しては、Authenticatorから主要なサブセッション、または休むなら、暗号文は暗号化されています、要求で使用されるチケットを与えるチケットから主要なセッション。 その場合、どんなバージョン番号もEncryptedData系列で存在しないでしょう。
The KRB_KDC_REP message contains the following fields:
KRB_KDC_REPメッセージは以下の分野を含んでいます:
AS-REP ::= [APPLICATION 11] KDC-REP TGS-REP ::= [APPLICATION 13] KDC-REP
レップとして:、:= [アプリケーション11] KDC-レップTGS-レップ:、:= [アプリケーション13] KDC-レップ
KDC-REP ::= SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, padata[2] SEQUENCE OF PA-DATA OPTIONAL, crealm[3] Realm, cname[4] PrincipalName, ticket[5] Ticket, enc-part[6] EncryptedData }
KDC-レップ:、:= 系列pvno[0] INTEGER、msg-タイプ[1]INTEGER、padata[2] SEQUENCE OF PA-DATA OPTIONAL、crealm[3]分野、cname[4] PrincipalName、チケット[5]チケット、enc-パート[6]EncryptedData
EncASRepPart ::= [APPLICATION 25[25]] EncKDCRepPart EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
EncASRepPart:、:= [アプリケーション25[25]] EncKDCRepPart EncTGSRepPart:、:= [アプリケーション26] EncKDCRepPart
EncKDCRepPart ::= SEQUENCE { key[0] EncryptionKey, last-req[1] LastReq,
EncKDCRepPart:、:= SEQUENCE、キー[0]EncryptionKey、最後のreq[1] LastReq
Kohl & Neuman [Page 56] RFC 1510 Kerberos September 1993
コールとヌーマン[56ページ]のRFCの1510のケルベロスの1993年9月
nonce[2] INTEGER, key-expiration[3] KerberosTime OPTIONAL, flags[4] TicketFlags, authtime[5] KerberosTime, starttime[6] KerberosTime OPTIONAL, endtime[7] KerberosTime, renew-till[8] KerberosTime OPTIONAL, srealm[9] Realm, sname[10] PrincipalName, caddr[11] HostAddresses OPTIONAL }
一回だけ[2]INTEGER(主要な満了[3]KerberosTime OPTIONAL)は[4] TicketFlagsに旗を揚げさせます、authtime[5] KerberosTime、starttime[6] KerberosTime OPTIONAL、endtime[7] KerberosTime、現金箱[8]KerberosTime OPTIONALを取り替えます、srealm[9]分野、sname[10] PrincipalName、caddr[11] HostAddresses OPTIONAL
NOTE: In EncASRepPart, the application code in the encrypted part of a message provides an additional check that the message was decrypted properly.
以下に注意してください。 EncASRepPartに、メッセージの暗号化された部分の応用コードはメッセージが適切に解読された追加チェックを供給します。
pvno and msg-type These fields are described above in section 5.4.1. msg-type is either KRB_AS_REP or KRB_TGS_REP.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプは、KRB_AS_REPかKRB_TGS_REPのどちらかです。
padata This field is described in detail in section 5.4.1. One possible use for this field is to encode an alternate "mix-in" string to be used with a string-to-key algorithm (such as is described in section 6.3.2). This ability is useful to ease transitions if a realm name needs to change (e.g., when a company is acquired); in such a case all existing password-derived entries in the KDC database would be flagged as needing a special mix-in string until the next password change.
padata This分野はセクション5.4.1で詳細に説明されます。 この分野の1つの活用可能性はストリングからキーへのアルゴリズム(セクション6.3.2で説明される)で使用されるために代替の「中では、混入する」ストリングをコード化することです。 分野名が、変化する(例えば、会社はいつ後天的ですか)必要があるなら、この能力は変遷を緩和するために役に立ちます。 KDCデータベースにおけるこのような場合にはすべての既存のパスワードで派生しているエントリーが次のパスワード変化まで特別な中で混入するストリングを必要とするとして旗を揚げられるでしょう。
crealm, cname, srealm and sname These fields are the same as those described for the ticket in section 5.3.1.
crealm、cname、srealm、およびsname These分野はものがチケットのためにセクション5.3.1で説明したのと同じです。
ticket The newly-issued ticket, from section 5.3.1.
チケットはセクション5.3.1からの新譜のチケットです。
enc-part This field is a place holder for the ciphertext and related information that forms the encrypted part of a message. The description of the encrypted part of the message follows each appearance of this field. The encrypted part is encoded as described in section 6.1.
Thisがさばくenc-部分は暗号文と関連情報のためのメッセージの暗号化された部分を形成する場所所有者です。 メッセージの暗号化された部分の記述はこの分野の各外観を次に続かせています。 暗号化された部分はセクション6.1で説明されるようにコード化されます。
key This field is the same as described for the ticket in section 5.3.1.
主要なThis分野はセクション5.3.1でチケットのために説明されるのと同じです。
last-req This field is returned by the KDC and specifies the time(s) of the last request by a principal. Depending on what information is available, this might be the last time that a request for a ticket-granting ticket was made, or the last time that a request based on a ticket-granting ticket
最後のreq This分野は、元本でKDCによって返されて、最後の要求の時間を指定します。 どんな情報が利用可能であるかよって、これは、チケットを与えるチケットを求める要求をした最後の時間、または要求がチケットを与えるチケットに基礎づけた最後の時間であるかもしれません。
Kohl & Neuman [Page 57] RFC 1510 Kerberos September 1993
コールとヌーマン[57ページ]のRFCの1510のケルベロスの1993年9月
was successful. It also might cover all servers for a realm, or just the particular server. Some implementations may display this information to the user to aid in discovering unauthorized use of one's identity. It is similar in spirit to the last login time displayed when logging into timesharing systems.
うまくいく。 また、それは分野、またはまさしく特定のサーバのためにすべてのサーバをカバーするかもしれません。いくつかの実装が、人のアイデンティティの無断使用を発見する際に支援するためにこの情報をユーザに表示するかもしれません。 それは精神において時分割システムにログインするとき表示された最後のログイン時間と同様です。
nonce This field is described above in section 5.4.1.
一回だけのThis分野は上でセクション5.4.1で説明されます。
key-expiration The key-expiration field is part of the response from the KDC and specifies the time that the client's secret key is due to expire. The expiration might be the result of password aging or an account expiration. This field will usually be left out of the TGS reply since the response to the TGS request is encrypted in a session key and no client information need be retrieved from the KDC database. It is up to the application client (usually the login program) to take appropriate action (such as notifying the user) if the expira tion time is imminent.
主要な満了がさばく主要な満了は、KDCからの応答の一部であり、クライアントの秘密鍵が期限が切れることになっている時間を指定します。 満了はパスワードの年をとるかアカウント満了の結果であるかもしれません。 TGS要求への応答がセッションキーで暗号化されて、クライアント情報が全くKDCデータベースから検索される必要はないので、通常、この野原はTGS回答から外されるでしょう。 expira tion時間が差し迫っているなら、それは、適切な行動(ユーザに通知などなどの)を取るためにはアプリケーションクライアント(通常ログインプログラム)次第です。
flags, authtime, starttime, endtime, renew-till and caddr These fields are duplicates of those found in the encrypted portion of the attached ticket (see section 5.3.1), provided so the client may verify they match the intended request and to assist in proper ticket caching. If the message is of type KRB_TGS_REP, the caddr field will only be filled in if the request was for a proxy or forwarded ticket, or if the user is substituting a subset of the addresses from the ticket granting ticket. If the client- requested addresses are not present or not used, then the addresses contained in the ticket will be the same as those included in the ticket-granting ticket.
旗、caddr These分野が付属チケットの暗号化された部分で見つけられたものの写し(セクション5.3.1を見る)である、authtime、starttimeはendtimeされます、現金箱を取り替えて、したがって、クライアントが確かめるかもしれないなら、それらは意図している要求と適切なチケットキャッシュにおけるアシストに合っています。 タイプKRB_TGS_REPにメッセージがあると、要求がプロキシのためにあったか、チケットを進めた、またはユーザがチケットを与えるチケットからアドレスの部分集合を代入している場合にだけ、caddr分野は記入されるでしょう。 クライアントが、アドレスが現在でない、または使用されていないよう要求したなら、チケットに含まれたアドレスはチケットを与えるチケットにそれらを含んでいるのと同じになるでしょう。
5.5. Client/Server (CS) message specifications
5.5. クライアント/サーバ(CS)メッセージ仕様
This section specifies the format of the messages used for the authentication of the client to the application server.
このセクションはクライアントの認証にアプリケーション・サーバーに使用されるメッセージの形式を指定します。
5.5.1. KRB_AP_REQ definition
5.5.1. KRB_AP_REQ定義
The KRB_AP_REQ message contains the Kerberos protocol version number, the message type KRB_AP_REQ, an options field to indicate any options in use, and the ticket and authenticator themselves. The KRB_AP_REQ message is often referred to as the "authentication header".
KRB_AP_REQメッセージはケルベロスプロトコルバージョン番号を含んでいます、メッセージタイプKRB_AP_REQ、使用中のどんなオプション、チケット、および固有識別文字自体も示すオプション分野。 KRB_AP_REQメッセージはしばしば「認証ヘッダー」と呼ばれます。
AP-REQ ::= [APPLICATION 14] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER,
AP-REQ:、:= [APPLICATION14]SEQUENCE、pvno[0] INTEGER、msg-タイプ[1]INTEGER
Kohl & Neuman [Page 58] RFC 1510 Kerberos September 1993
コールとヌーマン[58ページ]のRFCの1510のケルベロスの1993年9月
ap-options[2] APOptions, ticket[3] Ticket, authenticator[4] EncryptedData }
ap-オプション[2]APOptions、チケット[3]チケット、固有識別文字[4]EncryptedData
APOptions ::= BIT STRING { reserved(0), use-session-key(1), mutual-required(2) }
APOptions:、:= ビット列予約された(0)、使用セッション主要な(1)、互いに必要な(2)
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_AP_REQ.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_AP_REQです。
ap-options This field appears in the application request (KRB_AP_REQ) and affects the way the request is processed. It is a bit-field, where the selected options are indicated by the bit being set (1), and the unselected options and reserved fields being reset (0). The encoding of the bits is specified in section 5.2. The meanings of the options are:
ap-オプションThis分野は、アプリケーション要求(KRB_AP_REQ)に現れて、要求が処理される方法に影響します。 それによるリセット(0)であるしばらく分野と、選ばれていないオプションと予約された分野です。そこで、選択されたオプションはセット(1)であるビットによって示されます。 ビットのコード化はセクション5.2で指定されます。 オプションの意味は以下の通りです。
Bit(s) Name Description
ビット(s)名前記述
0 RESERVED Reserved for future expansion of this field.
0 この分野の今後の拡張のためのRESERVED Reserved。
1 USE-SESSION-KEYThe USE-SESSION-KEY option indicates that the ticket the client is presenting to a server is encrypted in the session key from the server's ticket-granting ticket. When this option is not specified, the ticket is encrypted in the server's secret key.
1 USE-SESSION-KEYThe USE-SESSION-KEYオプションは、クライアントがサーバに贈っているチケットがサーバのチケットを与えるチケットから主要なセッションのときに暗号化されるのを示します。 このオプションが指定されないとき、チケットはサーバの秘密鍵で暗号化されます。
2 MUTUAL-REQUIREDThe MUTUAL-REQUIRED option tells the server that the client requires mutual authentication, and that it must respond with a KRB_AP_REP message.
2 MUTUAL-REQUIREDThe MUTUAL-REQUIREDオプションはクライアントが互いの認証を必要として、それがKRB_AP_REPメッセージで応じなければならないとサーバに言います。
3-31 RESERVED Reserved for future use.
3-31 今後の使用のためのRESERVED Reserved。
ticket This field is a ticket authenticating the client to the server.
チケットThis分野はサーバにクライアントを認証するチケットです。
authenticator This contains the authenticator, which includes the client's choice of a subkey. Its encoding is described in section 5.3.2.
固有識別文字Thisは固有識別文字を含んでいます。(それは、クライアントのサブキーの選択を含んでいます)。 コード化はセクション5.3.2で説明されます。
Kohl & Neuman [Page 59] RFC 1510 Kerberos September 1993
コールとヌーマン[59ページ]のRFCの1510のケルベロスの1993年9月
5.5.2. KRB_AP_REP definition
5.5.2. KRB_AP_REP定義
The KRB_AP_REP message contains the Kerberos protocol version number, the message type, and an encrypted timestamp. The message is sent in in response to an application request (KRB_AP_REQ) where the mutual authentication option has been selected in the ap-options field.
KRB_AP_REPメッセージはケルベロスプロトコルバージョン番号、メッセージタイプ、および暗号化されたタイムスタンプを含んでいます。 メッセージは互いの認証オプションがap-オプション分野で選択されたアプリケーション要求(KRB_AP_REQ)に対応して送られます。
AP-REP ::= [APPLICATION 15] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, enc-part[2] EncryptedData }
AP-レップ:、:= [アプリケーション15] 系列pvno[0] INTEGER、msg-タイプ[1]INTEGER、enc-パート[2]EncryptedData
EncAPRepPart ::= [APPLICATION 27] SEQUENCE { ctime[0] KerberosTime, cusec[1] INTEGER, subkey[2] EncryptionKey OPTIONAL, seq-number[3] INTEGER OPTIONAL }
EncAPRepPart:、:= [アプリケーション27] 系列ctime[0] KerberosTime、キューセック[1]INTEGER、サブキー[2]EncryptionKey OPTIONAL、seq-数の[3]INTEGER OPTIONAL
NOTE: in EncAPRepPart, the application code in the encrypted part of a message provides an additional check that the message was decrypted properly.
以下に注意してください。 EncAPRepPartに、メッセージの暗号化された部分の応用コードはメッセージが適切に解読された追加チェックを供給します。
The encoded EncAPRepPart is encrypted in the shared session key of the ticket. The optional subkey field can be used in an application-arranged negotiation to choose a per association session key.
コード化されたEncAPRepPartはチケットの共有されたセッションキーで暗号化されます。 協会セッションキーあたりのaを選ぶのにアプリケーションで整っている交渉に任意のサブキー分野を使用できます。
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_AP_REP.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_AP_REPです。
enc-part This field is described above in section 5.4.2.
Thisがさばくenc-部分は上でセクション5.4.2で説明されます。
ctime This field contains the current time on the client's host.
ctime This分野はクライアントのホストの上に現在の時間を含んでいます。
cusec This field contains the microsecond part of the client's timestamp.
キューセックThis分野はクライアントのタイムスタンプのマイクロセカンド部分を含んでいます。
subkey This field contains an encryption key which is to be used to protect this specific application session. See section 3.2.6 for specifics on how this field is used to negotiate a key. Unless an application specifies otherwise, if this field is left out, the sub-session key from the authenticator, or if also left out, the session key from the ticket will be used.
サブキーThis分野はこの特定のアプリケーションセッションのときに保護するのに使用されることになっている暗号化キーを含んでいます。 この分野がキーを交渉するのにどう使用されるかの詳細に関してセクション3.2.6を見てください。 また、省かれて、この分野が省かれるならアプリケーションが別の方法で指定しないと、固有識別文字から主要なサブセッションであり、チケットから主要なセッションは使用されるでしょう。
Kohl & Neuman [Page 60] RFC 1510 Kerberos September 1993
コールとヌーマン[60ページ]のRFCの1510のケルベロスの1993年9月
5.5.3. Error message reply
5.5.3. エラーメッセージ回答
If an error occurs while processing the application request, the KRB_ERROR message will be sent in response. See section 5.9.1 for the format of the error message. The cname and crealm fields may be left out if the server cannot determine their appropriate values from the corresponding KRB_AP_REQ message. If the authenticator was decipherable, the ctime and cusec fields will contain the values from it.
誤りがアプリケーション要求を処理している間、発生すると、応答でKRB_ERRORメッセージを送るでしょう。 エラーメッセージの形式に関してセクション5.9.1を見てください。 サーバが対応するKRB_AP_REQメッセージからそれらの適切な値を決定できないなら、cnameとcrealm分野は置かれるかもしれません。 固有識別文字が解読可能だったなら、ctimeとキューセック分野はそれからの値を含むでしょう。
5.6. KRB_SAFE message specification
5.6. KRB_SAFEメッセージ仕様
This section specifies the format of a message that can be used by either side (client or server) of an application to send a tamper- proof message to its peer. It presumes that a session key has previously been exchanged (for example, by using the KRB_AP_REQ/KRB_AP_REP messages).
このセクションはアプリケーションのどちらの側(クライアントかサーバ)によっても使用される、タンパー証拠メッセージを同輩に送ることができるメッセージの形式を指定します。 それは、セッションキーが以前に交換されたと(例えばKRB_AP_REQ/KRB_AP_REPメッセージを使用することによって)推定します。
5.6.1. KRB_SAFE definition
5.6.1. KRB_SAFE定義
The KRB_SAFE message contains user data along with a collision-proof checksum keyed with the session key. The message fields are:
KRB_SAFEメッセージはセッションキーで合わせられた耐衝突のチェックサムに伴う利用者データを含んでいます。 メッセージ分野は以下の通りです。
KRB-SAFE ::= [APPLICATION 20] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, safe-body[2] KRB-SAFE-BODY, cksum[3] Checksum }
KRB-金庫:、:= [アプリケーション20] 系列pvno[0] INTEGER、msg-タイプ[1]INTEGER、安全なボディー[2]KRB-SAFE-BODY、cksum[3]チェックサム
KRB-SAFE-BODY ::= SEQUENCE { user-data[0] OCTET STRING, timestamp[1] KerberosTime OPTIONAL, usec[2] INTEGER OPTIONAL, seq-number[3] INTEGER OPTIONAL, s-address[4] HostAddress, r-address[5] HostAddress OPTIONAL }
KRBの安全なボディー:、:= 系列利用者データ[0]OCTET STRING、タイムスタンプ[1]KerberosTime OPTIONAL、usec[2] INTEGER OPTIONAL seq-数の[3]INTEGER OPTIONAL、s-アドレス[4]HostAddress、r-アドレス[5]HostAddress OPTIONAL
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_SAFE.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_SAFEです。
safe-body This field is a placeholder for the body of the KRB-SAFE message. It is to be encoded separately and then have the checksum computed over it, for use in the cksum field.
安全なボディーThis分野はKRB-SAFEメッセージのボディーのためのプレースホルダです。 それで、cksum分野での使用のために別々にコード化されて、次に、それの上でチェックサムを計算することになっています。
cksum This field contains the checksum of the application data. Checksum details are described in section 6.4. The
cksum This分野はアプリケーションデータのチェックサムを含んでいます。 チェックサムの詳細はセクション6.4で説明されます。 The
Kohl & Neuman [Page 61] RFC 1510 Kerberos September 1993
コールとヌーマン[61ページ]のRFCの1510のケルベロスの1993年9月
checksum is computed over the encoding of the KRB-SAFE-BODY sequence.
チェックサムはKRB-SAFE-BODY系列のコード化に関して計算されます。
user-data This field is part of the KRB_SAFE and KRB_PRIV messages and contain the application specific data that is being passed from the sender to the recipient.
Thisがさばく利用者データは、KRB_SAFEとKRB_PRIVメッセージの一部であり、送付者から受取人まで通過されているアプリケーションの特定のデータを含んでいます。
timestamp This field is part of the KRB_SAFE and KRB_PRIV messages. Its contents are the current time as known by the sender of the message. By checking the timestamp, the recipient of the message is able to make sure that it was recently generated, and is not a replay.
タイムスタンプThis分野はKRB_SAFEとKRB_PRIVメッセージの一部です。 メッセージ送信者によって知られているように内容は現在の時間です。 タイムスタンプをチェックすることによって、メッセージの受取人は、それが最近生成されたのを確実にすることができて、再生ではありません。
usec This field is part of the KRB_SAFE and KRB_PRIV headers. It contains the microsecond part of the timestamp.
usec This分野はKRB_SAFEとKRB_PRIVヘッダーの一部です。 それはタイムスタンプのマイクロセカンド部分を含んでいます。
seq-number This field is described above in section 5.3.2.
Thisがさばくseq-数は上でセクション5.3.2で説明されます。
s-address This field specifies the address in use by the sender of the message.
Thisがさばくs-アドレスはメッセージ送信者で使用中のアドレスを指定します。
r-address This field specifies the address in use by the recipient of the message. It may be omitted for some uses (such as broadcast protocols), but the recipient may arbitrarily reject such messages. This field along with s-address can be used to help detect messages which have been incorrectly or maliciously delivered to the wrong recipient.
Thisがさばくr-アドレスはメッセージの受取人で使用中のアドレスを指定します。 それはいくつかの用途(放送プロトコルなどの)のために省略されるかもしれませんが、受取人は任意にそのようなメッセージを拒絶するかもしれません。 不当か陰湿に間違った受取人に提供されたメッセージを検出するのを助けるのにs-アドレスに伴うこの分野を使用できます。
5.7. KRB_PRIV message specification
5.7. KRB_PRIVメッセージ仕様
This section specifies the format of a message that can be used by either side (client or server) of an application to securely and privately send a message to its peer. It presumes that a session key has previously been exchanged (for example, by using the KRB_AP_REQ/KRB_AP_REP messages).
このセクションはアプリケーションのどちらの側(クライアントかサーバ)によっても使用される、メッセージを同輩にしっかりと、そして個人的に送ることができるメッセージの形式を指定します。 それは、セッションキーが以前に交換されたと(例えばKRB_AP_REQ/KRB_AP_REPメッセージを使用することによって)推定します。
5.7.1. KRB_PRIV definition
5.7.1. KRB_PRIV定義
The KRB_PRIV message contains user data encrypted in the Session Key. The message fields are:
KRB_PRIVメッセージはSession Keyで暗号化された利用者データを含んでいます。 メッセージ分野は以下の通りです。
KRB-PRIV ::= [APPLICATION 21] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, enc-part[3] EncryptedData }
KRB-PRIV:、:= [アプリケーション21] 系列pvno[0] INTEGER、msg-タイプ[1]INTEGER、enc-パート[3]EncryptedData
Kohl & Neuman [Page 62] RFC 1510 Kerberos September 1993
コールとヌーマン[62ページ]のRFCの1510のケルベロスの1993年9月
EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE { user-data[0] OCTET STRING, timestamp[1] KerberosTime OPTIONAL, usec[2] INTEGER OPTIONAL, seq-number[3] INTEGER OPTIONAL, s-address[4] HostAddress, -- sender's addr r-address[5] HostAddress OPTIONAL -- recip's addr }
EncKrbPrivPart:、:= [アプリケーション28] 系列利用者データ[0]OCTET STRING、タイムスタンプ[1]KerberosTime OPTIONAL、usec[2] INTEGER OPTIONAL seq-数の[3]INTEGER OPTIONAL、s-アドレス[4]HostAddress--[5] 送付者のaddr r-アドレスHostAddress OPTIONAL--recipのaddr
NOTE: In EncKrbPrivPart, the application code in the encrypted part of a message provides an additional check that the message was decrypted properly.
以下に注意してください。 EncKrbPrivPartに、メッセージの暗号化された部分の応用コードはメッセージが適切に解読された追加チェックを供給します。
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_PRIV.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_PRIVです。
enc-part This field holds an encoding of the EncKrbPrivPart sequence encrypted under the session key (If supported by the encryption method in use, an initialization vector may be passed to the encryption procedure, in order to achieve proper cipher chaining. The initialization vector might come from the last block of the ciphertext from the previous KRB_PRIV message, but it is the application's choice whether or not to use such an initialization vector. If left out, the default initialization vector for the encryption algorithm will be used.). This encrypted encoding is used for the enc-part field of the KRB-PRIV message. See section 6 for the format of the ciphertext.
EncKrbPrivPart系列のコード化がセッションキーの下で暗号化したenc-部分This分野船倉(使用中の暗号化メソッドでサポートされるなら、初期化ベクトルは暗号化手順に通過されるかもしれません、適切な暗号推論を達成するために。 初期化ベクトルは暗号文の最後のブロックから前のKRB_PRIVメッセージから来るかもしれませんが、そのような初期化ベクトルを使用するかどうかが、アプリケーションの選択です。 省かれると、暗号化アルゴリズムのためのデフォルト初期化ベクトルは使用されるでしょう。). この暗号化されたコード化はKRB-PRIVメッセージのenc-部分分野に使用されます。 暗号文の形式に関してセクション6を見てください。
user-data, timestamp, usec, s-address and r-address These fields are described above in section 5.6.1.
利用者データであり、タイムスタンプ、usec、s-アドレス、およびr-アドレスThese分野は上でセクション5.6.1で説明されます。
seq-number This field is described above in section 5.3.2.
Thisがさばくseq-数は上でセクション5.3.2で説明されます。
5.8. KRB_CRED message specification
5.8. KRB_CREDメッセージ仕様
This section specifies the format of a message that can be used to send Kerberos credentials from one principal to another. It is presented here to encourage a common mechanism to be used by applications when forwarding tickets or providing proxies to subordinate servers. It presumes that a session key has already been exchanged perhaps by using the KRB_AP_REQ/KRB_AP_REP messages.
このセクションは1つの主体から別のものにケルベロス資格証明書を送るのに使用できるメッセージの形式を指定します。 それは、サーバを下位に置かせるためにチケットを進めるか、またはプロキシを提供するとき、一般的なメカニズムがアプリケーションで使用されるよう奨励するためにここに提示されます。 それは、セッションキーが恐らくKRB_AP_REQ/KRB_AP_REPメッセージを使用することによって既に交換されたと推定します。
5.8.1. KRB_CRED definition
5.8.1. KRB_CRED定義
The KRB_CRED message contains a sequence of tickets to be sent and information needed to use the tickets, including the session key from
KRB_CREDメッセージは主要な状態で送られるチケットの系列とセッションを含んで、チケットを使用するのに必要である情報を含んでいます。
Kohl & Neuman [Page 63] RFC 1510 Kerberos September 1993
コールとヌーマン[63ページ]のRFCの1510のケルベロスの1993年9月
each. The information needed to use the tickets is encryped under an encryption key previously exchanged. The message fields are:
それぞれ。 チケットを使用するのに必要である情報は以前に交換された暗号化キーの下でencrypedされます。 メッセージ分野は以下の通りです。
KRB-CRED ::= [APPLICATION 22] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, -- KRB_CRED tickets[2] SEQUENCE OF Ticket, enc-part[3] EncryptedData }
KRB-信用:、:= [アプリケーション22] 系列{pvno[0] INTEGER、[1] INTEGERをmsgタイプしてください--KRB_CREDチケット[2]SEQUENCE OF Ticket、enc-パート[3]EncryptedData}
EncKrbCredPart ::= [APPLICATION 29] SEQUENCE { ticket-info[0] SEQUENCE OF KrbCredInfo, nonce[1] INTEGER OPTIONAL, timestamp[2] KerberosTime OPTIONAL, usec[3] INTEGER OPTIONAL, s-address[4] HostAddress OPTIONAL, r-address[5] HostAddress OPTIONAL }
EncKrbCredPart:、:= [アプリケーション29] 系列チケットインフォメーション[0]SEQUENCE OF KrbCredInfo、一回だけ[1]INTEGER OPTIONAL、タイムスタンプ[2]KerberosTime OPTIONAL(usec[3] INTEGER OPTIONAL)は[4]がHostAddress OPTIONALであるとsで扱います、r-アドレス[5]HostAddress OPTIONAL
KrbCredInfo ::= SEQUENCE { key[0] EncryptionKey, prealm[1] Realm OPTIONAL, pname[2] PrincipalName OPTIONAL, flags[3] TicketFlags OPTIONAL, authtime[4] KerberosTime OPTIONAL, starttime[5] KerberosTime OPTIONAL, endtime[6] KerberosTime OPTIONAL renew-till[7] KerberosTime OPTIONAL, srealm[8] Realm OPTIONAL, sname[9] PrincipalName OPTIONAL, caddr[10] HostAddresses OPTIONAL }
KrbCredInfo:、:= 系列キー[0]EncryptionKey、prealm[1]分野OPTIONAL(pname[2] PrincipalName OPTIONAL)は[3] TicketFlags OPTIONALに旗を揚げさせます、authtime[4] KerberosTime OPTIONAL、starttime[5] KerberosTime OPTIONAL、現金箱[7]を取り替えているendtime[6] KerberosTime OPTIONAL KerberosTime OPTIONAL、srealm[8]分野OPTIONAL、sname[9] PrincipalName OPTIONAL、caddr[10] HostAddresses OPTIONAL
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_CRED.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_CREDです。
tickets These are the tickets obtained from the KDC specifically for use by the intended recipient. Successive tickets are paired with the corresponding KrbCredInfo sequence from the enc-part of the KRB-CRED message.
チケットTheseは意図している受取人によってKDCから特に使用に得られたチケットです。 連続したチケットはKRB-CREDメッセージのenc-部分から対応するKrbCredInfo系列と対にされます。
enc-part This field holds an encoding of the EncKrbCredPart sequence encrypted under the session key shared between the sender and the intended recipient. This encrypted encoding is used for the enc-part field of the KRB-CRED message. See section 6 for the format of the ciphertext.
EncKrbCredPart系列のコード化がセッションキーの下で暗号化したenc-部分This分野船倉は送付者と意図している受取人を平等に割り当てました。 この暗号化されたコード化はKRB-CREDメッセージのenc-部分分野に使用されます。 暗号文の形式に関してセクション6を見てください。
Kohl & Neuman [Page 64] RFC 1510 Kerberos September 1993
コールとヌーマン[64ページ]のRFCの1510のケルベロスの1993年9月
nonce If practical, an application may require the inclusion of a nonce generated by the recipient of the message. If the same value is included as the nonce in the message, it provides evidence that the message is fresh and has not been replayed by an attacker. A nonce must never be re- used; it should be generated randomly by the recipient of the message and provided to the sender of the mes sage in an application specific manner.
一回だけのIf実用的であることで、アプリケーションはメッセージの受取人によって生成された一回だけの包含を必要とするかもしれません。 同じ値が一回だけとしてメッセージに含まれているなら、それは、メッセージが新鮮であるという証拠を提供して、攻撃者によって再演されていません。 一回だけを決して再使用してはいけません。 それをメッセージの受取人が手当たりしだいに生成して、アプリケーションの特定の方法でmes賢人の送付者に提供するべきです。
timestamp and usec These fields specify the time that the KRB-CRED message was generated. The time is used to provide assurance that the message is fresh.
タイムスタンプとusec These分野はKRB-CREDメッセージが生成された時間を指定します。 時間は、メッセージが新鮮であるという保証を提供するために費やされます。
s-address and r-address These fields are described above in section 5.6.1. They are used optionally to provide additional assurance of the integrity of the KRB-CRED message.
s-アドレスとr-アドレスThese分野は上でセクション5.6.1で説明されます。 それらは、KRB-CREDメッセージの保全の追加保証を提供するのに任意に使用されます。
key This field exists in the corresponding ticket passed by the KRB-CRED message and is used to pass the session key from the sender to the intended recipient. The field's encoding is described in section 6.2.
主要なThis分野は、KRB-CREDメッセージによって渡された対応するチケットの中に存在していて、送付者から意図している受取人まで主要なセッションを過ぎるのに使用されます。 フィールドのコード化はセクション6.2で説明されます。
The following fields are optional. If present, they can be associated with the credentials in the remote ticket file. If left out, then it is assumed that the recipient of the credentials already knows their value.
以下の分野は任意です。 存在しているなら、リモートチケットファイルの資格証明書にそれらを関連づけることができます。 省かれるなら、資格証明書の受取人が既にそれらの値を知ると思われます。
prealm and pname The name and realm of the delegated principal identity.
代表として派遣された主要なアイデンティティの名前と分野をprealmして、pnameします。
flags, authtime, starttime, endtime, renew-till, srealm, sname, and caddr These fields contain the values of the corresponding fields from the ticket found in the ticket field. Descriptions of the fields are identical to the descriptions in the KDC-REP message.
旗、authtime、starttime、endtime、現金箱を取り替えます、srealm、sname、およびcaddr These分野はチケット野原で発見されるチケットからの対応する分野の値を含んでいます。 分野の記述はKDC-REPメッセージにおける記述と同じです。
5.9. Error message specification
5.9. エラーメッセージ仕様
This section specifies the format for the KRB_ERROR message. The fields included in the message are intended to return as much information as possible about an error. It is not expected that all the information required by the fields will be available for all types of errors. If the appropriate information is not available when the message is composed, the corresponding field will be left out of the message.
このセクションはKRB_ERRORメッセージに形式を指定します。 メッセージに含まれていた分野ができるだけ誤りに関して多くの情報を返すことを意図します。 分野によって必要とされたすべての情報がすべてのタイプの誤りに利用可能になるというわけではないと予想されます。 メッセージがいつ落ち着いているかという適切な情報が利用可能でないなら、対応する野原はメッセージから外されるでしょう。
Note that since the KRB_ERROR message is not protected by any encryption, it is quite possible for an intruder to synthesize or
またはKRB_ERRORメッセージがどんな暗号化でも保護されないので侵入者が統合するのが、かなり可能であることに注意してください。
Kohl & Neuman [Page 65] RFC 1510 Kerberos September 1993
コールとヌーマン[65ページ]のRFCの1510のケルベロスの1993年9月
modify such a message. In particular, this means that the client should not use any fields in this message for security-critical purposes, such as setting a system clock or generating a fresh authenticator. The message can be useful, however, for advising a user on the reason for some failure.
そのようなメッセージを変更してください。 特に、これは、クライアントがセキュリティ重要な目的にこのメッセージのどんな分野も使用するべきでないことを意味します、システムクロックを設定するか、または新鮮な固有識別文字を生成するのなどように。 しかしながら、メッセージは何らかの失敗の理由に関してユーザにアドバイスすることの役に立つ場合があります。
5.9.1. KRB_ERROR definition
5.9.1. KRB_ERROR定義
The KRB_ERROR message consists of the following fields:
KRB_ERRORメッセージは以下の分野から成ります:
KRB-ERROR ::= [APPLICATION 30] SEQUENCE { pvno[0] INTEGER, msg-type[1] INTEGER, ctime[2] KerberosTime OPTIONAL, cusec[3] INTEGER OPTIONAL, stime[4] KerberosTime, susec[5] INTEGER, error-code[6] INTEGER, crealm[7] Realm OPTIONAL, cname[8] PrincipalName OPTIONAL, realm[9] Realm, -- Correct realm sname[10] PrincipalName, -- Correct name e-text[11] GeneralString OPTIONAL, e-data[12] OCTET STRING OPTIONAL }
KRB-誤り:、:= [アプリケーション30] 系列pvno[0] INTEGER、[1] msg-タイプINTEGER、ctime[2] KerberosTime OPTIONAL、キューセック[3]INTEGER OPTIONAL、stime[4] KerberosTime、susec[5] INTEGER、エラーコード[6]INTEGER、crealm[7]分野OPTIONAL、cname[8] PrincipalName OPTIONAL、分野[9]分野--正しい分野sname[10] PrincipalName--Correctは電子テキストを[11]GeneralString OPTIONALと命名します、電子データ[12]OCTET STRING OPTIONALです。
pvno and msg-type These fields are described above in section 5.4.1. msg-type is KRB_ERROR.
pvnoとmsg-タイプThese分野は上でセクション5.4.1で説明されます。msg-タイプはKRB_ERRORです。
ctime This field is described above in section 5.4.1.
ctime This分野は上でセクション5.4.1で説明されます。
cusec This field is described above in section 5.5.2.
キューセックThis分野は上でセクション5.5.2で説明されます。
stime This field contains the current time on the server. It is of type KerberosTime.
stime This分野はサーバに現在の時間を含んでいます。タイプKerberosTimeにはそれがあります。
susec This field contains the microsecond part of the server's timestamp. Its value ranges from 0 to 999. It appears along with stime. The two fields are used in conjunction to specify a reasonably accurate timestamp.
susec This分野はサーバのタイムスタンプのマイクロセカンド部分を含んでいます。 値は0〜999まで及びます。 それはstimeと共に現れます。 2つの分野が、合理的に正確なタイムスタンプを指定するのに接続詞に使用されます。
error-code This field contains the error code returned by Kerberos or the server when a request fails. To interpret the value of this field see the list of error codes in section 8. Implementations are encouraged to provide for national language support in the display of error messages.
Thisがさばくエラーコードは要求が失敗するとケルベロスかサーバによって返されたエラーコードを含んでいます。 この分野の値を解釈するには、セクション8のエラーコードのリストを見てください。 実装がエラーメッセージのディスプレイにおける国語サポートに備えるよう奨励されます。
crealm, cname, srealm and sname These fields are described above in
crealm、cname、srealm、およびsname These分野は中で上で説明されます。
Kohl & Neuman [Page 66] RFC 1510 Kerberos September 1993
コールとヌーマン[66ページ]のRFCの1510のケルベロスの1993年9月
section 5.3.1.
セクション5.3.1。
e-text This field contains additional text to help explain the error code associated with the failed request (for example, it might include a principal name which was unknown).
Thisがさばく電子テキストは失敗した要求に関連しているエラーコードについて説明するのを助ける追加テキストを含んでいます(例えば、それは未知である主要な名前を含むかもしれません)。
e-data This field contains additional data about the error for use by the application to help it recover from or handle the error. If the errorcode is KDC_ERR_PREAUTH_REQUIRED, then the e-data field will contain an encoding of a sequence of padata fields, each corresponding to an acceptable pre- authentication method and optionally containing data for the method:
アプリケーションによる使用が、それが誤りを回復するか、または扱うのを助けるように、Thisがさばく電子データは誤りに関して追加データを含んでいます。 errorcodeがKDC_ERR_PREAUTH_REQUIREDであるなら、電子データ・フィールドはpadata分野の系列のコード化を含むでしょう、それぞれ許容できるプレ認証方法と任意にメソッドのためのデータを含むと対応しています:
METHOD-DATA ::= SEQUENCE of PA-DATA
メソッドデータ:、:= PA-データの系列
If the error-code is KRB_AP_ERR_METHOD, then the e-data field will contain an encoding of the following sequence:
エラーコードがKRB_AP_ERR_METHODであるなら、電子データ・フィールドは以下の系列のコード化を含むでしょう:
METHOD-DATA ::= SEQUENCE { method-type[0] INTEGER, method-data[1] OCTET STRING OPTIONAL }
メソッドデータ:、:= 系列[1] [0] メソッドタイプINTEGER、メソッドデータOCTET STRING OPTIONAL
method-type will indicate the required alternate method; method-data will contain any required additional information.
メソッドタイプは必要な代替方法を示すでしょう。 メソッドデータはどんな必要な追加情報も含むでしょう。
6. Encryption and Checksum Specifications
6. 暗号化とチェックサム仕様
The Kerberos protocols described in this document are designed to use stream encryption ciphers, which can be simulated using commonly available block encryption ciphers, such as the Data Encryption Standard [11], in conjunction with block chaining and checksum methods [12]. Encryption is used to prove the identities of the network entities participating in message exchanges. The Key Distribution Center for each realm is trusted by all principals registered in that realm to store a secret key in confidence. Proof of knowledge of this secret key is used to verify the authenticity of a principal.
本書では説明されたケルベロスプロトコルはストリーム暗号化暗号を使用するように設計されています、データ暗号化規格[11]などのように、ブロック連鎖とチェックサムメソッド[12]に関連して。一般的に利用可能なブロック暗号化暗号を使用することで暗号をシミュレートできます。 暗号化は、交換処理に参加するネットワーク実体のアイデンティティを立証するのに使用されます。 各分野へのKey Distributionセンターが信用で秘密鍵を保存するとその分野に登録されたすべての校長によって信じられます。 この秘密鍵に関する知識の証拠は、元本の信憑性について確かめるのに使用されます。
The KDC uses the principal's secret key (in the AS exchange) or a shared session key (in the TGS exchange) to encrypt responses to ticket requests; the ability to obtain the secret key or session key implies the knowledge of the appropriate keys and the identity of the KDC. The ability of a principal to decrypt the KDC response and present a Ticket and a properly formed Authenticator (generated with the session key from the KDC response) to a service verifies the identity of the principal; likewise the ability of the service to
KDCはチケット要求への応答を暗号化するのに、主体の秘密鍵(AS交換における)か共有されたセッションキー(TGS交換における)を使用します。 秘密鍵かセッションキーを入手する能力は適切なキーに関する知識とKDCのアイデンティティを含意します。 元本がサービスにKDCが応答であると解読して、Ticketと適切に形成されたAuthenticatorを寄贈する(KDC応答によって主要なセッションで、生成されます)能力は主体のアイデンティティについて確かめます。 同様にサービスの能力
Kohl & Neuman [Page 67] RFC 1510 Kerberos September 1993
コールとヌーマン[67ページ]のRFCの1510のケルベロスの1993年9月
extract the session key from the Ticket and prove its knowledge thereof in a response verifies the identity of the service.
Ticketから主要なセッションを抽出してください、そして、それの応答における知識がサービスのアイデンティティについて確かめると立証してください。
The Kerberos protocols generally assume that the encryption used is secure from cryptanalysis; however, in some cases, the order of fields in the encrypted portions of messages are arranged to minimize the effects of poorly chosen keys. It is still important to choose good keys. If keys are derived from user-typed passwords, those passwords need to be well chosen to make brute force attacks more difficult. Poorly chosen keys still make easy targets for intruders.
一般に、ケルベロスプロトコルは、使用される暗号化が暗号文解読術から安全であると仮定します。 しかしながら、いくつかでは、不十分に選ばれたキーの効果を最小にするためにケース、メッセージの暗号化された部分での分野の注文を配置します。 良いキーを選ぶのはまだ重要です。 ユーザによってタイプされたパスワードからキーを得るなら、それらのパスワードは、ブルートフォースアタックをより難しくするように適切である必要があります。 不十分に選ばれたキーはまだ侵入者のための格好の的を作っています。
The following sections specify the encryption and checksum mechanisms currently defined for Kerberos. The encodings, chaining, and padding requirements for each are described. For encryption methods, it is often desirable to place random information (often referred to as a confounder) at the start of the message. The requirements for a confounder are specified with each encryption mechanism.
以下のセクションはメカニズムが現在ケルベロスのために定義した暗号化とチェックサムを指定します。 encodingsと、推論と、それぞれのための要件を水増しするのは説明されます。 暗号化メソッドに、無作為の情報(しばしば交絡因子と呼ばれる)をメッセージの始めに置くのはしばしば望ましいです。 交絡因子のための要件はそれぞれの暗号化メカニズムで指定されます。
Some encryption systems use a block-chaining method to improve the the security characteristics of the ciphertext. However, these chaining methods often don't provide an integrity check upon decryption. Such systems (such as DES in CBC mode) must be augmented with a checksum of the plaintext which can be verified at decryption and used to detect any tampering or damage. Such checksums should be good at detecting burst errors in the input. If any damage is detected, the decryption routine is expected to return an error indicating the failure of an integrity check. Each encryption type is expected to provide and verify an appropriate checksum. The specification of each encryption method sets out its checksum requirements.
いくつかの暗号化システムが暗号文のセキュリティの特性を改良するブロック連鎖メソッドを使用します。 しかしながら、これらの推論メソッドはしばしば復号化の保全チェックを提供するというわけではありません。 そのようなシステム(CBCモードによるDESなどの)を復号化で確かめることができる平文のチェックサムで増大して、どんな改ざんや損害も検出するのに、使用しなければなりません。 そのようなチェックサムは入力におけるバースト誤りを検出するのが上手であるはずです。 何か損害が検出されるなら、復号化ルーチンが保全チェックの失敗を示す誤りを返すと予想されます。 それぞれの暗号化タイプは、適切なチェックサムを提供して、確かめると予想されます。 それぞれの暗号化メソッドの仕様はチェックサム要件を述べます。
Finally, where a key is to be derived from a user's password, an algorithm for converting the password to a key of the appropriate type is included. It is desirable for the string to key function to be one-way, and for the mapping to be different in different realms. This is important because users who are registered in more than one realm will often use the same password in each, and it is desirable that an attacker compromising the Kerberos server in one realm not obtain or derive the user's key in another.
最終的に、キーがユーザのパスワードから得られることになっているところに適切なタイプのキーにパスワードを変換するためのアルゴリズムは含まれています。 主要な機能へのストリングが一方向であり、マッピングが異なった分野において異なるのは、望ましいです。1つ以上の分野に登録されるユーザがそれぞれでしばしば同じパスワードを使用するので、これは重要であり、1つの分野でケルベロスサーバに感染する攻撃者が別のものでユーザのキーを入手もしませんし、引き出しもしないのが、望ましいです。
For a discussion of the integrity characteristics of the candidate encryption and checksum methods considered for Kerberos, the the reader is referred to [13].
ケルベロスのために考えられた候補暗号化とチェックサムメソッドの保全の特性の議論について、読者は[13]を参照されます。
6.1. Encryption Specifications
6.1. 暗号化仕様
The following ASN.1 definition describes all encrypted messages. The enc-part field which appears in the unencrypted part of messages in
以下のASN.1定義はすべての暗号化メッセージについて説明します。 メッセージの非暗号化された部分に中に現れるenc-部分野原
Kohl & Neuman [Page 68] RFC 1510 Kerberos September 1993
コールとヌーマン[68ページ]のRFCの1510のケルベロスの1993年9月
section 5 is a sequence consisting of an encryption type, an optional key version number, and the ciphertext.
セクション5は暗号化タイプ、任意の主要なバージョン番号、および暗号文から成る系列です。
EncryptedData ::= SEQUENCE { etype[0] INTEGER, -- EncryptionType kvno[1] INTEGER OPTIONAL, cipher[2] OCTET STRING -- ciphertext }
EncryptedData:、:= 系列etype[0] INTEGER--EncryptionType kvno[1] INTEGER OPTIONAL、暗号[2]OCTET STRING--暗号文
etype This field identifies which encryption algorithm was used to encipher the cipher. Detailed specifications for selected encryption types appear later in this section.
etype This分野は、どの暗号化アルゴリズムが暗号を暗号化するのに使用されたかを特定します。 選択された暗号化タイプのための仕様詳細は後でこのセクションに現れます。
kvno This field contains the version number of the key under which data is encrypted. It is only present in messages encrypted under long lasting keys, such as principals' secret keys.
kvno This分野はデータが暗号化されているキーのバージョン番号を含んでいます。 それは単に主体の秘密鍵などの持続的なキーの下で暗号化されたメッセージに存在しています。
cipher This field contains the enciphered text, encoded as an OCTET STRING.
Thisがさばく暗号はOCTET STRINGとしてコード化された暗号化されたテキストを含んでいます。
The cipher field is generated by applying the specified encryption algorithm to data composed of the message and algorithm-specific inputs. Encryption mechanisms defined for use with Kerberos must take sufficient measures to guarantee the integrity of the plaintext, and we recommend they also take measures to protect against precomputed dictionary attacks. If the encryption algorithm is not itself capable of doing so, the protections can often be enhanced by adding a checksum and a confounder.
暗号分野は、メッセージで構成されたデータとアルゴリズム特有の入力に指定された暗号化アルゴリズムを適用することによって、生成されます。 ケルベロスとの使用のために定義された暗号化メカニズムは平文の保全を保証できるくらいの対策を実施しなければなりません、そして、私たちはまた、それらが前計算された辞書攻撃から守る対策を実施することを勧めます。 暗号化アルゴリズム自体がそうすることができないなら、チェックサムと交絡因子を加えることによって、保護をしばしば機能アップできます。
The suggested format for the data to be encrypted includes a confounder, a checksum, the encoded plaintext, and any necessary padding. The msg-seq field contains the part of the protocol message described in section 5 which is to be encrypted. The confounder, checksum, and padding are all untagged and untyped, and their length is exactly sufficient to hold the appropriate item. The type and length is implicit and specified by the particular encryption type being used (etype). The format for the data to be encrypted is described in the following diagram:
データが暗号化される提案された形式は交絡因子、チェックサム、コード化された平文、およびどんな必要な詰め物も含んでいます。 msg-seq分野は暗号化されていることになっているセクション5で説明されたプロトコルメッセージの部分を含んでいます。 交絡因子、チェックサム、および詰め物は、すべて非タグ付けをされて、非タイプされます、そして、それらの長さは、適切な項目を保持するためにまさに十分です。 特定の暗号化タイプによって使用されることで(etype)、タイプと長さは、内在して指定されています。 データが暗号化される形式は以下のダイヤグラムで説明されます:
+-----------+----------+-------------+-----+ |confounder | check | msg-seq | pad | +-----------+----------+-------------+-----+
+-----------+----------+-------------+-----+ |交絡因子| チェック| msg-seq| パッド| +-----------+----------+-------------+-----+
The format cannot be described in ASN.1, but for those who prefer an ASN.1-like notation:
形式は、ASN.1で説明されるのではなく、ASNの.1のような記法を好む人のために説明できます:
Kohl & Neuman [Page 69] RFC 1510 Kerberos September 1993
コールとヌーマン[69ページ]のRFCの1510のケルベロスの1993年9月
CipherText ::= ENCRYPTED SEQUENCE { confounder[0] UNTAGGED OCTET STRING(conf_length) OPTIONAL, check[1] UNTAGGED OCTET STRING(checksum_length) OPTIONAL, msg-seq[2] MsgSequence, pad UNTAGGED OCTET STRING(pad_length) OPTIONAL }
暗号文:、:= 暗号化された系列[1] UNTAGGED OCTET STRING(チェックサム_長さ)OPTIONAL、msg-seq[2] MsgSequenceは、交絡因子[0]UNTAGGED OCTET STRING(conf_長さ)OPTIONALがUNTAGGED OCTET STRING(パッド_長さ)OPTIONALを水増しするのをチェックします。
In the above specification, UNTAGGED OCTET STRING(length) is the notation for an octet string with its tag and length removed. It is not a valid ASN.1 type. The tag bits and length must be removed from the confounder since the purpose of the confounder is so that the message starts with random data, but the tag and its length are fixed. For other fields, the length and tag would be redundant if they were included because they are specified by the encryption type.
上記の仕様では、UNTAGGED OCTET STRING(長さ)はそのタグと長さを取り除いている八重奏ストリングのための記法です。 それは有効なASN.1タイプではありません。 交絡因子の目的が取り除くので、メッセージが無作為のデータから始まるように交絡因子からタグビットと長さを取り除かなければなりませんが、タグとその長さは固定しています。 他の分野において、暗号化タイプによって指定されるのでそれらが含まれているなら、長さとタグは余分でしょうに。
One generates a random confounder of the appropriate length, placing it in confounder; zeroes out check; calculates the appropriate checksum over confounder, check, and msg-seq, placing the result in check; adds the necessary padding; then encrypts using the specified encryption type and the appropriate key.
それを交絡因子に置いて、1つは適切な長さの無作為の交絡因子を生成します。 チェックからのゼロ。 結果をチェックに置いて、交絡因子、チェック、およびmsg-seqの上で適切なチェックサムについて計算します。 必要な詰め物を加えます。 そして、指定された暗号化タイプと適切なキーを使用することで、暗号化します。
Unless otherwise specified, a definition of an encryption algorithm that specifies a checksum, a length for the confounder field, or an octet boundary for padding uses this ciphertext format (The ordering of the fields in the CipherText is important. Additionally, messages encoded in this format must include a length as part of the msg-seq field. This allows the recipient to verify that the message has not been truncated. Without a length, an attacker could use a chosen plaintext attack to generate a message which could be truncated, while leaving the checksum intact. Note that if the msg-seq is an encoding of an ASN.1 SEQUENCE or OCTET STRING, then the length is part of that encoding.). Those fields which are not specified will be omitted.
別の方法で指定されない場合、チェックサムを指定する暗号化アルゴリズムの定義、交絡因子分野への長さ、または詰め物のための八重奏境界がこの暗号文形式を使用します。(CipherTextでの分野の注文は重要です。 さらに、この形式でコード化されたメッセージはmsg-seq分野の一部として長さを含まなければなりません。 これで、受取人は、メッセージが先端を切られていないことを確かめることができます。 長さがなければ、攻撃者は、チェックサムを完全なままにする間に先端を切られることができたメッセージを生成するのに選ばれた平文攻撃を使用できました。 長さがmsg-seqがASN.1SEQUENCEかOCTET STRINGのコード化であるならそのコード化の一部であることに注意してください。). 指定されないそれらの分野は省略されるでしょう。
In the interest of allowing all implementations using a particular encryption type to communicate with all others using that type, the specification of an encryption type defines any checksum that is needed as part of the encryption process. If an alternative checksum is to be used, a new encryption type must be defined.
特定の暗号化タイプを使用するすべての実装がすべての他のものとコミュニケートするのをそのタイプを使用することで許容することのために、暗号化タイプの仕様は暗号化プロセスの一部として必要であるどんなチェックサムも定義します。 代替のチェックサムが使用されていることであるなら、新しい暗号化タイプを定義しなければなりません。
Some cryptosystems require additional information beyond the key and the data to be encrypted. For example, DES, when used in cipher- block-chaining mode, requires an initialization vector. If required, the description for each encryption type must specify the source of such additional information.
暗号系の中にはキーとデータを超えた追加情報が暗号化されるのを必要とするものもあります。 例えば、暗号ブロック連鎖モードで使用されると、DESは初期化ベクトルを必要とします。 必要なら、それぞれの暗号化タイプのための記述はそのような追加情報の源を指定しなければなりません。
Kohl & Neuman [Page 70] RFC 1510 Kerberos September 1993
コールとヌーマン[70ページ]のRFCの1510のケルベロスの1993年9月
6.2. Encryption Keys
6.2. 暗号化キー
The sequence below shows the encoding of an encryption key:
以下の系列は暗号化キーのコード化を示しています:
EncryptionKey ::= SEQUENCE { keytype[0] INTEGER, keyvalue[1] OCTET STRING }
EncryptionKey:、:= 系列keytype[0] INTEGER、keyvalue[1] OCTET STRING
keytype This field specifies the type of encryption key that follows in the keyvalue field. It will almost always correspond to the encryption algorithm used to generate the EncryptedData, though more than one algorithm may use the same type of key (the mapping is many to one). This might happen, for example, if the encryption algorithm uses an alternate checksum algorithm for an integrity check, or a different chaining mechanism.
keytype This分野はkeyvalue分野で続く暗号化キーのタイプを指定します。 それはほとんどいつもEncryptedDataを生成するのに使用される暗号化アルゴリズムに対応するでしょう、1つ以上のアルゴリズムが同じタイプのキーを使用するかもしれませんが(マッピングは1つに多くです)。 例えば、暗号化アルゴリズムが保全チェック、または異なった推論メカニズムに代替のチェックサムアルゴリズムを使用するなら、これは起こるかもしれません。
keyvalue This field contains the key itself, encoded as an octet string.
八重奏ストリングとしてコード化されて、keyvalue This分野はキー自体を含んでいます。
All negative values for the encryption key type are reserved for local use. All non-negative values are reserved for officially assigned type fields and interpretations.
暗号化の主要なタイプのためのすべての負の数が地方の使用のために予約されます。 すべての非負の数が公式に割り当てられたタイプ分野と解釈のために予約されます。
6.3. Encryption Systems
6.3. 暗号化システム
6.3.1. The NULL Encryption System (null)
6.3.1. ヌル暗号化システム(ヌル)です。
If no encryption is in use, the encryption system is said to be the NULL encryption system. In the NULL encryption system there is no checksum, confounder or padding. The ciphertext is simply the plaintext. The NULL Key is used by the null encryption system and is zero octets in length, with keytype zero (0).
どんな暗号化も使用中でないなら、暗号化システムはNULL暗号化システムであると言われます。 NULL暗号化では、そこのシステムは、チェックサムがない、交絡因子または詰め物です。 暗号文は単に平文です。 NULL Keyはヌル暗号化システムによって使用されて、keytypeゼロ(0)に従った長さが八重奏ではありません。
6.3.2. DES in CBC mode with a CRC-32 checksum (des-cbc-crc)
6.3.2. CRC-32チェックサムがあるCBCモードによるDES(des-cbc-crc)
The des-cbc-crc encryption mode encrypts information under the Data Encryption Standard [11] using the cipher block chaining mode [12]. A CRC-32 checksum (described in ISO 3309 [14]) is applied to the confounder and message sequence (msg-seq) and placed in the cksum field. DES blocks are 8 bytes. As a result, the data to be encrypted (the concatenation of confounder, checksum, and message) must be padded to an 8 byte boundary before encryption. The details of the encryption of this data are identical to those for the des- cbc-md5 encryption mode.
des-cbc-crc暗号化モードは、データ暗号化規格の下で[11] 暗号ブロック連鎖モード[12]を使用することで情報を暗号化します。 CRC-32チェックサム、(ISOで説明されて、3309[14])は交絡因子とメッセージ系列(msg-seq)に適用されて、cksum分野に置かれます。 DESブロックは8バイトです。 その結果、暗号化の前に暗号化されるべきデータ(交絡因子、チェックサム、およびメッセージの連結)を8バイト境界に水増ししなければなりません。 des- cbc-md5暗号化モードに、このデータの暗号化の詳細はそれらと同じです。
Note that, since the CRC-32 checksum is not collisionproof, an
CRC-32チェックサムがcollisionproofでないので、それに注意してください。
Kohl & Neuman [Page 71] RFC 1510 Kerberos September 1993
コールとヌーマン[71ページ]のRFCの1510のケルベロスの1993年9月
attacker could use a probabilistic chosenplaintext attack to generate a valid message even if a confounder is used [13]. The use of collision-proof checksums is recommended for environments where such attacks represent a significant threat. The use of the CRC-32 as the checksum for ticket or authenticator is no longer mandated as an interoperability requirement for Kerberos Version 5 Specification 1 (See section 9.1 for specific details).
攻撃者は、交絡因子が中古の[13]であっても有効なメッセージを生成するのに確率的なchosenplaintext攻撃を使用するかもしれません。 耐衝突のチェックサムの使用はそのような攻撃が多大なる脅威を表す環境のために推薦されます。 チェックサムとしてのCRC-32のチケットか固有識別文字の使用はもうケルベロスバージョン5Specification1のための相互運用性要件として強制されません(特定の詳細に関してセクション9.1を見てください)。
6.3.3. DES in CBC mode with an MD4 checksum (des-cbc-md4)
6.3.3. MD4チェックサムがあるCBCモードによるDES(des-cbc-md4)
The des-cbc-md4 encryption mode encrypts information under the Data Encryption Standard [11] using the cipher block chaining mode [12]. An MD4 checksum (described in [15]) is applied to the confounder and message sequence (msg-seq) and placed in the cksum field. DES blocks are 8 bytes. As a result, the data to be encrypted (the concatenation of confounder, checksum, and message) must be padded to an 8 byte boundary before encryption. The details of the encryption of this data are identical to those for the descbc-md5 encryption mode.
des-cbc-md4暗号化モードは、データ暗号化規格の下で[11] 暗号ブロック連鎖モード[12]を使用することで情報を暗号化します。 MD4チェックサム、(説明されたコネ[15])は、交絡因子とメッセージ系列(msg-seq)に適用されて、cksum分野に置かれます。 DESブロックは8バイトです。 その結果、暗号化の前に暗号化されるべきデータ(交絡因子、チェックサム、およびメッセージの連結)を8バイト境界に水増ししなければなりません。 descbc-md5暗号化モードに、このデータの暗号化の詳細はそれらと同じです。
6.3.4. DES in CBC mode with an MD5 checksum (des-cbc-md5)
6.3.4. MD5チェックサムがあるCBCモードによるDES(des-cbc-md5)
The des-cbc-md5 encryption mode encrypts information under the Data Encryption Standard [11] using the cipher block chaining mode [12]. An MD5 checksum (described in [16]) is applied to the confounder and message sequence (msg-seq) and placed in the cksum field. DES blocks are 8 bytes. As a result, the data to be encrypted (the concatenation of confounder, checksum, and message) must be padded to an 8 byte boundary before encryption.
des-cbc-md5暗号化モードは、データ暗号化規格の下で[11] 暗号ブロック連鎖モード[12]を使用することで情報を暗号化します。 MD5チェックサム、(説明されたコネ[16])は、交絡因子とメッセージ系列(msg-seq)に適用されて、cksum分野に置かれます。 DESブロックは8バイトです。 その結果、暗号化の前に暗号化されるべきデータ(交絡因子、チェックサム、およびメッセージの連結)を8バイト境界に水増ししなければなりません。
Plaintext and DES ciphtertext are encoded as 8-octet blocks which are concatenated to make the 64-bit inputs for the DES algorithms. The first octet supplies the 8 most significant bits (with the octet's MSbit used as the DES input block's MSbit, etc.), the second octet the next 8 bits, ..., and the eighth octet supplies the 8 least significant bits.
平文とDES ciphtertextはDESアルゴリズムのための64ビットの入力をするように連結される8八重奏のブロックとしてコード化されます。最初の八重奏は8つの最上位ビット(DES入力ブロックのMSbitなどとして使用される八重奏のMSbitと)、2番目の八重奏に次の8ビットを供給します…, そして、8番目の八重奏は8つの最下位ビットを供給します。
Encryption under DES using cipher block chaining requires an additional input in the form of an initialization vector. Unless otherwise specified, zero should be used as the initialization vector. Kerberos' use of DES requires an 8-octet confounder.
暗号ブロック連鎖を使用するDESの下の暗号化は初期化ベクトルの形で追加入力を必要とします。 別の方法で指定されない場合、ゼロは初期化ベクトルとして使用されるべきです。 DESのケルベロスの使用は8八重奏の交絡因子を必要とします。
The DES specifications identify some "weak" and "semiweak" keys; those keys shall not be used for encrypting messages for use in Kerberos. Additionally, because of the way that keys are derived for the encryption of checksums, keys shall not be used that yield "weak" or "semi-weak" keys when eXclusive-ORed with the constant F0F0F0F0F0F0F0F0.
DES仕様はいくつかの「弱い」と"semiweak"キーを特定します。 ケルベロスにおける使用へのメッセージを暗号化するのにそれらのキーを使用しないものとします。 キーがチェックサムの暗号化のために引き出されて、キーを使用しないものとする方法のために、一定のF0F0F0F0F0F0F0F0とeXclusive-ORedであるときに、さらに、それは「弱い」か「準弱い」キーをもたらします。
Kohl & Neuman [Page 72] RFC 1510 Kerberos September 1993
コールとヌーマン[72ページ]のRFCの1510のケルベロスの1993年9月
A DES key is 8 octets of data, with keytype one (1). This consists of 56 bits of key, and 8 parity bits (one per octet). The key is encoded as a series of 8 octets written in MSB-first order. The bits within the key are also encoded in MSB order. For example, if the encryption key is: (B1,B2,...,B7,P1,B8,...,B14,P2,B15,...,B49,P7,B50,...,B56,P8) where B1,B2,...,B56 are the key bits in MSB order, and P1,P2,...,P8 are the parity bits, the first octet of the key would be B1,B2,...,B7,P1 (with B1 as the MSbit). [See the FIPS 81 introduction for reference.]
DESキーはkeytype1つ(1)があるデータの8つの八重奏です。 これはキー、および8つのパリティビット(1八重奏あたり1つ)の56ビットから成ります。 最初にMSBに書かれた一連の8つの八重奏が注文されるとき、キーはコード化されます。 また、キーの中のビットはMSBオーダーでコード化されます。 例えば、暗号化であるなら、キーは以下の通りです。 (B1、B2、…、B7、P1、B8、…、B14、P2、B15、…、B49、P7、B50、…、B56、P8) どこB1、B2…B56はMSB注文、およびP1、P2、…のキービットです。P8がパリティビットである、キーの最初の八重奏はB1、B2、…でしょう。B7、P1(MSbitとしてのB1と)。 [参照に関してFIPS81序論を見てください。]
To generate a DES key from a text string (password), the text string normally must have the realm and each component of the principal's name appended(In some cases, it may be necessary to use a different "mix-in" string for compatibility reasons; see the discussion of padata in section 5.4.2.), then padded with ASCII nulls to an 8 byte boundary. This string is then fan-folded and eXclusive-ORed with itself to form an 8 byte DES key. The parity is corrected on the key, and it is used to generate a DES CBC checksum on the initial string (with the realm and name appended). Next, parity is corrected on the CBC checksum. If the result matches a "weak" or "semiweak" key as described in the DES specification, it is eXclusive-ORed with the constant 00000000000000F0. Finally, the result is returned as the key. Pseudocode follows:
テキスト文字列(パスワード)から主要なDESを発生させるように、通常、テキスト文字列は校長の名前の分野と各成分を追加されて(いくつかの場合、互換性理由に異なった「中では、混入する」ストリングを使用するのが必要であるかもしれません;.2にセクション5.4のpadataの議論を見てください)、次に、ASCIIヌルで水増しするように8バイト境界に持たなければなりません。 次に、このストリングはファンに折り重ねられます、そして、8バイトのDESキーはフォームへのそれ自体がいるeXclusive-ORedが折り重ねられます。 同等はキーの上に修正されます、そして、それは、初期のストリング(分野と名前を追加している)の上にDES CBCチェックサムを発生させるのに使用されます。 次に、同等はCBCチェックサムで修正されます。 結果がDES仕様で説明されるように「弱い」か"semiweak"キーに合っているなら、それは一定の00000000000000F0とeXclusive-ORedです。 最終的に、結果はキーとして返されます。 擬似コードは従います:
string_to_key(string,realm,name) { odd = 1; s = string + realm; for(each component in name) { s = s + component; } tempkey = NULL; pad(s); /* with nulls to 8 byte boundary */ for(8byteblock in s) { if(odd == 0) { odd = 1; reverse(8byteblock) } else odd = 0; tempkey = tempkey XOR 8byteblock; } fixparity(tempkey); key = DES-CBC-check(s,tempkey); fixparity(key); if(is_weak_key_key(key)) key = key XOR 0xF0; return(key); }
_キー(ストリング、分野、名前)へのストリング_変な=1 ; s=は(名前の各コンポーネント)のために+ 分野を結びます。s=s+コンポーネント; tempkeyはNULLと等しいです; パッド、(sの8byteblock)のための8バイト境界*/へのヌルがある/*、変な=1 ; (変な=0)逆(8byteblock)であるなら、変な=0; tempkeyするのはtempkey XOR 8byteblockと等しいです;、fixparity(tempkey); 主要な=DES-CBC-チェック(s、tempkey); fixparity(主要な); ;(_弱い_キー_キー(キー)です)キーが主要なXOR 0xF0と等しいなら 戻ってください(主要な)。
Kohl & Neuman [Page 73] RFC 1510 Kerberos September 1993
コールとヌーマン[73ページ]のRFCの1510のケルベロスの1993年9月
6.4. Checksums
6.4. チェックサム
The following is the ASN.1 definition used for a checksum:
↓これはチェックサムに使用されるASN.1定義です:
Checksum ::= SEQUENCE { cksumtype[0] INTEGER, checksum[1] OCTET STRING }
チェックサム:、:= 系列cksumtype[0] INTEGER、チェックサム[1]OCTET STRING
cksumtype This field indicates the algorithm used to generate the accompanying checksum.
cksumtype This分野は、アルゴリズムが以前は付随のチェックサムをよく発生させていたのを示します。
checksum This field contains the checksum itself, encoded as an octet string.
八重奏ストリングとしてコード化されて、Thisがさばくチェックサムはチェックサム自体を含んでいます。
Detailed specification of selected checksum types appear later in this section. Negative values for the checksum type are reserved for local use. All non-negative values are reserved for officially assigned type fields and interpretations.
タイプが後でこのセクションで見える選択されたチェックサムの仕様詳細。 チェックサムタイプのための負の数は地方の使用のために予約されます。 すべての非負の数が公式に割り当てられたタイプ分野と解釈のために予約されます。
Checksums used by Kerberos can be classified by two properties: whether they are collision-proof, and whether they are keyed. It is infeasible to find two plaintexts which generate the same checksum value for a collision-proof checksum. A key is required to perturb or initialize the algorithm in a keyed checksum. To prevent message-stream modification by an active attacker, unkeyed checksums should only be used when the checksum and message will be subsequently encrypted (e.g., the checksums defined as part of the encryption algorithms covered earlier in this section). Collision- proof checksums can be made tamper-proof as well if the checksum value is encrypted before inclusion in a message. In such cases, the composition of the checksum and the encryption algorithm must be considered a separate checksum algorithm (e.g., RSA-MD5 encrypted using DES is a new checksum algorithm of type RSA-MD5-DES). For most keyed checksums, as well as for the encrypted forms of collisionproof checksums, Kerberos prepends a confounder before the checksum is calculated.
2つの特性でケルベロスで使用されるチェックサムは分類できます: 耐であるかどうかと、それら衝突のそれらは合わせられるのであるかどうか 耐衝突のチェックサムのために同じチェックサム値を発生させる2つの平文を見つけるのは実行不可能です。 キーが、合わせられたチェックサムにおけるアルゴリズムを混乱させるか、または初期化するのに必要です。 チェックサムとメッセージが次にコード化されるときだけ(例えばより早くこのセクションでカバーされた暗号化アルゴリズムの一部と定義されたチェックサム)、活発な攻撃者によるメッセージストリーム変更を防ぐために、「非-合わせ」られたチェックサムは使用されるべきです。 メッセージでの包含の前にチェックサム値をコード化するなら衝突証拠チェックサムをまた、干渉防止するようにすることができます。 そのような場合、別々のチェックサムアルゴリズムであるとチェックサムの構成と暗号化アルゴリズムを考えなければなりません(例えばDESを使用することでコード化されたRSA-MD5はタイプRSA-MD5-DESの新しいチェックサムアルゴリズムです)。 ほとんどの合わせられたチェックサムにおいて、チェックサムの前の同じくらい良いコード化されたフォームのcollisionproofチェックサム、ケルベロスprependsのように交絡因子は計算されます。
6.4.1. The CRC-32 Checksum (crc32)
6.4.1. CRC-32チェックサム(crc32)
The CRC-32 checksum calculates a checksum based on a cyclic redundancy check as described in ISO 3309 [14]. The resulting checksum is four (4) octets in length. The CRC-32 is neither keyed nor collision-proof. The use of this checksum is not recommended. An attacker using a probabilistic chosen-plaintext attack as described in [13] might be able to generate an alternative message that satisfies the checksum. The use of collision-proof checksums is recommended for environments where such attacks represent a
CRC-32チェックサムはISO3309[14]で説明されるように周期冗長検査に基づくチェックサムについて計算します。 結果として起こるチェックサムは長さが4(4)八重奏です。 合わせられないでまた耐はありませんCRC-32衝突の。 このチェックサムの使用は推薦されません。 [13]で説明されるように確率的な選ばれた平文攻撃を使用している攻撃者はチェックサムを満たす代替のメッセージを発生させることができるかもしれません。 耐衝突のチェックサムの使用はそのような攻撃がaを表す環境のために推薦されます。
Kohl & Neuman [Page 74] RFC 1510 Kerberos September 1993
コールとヌーマン[74ページ]のRFCの1510のケルベロスの1993年9月
significant threat.
多大なる脅威。
6.4.2. The RSA MD4 Checksum (rsa-md4)
6.4.2. RSA MD4チェックサム(rsa-md4)
The RSA-MD4 checksum calculates a checksum using the RSA MD4 algorithm [15]. The algorithm takes as input an input message of arbitrary length and produces as output a 128-bit (16 octet) checksum. RSA-MD4 is believed to be collision-proof.
RSA-MD4チェックサムは、RSA MD4アルゴリズム[15]を使用することでチェックサムについて計算します。 アルゴリズムは、任意の長さに関する入力メッセージを入力するとき取って、128ビット(16八重奏)のチェックサムを出力するとき、作成されます。 RSA-MD4が衝突耐であると信じられています。
6.4.3. RSA MD4 Cryptographic Checksum Using DES (rsa-md4des)
6.4.3. DESを使用するRSA MD4の暗号のチェックサム(rsa-md4des)
The RSA-MD4-DES checksum calculates a keyed collisionproof checksum by prepending an 8 octet confounder before the text, applying the RSA MD4 checksum algorithm, and encrypting the confounder and the checksum using DES in cipher-block-chaining (CBC) mode using a variant of the key, where the variant is computed by eXclusive-ORing the key with the constant F0F0F0F0F0F0F0F0 (A variant of the key is used to limit the use of a key to a particular function, separating the functions of generating a checksum from other encryption performed using the session key. The constant F0F0F0F0F0F0F0F0 was chosen because it maintains key parity. The properties of DES precluded the use of the complement. The same constant is used for similar purpose in the Message Integrity Check in the Privacy Enhanced Mail standard.). The initialization vector should be zero. The resulting checksum is 24 octets long (8 octets of which are redundant). This checksum is tamper-proof and believed to be collision-proof.
RSA MD4チェックサムアルゴリズムを適用して、異形がeXclusive-ORingによって計算されるキーの異形を使用しながら暗号ブロック連鎖(CBC)モードでDESを使用することで交絡因子とチェックサムをコード化して、RSA-MD4-DESチェックサムがテキストの前に8八重奏交絡因子をprependingする合わせられたcollisionproofチェックサムについて計算する、一定のF0F0F0F0F0F0F0F0があるキー(キーの異形はキーの使用を特定の機能に制限するのに使用されます、セッションキーを使用することで実行された他の暗号化からチェックサムを発生させる機能を切り離して。 主要な同等を維持するので、一定のF0F0F0F0F0F0F0F0は選ばれました。 DESの特性は補数の使用を排除しました。 同じ定数はPrivacy Enhancedメール規格におけるMessage Integrity Checkの同様の目的に使用されます。). 初期化ベクトルはゼロであるべきです。 長い間(それの8つの八重奏が余分である)、結果として起こるチェックサムは24の八重奏です。 このチェックサムは、干渉防止していて、衝突耐であると信じられています。
The DES specifications identify some "weak keys"; those keys shall not be used for generating RSA-MD4 checksums for use in Kerberos.
DES仕様はいくつかの「弱いキー」を特定します。 ケルベロスにおける使用のためにRSA-MD4チェックサムを発生させるのにそれらのキーを使用しないものとします。
The format for the checksum is described in the following diagram:
チェックサムのための形式は以下のダイヤグラムで説明されます:
+--+--+--+--+--+--+--+-- | des-cbc(confounder +--+--+--+--+--+--+--+--
+--+--+--+--+--+--+--+-- | des-cbc、(交絡因子+--+--+--+--+--+--+(+)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ rsa-md4(confounder+msg),key=var(key),iv=0) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ rsa-md4(交絡因子+msg)、主要な=var(主要な)、iv=0) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The format cannot be described in ASN.1, but for those who prefer an ASN.1-like notation:
形式は、ASN.1で説明されるのではなく、ASNの.1のような記法を好む人のために説明できます:
rsa-md4-des-checksum ::= ENCRYPTED UNTAGGED SEQUENCE { confounder[0] UNTAGGED OCTET STRING(8), check[1] UNTAGGED OCTET STRING(16) }
rsa-md4-des-チェックサム:、:= コード化されたUNTAGGED系列交絡因子[0]UNTAGGED OCTET STRING(8)、チェック[1]UNTAGGED OCTET STRING(16)
Kohl & Neuman [Page 75] RFC 1510 Kerberos September 1993
コールとヌーマン[75ページ]のRFCの1510のケルベロスの1993年9月
6.4.4. The RSA MD5 Checksum (rsa-md5)
6.4.4. RSA MD5チェックサム(rsa-md5)
The RSA-MD5 checksum calculates a checksum using the RSA MD5 algorithm [16]. The algorithm takes as input an input message of arbitrary length and produces as output a 128-bit (16 octet) checksum. RSA-MD5 is believed to be collision-proof.
RSA-MD5チェックサムは、RSA MD5アルゴリズム[16]を使用することでチェックサムについて計算します。 アルゴリズムは、任意の長さに関する入力メッセージを入力するとき取って、128ビット(16八重奏)のチェックサムを出力するとき、作成されます。 RSA-MD5が衝突耐であると信じられています。
6.4.5. RSA MD5 Cryptographic Checksum Using DES (rsa-md5des)
6.4.5. DESを使用するRSA MD5の暗号のチェックサム(rsa-md5des)
The RSA-MD5-DES checksum calculates a keyed collisionproof checksum by prepending an 8 octet confounder before the text, applying the RSA MD5 checksum algorithm, and encrypting the confounder and the checksum using DES in cipher-block-chaining (CBC) mode using a variant of the key, where the variant is computed by eXclusive-ORing the key with the constant F0F0F0F0F0F0F0F0. The initialization vector should be zero. The resulting checksum is 24 octets long (8 octets of which are redundant). This checksum is tamper-proof and believed to be collision-proof.
RSA-MD5-DESチェックサムは、RSA MD5チェックサムアルゴリズムを適用して、テキストの前に8八重奏交絡因子をprependingすることによって合わせられたcollisionproofチェックサムについて計算して、eXclusive-ORingで異形が計算されるキーの異形を使用しながら暗号ブロック連鎖(CBC)モードでDESを使用することで交絡因子とチェックサムをコード化するのと計算します。一定のF0F0F0F0F0F0F0F0があるキー。 初期化ベクトルはゼロであるべきです。 長い間(それの8つの八重奏が余分である)、結果として起こるチェックサムは24の八重奏です。 このチェックサムは、干渉防止していて、衝突耐であると信じられています。
The DES specifications identify some "weak keys"; those keys shall not be used for encrypting RSA-MD5 checksums for use in Kerberos.
DES仕様はいくつかの「弱いキー」を特定します。 ケルベロスにおける使用のためにRSA-MD5チェックサムをコード化するのにそれらのキーを使用しないものとします。
The format for the checksum is described in the following diagram:
チェックサムのための形式は以下のダイヤグラムで説明されます:
+--+--+--+--+--+--+--+-- | des-cbc(confounder +--+--+--+--+--+--+--+--
+--+--+--+--+--+--+--+-- | des-cbc、(交絡因子+--+--+--+--+--+--+(+)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ rsa-md5(confounder+msg),key=var(key),iv=0) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ rsa-md5(交絡因子+msg)、主要な=var(主要な)、iv=0) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The format cannot be described in ASN.1, but for those who prefer an ASN.1-like notation:
形式は、ASN.1で説明されるのではなく、ASNの.1のような記法を好む人のために説明できます:
rsa-md5-des-checksum ::= ENCRYPTED UNTAGGED SEQUENCE { confounder[0] UNTAGGED OCTET STRING(8), check[1] UNTAGGED OCTET STRING(16) }
rsa-md5-des-チェックサム:、:= コード化されたUNTAGGED系列交絡因子[0]UNTAGGED OCTET STRING(8)、チェック[1]UNTAGGED OCTET STRING(16)
6.4.6. DES cipher-block chained checksum (des-mac)
6.4.6. DES暗号ブロックはチェックサムをチェーニングしました。(des-mac)
The DES-MAC checksum is computed by prepending an 8 octet confounder to the plaintext, performing a DES CBC-mode encryption on the result using the key and an initialization vector of zero, taking the last block of the ciphertext, prepending the same confounder and encrypting the pair using DES in cipher-block-chaining (CBC) mode using a a variant of the key, where the variant is computed by
DES-MACチェックサムは8八重奏交絡因子を平文にprependingすることによって、計算されます、ゼロのキーと初期化ベクトルを使用することでDES CBC-モード暗号化を結果に実行して、暗号文の最後のブロックを取って、異形が計算されるキーのa異形を使用しながら暗号ブロック連鎖(CBC)モードでDESを使用することで同じ交絡因子をprependingして、組をコード化して
Kohl & Neuman [Page 76] RFC 1510 Kerberos September 1993
コールとヌーマン[76ページ]のRFCの1510のケルベロスの1993年9月
eXclusive-ORing the key with the constant F0F0F0F0F0F0F0F0. The initialization vector should be zero. The resulting checksum is 128 bits (16 octets) long, 64 bits of which are redundant. This checksum is tamper-proof and collision-proof.
eXclusive-ORing、一定のF0F0F0F0F0F0F0F0があるキー。 初期化ベクトルはゼロであるべきです。 結果として起こるチェックサムは長さ64ビットにどれが余分であるかの128ビット(16の八重奏)です。 干渉防止するのと耐ですこのチェックサム衝突の。
The format for the checksum is described in the following diagram:
チェックサムのための形式は以下のダイヤグラムで説明されます:
+--+--+--+--+--+--+--+-- | des-cbc(confounder +--+--+--+--+--+--+--+--
+--+--+--+--+--+--+--+-- | des-cbc、(交絡因子+--+--+--+--+--+--+(+)
+-----+-----+-----+-----+-----+-----+-----+-----+ des-mac(conf+msg,iv=0,key),key=var(key),iv=0) | +-----+-----+-----+-----+-----+-----+-----+-----+
+-----+-----+-----+-----+-----+-----+-----+-----+ des-mac(conf+msg、ivは0と主要な状態で等しい)、主要な=var(主要な)、iv=0) | +-----+-----+-----+-----+-----+-----+-----+-----+
The format cannot be described in ASN.1, but for those who prefer an ASN.1-like notation:
形式は、ASN.1で説明されるのではなく、ASNの.1のような記法を好む人のために説明できます:
des-mac-checksum ::= ENCRYPTED UNTAGGED SEQUENCE { confounder[0] UNTAGGED OCTET STRING(8), check[1] UNTAGGED OCTET STRING(8) }
des-mac-チェックサム:、:= コード化されたUNTAGGED系列交絡因子[0]UNTAGGED OCTET STRING(8)、チェック[1]UNTAGGED OCTET STRING(8)
The DES specifications identify some "weak" and "semiweak" keys; those keys shall not be used for generating DES-MAC checksums for use in Kerberos, nor shall a key be used whose veriant is "weak" or "semi-weak".
DES仕様はいくつかの「弱い」と"semiweak"キーを特定します。 ケルベロスにおける使用のためにDES-MACチェックサムを発生させるのにそれらのキーを使用しないものとして、またキーによる使用されて、だれのveriantが「弱い」か「準弱いか」ということでないものとします。
6.4.7. RSA MD4 Cryptographic Checksum Using DES alternative (rsa-md4-des-k)
6.4.7. RSA MD4 Cryptographic Checksum Using DES代替手段(rsa-md4-des-k)
The RSA-MD4-DES-K checksum calculates a keyed collision-proof checksum by applying the RSA MD4 checksum algorithm and encrypting the results using DES in cipherblock-chaining (CBC) mode using a DES key as both key and initialization vector. The resulting checksum is 16 octets long. This checksum is tamper-proof and believed to be collision-proof. Note that this checksum type is the old method for encoding the RSA-MD4-DES checksum and it is no longer recommended.
RSA-MD4-DES-Kチェックサムは、ともに主要であるとして主要なDESと初期化ベクトルを使用しながらcipherblock-推論(CBC)モードでDESを使用することでRSA MD4チェックサムアルゴリズムを適用して、結果をコード化することによって、耐衝突の合わせられたチェックサムについて計算します。 長い間、結果として起こるチェックサムは16の八重奏です。 このチェックサムは、干渉防止していて、衝突耐であると信じられています。 このチェックサムタイプがRSA-MD4-DESチェックサムをコード化するための古い方法であり、それがもうお勧めでないことに注意してください。
6.4.8. DES cipher-block chained checksum alternative (desmac-k)
6.4.8. DES暗号ブロックはチェックサム代替手段をチェーニングしました。(desmac-k)
The DES-MAC-K checksum is computed by performing a DES CBC-mode encryption of the plaintext, and using the last block of the ciphertext as the checksum value. It is keyed with an encryption key and an initialization vector; any uses which do not specify an additional initialization vector will use the key as both key and initialization vector. The resulting checksum is 64 bits (8 octets) long. This checksum is tamper-proof and collision-proof. Note that
DES-MAC-Kチェックサムは、平文のDES CBC-モード暗号化を実行して、チェックサム値として暗号文の最後のブロックを使用することによって、計算されます。 それは暗号化キーと初期化ベクトルで合わせられます。 追加初期化ベクトルを指定しないどんな用途もキーと初期化ベクトルの両方としてキーを使用するでしょう。 結果として起こるチェックサムは長さ64ビットです(8つの八重奏)。 干渉防止するのと耐ですこのチェックサム衝突の。 それに注意してください。
Kohl & Neuman [Page 77] RFC 1510 Kerberos September 1993
コールとヌーマン[77ページ]のRFCの1510のケルベロスの1993年9月
this checksum type is the old method for encoding the DESMAC checksum and it is no longer recommended.
このチェックサムタイプはDESMACチェックサムをコード化するための古い方法です、そして、それはもうお勧めではありません。
The DES specifications identify some "weak keys"; those keys shall not be used for generating DES-MAC checksums for use in Kerberos.
DES仕様はいくつかの「弱いキー」を特定します。 ケルベロスにおける使用のためにDES-MACチェックサムを発生させるのにそれらのキーを使用しないものとします。
7. Naming Constraints
7. 規制を命名します。
7.1. Realm Names
7.1. 分野名
Although realm names are encoded as GeneralStrings and although a realm can technically select any name it chooses, interoperability across realm boundaries requires agreement on how realm names are to be assigned, and what information they imply.
分野名はGeneralStringsとしてコード化されます、そして、分野はそれが選ぶどんな名前も技術的に選択できますが、分野境界の向こう側の相互運用性は分野名がどのように割り当てられるかことであり、彼らがどんな情報を含意するかに関する協定を必要とします。
To enforce these conventions, each realm must conform to the conventions itself, and it must require that any realms with which inter-realm keys are shared also conform to the conventions and require the same from its neighbors.
これらのコンベンションを実施するために、各分野がそれ自体でコンベンションに従わなければならなくて、それは、また、相互分野キーが共有されるどんな分野もコンベンションに従うのが必要であり、隣人から同じくらい必要としなければなりません。
There are presently four styles of realm names: domain, X500, other, and reserved. Examples of each style follow:
現在、4つのスタイルの分野名があります: ドメイン、他の、そして、予約されたX500。 それぞれのスタイルに関する例は従います:
domain: host.subdomain.domain (example) X500: C=US/O=OSF (example) other: NAMETYPE:rest/of.name=without-restrictions (example) reserved: reserved, but will not conflict with above
ドメイン: host.subdomain.domain(例)X500: C=米国/O=OSF(例)他: NAMETYPE: 制限(例)のない=が予約した休息/of.name: 上で衝突しないのを除いて、予約されます。
Domain names must look like domain names: they consist of components separated by periods (.) and they contain neither colons (:) nor slashes (/).
ドメイン名はドメイン名に似なければなりません: 周期的に切り離されているコンポーネントから成る、()、どちらのコロンも含んでいない、(:、)、または、スラッシュ(/)。
X.500 names contain an equal (=) and cannot contain a colon (:) before the equal. The realm names for X.500 names will be string representations of the names with components separated by slashes. Leading and trailing slashes will not be included.
X.500名が同輩(=)を含んで、コロンは含むことができない、(:、)、同輩の前で。 X.500名のための分野名はスラッシュによって切り離されるコンポーネントの名前のストリング表現になるでしょう。 主で引きずっているスラッシュは含まれないでしょう。
Names that fall into the other category must begin with a prefix that contains no equal (=) or period (.) and the prefix must be followed by a colon (:) and the rest of the name. All prefixes must be assigned before they may be used. Presently none are assigned.
もう片方のカテゴリになる名前が同輩(=)か期間を全く含まない接頭語で始まらなければならない、()、コロンが接頭語のあとに続かなければならない、(:、)、そして、名前の残り。 それらが使用されるかもしれない前にすべての接頭語を割り当てなければなりません。 現在の、なにも割り当てられません。
The reserved category includes strings which do not fall into the first three categories. All names in this category are reserved. It is unlikely that names will be assigned to this category unless there is a very strong argument for not using the "other" category.
予約されたカテゴリは最初の3つのカテゴリにならないストリングを含んでいます。 このカテゴリにおけるすべての名前が予約されています。 「他」のカテゴリを使用しないための非常に強い議論がない場合名前がこのカテゴリに割り当てられるのは、ありそうもないです。
These rules guarantee that there will be no conflicts between the
これらの規則は、闘争が全く間にないのを保証します。
Kohl & Neuman [Page 78] RFC 1510 Kerberos September 1993
コールとヌーマン[78ページ]のRFCの1510のケルベロスの1993年9月
various name styles. The following additional constraints apply to the assignment of realm names in the domain and X.500 categories: the name of a realm for the domain or X.500 formats must either be used by the organization owning (to whom it was assigned) an Internet domain name or X.500 name, or in the case that no such names are registered, authority to use a realm name may be derived from the authority of the parent realm. For example, if there is no domain name for E40.MIT.EDU, then the administrator of the MIT.EDU realm can authorize the creation of a realm with that name.
様々な名前スタイル。 以下の追加規制はドメインとX.500カテゴリにおける、分野名の課題に適用されます: インターネットドメイン名かX.500名を所有している(だれがそれを割り当てられたかに)組織がドメインかX.500形式のための分野の名前を使用しなければならない、そのようなどんな名前も登録されていなくて、さもなければ、親分野の権威から分野名を使用する権威を得るかもしれません。 例えば、E40.MIT.EDUのためのドメイン名が全くなければ、MIT.EDU分野の管理者はその名前で分野の創設を認可できます。
This is acceptable because the organization to which the parent is assigned is presumably the organization authorized to assign names to its children in the X.500 and domain name systems as well. If the parent assigns a realm name without also registering it in the domain name or X.500 hierarchy, it is the parent's responsibility to make sure that there will not in the future exists a name identical to the realm name of the child unless it is assigned to the same entity as the realm name.
親が配属される組織がおそらくX.500の子供に名前を割り当てるのが認可された組織とまた、ドメイン名システムであるので、これは許容できます。 親がまた、ドメイン名かX.500階層構造でそれを登録することのない分野名を割り当てて、分野名と同じ実体に割り当てられない場合、それはそこでは、意志が将来a名の同じ状態で存在しないのを子供の分野名に確実にする親の責任です。
7.2. Principal Names
7.2. 主要な名前
As was the case for realm names, conventions are needed to ensure that all agree on what information is implied by a principal name. The name-type field that is part of the principal name indicates the kind of information implied by the name. The name-type should be treated as a hint. Ignoring the name type, no two names can be the same (i.e., at least one of the components, or the realm, must be different). This constraint may be eliminated in the future. The following name types are defined:
分野名のためのケースのように、コンベンションが、すべてが、どんな情報が主要な名前で含意されるかに同意するのを保証するのが必要です。 主要な名前の一部である名前タイプ分野は名前によって含意された情報の種類を示します。 名前タイプはヒントとして扱われるべきです。 どんな2歳のタイプも挙げない名前を無視するのは同じである場合があります(すなわち、少なくともコンポーネント、または分野の1つは異なっているに違いありません)。 この規制は将来、取り除かれるかもしれません。 以下の名前タイプは定義されます:
name-type value meaning NT-UNKNOWN 0 Name type not known NT-PRINCIPAL 1 Just the name of the principal as in DCE, or for users NT-SRV-INST 2 Service and other unique instance (krbtgt) NT-SRV-HST 3 Service with host name as instance (telnet, rcommands) NT-SRV-XHST 4 Service with host as remaining components NT-UID 5 Unique ID
NT-プリンシパル1知られているJustではなく、NT-UNKNOWN0NameタイプのためにDCEのように主体の名前を意味しながら、値を名前でタイプしてください。さもないと、ユーザにちなんで、ホストがいるNT-SRV-INST2Serviceと他のユニークなインスタンス(krbtgt)NT-SRV-HST3Serviceはインスタンス(telnet、rcommands)NT-SRV-XHSTとしてコンポーネントのままで残っているとしてのホストがいる4ServiceをNT-UID5Unique IDと命名します。
When a name implies no information other than its uniqueness at a particular time the name type PRINCIPAL should be used. The principal name type should be used for users, and it might also be used for a unique server. If the name is a unique machine generated ID that is guaranteed never to be reassigned then the name type of UID should be used (note that it is generally a bad idea to reassign names of any type since stale entries might remain in access control lists).
名前が特定の時間のユニークさ以外の情報を全く含意しないとき、名前タイププリンシパルは使用されるべきです。 タイプという主要な名前はユーザに使用されるべきです、そして、また、それはユニークなサーバに使用されるかもしれません。名前が保証される、決して再選任されないIDであると生成されたユニークなマシンであるなら、UIDというタイプという名前は使用されるべきです(聞き古したエントリーがアクセスコントロールリストに残るかもしれないので、一般に、どんなタイプの名前も再選任するのが、悪い考えであることに注意してください)。
Kohl & Neuman [Page 79] RFC 1510 Kerberos September 1993
コールとヌーマン[79ページ]のRFCの1510のケルベロスの1993年9月
If the first component of a name identifies a service and the remaining components identify an instance of the service in a server specified manner, then the name type of SRV-INST should be used. An example of this name type is the Kerberos ticket-granting ticket which has a first component of krbtgt and a second component identifying the realm for which the ticket is valid.
名前の最初の成分がサービスを特定して、残っているコンポーネントがサーバの指定された方法でサービスのインスタンスを特定するなら、SRV-INSTというタイプという名前は使用されるべきです。 この名前タイプに関する例は、krbtgtの最初の部品を持っているチケットを与えるケルベロスチケットと分野を特定するチケットが有効である2番目のコンポーネントです。
If instance is a single component following the service name and the instance identifies the host on which the server is running, then the name type SRV-HST should be used. This type is typically used for Internet services such as telnet and the Berkeley R commands. If the separate components of the host name appear as successive components following the name of the service, then the name type SRVXHST should be used. This type might be used to identify servers on hosts with X.500 names where the slash (/) might otherwise be ambiguous.
インスタンスがサービス名に従うただ一つのコンポーネントであり、インスタンスがサーバが稼働しているホストを特定するなら、タイプという名前SRV-HSTは使用されるべきです。 このタイプはtelnetやバークレーRコマンドなどのインターネットのサービスに通常使用されます。 サービスの名前に従って、ホスト名の別々の成分が連続したコンポーネントとして現れるなら、タイプという名前SRVXHSTは使用されるべきです。 このタイプは、そうでなければスラッシュ(/)があいまいであるかもしれないX.500名とホストの上のサーバを同一視するのに使用されるかもしれません。
A name type of UNKNOWN should be used when the form of the name is not known. When comparing names, a name of type UNKNOWN will match principals authenticated with names of any type. A principal authenticated with a name of type UNKNOWN, however, will only match other names of type UNKNOWN.
名前の書式が知られていないとき、UNKNOWNの名前タイプは使用されるべきです。 名前を比較するとき、タイプUNKNOWNという名前はどんなタイプの名前でも認証された主体に合うでしょう。 しかしながら、タイプUNKNOWNという名前で認証された元本はタイプUNKNOWNという他の名前に合うだけでしょう。
Names of any type with an initial component of "krbtgt" are reserved for the Kerberos ticket granting service. See section 8.2.3 for the form of such names.
"krbtgt"の初期のコンポーネントがあるどんなタイプの名前もサービスを承諾するケルベロスチケットのために予約されます。 そのような名前のフォームに関してセクション8.2.3を見てください。
7.2.1. Name of server principals
7.2.1. サーバ主体の名前
The principal identifier for a server on a host will generally be composed of two parts: (1) the realm of the KDC with which the server is registered, and (2) a two-component name of type NT-SRV-HST if the host name is an Internet domain name or a multi-component name of type NT-SRV-XHST if the name of the host is of a form such as X.500 that allows slash (/) separators. The first component of the two- or multi-component name will identify the service and the latter components will identify the host. Where the name of the host is not case sensitive (for example, with Internet domain names) the name of the host must be lower case. For services such as telnet and the Berkeley R commands which run with system privileges, the first component will be the string "host" instead of a service specific identifier.
一般に、ホストの上のサーバのための主要な識別子は2つの部品で構成されるでしょう: (1) ホストの名前がスラッシュ(/)に分離符を許容するX.500などのフォームのものであるなら、ホスト名であるならサーバが登録されるのと(2)のa2コンポーネントの名(タイプNT-SRV-HST)であるKDCの分野は、インターネットドメイン名かタイプNT-SRV-XHSTという多成分系の名前です。 2か多成分系の名前の最初の成分はサービスを特定するでしょう、そして、後者のコンポーネントはホストを特定するでしょう。 ホストの名前が大文字と小文字を区別していないところでは(例えばインターネットドメイン名で)、ホストの名前は小文字であるに違いありません。 telnetやシステム特権と共に稼働するバークレーRコマンドなどのサービスのために、最初のコンポーネントはサービスの特定の識別子の代わりにストリング」になるでしょう「ホスト。
8. Constants and other defined values
8. 定数と他の定義された値
8.1. Host address types
8.1. ホスト・アドレスタイプ
All negative values for the host address type are reserved for local use. All non-negative values are reserved for officially assigned
ホスト・アドレスタイプのためのすべての負の数が地方の使用のために予約されます。 割り当てられて、非負の数が公式に予約されるすべて
Kohl & Neuman [Page 80] RFC 1510 Kerberos September 1993
コールとヌーマン[80ページ]のRFCの1510のケルベロスの1993年9月
type fields and interpretations.
分野と解釈をタイプしてください。
The values of the types for the following addresses are chosen to match the defined address family constants in the Berkeley Standard Distributions of Unix. They can be found in <sys/socket.h> with symbolic names AF_xxx (where xxx is an abbreviation of the address family name).
以下のアドレスが定義に合うように選ばれているので、タイプの値はUnixのバークレーStandard Distributionsでファミリーに定数を扱います。 <sys/socket.h>で英字名AF_xxx(xxxがアドレス姓の略語であるところ)でそれらを見つけることができます。
Internet addresses
インターネット・アドレス
Internet addresses are 32-bit (4-octet) quantities, encoded in MSB order. The type of internet addresses is two (2).
インターネット・アドレスはMSBオーダーでコード化された(4八重奏)の32ビットの量です。 インターネットアドレスのタイプは2(2)です。
CHAOSnet addresses
CHAOSnetアドレス
CHAOSnet addresses are 16-bit (2-octet) quantities, encoded in MSB order. The type of CHAOSnet addresses is five (5).
CHAOSnetアドレスはMSBオーダーでコード化された(2八重奏)の16ビットの量です。 CHAOSnetアドレスのタイプは5(5)です。
ISO addresses
ISOアドレス
ISO addresses are variable-length. The type of ISO addresses is seven (7).
ISOアドレスは可変長です。 ISOアドレスのタイプは7(7)です。
Xerox Network Services (XNS) addresses
ゼロックスNetwork Services(XNS)アドレス
XNS addresses are 48-bit (6-octet) quantities, encoded in MSB order. The type of XNS addresses is six (6).
XNSアドレスはMSBオーダーでコード化された(6八重奏)の48ビットの量です。 XNSアドレスのタイプは6(6)です。
AppleTalk Datagram Delivery Protocol (DDP) addresses
AppleTalkデータグラムDeliveryプロトコル(DDP)アドレス
AppleTalk DDP addresses consist of an 8-bit node number and a 16- bit network number. The first octet of the address is the node number; the remaining two octets encode the network number in MSB order. The type of AppleTalk DDP addresses is sixteen (16).
AppleTalk DDPアドレスは8ビットのノード番号と16の噛み付いているネットワーク・ナンバーから成ります。 アドレスの最初の八重奏はノード番号です。 残っている2つの八重奏がMSBオーダーにおけるネットワーク・ナンバーをコード化します。 AppleTalk DDPアドレスのタイプは16(16)です。
DECnet Phase IV addresses
DECnet Phase IVアドレス
DECnet Phase IV addresses are 16-bit addresses, encoded in LSB order. The type of DECnet Phase IV addresses is twelve (12).
DECnet Phase IVアドレスはLSBオーダーでコード化された16ビットのアドレスです。 DECnet Phase IVアドレスのタイプは12(12)です。
8.2. KDC messages
8.2. KDCメッセージ
8.2.1. IP transport
8.2.1. IP輸送
When contacting a Kerberos server (KDC) for a KRB_KDC_REQ request using IP transport, the client shall send a UDP datagram containing only an encoding of the request to port 88 (decimal) at the KDC's IP
IP輸送を使用することでREQが要求するKRB_KDC_のために、ケルベロスサーバ(KDC)に連絡するとき、クライアントはKDCのIPで88(10進)を移植するという要求のコード化だけを含むUDPデータグラムを送るものとします。
Kohl & Neuman [Page 81] RFC 1510 Kerberos September 1993
コールとヌーマン[81ページ]のRFCの1510のケルベロスの1993年9月
address; the KDC will respond with a reply datagram containing only an encoding of the reply message (either a KRB_ERROR or a KRB_KDC_REP) to the sending port at the sender's IP address.
アドレス。 応答データグラムが応答メッセージ(KRB_ERRORかKRB_KDC_REPのどちらか)のコード化だけを送付者のIP住所の送付ポートに含んでいて、KDCは応じるでしょう。
8.2.2. OSI transport
8.2.2. OSI輸送
During authentication of an OSI client to and OSI server, the mutual authentication of an OSI server to an OSI client, the transfer of credentials from an OSI client to an OSI server, or during exchange of private or integrity checked messages, Kerberos protocol messages may be treated as opaque objects and the type of the authentication mechanism will be:
そして、OSIクライアントの認証、OSIサーバ、OSIクライアントへのOSIサーバの互いの認証、OSIクライアントからOSIサーバまで個人的であるか保全チェックのメッセージの交換間の資格証明書の転送、ケルベロスプロトコルメッセージは不透明なオブジェクトとして扱われるかもしれなくて、認証機構のタイプは以下の通りになるでしょう。
OBJECT IDENTIFIER ::= {iso (1), org(3), dod(5),internet(1), security(5), kerberosv5(2)}
オブジェクト識別子:、:= iso(1)、org(3)、dod(5)、インターネット(1)、セキュリティ(5)、kerberosv5(2)
Depending on the situation, the opaque object will be an authentication header (KRB_AP_REQ), an authentication reply (KRB_AP_REP), a safe message (KRB_SAFE), a private message (KRB_PRIV), or a credentials message (KRB_CRED). The opaque data contains an application code as specified in the ASN.1 description for each message. The application code may be used by Kerberos to determine the message type.
状況によって、不透明なオブジェクトは、認証ヘッダー(KRB_AP_REQ)、認証回答(KRB_AP_REP)、または安全なメッセージ(KRB_SAFE)か、プライベート・メッセージ(KRB_PRIV)か、資格証明書メッセージになるでしょう(KRB_CRED)。 不明瞭なデータは各メッセージのためのASN.1記述における指定されるとしての応用コードを含んでいます。 応用コードは、メッセージタイプを決定するのにケルベロスで使用されるかもしれません。
8.2.3. Name of the TGS
8.2.3. TGSという名前
The principal identifier of the ticket-granting service shall be composed of three parts: (1) the realm of the KDC issuing the TGS ticket (2) a two-part name of type NT-SRVINST, with the first part "krbtgt" and the second part the name of the realm which will accept the ticket-granting ticket. For example, a ticket-granting ticket issued by the ATHENA.MIT.EDU realm to be used to get tickets from the ATHENA.MIT.EDU KDC has a principal identifier of "ATHENA.MIT.EDU" (realm), ("krbtgt", "ATHENA.MIT.EDU") (name). A ticket-granting ticket issued by the ATHENA.MIT.EDU realm to be used to get tickets from the MIT.EDU realm has a principal identifier of "ATHENA.MIT.EDU" (realm), ("krbtgt", "MIT.EDU") (name).
チケットを与えるサービスの主要な識別子は3つの部品で構成されるものとします: (1) 最初の部分"krbtgt"があるタイプNT-SRVINSTという2部分の名前をTGSチケット(2)に発行して、チケットを与えるチケットを受け入れる分野の名前を第二部に発行するKDCの分野。 例えば、ATHENA.MIT.EDU KDCからチケットを手に入れるのに使用されるためにATHENA.MIT.EDU分野によって発行されたチケットを与えるチケットは"ATHENA.MIT.EDU"(分野)、("krbtgt"、"ATHENA.MIT.EDU")(命名する)の主要な識別子を持っています。 MIT.EDU分野からチケットを手に入れるのに使用されるためにATHENA.MIT.EDU分野によって発行されたチケットを与えるチケットは"ATHENA.MIT.EDU"(分野)、("krbtgt"、"MIT.EDU")(命名する)の主要な識別子を持っています。
8.3. Protocol constants and associated values
8.3. プロトコル定数と関連値
The following tables list constants used in the protocol and defines their meanings.
以下は、プロトコルに使用されるリスト定数を見送って、それらの意味を定義します。
Kohl & Neuman [Page 82] RFC 1510 Kerberos September 1993
コールとヌーマン[82ページ]のRFCの1510のケルベロスの1993年9月
---------------+-----------+----------+----------------+--------------- Encryption type|etype value|block size|minimum pad size|confounder size ---------------+-----------+----------+----------------+--------------- NULL 0 1 0 0 des-cbc-crc 1 8 4 8 des-cbc-md4 2 8 0 8 des-cbc-md5 3 8 0 8
---------------+-----------+----------+----------------+--------------- 暗号化タイプ|etype値|ブロック・サイズ|最小のパッドサイズ|交絡因子サイズ---------------+-----------+----------+----------------+--------------- NULL0 1 0 0des-cbc-crc1 8 4 8des-cbc-md4 2 8 0 8 des-cbc-md5 3 8 0 8
-------------------------------+-------------------+------------- Checksum type |sumtype value |checksum size -------------------------------+-------------------+------------- CRC32 1 4 rsa-md4 2 16 rsa-md4-des 3 24 des-mac 4 16 des-mac-k 5 8 rsa-md4-des-k 6 16 rsa-md5 7 16 rsa-md5-des 8 24
-------------------------------+-------------------+------------- チェックサムタイプ|sumtype値|チェックサムサイズ-------------------------------+-------------------+------------- CRC32 1 4rsa-md4 2 16rsa-md4-des3 24des-mac4 16des-mac-k5 8rsa-md4-des-k6 16rsa-md5 7 16rsa-md5-des8 24
-------------------------------+----------------- padata type |padata-type value -------------------------------+----------------- PA-TGS-REQ 1 PA-ENC-TIMESTAMP 2 PA-PW-SALT 3
-------------------------------+----------------- padataタイプ|padata-タイプ値-------------------------------+----------------- 1PA-TGS-REQ PA ENCタイムスタンプ2PA PW塩の3
-------------------------------+------------- authorization data type |ad-type value -------------------------------+------------- reserved values 0-63 OSF-DCE 64 SESAME 65
-------------------------------+------------- 承認データ型|広告タイプ値-------------------------------+------------- 予約された値0-63OSF-DCE64SESAME65
-------------------------------+----------------- alternate authentication type |method-type value -------------------------------+----------------- reserved values 0-63 ATT-CHALLENGE-RESPONSE 64
-------------------------------+----------------- 代替の認証タイプ|メソッドタイプ値-------------------------------+----------------- 予約された値0-63ATT-CHALLENGE-RESPONSE64
-------------------------------+------------- transited encoding type |tr-type value -------------------------------+------------- DOMAIN-X500-COMPRESS 1 reserved values all others
-------------------------------+------------- タイプをコード化しながら、通過されます。|tr-タイプ値-------------------------------+------------- 予約されたDOMAIN-X500-COMPRESS1はすべての他のものを評価します。
Kohl & Neuman [Page 83] RFC 1510 Kerberos September 1993
コールとヌーマン[83ページ]のRFCの1510のケルベロスの1993年9月
--------------+-------+----------------------------------------- Label |Value |Meaning or MIT code --------------+-------+-----------------------------------------
--------------+-------+----------------------------------------- ラベル|値|意味かMITコード--------------+-------+-----------------------------------------
pvno 5 current Kerberos protocol version number
pvnoの5の現在のケルベロスプロトコルバージョン番号
message types
メッセージタイプ
KRB_AS_REQ 10 Request for initial authentication KRB_AS_REP 11 Response to KRB_AS_REQ request KRB_TGS_REQ 12 Request for authentication based on TGT KRB_TGS_REP 13 Response to KRB_TGS_REQ request KRB_AP_REQ 14 application request to server KRB_AP_REP 15 Response to KRB_AP_REQ_MUTUAL KRB_SAFE 20 Safe (checksummed) application message KRB_PRIV 21 Private (encrypted) application message KRB_CRED 22 Private (encrypted) message to forward credentials KRB_ERROR 30 Error response
KRB、_KRB_AS_REQへのAS_REP11ResponseがTGT KRB_TGS_REP13ResponseでKRB_TGS_REQ12Requestを認証に基づいた状態でKRB_TGS_REQに要求する初期の認証KRB_のためのAS_REQ10RequestはKRB_AP_REQ_MUTUAL KRB_SAFE20Safe(checksummedしました)アプリケーションメッセージKRB_PRIV21兵士(暗号化される)のアプリケーションメッセージKRB_CRED22兵士(暗号化される)へのAP_REP15ResponseがKRB_ERROR30Error応答を資格証明書に送るために通信させるサーバKRB_にKRB_AP_REQ14アプリケーション要求を要求します。
name types
名前タイプ
KRB_NT_UNKNOWN 0 Name type not known KRB_NT_PRINCIPAL 1 Just the name of the principal as in DCE, or for users KRB_NT_SRV_INST 2 Service and other unique instance (krbtgt) KRB_NT_SRV_HST 3 Service with host name as instance (telnet, rcommands) KRB_NT_SRV_XHST 4 Service with host as remaining components KRB_NT_UID 5 Unique ID
KRB_NT_UNKNOWN0Nameタイプの知られていない_KRB_NTプリンシパル1JustはホストがいるSRV_HST3ServiceがコンポーネントKRB_NT_UID5Unique IDのままで残っているとしてのホストと共にインスタンス(telnet、rcommands)KRB_NT_SRV_XHST4Serviceとして命名するユーザのDCEか、KRB_NT_SRV_INST2Serviceと他のユニークなインスタンス(krbtgt)KRB_NT_のための主体の名前です。
error codes
エラーコード
KDC_ERR_NONE 0 No error KDC_ERR_NAME_EXP 1 Client's entry in database has expired KDC_ERR_SERVICE_EXP 2 Server's entry in database has expired KDC_ERR_BAD_PVNO 3 Requested protocol version number not supported KDC_ERR_C_OLD_MAST_KVNO 4 Client's key encrypted in old master key KDC_ERR_S_OLD_MAST_KVNO 5 Server's key encrypted in old master key KDC_ERR_C_PRINCIPAL_UNKNOWN 6 Client not found in Kerberos database KDC_ERR_S_PRINCIPAL_UNKNOWN 7 Server not found in Kerberos database KDC_ERR_PRINCIPAL_NOT_UNIQUE 8 Multiple principal entries in database
KDC_ERR_NONE0いいえ誤りKDC_ERR_NAME_EXP、データベースにおける1ClientのエントリーがKDC_ERR_SERVICE_EXPを吐き出した、データベースにおける2ServerのエントリーはC_OLD_MAST_KVNO4Clientのキーが巨匠で暗号化したKDC_ERR_であることはサポートされなかったKDC_ERR_BAD_PVNO3Requestedプロトコルバージョン番号を吐き出しました; S_OLD_MAST_KVNO5Serverのキーが巨匠の主要な__KDC_ERR Cプリンシパル_UNKNOWN6Clientで暗号化した主要なKDC_ERR_は、ケルベロスデータベースKDC_ERR_Sで_プリンシパル_UNKNOWN7ServerがケルベロスデータベースKDCで__データベースにおけるUNIQUE8のMultipleの主要なエントリーではなく、ERR_プリンシパル_を見つけなかったのがわかりませんでした。
Kohl & Neuman [Page 84] RFC 1510 Kerberos September 1993
コールとヌーマン[84ページ]のRFCの1510のケルベロスの1993年9月
KDC_ERR_NULL_KEY 9 The client or server has a null key KDC_ERR_CANNOT_POSTDATE 10 Ticket not eligible for postdating KDC_ERR_NEVER_VALID 11 Requested start time is later than end time KDC_ERR_POLICY 12 KDC policy rejects request KDC_ERR_BADOPTION 13 KDC cannot accommodate requested option KDC_ERR_ETYPE_NOSUPP 14 KDC has no support for encryption type KDC_ERR_SUMTYPE_NOSUPP 15 KDC has no support for checksum type KDC_ERR_PADATA_TYPE_NOSUPP 16 KDC has no support for padata type KDC_ERR_TRTYPE_NOSUPP 17 KDC has no support for transited type KDC_ERR_CLIENT_REVOKED 18 Clients credentials have been revoked KDC_ERR_SERVICE_REVOKED 19 Credentials for server have been revoked KDC_ERR_TGT_REVOKED 20 TGT has been revoked KDC_ERR_CLIENT_NOTYET 21 Client not yet valid - try again later KDC_ERR_SERVICE_NOTYET 22 Server not yet valid - try again later KDC_ERR_KEY_EXPIRED 23 Password has expired - change password to reset KDC_ERR_PREAUTH_FAILED 24 Pre-authentication information was invalid KDC_ERR_PREAUTH_REQUIRED 25 Additional pre-authentication required* KRB_AP_ERR_BAD_INTEGRITY 31 Integrity check on decrypted field failed KRB_AP_ERR_TKT_EXPIRED 32 Ticket expired KRB_AP_ERR_TKT_NYV 33 Ticket not yet valid KRB_AP_ERR_REPEAT 34 Request is a replay KRB_AP_ERR_NOT_US 35 The ticket isn't for us KRB_AP_ERR_BADMATCH 36 Ticket and authenticator don't match KRB_AP_ERR_SKEW 37 Clock skew too great KRB_AP_ERR_BADADDR 38 Incorrect net address KRB_AP_ERR_BADVERSION 39 Protocol version mismatch KRB_AP_ERR_MSG_TYPE 40 Invalid msg type KRB_AP_ERR_MODIFIED 41 Message stream modified KRB_AP_ERR_BADORDER 42 Message out of order KRB_AP_ERR_BADKEYVER 44 Specified version of key is not available KRB_AP_ERR_NOKEY 45 Service key not available KRB_AP_ERR_MUT_FAIL 46 Mutual authentication failed KRB_AP_ERR_BADDIRECTION 47 Incorrect message direction KRB_AP_ERR_METHOD 48 Alternative authentication method required* KRB_AP_ERR_BADSEQ 49 Incorrect sequence number in message KRB_AP_ERR_INAPP_CKSUM 50 Inappropriate type of checksum in
KDC_ERR_NULL_KEY 9 The client or server has a null key KDC_ERR_CANNOT_POSTDATE 10 Ticket not eligible for postdating KDC_ERR_NEVER_VALID 11 Requested start time is later than end time KDC_ERR_POLICY 12 KDC policy rejects request KDC_ERR_BADOPTION 13 KDC cannot accommodate requested option KDC_ERR_ETYPE_NOSUPP 14 KDC has no support for encryption type KDC_ERR_SUMTYPE_NOSUPP 15 KDC has no support for checksum type KDC_ERR_PADATA_TYPE_NOSUPP 16 KDC has no support for padata type KDC_ERR_TRTYPE_NOSUPP 17 KDC has no support for transited type KDC_ERR_CLIENT_REVOKED 18 Clients credentials have been revoked KDC_ERR_SERVICE_REVOKED 19 Credentials for server have been revoked KDC_ERR_TGT_REVOKED 20 TGT has been revoked KDC_ERR_CLIENT_NOTYET 21 Client not yet valid - try again later KDC_ERR_SERVICE_NOTYET 22 Server not yet valid - try again later KDC_ERR_KEY_EXPIRED 23 Password has expired - change password to reset KDC_ERR_PREAUTH_FAILED 24 Pre-authentication information was invalid KDC_ERR_PREAUTH_REQUIRED 25 Additional pre-authentication required* KRB_AP_ERR_BAD_INTEGRITY 31 Integrity check on decrypted field failed KRB_AP_ERR_TKT_EXPIRED 32 Ticket expired KRB_AP_ERR_TKT_NYV 33 Ticket not yet valid KRB_AP_ERR_REPEAT 34 Request is a replay KRB_AP_ERR_NOT_US 35 The ticket isn't for us KRB_AP_ERR_BADMATCH 36 Ticket and authenticator don't match KRB_AP_ERR_SKEW 37 Clock skew too great KRB_AP_ERR_BADADDR 38 Incorrect net address KRB_AP_ERR_BADVERSION 39 Protocol version mismatch KRB_AP_ERR_MSG_TYPE 40 Invalid msg type KRB_AP_ERR_MODIFIED 41 Message stream modified KRB_AP_ERR_BADORDER 42 Message out of order KRB_AP_ERR_BADKEYVER 44 Specified version of key is not available KRB_AP_ERR_NOKEY 45 Service key not available KRB_AP_ERR_MUT_FAIL 46 Mutual authentication failed KRB_AP_ERR_BADDIRECTION 47 Incorrect message direction KRB_AP_ERR_METHOD 48 Alternative authentication method required* KRB_AP_ERR_BADSEQ 49 Incorrect sequence number in message KRB_AP_ERR_INAPP_CKSUM 50 Inappropriate type of checksum in
Kohl & Neuman [Page 85] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 85] RFC 1510 Kerberos September 1993
message KRB_ERR_GENERIC 60 Generic error (description in e-text) KRB_ERR_FIELD_TOOLONG 61 Field is too long for this implementation
message KRB_ERR_GENERIC 60 Generic error (description in e-text) KRB_ERR_FIELD_TOOLONG 61 Field is too long for this implementation
*This error carries additional information in the e-data field. The contents of the e-data field for this message is described in section 5.9.1.
*This error carries additional information in the e-data field. The contents of the e-data field for this message is described in section 5.9.1.
9. Interoperability requirements
9. Interoperability requirements
Version 5 of the Kerberos protocol supports a myriad of options. Among these are multiple encryption and checksum types, alternative encoding schemes for the transited field, optional mechanisms for pre-authentication, the handling of tickets with no addresses, options for mutual authentication, user to user authentication, support for proxies, forwarding, postdating, and renewing tickets, the format of realm names, and the handling of authorization data.
Version 5 of the Kerberos protocol supports a myriad of options. Among these are multiple encryption and checksum types, alternative encoding schemes for the transited field, optional mechanisms for pre-authentication, the handling of tickets with no addresses, options for mutual authentication, user to user authentication, support for proxies, forwarding, postdating, and renewing tickets, the format of realm names, and the handling of authorization data.
In order to ensure the interoperability of realms, it is necessary to define a minimal configuration which must be supported by all implementations. This minimal configuration is subject to change as technology does. For example, if at some later date it is discovered that one of the required encryption or checksum algorithms is not secure, it will be replaced.
In order to ensure the interoperability of realms, it is necessary to define a minimal configuration which must be supported by all implementations. This minimal configuration is subject to change as technology does. For example, if at some later date it is discovered that one of the required encryption or checksum algorithms is not secure, it will be replaced.
9.1. Specification 1
9.1. Specification 1
This section defines the first specification of these options. Implementations which are configured in this way can be said to support Kerberos Version 5 Specification 1 (5.1).
This section defines the first specification of these options. Implementations which are configured in this way can be said to support Kerberos Version 5 Specification 1 (5.1).
Encryption and checksum methods
Encryption and checksum methods
The following encryption and checksum mechanisms must be supported. Implementations may support other mechanisms as well, but the additional mechanisms may only be used when communicating with principals known to also support them: Encryption: DES-CBC-MD5 Checksums: CRC-32, DES-MAC, DES-MAC-K, and DES-MD5
The following encryption and checksum mechanisms must be supported. Implementations may support other mechanisms as well, but the additional mechanisms may only be used when communicating with principals known to also support them: Encryption: DES-CBC-MD5 Checksums: CRC-32, DES-MAC, DES-MAC-K, and DES-MD5
Realm Names
Realm Names
All implementations must understand hierarchical realms in both the Internet Domain and the X.500 style. When a ticket granting ticket for an unknown realm is requested, the KDC must be able to determine the names of the intermediate realms between the KDCs realm and the requested realm.
All implementations must understand hierarchical realms in both the Internet Domain and the X.500 style. When a ticket granting ticket for an unknown realm is requested, the KDC must be able to determine the names of the intermediate realms between the KDCs realm and the requested realm.
Kohl & Neuman [Page 86] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 86] RFC 1510 Kerberos September 1993
Transited field encoding
Transited field encoding
DOMAIN-X500-COMPRESS (described in section 3.3.3.1) must be supported. Alternative encodings may be supported, but they may be used only when that encoding is supported by ALL intermediate realms.
DOMAIN-X500-COMPRESS (described in section 3.3.3.1) must be supported. Alternative encodings may be supported, but they may be used only when that encoding is supported by ALL intermediate realms.
Pre-authentication methods
Pre-authentication methods
The TGS-REQ method must be supported. The TGS-REQ method is not used on the initial request. The PA-ENC-TIMESTAMP method must be supported by clients but whether it is enabled by default may be determined on a realm by realm basis. If not used in the initial request and the error KDC_ERR_PREAUTH_REQUIRED is returned specifying PA-ENCTIMESTAMP as an acceptable method, the client should retry the initial request using the PA-ENC-TIMESTAMP preauthentication method. Servers need not support the PAENC-TIMESTAMP method, but if not supported the server should ignore the presence of PA-ENC-TIMESTAMP pre-authentication in a request.
The TGS-REQ method must be supported. The TGS-REQ method is not used on the initial request. The PA-ENC-TIMESTAMP method must be supported by clients but whether it is enabled by default may be determined on a realm by realm basis. If not used in the initial request and the error KDC_ERR_PREAUTH_REQUIRED is returned specifying PA-ENCTIMESTAMP as an acceptable method, the client should retry the initial request using the PA-ENC-TIMESTAMP preauthentication method. Servers need not support the PAENC-TIMESTAMP method, but if not supported the server should ignore the presence of PA-ENC-TIMESTAMP pre-authentication in a request.
Mutual authentication
Mutual authentication
Mutual authentication (via the KRB_AP_REP message) must be supported.
Mutual authentication (via the KRB_AP_REP message) must be supported.
Ticket addresses and flags
Ticket addresses and flags
All KDC's must pass on tickets that carry no addresses (i.e., if a TGT contains no addresses, the KDC will return derivative tickets), but each realm may set its own policy for issuing such tickets, and each application server will set its own policy with respect to accepting them. By default, servers should not accept them.
All KDC's must pass on tickets that carry no addresses (i.e., if a TGT contains no addresses, the KDC will return derivative tickets), but each realm may set its own policy for issuing such tickets, and each application server will set its own policy with respect to accepting them. By default, servers should not accept them.
Proxies and forwarded tickets must be supported. Individual realms and application servers can set their own policy on when such tickets will be accepted.
Proxies and forwarded tickets must be supported. Individual realms and application servers can set their own policy on when such tickets will be accepted.
All implementations must recognize renewable and postdated tickets, but need not actually implement them. If these options are not supported, the starttime and endtime in the ticket shall specify a ticket's entire useful life. When a postdated ticket is decoded by a server, all implementations shall make the presence of the postdated flag visible to the calling server.
All implementations must recognize renewable and postdated tickets, but need not actually implement them. If these options are not supported, the starttime and endtime in the ticket shall specify a ticket's entire useful life. When a postdated ticket is decoded by a server, all implementations shall make the presence of the postdated flag visible to the calling server.
User-to-user authentication
User-to-user authentication
Support for user to user authentication (via the ENC-TKTIN-SKEY KDC option) must be provided by implementations, but individual realms may decide as a matter of policy to reject such requests on a per- principal or realm-wide basis.
Support for user to user authentication (via the ENC-TKTIN-SKEY KDC option) must be provided by implementations, but individual realms may decide as a matter of policy to reject such requests on a per- principal or realm-wide basis.
Kohl & Neuman [Page 87] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 87] RFC 1510 Kerberos September 1993
Authorization data
Authorization data
Implementations must pass all authorization data subfields from ticket-granting tickets to any derivative tickets unless directed to suppress a subfield as part of the definition of that registered subfield type (it is never incorrect to pass on a subfield, and no registered subfield types presently specify suppression at the KDC).
Implementations must pass all authorization data subfields from ticket-granting tickets to any derivative tickets unless directed to suppress a subfield as part of the definition of that registered subfield type (it is never incorrect to pass on a subfield, and no registered subfield types presently specify suppression at the KDC).
Implementations must make the contents of any authorization data subfields available to the server when a ticket is used. Implementations are not required to allow clients to specify the contents of the authorization data fields.
Implementations must make the contents of any authorization data subfields available to the server when a ticket is used. Implementations are not required to allow clients to specify the contents of the authorization data fields.
9.2. Recommended KDC values
9.2. Recommended KDC values
Following is a list of recommended values for a KDC implementation, based on the list of suggested configuration constants (see section 4.4).
Following is a list of recommended values for a KDC implementation, based on the list of suggested configuration constants (see section 4.4).
minimum lifetime 5 minutes
minimum lifetime 5 minutes
maximum renewable lifetime 1 week
maximum renewable lifetime 1 week
maximum ticket lifetime 1 day
maximum ticket lifetime 1 day
empty addresses only when suitable restrictions appear in authorization data
empty addresses only when suitable restrictions appear in authorization data
proxiable, etc. Allowed.
proxiable, etc. Allowed.
10. Acknowledgments
10. Acknowledgments
Early versions of this document, describing version 4 of the protocol, were written by Jennifer Steiner (formerly at Project Athena); these drafts provided an excellent starting point for this current version 5 specification. Many people in the Internet community have contributed ideas and suggested protocol changes for version 5. Notable contributions came from Ted Anderson, Steve Bellovin and Michael Merritt [17], Daniel Bernstein, Mike Burrows, Donald Davis, Ravi Ganesan, Morrie Gasser, Virgil Gligor, Bill Griffeth, Mark Lillibridge, Mark Lomas, Steve Lunt, Piers McMahon, Joe Pato, William Sommerfeld, Stuart Stubblebine, Ralph Swick, Ted T'so, and Stanley Zanarotti. Many others commented and helped shape this specification into its current form.
Early versions of this document, describing version 4 of the protocol, were written by Jennifer Steiner (formerly at Project Athena); these drafts provided an excellent starting point for this current version 5 specification. Many people in the Internet community have contributed ideas and suggested protocol changes for version 5. Notable contributions came from Ted Anderson, Steve Bellovin and Michael Merritt [17], Daniel Bernstein, Mike Burrows, Donald Davis, Ravi Ganesan, Morrie Gasser, Virgil Gligor, Bill Griffeth, Mark Lillibridge, Mark Lomas, Steve Lunt, Piers McMahon, Joe Pato, William Sommerfeld, Stuart Stubblebine, Ralph Swick, Ted T'so, and Stanley Zanarotti. Many others commented and helped shape this specification into its current form.
Kohl & Neuman [Page 88] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 88] RFC 1510 Kerberos September 1993
11. References
11. References
[1] Miller, S., Neuman, C., Schiller, J., and J. Saltzer, "Section E.2.1: Kerberos Authentication and Authorization System", M.I.T. Project Athena, Cambridge, Massachusetts, December 21, 1987.
[1] Miller, S., Neuman, C., Schiller, J., and J. Saltzer, "Section E.2.1: Kerberos Authentication and Authorization System", M.I.T. Project Athena, Cambridge, Massachusetts, December 21, 1987.
[2] Steiner, J., Neuman, C., and J. Schiller, "Kerberos: An Authentication Service for Open Network Systems", pp. 191-202 in Usenix Conference Proceedings, Dallas, Texas, February, 1988.
[2] Steiner, J., Neuman, C., and J. Schiller, "Kerberos: An Authentication Service for Open Network Systems", pp. 191-202 in Usenix Conference Proceedings, Dallas, Texas, February, 1988.
[3] Needham, R., and M. Schroeder, "Using Encryption for Authentication in Large Networks of Computers", Communications of the ACM, Vol. 21 (12), pp. 993-999, December 1978.
[3] Needham, R., and M. Schroeder, "Using Encryption for Authentication in Large Networks of Computers", Communications of the ACM, Vol. 21 (12), pp. 993-999, December 1978.
[4] Denning, D., and G. Sacco, "Time stamps in Key Distribution Protocols", Communications of the ACM, Vol. 24 (8), pp. 533-536, August 1981.
[4] Denning, D., and G. Sacco, "Time stamps in Key Distribution Protocols", Communications of the ACM, Vol. 24 (8), pp. 533-536, August 1981.
[5] Kohl, J., Neuman, C., and T. Ts'o, "The Evolution of the Kerberos Authentication Service", in an IEEE Computer Society Text soon to be published, June 1992.
[5] Kohl, J., Neuman, C., and T. Ts'o, "The Evolution of the Kerberos Authentication Service", in an IEEE Computer Society Text soon to be published, June 1992.
[6] Davis, D., and R. Swick, "Workstation Services and Kerberos Authentication at Project Athena", Technical Memorandum TM-424, MIT Laboratory for Computer Science, February 1990.
[6] Davis, D., and R. Swick, "Workstation Services and Kerberos Authentication at Project Athena", Technical Memorandum TM-424, MIT Laboratory for Computer Science, February 1990.
[7] Levine, P., Gretzinger, M, Diaz, J., Sommerfeld, W., and K. Raeburn, "Section E.1: Service Management System, M.I.T. Project Athena, Cambridge, Mas sachusetts (1987).
[7] Levine, P., Gretzinger, M, Diaz, J., Sommerfeld, W., and K. Raeburn, "Section E.1: Service Management System, M.I.T. Project Athena, Cambridge, Mas sachusetts (1987).
[8] CCITT, Recommendation X.509: The Directory Authentication Framework, December 1988.
[8] CCITT, Recommendation X.509: The Directory Authentication Framework, December 1988.
[9] Neuman, C., "Proxy-Based Authorization and Accounting for Distributed Systems," in Proceedings of the 13th International Conference on Distributed Computing Systems", Pittsburgh, PA, May 1993.
[9] Neuman, C., "Proxy-Based Authorization and Accounting for Distributed Systems," in Proceedings of the 13th International Conference on Distributed Computing Systems", Pittsburgh, PA, May 1993.
[10] Pato, J., "Using Pre-Authentication to Avoid Password Guessing Attacks", Open Software Foundation DCE Request for Comments 26, December 1992.
[10] Pato, J., "Using Pre-Authentication to Avoid Password Guessing Attacks", Open Software Foundation DCE Request for Comments 26, December 1992.
[11] National Bureau of Standards, U.S. Department of Commerce, "Data Encryption Standard", Federal Information Processing Standards Publication 46, Washington, DC (1977).
[11] National Bureau of Standards, U.S. Department of Commerce, "Data Encryption Standard", Federal Information Processing Standards Publication 46, Washington, DC (1977).
Kohl & Neuman [Page 89] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 89] RFC 1510 Kerberos September 1993
[12] National Bureau of Standards, U.S. Department of Commerce, "DES Modes of Operation", Federal Information Processing Standards Publication 81, Springfield, VA, December 1980.
[12] National Bureau of Standards, U.S. Department of Commerce, "DES Modes of Operation", Federal Information Processing Standards Publication 81, Springfield, VA, December 1980.
[13] Stubblebine S., and V. Gligor, "On Message Integrity in Cryptographic Protocols", in Proceedings of the IEEE Symposium on Research in Security and Privacy, Oakland, California, May 1992.
[13] Stubblebine S., and V. Gligor, "On Message Integrity in Cryptographic Protocols", in Proceedings of the IEEE Symposium on Research in Security and Privacy, Oakland, California, May 1992.
[14] International Organization for Standardization, "ISO Information Processing Systems - Data Communication High-Level Data Link Control Procedure - Frame Structure", IS 3309, October 1984, 3rd Edition.
[14] International Organization for Standardization, "ISO Information Processing Systems - Data Communication High-Level Data Link Control Procedure - Frame Structure", IS 3309, October 1984, 3rd Edition.
[15] Rivest, R., "The MD4 Message Digest Algorithm", RFC 1320, MIT Laboratory for Computer Science, April 1992.
[15] Rivest, R., "The MD4 Message Digest Algorithm", RFC 1320, MIT Laboratory for Computer Science, April 1992.
[16] Rivest, R., "The MD5 Message Digest Algorithm", RFC 1321, MIT Laboratory for Computer Science, April 1992.
[16] Rivest, R., "The MD5 Message Digest Algorithm", RFC 1321, MIT Laboratory for Computer Science, April 1992.
[17] Bellovin S., and M. Merritt, "Limitations of the Kerberos Authentication System", Computer Communications Review, Vol. 20(5), pp. 119-132, October 1990.
[17] Bellovin S., and M. Merritt, "Limitations of the Kerberos Authentication System", Computer Communications Review, Vol. 20(5), pp. 119-132, October 1990.
12. Security Considerations
12. Security Considerations
Security issues are discussed throughout this memo.
Security issues are discussed throughout this memo.
13. Authors' Addresses
13. Authors' Addresses
John Kohl Digital Equipment Corporation 110 Spit Brook Road, M/S ZKO3-3/U14 Nashua, NH 03062
John Kohl Digital Equipment Corporation 110 Spit Brook Road, M/S ZKO3-3/U14 Nashua, NH 03062
Phone: 603-881-2481 EMail: jtkohl@zk3.dec.com
Phone: 603-881-2481 EMail: jtkohl@zk3.dec.com
B. Clifford Neuman USC/Information Sciences Institute 4676 Admiralty Way #1001 Marina del Rey, CA 90292-6695
B. Clifford Neuman USC/Information Sciences Institute 4676 Admiralty Way #1001 Marina del Rey, CA 90292-6695
Phone: 310-822-1511 EMail: bcn@isi.edu
Phone: 310-822-1511 EMail: bcn@isi.edu
Kohl & Neuman [Page 90] RFC 1510 Kerberos September 1993
Kohl & Neuman [Page 90] RFC 1510 Kerberos September 1993
A. Pseudo-code for protocol processing
A. Pseudo-code for protocol processing
This appendix provides pseudo-code describing how the messages are to be constructed and interpreted by clients and servers.
This appendix provides pseudo-code describing how the messages are to be constructed and interpreted by clients and servers.
A.1. KRB_AS_REQ generation request.pvno := protocol version; /* pvno = 5 */ request.msg-type := message type; /* type = KRB_AS_REQ */
A.1. KRB_AS_REQ generation request.pvno := protocol version; /* pvno = 5 */ request.msg-type := message type; /* type = KRB_AS_REQ */
if(pa_enc_timestamp_required) then request.padata.padata-type = PA-ENC-TIMESTAMP; get system_time; padata-body.patimestamp,pausec = system_time; encrypt padata-body into request.padata.padata-value using client.key; /* derived from password */ endif
if(pa_enc_timestamp_required) then request.padata.padata-type = PA-ENC-TIMESTAMP; get system_time; padata-body.patimestamp,pausec = system_time; encrypt padata-body into request.padata.padata-value using client.key; /* derived from password */ endif
body.kdc-options := users's preferences; body.cname := user's name; body.realm := user's realm; body.sname := service's name; /* usually "krbtgt", "localrealm" */ if (body.kdc-options.POSTDATED is set) then body.from := requested starting time; else omit body.from; endif body.till := requested end time; if (body.kdc-options.RENEWABLE is set) then body.rtime := requested final renewal time; endif body.nonce := random_nonce(); body.etype := requested etypes; if (user supplied addresses) then body.addresses := user's addresses; else omit body.addresses; endif omit body.enc-authorization-data; request.req-body := body;
body.kdc-オプション:=ユーザsの好み。 body.cname:=ユーザの名前。 body.realm:=ユーザの分野。 body.sname:=サービスの名前。 通常/*"krbtgt"、"localrealm"*/は次に、(body.kdc-options.POSTDATEDは用意ができています)body.from:=であるなら始動時を要求しました。 ほか、body.fromを省略してください。 endif body.till:=は終わりの時間を要求しました。 (body.kdc-options.RENEWABLEは用意ができています)当時のbody.rtime:=が最後の更新時間を要求したなら。 endif body.nonceの:=の無作為の_一回だけ()。 body.etype:=はetypesを要求しました。 (ユーザの供給されたアドレス)当時のbody.addresses:=ユーザアドレスであるなら。 ほか、body.addressesを省略してください。 endifはbody.enc認可データを省略します。 request.req-ボディー:=ボディー。
kerberos := lookup(name of local kerberos server (or servers)); send(packet,kerberos);
kerberos:=ルックアップ(ローカルのkerberosサーバ(または、サーバ)の名前)。 (パケット、kerberos)を送ってください。
wait(for response); if (timed_out) then retry or use alternate server; endif
待ってください(応答のために)。 (調節された_が外にある状態で)その時なら、交互のサーバを再試行するか、または使用してください。 endif
Kohl & Neuman [Page 91] RFC 1510 Kerberos September 1993
コールとヌーマン[91ページ]のRFCの1510のケルベロスの1993年9月
A.2. KRB_AS_REQ verification and KRB_AS_REP generation decode message into req;
A.2。 KRB_AS_REQ検証とKRB_AS_REP世代はメッセージをreqに解読します。
client := lookup(req.cname,req.realm); server := lookup(req.sname,req.realm); get system_time; kdc_time := system_time.seconds;
クライアント:=ルックアップ(req.cname、req.realm)。 サーバ:=ルックアップ(req.sname、req.realm)。 システム_時間を得てください。 kdc_時間:=システム_time.seconds。
if (!client) then /* no client in Database */ error_out(KDC_ERR_C_PRINCIPAL_UNKNOWN); endif if (!server) then /* no server in Database */ error_out(KDC_ERR_S_PRINCIPAL_UNKNOWN); endif
(KDC_ERR_C_プリンシパル_UNKNOWN)からのDatabase*/誤り_の(クライアント)当時の/*ノークライアントであるなら。 endif、(_KDC_ERR_Sプリンシパル_UNKNOWN)からのDatabase*/誤り_の(サーバ)当時の/*ノーサーバであるなら。 endif
if(client.pa_enc_timestamp_required and pa_enc_timestamp not present) then error_out(KDC_ERR_PREAUTH_REQUIRED(PA_ENC_TIMESTAMP)); endif
(KDC_ERR_PREAUTH_REQUIRED(_PA ENC_TIMESTAMP))からの次に、(_が必要とした_enc_タイムスタンプとpa_enc_タイムスタンプが寄贈しないclient.pa)誤り_であるなら。 endif
if(pa_enc_timestamp present) then decrypt req.padata-value into decrypted_enc_timestamp using client.key; using auth_hdr.authenticator.subkey; if (decrypt_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); if(decrypted_enc_timestamp is not within allowable skew) then error_out(KDC_ERR_PREAUTH_FAILED); endif if(decrypted_enc_timestamp and usec is replay) error_out(KDC_ERR_PREAUTH_FAILED); endif add decrypted_enc_timestamp and usec to replay cache; endif
(pa_enc_タイムスタンププレゼント)であるなら、client.keyを使用することで解読された_enc_タイムスタンプにreq.padata-値を解読してください。 auth_hdr.authenticator.subkeyを使用します。 (_外(KRB_AP_ERR_BAD_INTEGRITY)で次に、_誤り())が誤りであると解読してください。 (KDC_ERR_PREAUTH_FAILED)からの次に、(許容できる斜行の中に解読された_enc_タイムスタンプがありません)誤り_であるなら。 endif、(KDC_ERR_PREAUTH_FAILED)からの(_enc_タイムスタンプとusecであると解読されているのは、再生です)誤り_であるなら。 endifはキャッシュを再演するために解読された_enc_タイムスタンプとusecを加えます。 endif
use_etype := first supported etype in req.etypes;
使用_etype:=は最初に、req.etypesでetypeを支持しました。
if (no support for req.etypes) then error_out(KDC_ERR_ETYPE_NOSUPP); endif
(KDC_ERR_ETYPE_NOSUPP)からの次に、(req.etypesのサポートがありません)誤り_であるなら。 endif
new_tkt.vno := ticket version; /* = 5 */ new_tkt.sname := req.sname; new_tkt.srealm := req.srealm; reset all flags in new_tkt.flags;
新しい_tkt.vno:=チケットバージョン。 /*は5の*/新しい_tkt.sname:=req.snameと等しいです。 新しい_tkt.srealm:=req.srealm。 新しい_tkt.flagsのすべての旗をリセットしてください。
Kohl & Neuman [Page 92] RFC 1510 Kerberos September 1993
コールとヌーマン[92ページ]のRFCの1510のケルベロスの1993年9月
/* It should be noted that local policy may affect the */ /* processing of any of these flags. For example, some */ /* realms may refuse to issue renewable tickets */
/、*ローカルの方針がこれらの旗のどれかの*//*処理に影響するかもしれないことに注意されるべきです。 例えば、いくつかの*//*分野が、再生可能なものチケット*/を発行するのを拒否するかもしれません。
if (req.kdc-options.FORWARDABLE is set) then set new_tkt.flags.FORWARDABLE; endif if (req.kdc-options.PROXIABLE is set) then set new_tkt.flags.PROXIABLE; endif if (req.kdc-options.ALLOW-POSTDATE is set) then set new_tkt.flags.ALLOW-POSTDATE; endif if ((req.kdc-options.RENEW is set) or (req.kdc-options.VALIDATE is set) or (req.kdc-options.PROXY is set) or (req.kdc-options.FORWARDED is set) or (req.kdc-options.ENC-TKT-IN-SKEY is set)) then error_out(KDC_ERR_BADOPTION); endif
_tkt.flags.FORWARDABLEがその時新しい状態でセットしたなら(req.kdc-options.FORWARDABLEは用意ができています)。 endifは(req.kdc-options.PROXIABLEは用意ができています)その時なら新しい_tkt.flags.PROXIABLEを設定しました。 endifは(req.kdc-options.ALLOW-POSTDATEは用意ができています)その時なら新しい_tkt.flags.ALLOW-POSTDATEを設定しました。 または、または、または、または、endif、(req.kdc-options.RENEWは用意ができています)、(req.kdc-options.VALIDATEは用意ができています)、(req.kdc-options.PROXYは用意ができています)、(req.kdc-options.FORWARDEDは用意ができています)、(req.kdc-options.ENC-TKT IN SKEYは用意ができています)) (KDC_ERR_BADOPTION)からの次に、誤り_。 endif
new_tkt.session := random_session_key(); new_tkt.cname := req.cname; new_tkt.crealm := req.crealm; new_tkt.transited := empty_transited_field();
新しい_tkt.session:=無作為の_セッション_キー()。 新しい_tkt.cname:=req.cname。 新しい_tkt.crealm:=req.crealm。 新しい_tkt.transited:=空の_は_野原()を通過しました。
new_tkt.authtime := kdc_time;
新しい_tkt.authtime:=kdc_時間。
if (req.kdc-options.POSTDATED is set) then if (against_postdate_policy(req.from)) then error_out(KDC_ERR_POLICY); endif set new_tkt.flags.INVALID; new_tkt.starttime := req.from; else omit new_tkt.starttime; /* treated as authtime when omitted */ endif if (req.till = 0) then till := infinity; else till := req.till; endif
(req.kdc-options.POSTDATED、セット) (KDC_ERR_POLICY)からの次に、(_に対して_方針(req.from)に先日付を書いてください)誤り_であるなら、その時です。 endifは新しい_tkt.flags.INVALIDを設定しました。 新しい_tkt.starttime:=req.from。 ほか、新しい_tkt.starttimeを省略してください。 省略された*/endifであるときにそして、:=無限までの(req.till=0)であるならauthtimeとして扱われた/*。 ほかの現金箱の:=req.till。 endif
new_tkt.endtime := min(till, new_tkt.starttime+client.max_life, new_tkt.starttime+server.max_life, new_tkt.starttime+max_life_for_realm);
新しい_tkt.endtime:=分(新しい_tkt.starttime+client.max_の寿命、新しい_tkt.starttime+server.max_の寿命、新しい_tkt.starttime+が_人生_に_分野に最大限にするまで)。
Kohl & Neuman [Page 93] RFC 1510 Kerberos September 1993
コールとヌーマン[93ページ]のRFCの1510のケルベロスの1993年9月
if ((req.kdc-options.RENEWABLE-OK is set) and (new_tkt.endtime < req.till)) then /* we set the RENEWABLE option for later processing */ set req.kdc-options.RENEWABLE; req.rtime := req.till; endif
そして、(req.kdc-options.RENEWABLE-OKは設定されます)、(新しい_tkt.endtime<req.till)) 次に、後での*/設定しているreq.kdc-options.RENEWABLEを処理する私たちがRENEWABLEオプションを設定する/*。 req.rtime:=req.till。 endif
if (req.rtime = 0) then rtime := infinity; else rtime := req.rtime; endif
次に、(req.rtime=0)rtime:=無限であるなら。 ほかのrtime:=req.rtime。 endif
if (req.kdc-options.RENEWABLE is set) then set new_tkt.flags.RENEWABLE; new_tkt.renew-till := min(rtime, new_tkt.starttime+client.max_rlife, new_tkt.starttime+server.max_rlife, new_tkt.starttime+max_rlife_for_realm); else omit new_tkt.renew-till; /* only present if RENEWABLE */ endif
_tkt.flags.RENEWABLEがその時新しい状態でセットしたなら(req.kdc-options.RENEWABLEは用意ができています)。 新しい_tkt.renew、-、現金箱の:=分(__分野へのrtimeであって、新しいrlifeであって、新しい_の_tkt.starttime+server.max_rlifeであって、新しい_tkt.starttime+client.max_tkt.starttime+最大rlife_)。 ほか、新しい_tkt.renew-現金箱を省略してください。 *がRENEWABLE*/endifである場合にだけ提示する/
if (req.addresses) then new_tkt.caddr := req.addresses; else omit new_tkt.caddr; endif
(req.addresses)当時の新しい_tkt.caddr:=req.addressesであるなら。 ほか、新しい_tkt.caddrを省略してください。 endif
new_tkt.authorization_data := empty_authorization_data();
新しい_tkt.authorization_データ:=は_認可_データ()を空にします。
encode to-be-encrypted part of ticket into OCTET STRING; new_tkt.enc-part := encrypt OCTET STRING using etype_for_key(server.key), server.key, server.p_kvno;
チケットのコード化された部分をOCTET STRINGにコード化してください。 新しい_tkt.enc-パート:=は_キー(server.key)、server.key、server.p_kvnoにetype_を使用することでOCTET STRINGをコード化します。
/* Start processing the response */
応答*/を処理する/*始め
resp.pvno := 5; resp.msg-type := KRB_AS_REP; resp.cname := req.cname; resp.crealm := req.realm; resp.ticket := new_tkt;
resp.pvno:=5。 resp.msg-タイプ:=KRB_AS_REP。 resp.cname:=req.cname。 resp.crealm:=req.realm。 resp.ticketの:=の新しい_tkt。
resp.key := new_tkt.session; resp.last-req := fetch_last_request_info(client); resp.nonce := req.nonce; resp.key-expiration := client.expiration;
resp.keyの:=の新しい_tkt.session。 resp.last-req:=フェッチ_最終_要求_インフォメーション(クライアント)。 resp.nonce:=req.nonce。 resp.key-満了:=client.expiration。
Kohl & Neuman [Page 94] RFC 1510 Kerberos September 1993
コールとヌーマン[94ページ]のRFCの1510のケルベロスの1993年9月
resp.flags := new_tkt.flags;
resp.flagsの:=の新しい_tkt.flags。
resp.authtime := new_tkt.authtime; resp.starttime := new_tkt.starttime; resp.endtime := new_tkt.endtime;
resp.authtimeの:=の新しい_tkt.authtime。 resp.starttimeの:=の新しい_tkt.starttime。 resp.endtimeの:=の新しい_tkt.endtime。
if (new_tkt.flags.RENEWABLE) then resp.renew-till := new_tkt.renew-till; endif
次に、(新しい_tkt.flags.RENEWABLE)resp.renew-現金箱の:=の新しい_tkt.renew-現金箱であるなら。 endif
resp.realm := new_tkt.realm; resp.sname := new_tkt.sname;
resp.realmの:=の新しい_tkt.realm。 resp.snameの:=の新しい_tkt.sname。
resp.caddr := new_tkt.caddr;
resp.caddrの:=の新しい_tkt.caddr。
encode body of reply into OCTET STRING;
回答のボディーをOCTET STRINGにコード化してください。
resp.enc-part := encrypt OCTET STRING using use_etype, client.key, client.p_kvno; send(resp);
resp.enc-パート:=は使用_etype、client.key、client.p_kvnoを使用することでOCTET STRINGをコード化します。 (resp)を送ってください。
A.3. KRB_AS_REP verification decode response into resp;
A.3。 KRB_AS_REP検証は応答をrespに解読します。
if (resp.msg-type = KRB_ERROR) then if(error = KDC_ERR_PREAUTH_REQUIRED(PA_ENC_TIMESTAMP)) then set pa_enc_timestamp_required; goto KRB_AS_REQ; endif process_error(resp); return; endif
_(resp.msg-タイプ=KRB_ERROR)であるなら、次に、(誤り=KDC_ERR_PREAUTH_REQUIRED(_PA ENC_TIMESTAMP))がpaを設定するなら、enc_タイムスタンプ_が必要です。 goto KRB_AS_REQ。 endif過程_誤り(resp)。 戻ってください。 endif
/* On error, discard the response, and zero the session key */ /* from the response immediately */
/、*誤りのときに、応答を捨ててくださいといって、すぐに応答からのセッション主要な*//*のゼロを合わせてください、*/
key = get_decryption_key(resp.enc-part.kvno, resp.enc-part.etype, resp.padata); unencrypted part of resp := decode of decrypt of resp.enc-part using resp.enc-part.etype and key; zero(key);
キー=は_復号化_キー(resp.enc-part.kvno、resp.enc-part.etype、resp.padata)を手に入れます。 resp:=の非コード化された部分が解読する、resp.enc-part.etypeを使用して、キーはresp.enc-部分を解読します。 ゼロ(主要な)。
if (common_as_rep_tgs_rep_checks fail) then destroy resp.key; return error; endif
(_レップ_チェックが失敗するレップ_tgs_としての一般的な_)であるなら、resp.keyを破壊してください。 誤りを返してください。 endif
if near(resp.princ_exp) then
(resp.princ_exp)その時頃に
Kohl & Neuman [Page 95] RFC 1510 Kerberos September 1993
コールとヌーマン[95ページ]のRFCの1510のケルベロスの1993年9月
print(warning message); endif save_for_later(ticket,session,client,server,times,flags);
印刷してください(警告メッセージ)。 endifは後で_のために_を取っておきます(チケット(セッション、クライアント、サーバ、回)は弛みます)。
A.4. KRB_AS_REP and KRB_TGS_REP common checks if (decryption_error() or (req.cname != resp.cname) or (req.realm != resp.crealm) or (req.sname != resp.sname) or (req.realm != resp.realm) or (req.nonce != resp.nonce) or (req.addresses != resp.caddr)) then destroy resp.key; return KRB_AP_ERR_MODIFIED; endif
A.4。 KRB_AS_REPと_のREPの一般的なKRB_TGSチェックは(復号化_誤り()、(req.cname!=resp.cname)、(req.realm!=resp.crealm)、(req.sname!=resp.sname)、(req.realm!=resp.realm)、(req.nonce!=resp.nonce)または(req.addresses!=resp.caddr))その時ならresp.keyを破壊します。 KRB_AP_ERR_MODIFIEDを返してください。 endif
/* make sure no flags are set that shouldn't be, and that */ /* all that should be are set */ if (!check_flags_for_compatability(req.kdc-options,resp.flags)) then destroy resp.key; return KRB_AP_ERR_MODIFIED; endif
次に、(_compatability(req.kdc-オプション、resp.flags)のためのチェック_旗の_)がresp.keyを破壊するなら、*がどんな旗もそれがセットであるべきでないことを確信するようにする/、およびそのすべてがその*//*であるべきであることはセット*/です。 KRB_AP_ERR_MODIFIEDを返してください。 endif
if ((req.from = 0) and (resp.starttime is not within allowable skew)) then destroy resp.key; return KRB_AP_ERR_SKEW; endif if ((req.from != 0) and (req.from != resp.starttime)) then destroy resp.key; return KRB_AP_ERR_MODIFIED; endif if ((req.till != 0) and (resp.endtime > req.till)) then destroy resp.key; return KRB_AP_ERR_MODIFIED; endif
(req.from=0)と(許容できる斜行の中にresp.starttimeがありません)その時なら、resp.keyを破壊してください。 KRB_AP_ERR_SKEWを返してください。 次に、endifは((req.from!=0)と(req.from!=resp.starttime))であるならresp.keyを破壊します。 KRB_AP_ERR_MODIFIEDを返してください。 次に、endifは((req.till!=0)と(resp.endtime>req.till))であるならresp.keyを破壊します。 KRB_AP_ERR_MODIFIEDを返してください。 endif
if ((req.kdc-options.RENEWABLE is set) and (req.rtime != 0) and (resp.renew-till > req.rtime)) then destroy resp.key; return KRB_AP_ERR_MODIFIED; endif if ((req.kdc-options.RENEWABLE-OK is set) and (resp.flags.RENEWABLE) and (req.till != 0) and (resp.renew-till > req.till)) then destroy resp.key; return KRB_AP_ERR_MODIFIED;
そして、(req.kdc-options.RENEWABLEは用意ができています)、次に、(req.rtime!=0)と(resp.renew-現金箱の>req.rtime)はresp.keyを破壊します。 KRB_AP_ERR_MODIFIEDを返してください。 そして、endif、(req.kdc-options.RENEWABLE-OKは設定されます)、次に、(resp.flags.RENEWABLE)、(req.till!=0)、および(resp.renew-現金箱の>req.till)はresp.keyを破壊します。 KRB_AP_ERR_MODIFIEDを返してください。
Kohl & Neuman [Page 96] RFC 1510 Kerberos September 1993
コールとヌーマン[96ページ]のRFCの1510のケルベロスの1993年9月
endif
endif
A.5. KRB_TGS_REQ generation /* Note that make_application_request might have to */ /* recursivly call this routine to get the appropriate */ /* ticket-granting ticket */
A.5。 recursivlyが適切な*//*を得るためにアプリケーション_要求で*//*にこのルーチンを呼ぶかもしれない_をチケットを与えるチケット*/にするKRB_TGS_REQ世代/*注意
request.pvno := protocol version; /* pvno = 5 */ request.msg-type := message type; /* type = KRB_TGS_REQ */
request.pvno:=プロトコルバージョン。 /*pvnoは5request.msg*/タイプ:=メッセージタイプと等しいです。 /*タイプはKRB_TGS_REQ*/と等しいです。
body.kdc-options := users's preferences; /* If the TGT is not for the realm of the end-server */ /* then the sname will be for a TGT for the end-realm */ /* and the realm of the requested ticket (body.realm) */ /* will be that of the TGS to which the TGT we are */ /* sending applies */ body.sname := service's name; body.realm := service's realm;
body.kdc-オプション:=ユーザsの好み。 エンドサーバ*//*の分野にはTGTがなくて、次に、snameが終わり分野*//*のためのTGTのためにものになるだろうか、そして、要求されたチケット(body.realm)*//*の分野がTGSのものであるために望んでいる/*、どれ、TGT、私たちは*//*発信が*/body.sname:=サービスの名前を適用するということです。 body.realm:=サービスの分野。
if (body.kdc-options.POSTDATED is set) then body.from := requested starting time; else omit body.from; endif body.till := requested end time; if (body.kdc-options.RENEWABLE is set) then body.rtime := requested final renewal time; endif body.nonce := random_nonce(); body.etype := requested etypes; if (user supplied addresses) then body.addresses := user's addresses; else omit body.addresses; endif
(body.kdc-options.POSTDATEDは用意ができています)当時のbody.from:=が始動時を要求したなら。 ほか、body.fromを省略してください。 endif body.till:=は終わりの時間を要求しました。 (body.kdc-options.RENEWABLEは用意ができています)当時のbody.rtime:=が最後の更新時間を要求したなら。 endif body.nonceの:=の無作為の_一回だけ()。 body.etype:=はetypesを要求しました。 (ユーザの供給されたアドレス)当時のbody.addresses:=ユーザアドレスであるなら。 ほか、body.addressesを省略してください。 endif
body.enc-authorization-data := user-supplied data; if (body.kdc-options.ENC-TKT-IN-SKEY) then body.additional-tickets_ticket := second TGT; endif
body.enc認可データ:=はデータをユーザと同じくらい提供しました。 (body.kdc-options.ENC-TKT IN SKEY)当時のbody.additionalチケット_チケット:=第2TGTであるなら。 endif
request.req-body := body; check := generate_checksum (req.body,checksumtype);
request.req-ボディー:=ボディー。 チェック:=は_チェックサム(req.body、checksumtype)を発生させます。
request.padata[0].padata-type := PA-TGS-REQ; request.padata[0].padata-value := create a KRB_AP_REQ using the TGT and checksum
request.padata[0].padata-タイプ:=PA-TGS-REQ。 request.padata[0].padata-値の:=は、TGTとチェックサムを使用することでKRB_AP_REQを作成します。
Kohl & Neuman [Page 97] RFC 1510 Kerberos September 1993
コールとヌーマン[97ページ]のRFCの1510のケルベロスの1993年9月
/* add in any other padata as required/supplied */
/*は、いかなる他のpadataでも必要に応じて、/が*/を供給したと言い足します。
kerberos := lookup(name of local kerberose server (or servers)); send(packet,kerberos);
kerberos:=ルックアップ(ローカルのkerberoseサーバ(または、サーバ)の名前)。 (パケット、kerberos)を送ってください。
wait(for response); if (timed_out) then retry or use alternate server; endif
待ってください(応答のために)。 (調節された_が外にある状態で)その時なら、交互のサーバを再試行するか、または使用してください。 endif
A.6. KRB_TGS_REQ verification and KRB_TGS_REP generation /* note that reading the application request requires first determining the server for which a ticket was issued, and choosing the correct key for decryption. The name of the server appears in the plaintext part of the ticket. */
A.6。 KRB_TGS_REQ検証とKRB_TGS_REP世代/*は、アプリケーション要求を読むのが、最初に復号化のために、チケットが正しいキーを支給されて、選んでいたサーバを決定するのを必要とすることに注意します。 サーバの名前はチケットの平文部分に現れます。 */
if (no KRB_AP_REQ in req.padata) then error_out(KDC_ERR_PADATA_TYPE_NOSUPP); endif verify KRB_AP_REQ in req.padata;
(KRBがない、(KDC_ERR_PADATA_TYPE_NOSUPP)からの_req.padataのAP_REQ) 次に、誤り_。 endifはreq.padataでKRB_AP_REQについて確かめます。
/* Note that the realm in which the Kerberos server is operating is determined by the instance from the ticket-granting ticket. The realm in the ticket-granting ticket is the realm under which the ticket granting ticket was issued. It is possible for a single Kerberos server to support more than one realm. */
ケルベロスサーバが作動している分野が例でチケットを与えるチケットから決定するという/*メモ。 チケットを与えるチケットの分野はチケットを与えるチケットが発行された分野です。 ただ一つのケルベロスサーバが1つ以上の分野を支持するのは、可能です。 */
auth_hdr := KRB_AP_REQ; tgt := auth_hdr.ticket;
auth_hdr:=KRB_AP_REQ。 tgt:=auth_hdr.ticket。
if (tgt.sname is not a TGT for local realm and is not req.sname) then error_out(KRB_AP_ERR_NOT_US);
(KRB_AP_ERR_NOT_米国)からの次に、(tgt.snameは地方の分野へのTGTでなく、またreq.snameではありません)誤り_であるなら。
realm := realm_tgt_is_for(tgt);
分野:=分野_tgt_は(tgt)のための_です。
decode remainder of request;
要求の残りを解読してください。
if (auth_hdr.authenticator.cksum is missing) then error_out(KRB_AP_ERR_INAPP_CKSUM); endif if (auth_hdr.authenticator.cksum type is not supported) then error_out(KDC_ERR_SUMTYPE_NOSUPP); endif if (auth_hdr.authenticator.cksum is not both collision-proof and keyed) then error_out(KRB_AP_ERR_INAPP_CKSUM); endif
(KRB_AP_ERR_INAPP_CKSUM)からの次に、(auth_hdr.authenticator.cksumはなくなっています)誤り_であるなら。 endif、(KDC_ERR_SUMTYPE_NOSUPP)からの次に、(auth_hdr.authenticator.cksumタイプは支持されません)誤り_であるなら。 endif、(KRB_AP_ERR_INAPP_CKSUM)からの次に、(auth_hdr.authenticator.cksumはともに衝突耐なくて合わせられます)誤り_であるなら。 endif
Kohl & Neuman [Page 98] RFC 1510 Kerberos September 1993
コールとヌーマン[98ページ]のRFCの1510のケルベロスの1993年9月
set computed_checksum := checksum(req); if (computed_checksum != auth_hdr.authenticatory.cksum) then error_out(KRB_AP_ERR_MODIFIED); endif
計算された_チェックサム:=チェックサム(req)を設定してください。 (KRB_AP_ERR_MODIFIED)からの次に、(_チェックサム!=auth_hdr.authenticatory.cksumを計算します)誤り_であるなら。 endif
server := lookup(req.sname,realm);
サーバ:=ルックアップ(req.sname、分野)。
if (!server) then if (is_foreign_tgt_name(server)) then server := best_intermediate_tgs(server); else /* no server in Database */ error_out(KDC_ERR_S_PRINCIPAL_UNKNOWN); endif endif
(サーバ)であるなら、(_外国_tgt_名(サーバ)です)当時のサーバ:=であるなら_中間的_tgs(サーバ)を負かしてください。 ほかの/*、(_KDC_ERR_Sプリンシパル_UNKNOWN)からのDatabase*/誤り_でサーバがありません。 endif endif
session := generate_random_session_key();
セッション:=は_無作為の_セッション_キー()を発生させます。
use_etype := first supported etype in req.etypes;
使用_etype:=は最初に、req.etypesでetypeを支持しました。
if (no support for req.etypes) then error_out(KDC_ERR_ETYPE_NOSUPP); endif
(KDC_ERR_ETYPE_NOSUPP)からの次に、(req.etypesのサポートがありません)誤り_であるなら。 endif
new_tkt.vno := ticket version; /* = 5 */ new_tkt.sname := req.sname; new_tkt.srealm := realm; reset all flags in new_tkt.flags;
新しい_tkt.vno:=チケットバージョン。 /*は5の*/新しい_tkt.sname:=req.snameと等しいです。 新しい_tkt.srealm:=分野。 新しい_tkt.flagsのすべての旗をリセットしてください。
/* It should be noted that local policy may affect the */ /* processing of any of these flags. For example, some */ /* realms may refuse to issue renewable tickets */
/、*ローカルの方針がこれらの旗のどれかの*//*処理に影響するかもしれないことに注意されるべきです。 例えば、いくつかの*//*分野が、再生可能なものチケット*/を発行するのを拒否するかもしれません。
new_tkt.caddr := tgt.caddr; resp.caddr := NULL; /* We only include this if they change */ if (req.kdc-options.FORWARDABLE is set) then if (tgt.flags.FORWARDABLE is reset) then error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.FORWARDABLE; endif if (req.kdc-options.FORWARDED is set) then if (tgt.flags.FORWARDABLE is reset) then error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.FORWARDED; new_tkt.caddr := req.addresses;
新しい_tkt.caddr:=tgt.caddr。 resp.caddr:=NULL。 /、*彼らが(req.kdc-options.FORWARDABLEは用意ができています)その時なら(KDC_ERR_BADOPTION)からの次に、(tgt.flags.FORWARDABLEはリセットされます)誤り_であるなら*/を変える場合にだけ、私たちはこれを入れます。 endifは新しい_tkt.flags.FORWARDABLEを設定しました。 (req.kdc-options.FORWARDEDは用意ができています)その時なら(KDC_ERR_BADOPTION)からの次に、(tgt.flags.FORWARDABLEはリセットされます)誤り_であるならendifする、。 endifは新しい_tkt.flags.FORWARDEDを設定しました。 新しい_tkt.caddr:=req.addresses。
Kohl & Neuman [Page 99] RFC 1510 Kerberos September 1993
コールとヌーマン[99ページ]のRFCの1510のケルベロスの1993年9月
resp.caddr := req.addresses; endif if (tgt.flags.FORWARDED is set) then set new_tkt.flags.FORWARDED; endif
resp.caddr:=req.addresses。 endifは(tgt.flags.FORWARDEDは用意ができています)その時なら新しい_tkt.flags.FORWARDEDを設定しました。 endif
if (req.kdc-options.PROXIABLE is set) then if (tgt.flags.PROXIABLE is reset) error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.PROXIABLE; endif if (req.kdc-options.PROXY is set) then if (tgt.flags.PROXIABLE is reset) then error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.PROXY; new_tkt.caddr := req.addresses; resp.caddr := req.addresses; endif
(req.kdc-options.PROXIABLE、セット) (KDC_ERR_BADOPTION)からの(tgt.flags.PROXIABLEはリセットされます)誤り_であるなら、その時です。 endifは新しい_tkt.flags.PROXIABLEを設定しました。 (req.kdc-options.PROXYは用意ができています)その時なら(KDC_ERR_BADOPTION)からの次に、(tgt.flags.PROXIABLEはリセットされます)誤り_であるならendifする、。 endifは新しい_tkt.flags.PROXYを設定しました。 新しい_tkt.caddr:=req.addresses。 resp.caddr:=req.addresses。 endif
if (req.kdc-options.POSTDATE is set) then if (tgt.flags.POSTDATE is reset) error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.POSTDATE; endif if (req.kdc-options.POSTDATED is set) then if (tgt.flags.POSTDATE is reset) then error_out(KDC_ERR_BADOPTION); endif set new_tkt.flags.POSTDATED; set new_tkt.flags.INVALID; if (against_postdate_policy(req.from)) then error_out(KDC_ERR_POLICY); endif new_tkt.starttime := req.from; endif
(req.kdc-options.POSTDATE、セット) (KDC_ERR_BADOPTION)からの(tgt.flags.POSTDATEはリセットされます)誤り_であるなら、その時です。 endifは新しい_tkt.flags.POSTDATEを設定しました。 (req.kdc-options.POSTDATEDは用意ができています)その時なら(KDC_ERR_BADOPTION)からの次に、(tgt.flags.POSTDATEはリセットされます)誤り_であるならendifする、。 endifは新しい_tkt.flags.POSTDATEDを設定しました。 新しい_tkt.flags.INVALIDを設定してください。 (KDC_ERR_POLICY)からの次に、(_に対して_方針(req.from)に先日付を書いてください)誤り_であるなら。 endifの新しい_tkt.starttime:=req.from。 endif
if (req.kdc-options.VALIDATE is set) then if (tgt.flags.INVALID is reset) then error_out(KDC_ERR_POLICY); endif if (tgt.starttime > kdc_time) then error_out(KRB_AP_ERR_NYV); endif if (check_hot_list(tgt)) then
(req.kdc-options.VALIDATE、セット) (KDC_ERR_POLICY)からの次に、(tgt.flags.INVALIDはリセットされます)誤り_であるなら、その時です。 endif、(KRB_AP_ERR_NYV)からの(tgt.starttime>kdc_時間)次に、誤り_であるなら。 そして、(_チェックの熱い_リスト(tgt))であるなら、endifします。
Kohl & Neuman [Page 100] RFC 1510 Kerberos September 1993
コールとヌーマン[100ページ]のRFCの1510のケルベロスの1993年9月
error_out(KRB_AP_ERR_REPEAT); endif tkt := tgt; reset new_tkt.flags.INVALID; endif
誤り_アウト、(KRB_AP_が間違える、_反復)、。 endif tkt:=tgt。 新しい_tkt.flags.INVALIDをリセットしてください。 endif
if (req.kdc-options.(any flag except ENC-TKT-IN-SKEY, RENEW, and those already processed) is set) then error_out(KDC_ERR_BADOPTION); endif
(KDC_ERR_BADOPTION)からの次に、(req.kdc-オプション(既に処理されたENC-TKT IN SKEY、RENEW、およびもの以外のどんな旗も)は設定されます)誤り_であるなら。 endif
new_tkt.authtime := tgt.authtime;
新しい_tkt.authtime:=tgt.authtime。
if (req.kdc-options.RENEW is set) then /* Note that if the endtime has already passed, the ticket */ /* would have been rejected in the initial authentication */ /* stage, so there is no need to check again here */ if (tgt.flags.RENEWABLE is reset) then error_out(KDC_ERR_BADOPTION); endif if (tgt.renew-till >= kdc_time) then error_out(KRB_AP_ERR_TKT_EXPIRED); endif tkt := tgt; new_tkt.starttime := kdc_time; old_life := tgt.endttime - tgt.starttime; new_tkt.endtime := min(tgt.renew-till, new_tkt.starttime + old_life); else new_tkt.starttime := kdc_time; if (req.till = 0) then till := infinity; else till := req.till; endif new_tkt.endtime := min(till, new_tkt.starttime+client.max_life, new_tkt.starttime+server.max_life, new_tkt.starttime+max_life_for_realm, tgt.endtime);
したがって、次に、endtimeが既に通ったなら、チケット*//*が初期の認証*//*段階で拒絶されただろうという(req.kdc-options.RENEWは用意ができています)/*メモであるなら、再びここで*/をチェックする必要は次に、(tgt.flags.RENEWABLEはリセットされます)誤りであるなら全く_外(KDC_ERR_BADOPTION)にありません。 endif、(KRB_AP_ERR_TKT_EXPIRED)からの(tgt.renew-現金箱>=kdc_時間)次に、誤り_であるなら。 endif tkt:=tgt。 新しい_tkt.starttime:=kdc_時間。 古い_の寿命:=tgt.endttime(tgt.starttime) (tgt.renew-現金箱、新しい_tkt.starttime+古い_の寿命)新しい_tkt.endtime:=分。 ほかの新しい_tkt.starttime:=kdc_時間。 そして、:=無限までの(req.till=0)であるなら。 ほかの現金箱の:=req.till。 endif新しい_tkt.endtime:=分(新しい_tkt.starttime+client.max_の寿命、新しい_tkt.starttime+server.max_の寿命、新しい_tkt.starttime+が_分野、tgt.endtimeのために_人生_に最大限にするまで)。
if ((req.kdc-options.RENEWABLE-OK is set) and (new_tkt.endtime < req.till) and (tgt.flags.RENEWABLE is set) then /* we set the RENEWABLE option for later */ /* processing */ set req.kdc-options.RENEWABLE; req.rtime := min(req.till, tgt.renew-till);
そして、(req.kdc-options.RENEWABLE-OKは設定されます)、(新しい_tkt.endtime<req.till)、(tgt.flags.RENEWABLE、セット) 次に、私たちが設定する/*は後の*//*処理*/セットreq.kdc-options.RENEWABLE(req.rtime:=分(req.till、tgt.renew-現金箱))のためのRENEWABLEオプションです。
Kohl & Neuman [Page 101] RFC 1510 Kerberos September 1993
コールとヌーマン[101ページ]のRFCの1510のケルベロスの1993年9月
endif endif
endif endif
if (req.rtime = 0) then rtime := infinity; else rtime := req.rtime; endif
次に、(req.rtime=0)rtime:=無限であるなら。 ほかのrtime:=req.rtime。 endif
if ((req.kdc-options.RENEWABLE is set) and (tgt.flags.RENEWABLE is set)) then set new_tkt.flags.RENEWABLE; new_tkt.renew-till := min(rtime, new_tkt.starttime+client.max_rlife, new_tkt.starttime+server.max_rlife, new_tkt.starttime+max_rlife_for_realm, tgt.renew-till); else new_tkt.renew-till := OMIT; /* leave the renew-till field out */ endif if (req.enc-authorization-data is present) then decrypt req.enc-authorization-data into decrypted_authorization_data using auth_hdr.authenticator.subkey; if (decrypt_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif endif new_tkt.authorization_data := req.auth_hdr.ticket.authorization_data + decrypted_authorization_data;
(req.kdc-options.RENEWABLE、_次に、新しい状態で設定された(tgt.flags.RENEWABLEは設定しています)セットはtkt.flags.RENEWABLEです。 新しい_tkt.renew、-、現金箱の:=分(rtimeであって、新しいrlifeであって、新しい_の_tkt.starttime+server.max_rlifeであって、新しい_tkt.starttime+client.max_tkt.starttime+最大_は_分野、tgt.renew-現金箱のために_をrlifeします)。 ほかの新しい_tkt.renew-現金箱の:=OMIT。 (req.enc認可データは存在しています)その時がauth_hdr.authenticator.subkeyを使用することで解読された_認可_データにreq.enc認可データを解読するなら、/*は出ている*/endifに現金箱を取り替えている野原を出ます。 (_外(KRB_AP_ERR_BAD_INTEGRITY)で次に、_誤り())が誤りであると解読してください。 新しいendif endifの_tkt.authorization_データ:=req.auth_hdr.ticket.authorization_データ+解読された_認可_データ。
new_tkt.key := session; new_tkt.crealm := tgt.crealm; new_tkt.cname := req.auth_hdr.ticket.cname;
新しい_tkt.key:=セッション。 新しい_tkt.crealm:=tgt.crealm。 新しい_tkt.cname:=req.auth_hdr.ticket.cname。
if (realm_tgt_is_for(tgt) := tgt.realm) then /* tgt issued by local realm */ new_tkt.transited := tgt.transited; else /* was issued for this realm by some other realm */ if (tgt.transited.tr-type not supported) then error_out(KDC_ERR_TRTYPE_NOSUPP); endif new_tkt.transited := compress_transited(tgt.transited + tgt.realm) endif
*次に、(分野_tgt_は(tgt):=tgt.realmのための_です)/であるなら、tgtは地方の分野*/新しい_でtkt.transited:=tgt.transitedを発行しました。 ほかに、/*は(KDC_ERR_TRTYPE_NOSUPP)からの次に、(支持されなかったtgt.transited.tr-タイプ)誤り_であるならある他の分野*/によってこの分野に発行されました。 endifの新しい_tkt.transited:=湿布_はendifを通過しました(tgt.transited+tgt.realm)。
Kohl & Neuman [Page 102] RFC 1510 Kerberos September 1993
コールとヌーマン[102ページ]のRFCの1510のケルベロスの1993年9月
encode encrypted part of new_tkt into OCTET STRING; if (req.kdc-options.ENC-TKT-IN-SKEY is set) then if (server not specified) then server = req.second_ticket.client; endif if ((req.second_ticket is not a TGT) or (req.second_ticket.client != server)) then error_out(KDC_ERR_POLICY); endif
エンコードは新しい_tktの一部をOCTET STRINGにコード化しました。 (req.kdc-options.ENC-TKT IN SKEYは用意ができています)その時なら、サーバは(サーバは指定しませんでした)その時ならreq2番目_ticket.clientと等しいです。 または、endif、(req2番目の_チケットはTGTではありません)、(KDC_ERR_POLICY)からの(req2番目の_ticket.client!=サーバ)次に、誤り_。 endif
new_tkt.enc-part := encrypt OCTET STRING using using etype_for_key(second-ticket.key), second-ticket.key; else new_tkt.enc-part := encrypt OCTET STRING using etype_for_key(server.key), server.key, server.p_kvno; endif
新しい_tkt.enc-パート:=は_キー(2番目-ticket.key)、2番目-ticket.keyにetype_を使用することでOCTET STRING使用をコード化します。 ほかに、新しい_tkt.enc-パート:=は_キー(server.key)、server.key、server.p_kvnoにetype_を使用することでOCTET STRINGをコード化します。 endif
resp.pvno := 5; resp.msg-type := KRB_TGS_REP; resp.crealm := tgt.crealm; resp.cname := tgt.cname; resp.ticket := new_tkt;
resp.pvno:=5。 resp.msg-タイプ:=KRB_TGS_REP。 resp.crealm:=tgt.crealm。 resp.cname:=tgt.cname。 resp.ticketの:=の新しい_tkt。
resp.key := session; resp.nonce := req.nonce; resp.last-req := fetch_last_request_info(client); resp.flags := new_tkt.flags;
resp.key:=セッション。 resp.nonce:=req.nonce。 resp.last-req:=フェッチ_最終_要求_インフォメーション(クライアント)。 resp.flagsの:=の新しい_tkt.flags。
resp.authtime := new_tkt.authtime; resp.starttime := new_tkt.starttime; resp.endtime := new_tkt.endtime;
resp.authtimeの:=の新しい_tkt.authtime。 resp.starttimeの:=の新しい_tkt.starttime。 resp.endtimeの:=の新しい_tkt.endtime。
omit resp.key-expiration;
resp.key-満了を省略してください。
resp.sname := new_tkt.sname; resp.realm := new_tkt.realm;
resp.snameの:=の新しい_tkt.sname。 resp.realmの:=の新しい_tkt.realm。
if (new_tkt.flags.RENEWABLE) then resp.renew-till := new_tkt.renew-till; endif
次に、(新しい_tkt.flags.RENEWABLE)resp.renew-現金箱の:=の新しい_tkt.renew-現金箱であるなら。 endif
encode body of reply into OCTET STRING;
回答のボディーをOCTET STRINGにコード化してください。
if (req.padata.authenticator.subkey) resp.enc-part := encrypt OCTET STRING using use_etype,
(req.padata.authenticator.subkey)resp.enc-パート:=であるなら、使用_etypeを使用することでOCTET STRINGをコード化してください。
Kohl & Neuman [Page 103] RFC 1510 Kerberos September 1993
コールとヌーマン[103ページ]のRFCの1510のケルベロスの1993年9月
req.padata.authenticator.subkey; else resp.enc-part := encrypt OCTET STRING using use_etype, tgt.key;
req.padata.authenticator.subkey。 ほかに、resp.enc-パート:=は使用_etype、tgt.keyを使用することでOCTET STRINGをコード化します。
send(resp);
(resp)を送ってください。
A.7. KRB_TGS_REP verification decode response into resp;
A.7。 KRB_TGS_REP検証は応答をrespに解読します。
if (resp.msg-type = KRB_ERROR) then process_error(resp); return; endif
(resp.msg-タイプ=KRB_ERROR)であるなら、_誤り(resp)を処理してください。 戻ってください。 endif
/* On error, discard the response, and zero the session key from the response immediately */
/、*誤りのときに、応答を捨ててくださいといって、すぐに応答によって主要なセッションのゼロを合わせてください、*/
if (req.padata.authenticator.subkey) unencrypted part of resp := decode of decrypt of resp.enc-part using resp.enc-part.etype and subkey; else unencrypted part of resp := decode of decrypt of resp.enc-part using resp.enc-part.etype and tgt's session key; if (common_as_rep_tgs_rep_checks fail) then destroy resp.key; return error; endif
(req.padata.authenticator.subkey)が:=が解読するrespの一部を非コード化した、resp.enc-part.etypeを使用して、サブキーはresp.enc-部分を解読します。 resp:=のほかの非コード化された部分が解読する、resp.enc-part.etypeを使用して、tgtのセッションキーはresp.enc-部分を解読します。 (_レップ_チェックが失敗するレップ_tgs_としての一般的な_)であるなら、resp.keyを破壊してください。 誤りを返してください。 endif
check authorization_data as necessary; save_for_later(ticket,session,client,server,times,flags);
必要に応じて認可_データをチェックしてください。 後で_のために_を取っておいてください(チケット(セッション、クライアント、サーバ、回)は弛みます)。
A.8. Authenticator generation body.authenticator-vno := authenticator vno; /* = 5 */ body.cname, body.crealm := client name; if (supplying checksum) then body.cksum := checksum; endif get system_time; body.ctime, body.cusec := system_time; if (selecting sub-session key) then select sub-session key; body.subkey := sub-session key; endif if (using sequence numbers) then select initial sequence number; body.seq-number := initial sequence; endif
A.8。 固有識別文字世代body.authenticator-vno:=固有識別文字vno。 /*は5*/body.cname、body.crealm:=クライアント名と等しいです。 次に、(チェックサムを供給します)body.cksum:=チェックサムであるなら。 endifはシステム_時間を得ます。 body.ctime、body.cusec:=システム_時間。 (サブセッションキーを選択します)その時なら、サブセッションキーを選択してください。 body.subkey:=サブセッションキー。 endifは(一連番号を使用します)その時なら初期シーケンス番号を選択します。 body.seq-数の:=は系列に頭文字をつけます。 endif
Kohl & Neuman [Page 104] RFC 1510 Kerberos September 1993
コールとヌーマン[104ページ]のRFCの1510のケルベロスの1993年9月
A.9. KRB_AP_REQ generation obtain ticket and session_key from cache;
A.9。 KRB_AP_REQ世代はキャッシュから主要なチケットとセッション_を得ます。
packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_AP_REQ */
packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRB_AP_REQ*/
if (desired(MUTUAL_AUTHENTICATION)) then set packet.ap-options.MUTUAL-REQUIRED; else reset packet.ap-options.MUTUAL-REQUIRED; endif if (using session key for ticket) then set packet.ap-options.USE-SESSION-KEY; else reset packet.ap-options.USE-SESSION-KEY; endif packet.ticket := ticket; /* ticket */ generate authenticator; encode authenticator into OCTET STRING; encrypt OCTET STRING into packet.authenticator using session_key;
(必要(MUTUAL_AUTHENTICATION))であるなら、packet.ap-options.MUTUAL-REQUIREDを設定してください。 ほかのリセットpacket.ap-options.MUTUAL-REQUIRED。 endifは(チケットに、主要なセッションを使用します)その時ならpacket.ap-options.USE-SESSION-KEYを設定しました。 ほかのリセットpacket.ap-options.USE-SESSION-KEY。 endif packet.ticket:=チケット。 /*チケット*/は固有識別文字を発生させます。 固有識別文字をOCTET STRINGにコード化してください。 セッション_キーを使用することでOCTET STRINGをpacket.authenticatorにコード化してください。
A.10. KRB_AP_REQ verification receive packet; if (packet.pvno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.msg-type != KRB_AP_REQ) then error_out(KRB_AP_ERR_MSG_TYPE); endif if (packet.ticket.tkt_vno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.ap_options.USE-SESSION-KEY is set) then retrieve session key from ticket-granting ticket for packet.ticket.{sname,srealm,enc-part.etype}; else retrieve service key for packet.ticket.{sname,srealm,enc-part.etype,enc-part.skvno}; endif if (no_key_available) then if (cannot_find_specified_skvno) then error_out(KRB_AP_ERR_BADKEYVER); else error_out(KRB_AP_ERR_NOKEY); endif
A.10。 KRB_AP_REQ検証はパケットを受けます。 次に、(packet.pvno!=5)は他のプロトコル仕様を使用することで処理されるか、そして、(KRB_AP_ERR_BADVERSION)からの誤り_。 endif、(_KRB_AP_ERR_エムエスジーTYPE)からの次に、(packet.msg-タイプ!=KRB_AP_REQ)誤り_であるなら。 次に、(packet.ticket.tkt_vno!=5)がもう一方を使用することで処理されるなら、endifは_外(KRB_AP_ERR_BADVERSION)で仕様か誤りについて議定書の中で述べます。 endifは(packet.ap_options.USE-SESSION-KEYは用意ができています)その時ならpacket.ticket sname、srealm、enc-part.etypeのチケットを与えるチケットからセッションキーを検索します。 ほか、packet.ticket sname、srealm、enc-part.etype、enc-part.skvnoに、主要なサービスを検索してください。 次に、(利用可能な_キーがない_)であるなら次に、(skvnoすることができません_が、_指定された_がわかる)誤りであるなら_外(KRB_AP_ERR_BADKEYVER)でendifする、。 (KRB_AP_ERR_NOKEY)からのほかの誤り_。 endif
Kohl & Neuman [Page 105] RFC 1510 Kerberos September 1993
コールとヌーマン[105ページ]のRFCの1510のケルベロスの1993年9月
endif decrypt packet.ticket.enc-part into decr_ticket using retrieved key; if (decryption_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif decrypt packet.authenticator into decr_authenticator using decr_ticket.key; if (decryption_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif if (decr_authenticator.{cname,crealm} != decr_ticket.{cname,crealm}) then error_out(KRB_AP_ERR_BADMATCH); endif if (decr_ticket.caddr is present) then if (sender_address(packet) is not in decr_ticket.caddr) then error_out(KRB_AP_ERR_BADADDR); endif elseif (application requires addresses) then error_out(KRB_AP_ERR_BADADDR); endif if (not in_clock_skew(decr_authenticator.ctime, decr_authenticator.cusec)) then error_out(KRB_AP_ERR_SKEW); endif if (repeated(decr_authenticator.{ctime,cusec,cname,crealm})) then error_out(KRB_AP_ERR_REPEAT); endif save_identifier(decr_authenticator.{ctime,cusec,cname,crealm}); get system_time; if ((decr_ticket.starttime-system_time > CLOCK_SKEW) or (decr_ticket.flags.INVALID is set)) then /* it hasn't yet become valid */ error_out(KRB_AP_ERR_TKT_NYV); endif if (system_time-decr_ticket.endtime > CLOCK_SKEW) then error_out(KRB_AP_ERR_TKT_EXPIRED); endif /* caller must check decr_ticket.flags for any pertinent */ /* details */ return(OK, decr_ticket, packet.ap_options.MUTUAL-REQUIRED);
endifは_チケット使用が検索したdecrへのpacket.ticket.enc-部分キーを解読します。 ((KRB_AP_ERR_BAD_INTEGRITY)からの復号化_誤り())次に、誤り_。 endifはdecr_ticket.keyを使用することでdecr_固有識別文字にpacket.authenticatorを解読します。 ((KRB_AP_ERR_BAD_INTEGRITY)からの復号化_誤り())次に、誤り_。 endif、(decr_固有識別文字cname、crealm、cname、crealm) =decr_チケット(KRB_AP_ERR_BADMATCH)からの次に、誤り_。 (decr_ticket.caddrは存在しています)その時なら(KRB_AP_ERR_BADADDR)からの次に、(送付者_アドレス(パケット)がdecr_ticket.caddrにありません)誤り_であるならendifする、。 (KRB_AP_ERR_BADADDR)からのendif elseif(アプリケーションはアドレスを必要とする)の当時の誤り_。 endif、(KRB_AP_ERR_SKEW)からの(コネ_時計_斜行(decr_authenticator.ctime、decr_authenticator.cusec)でない)次に、誤り_であるなら。 (KRB_AP_ERR_REPEAT)からのendifな、しかし、(繰り返しにされる(decr_固有識別文字ctime、キューセック、cname、crealm))の当時の誤り_。 endifは_識別子(decr_固有識別文字ctime、キューセック、cname、crealm)を保存します。 システム_時間を得てください。 *(decr_ticket.starttimeシステム_時間>CLOCK_SKEW)か次に、(decr_ticket.flags.INVALIDは用意ができています)/であるなら、_外でまだ有効な*/誤りになっていません(KRB_AP_ERR_TKT_NYV)。 endif、(KRB_AP_ERR_TKT_EXPIRED)からの次に、(システム_時間decrな_ticket.endtime>CLOCK_SKEW)誤り_であるなら。 endif/*訪問者はどんな適切な*//*詳細*/リターンがないかどうかdecr_ticket.flagsをチェックしなければなりません(OK、decr_チケット、packet.ap_options.MUTUAL-REQUIRED)。
A.11. KRB_AP_REP generation packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_AP_REP */ body.ctime := packet.ctime; body.cusec := packet.cusec;
A.11。 KRB_AP_REP世代packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRB_AP_REP*/body.ctime:=packet.ctime。 body.cusec:=packet.cusec。
Kohl & Neuman [Page 106] RFC 1510 Kerberos September 1993
コールとヌーマン[106ページ]のRFCの1510のケルベロスの1993年9月
if (selecting sub-session key) then select sub-session key; body.subkey := sub-session key; endif if (using sequence numbers) then select initial sequence number; body.seq-number := initial sequence; endif
(サブセッションキーを選択します)その時なら、サブセッションキーを選択してください。 body.subkey:=サブセッションキー。 endifは(一連番号を使用します)その時なら初期シーケンス番号を選択します。 body.seq-数の:=は系列に頭文字をつけます。 endif
encode body into OCTET STRING;
ボディーをOCTET STRINGにコード化してください。
select encryption type; encrypt OCTET STRING into packet.enc-part;
暗号化タイプを選んでください。 packet.enc-部分にOCTET STRINGをコード化してください。
A.12. KRB_AP_REP verification receive packet; if (packet.pvno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.msg-type != KRB_AP_REP) then error_out(KRB_AP_ERR_MSG_TYPE); endif cleartext := decrypt(packet.enc-part) using ticket's session key; if (decryption_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif if (cleartext.ctime != authenticator.ctime) then error_out(KRB_AP_ERR_MUT_FAIL); endif if (cleartext.cusec != authenticator.cusec) then error_out(KRB_AP_ERR_MUT_FAIL); endif if (cleartext.subkey is present) then save cleartext.subkey for future use; endif if (cleartext.seq-number is present) then save cleartext.seq-number for future verifications; endif return(AUTHENTICATION_SUCCEEDED);
A.12。 KRB_AP_REP検証はパケットを受けます。 次に、(packet.pvno!=5)は他のプロトコル仕様を使用することで処理されるか、そして、(KRB_AP_ERR_BADVERSION)からの誤り_。 endif、(_KRB_AP_ERR_エムエスジーTYPE)からの次に、(packet.msg-タイプ!=KRB_AP_REP)誤り_であるなら。 endif cleartext:=はチケットのセッションキーを使用することで(packet.enc-部分)を解読します。 ((KRB_AP_ERR_BAD_INTEGRITY)からの復号化_誤り())次に、誤り_。 endif、(KRB_AP_ERR_MUT_FAIL)からの次に、(cleartext.ctime!はauthenticator.ctimeと等しいです)誤り_であるなら。 endif、(KRB_AP_ERR_MUT_FAIL)からの次に、(cleartext.cusec!はauthenticator.cusecと等しいです)誤り_であるなら。 endifは(cleartext.subkeyは存在しています)その時なら今後の使用のためにcleartext.subkeyを取っておきます。 endifは(cleartext.seq-数は存在しています)その時なら将来の検証のcleartext.seq-数を節約します。 endifリターン(AUTHENTICATION_SUCCEEDED)。
A.13. KRB_SAFE generation collect user data in buffer;
A.13。 バッファのKRB_SAFEの世代の料金先方払いの利用者データ。
/* assemble packet: */ packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_SAFE */
/*はパケットを組み立てます: */packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRBの_の安全な*/
Kohl & Neuman [Page 107] RFC 1510 Kerberos September 1993
コールとヌーマン[107ページ]のRFCの1510のケルベロスの1993年9月
body.user-data := buffer; /* DATA */ if (using timestamp) then get system_time; body.timestamp, body.usec := system_time; endif if (using sequence numbers) then body.seq-number := sequence number; endif body.s-address := sender host addresses; if (only one recipient) then body.r-address := recipient host address; endif checksum.cksumtype := checksum type; compute checksum over body; checksum.checksum := checksum value; /* checksum.checksum */ packet.cksum := checksum; packet.safe-body := body;
body.user-data:=バッファ。 /*DATA*/は(タイムスタンプを使用します)その時ならシステム_時間を得ます。 body.timestamp、body.usec:=システム_時間。 endifは(一連番号を使用します)その時なら:=一連番号にbody.seq付番します。 endif body.s-アドレス:=送付者ホスト・アドレス。 (1人の受取人だけ)当時のbody.r-アドレス:=受取人であるなら、アドレスをホスティングしてください。 endif checksum.cksumtype:=チェックサムタイプ。 ボディーの上でチェックサムを計算してください。 checksum.checksum:=チェックサム価値。 /*checksum.checksum*/packet.cksum:=チェックサム。 packet.safe-ボディー:=ボディー。
A.14. KRB_SAFE verification receive packet; if (packet.pvno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.msg-type != KRB_SAFE) then error_out(KRB_AP_ERR_MSG_TYPE); endif if (packet.checksum.cksumtype is not both collision-proof and keyed) then error_out(KRB_AP_ERR_INAPP_CKSUM); endif if (safe_priv_common_checks_ok(packet)) then set computed_checksum := checksum(packet.body); if (computed_checksum != packet.checksum) then error_out(KRB_AP_ERR_MODIFIED); endif return (packet, PACKET_IS_GENUINE); else return common_checks_error; endif
A.14。 KRB_SAFE検証はパケットを受けます。 次に、(packet.pvno!=5)は他のプロトコル仕様を使用することで処理されるか、そして、(KRB_AP_ERR_BADVERSION)からの誤り_。 endif、(_KRB_AP_ERR_エムエスジーTYPE)からの次に、(packet.msg-タイプ!=KRB_SAFE)誤り_であるなら。 endif、(KRB_AP_ERR_INAPP_CKSUM)からの次に、(packet.checksum.cksumtypeはともに衝突耐なくて合わせられます)誤り_であるなら。 次に、endifは(安全な_priv_一般的な_チェック_OK(パケット))であるなら計算された_チェックサム:=チェックサムを設定しました(packet.body)。 (KRB_AP_ERR_MODIFIED)からの次に、(_チェックサム!=packet.checksumを計算します)誤り_であるなら。 endifリターン(パケット、PACKET_は_GENUINEです)。 ほかのリターンの一般的な_は_誤りをチェックします。 endif
A.15. KRB_SAFE and KRB_PRIV common checks if (packet.s-address != O/S_sender(packet)) then /* O/S report of sender not who claims to have sent it */ error_out(KRB_AP_ERR_BADADDR); endif if ((packet.r-address is present) and (packet.r-address != local_host_address)) then
A.15。 KRB_SAFEとKRB_PRIVの一般的なチェックが次に、(packet.s-アドレス!=OS_送付者(パケット))/*OSであるなら送付者について報告する、だれが、_外(KRB_AP_ERR_BADADDR)で*/誤りをそれに送ったと主張するか。 endif、(packet.r-アドレスは存在しています)、(packet.r-アドレス!=ローカルの_ホスト_アドレス)その時
Kohl & Neuman [Page 108] RFC 1510 Kerberos September 1993
コールとヌーマン[108ページ]のRFCの1510のケルベロスの1993年9月
/* was not sent to proper place */ error_out(KRB_AP_ERR_BADADDR); endif if (((packet.timestamp is present) and (not in_clock_skew(packet.timestamp,packet.usec))) or (packet.timestamp is not present and timestamp expected)) then error_out(KRB_AP_ERR_SKEW); endif if (repeated(packet.timestamp,packet.usec,packet.s-address)) then error_out(KRB_AP_ERR_REPEAT); endif if (((packet.seq-number is present) and ((not in_sequence(packet.seq-number)))) or (packet.seq-number is not present and sequence expected)) then error_out(KRB_AP_ERR_BADORDER); endif if (packet.timestamp not present and packet.seq-number not present) then error_out(KRB_AP_ERR_MODIFIED); endif
*が送られなかった/は*/誤り_の適切に家を見つけます(KRB_AP_ERR_BADADDR)。 そして、endif、(packet.timestampは存在しています)、((KRB_AP_ERR_SKEW)からのコネ_時計_斜行(packet.timestamp、packet.usec)か(packet.timestampは現在でなくてタイムスタンプ期待しています)当時の誤り_でない。 (KRB_AP_ERR_REPEAT)からのendifな、しかし、(繰り返しにされる(packet.timestamp、packet.usec、packet.sアドレス))の当時の誤り_。 そして、endif、(packet.seq-数は存在しています)、((KRB_AP_ERR_BADORDER)からのコネ_系列(packet.seq-数)でない次に、(packet.seq-数は、プレゼントとまたは予想された系列ではありません)誤り_でない。 endif、(KRB_AP_ERR_MODIFIED)からの次に、(プレゼントとどんなpacket.seq-数も寄贈しないpacket.timestamp)誤り_であるなら。 endif
save_identifier(packet.{timestamp,usec,s-address}, sender_principal(packet));
_識別子を保存してください、(パケットタイムスタンプ、usec、sアドレス、送付者_校長(パケット)。
return PACKET_IS_OK;
リターンPACKET_はOKに_です。
A.16. KRB_PRIV generation collect user data in buffer;
A.16。 バッファのKRB_PRIVの世代の料金先方払いの利用者データ。
/* assemble packet: */ packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_PRIV */
/*はパケットを組み立てます: */packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRB_PRIV*/
packet.enc-part.etype := encryption type;
packet.enc-part.etype:=暗号化タイプ。
body.user-data := buffer; if (using timestamp) then get system_time; body.timestamp, body.usec := system_time; endif if (using sequence numbers) then body.seq-number := sequence number; endif body.s-address := sender host addresses; if (only one recipient) then body.r-address := recipient host address; endif
body.user-data:=バッファ。 (使用タイムスタンプ)であるなら、システム_時間を得てください。 body.timestamp、body.usec:=システム_時間。 endifは(一連番号を使用します)その時なら:=一連番号にbody.seq付番します。 endif body.s-アドレス:=送付者ホスト・アドレス。 (1人の受取人だけ)当時のbody.r-アドレス:=受取人であるなら、アドレスをホスティングしてください。 endif
Kohl & Neuman [Page 109] RFC 1510 Kerberos September 1993
コールとヌーマン[109ページ]のRFCの1510のケルベロスの1993年9月
encode body into OCTET STRING;
ボディーをOCTET STRINGにコード化してください。
select encryption type; encrypt OCTET STRING into packet.enc-part.cipher;
暗号化タイプを選んでください。 OCTET STRINGをpacket.enc-part.cipherにコード化してください。
A.17. KRB_PRIV verification receive packet; if (packet.pvno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.msg-type != KRB_PRIV) then error_out(KRB_AP_ERR_MSG_TYPE); endif
A.17。 KRB_PRIV検証はパケットを受けます。 次に、(packet.pvno!=5)は他のプロトコル仕様を使用することで処理されるか、そして、(KRB_AP_ERR_BADVERSION)からの誤り_。 endif、(_KRB_AP_ERR_エムエスジーTYPE)からの次に、(packet.msg-タイプ!=KRB_PRIV)誤り_であるなら。 endif
cleartext := decrypt(packet.enc-part) using negotiated key; if (decryption_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif
cleartext:=は交渉されたキーを使用することで(packet.enc-部分)を解読します。 ((KRB_AP_ERR_BAD_INTEGRITY)からの復号化_誤り())次に、誤り_。 endif
if (safe_priv_common_checks_ok(cleartext)) then return(cleartext.DATA, PACKET_IS_GENUINE_AND_UNMODIFIED); else return common_checks_error; endif
(安全な_priv_一般的な_チェック_OK(cleartext))であるなら、戻ってくださいcleartext.DATA、PACKET_は_GENUINE_と(_UNMODIFIEDです)。 ほかのリターンの一般的な_は_誤りをチェックします。 endif
A.18. KRB_CRED generation invoke KRB_TGS; /* obtain tickets to be provided to peer */
A.18。 KRB_CRED世代はKRB_TGSを呼び出します。 /*は、同輩*/に提供するためにチケットを得ます。
/* assemble packet: */ packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_CRED */
/*はパケットを組み立てます: */packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRB_信用*/
for (tickets[n] in tickets to be forwarded) do packet.tickets[n] = tickets[n].ticket; done
(進められるチケットの中のチケット[n])に関しては、packet.tickets[n]=チケット[n].ticketをしてください。 します。
packet.enc-part.etype := encryption type;
packet.enc-part.etype:=暗号化タイプ。
for (ticket[n] in tickets to be forwarded) do body.ticket-info[n].key = tickets[n].session; body.ticket-info[n].prealm = tickets[n].crealm; body.ticket-info[n].pname = tickets[n].cname; body.ticket-info[n].flags = tickets[n].flags; body.ticket-info[n].authtime = tickets[n].authtime; body.ticket-info[n].starttime = tickets[n].starttime; body.ticket-info[n].endtime = tickets[n].endtime; body.ticket-info[n].renew-till = tickets[n].renew-till;
(進められるチケットの中のチケット[n])に関しては、[n] body.ticket-インフォメーション.key=チケット[n].sessionをしてください。 body.ticket-インフォメーション[n].prealmはチケット[n].crealmと等しいです。 body.ticket-インフォメーション[n].pnameはチケット[n].cnameと等しいです。 body.ticket-インフォメーション[n].flagsはチケット[n].flagsと等しいです。 body.ticket-インフォメーション[n].authtimeはチケット[n].authtimeと等しいです。 body.ticket-インフォメーション[n].starttimeはチケット[n].starttimeと等しいです。 body.ticket-インフォメーション[n].endtimeはチケット[n].endtimeと等しいです。 body.ticketインフォメーション[n].renew現金箱=は[n] .renew-現金箱にレッテルをはります。
Kohl & Neuman [Page 110] RFC 1510 Kerberos September 1993
コールとヌーマン[110ページ]のRFCの1510のケルベロスの1993年9月
body.ticket-info[n].srealm = tickets[n].srealm; body.ticket-info[n].sname = tickets[n].sname; body.ticket-info[n].caddr = tickets[n].caddr; done
body.ticket-インフォメーション[n].srealmはチケット[n].srealmと等しいです。 body.ticket-インフォメーション[n].snameはチケット[n].snameと等しいです。 body.ticket-インフォメーション[n].caddrはチケット[n].caddrと等しいです。 します。
get system_time; body.timestamp, body.usec := system_time;
システム_時間を得てください。 body.timestamp、body.usec:=システム_時間。
if (using nonce) then body.nonce := nonce; endif
次に、(一回だけを使用します)body.nonce:=一回だけであるなら。 endif
if (using s-address) then body.s-address := sender host addresses; endif if (limited recipients) then body.r-address := recipient host address; endif
次に、(s-アドレスを使用します)body.s-アドレス:=送付者であるなら、アドレスをホスティングしてください。 次に、(限られた受取人)が:=受取人にbody.r演説するなら、endifはアドレスをホスティングします。 endif
encode body into OCTET STRING;
ボディーをOCTET STRINGにコード化してください。
select encryption type; encrypt OCTET STRING into packet.enc-part.cipher using negotiated encryption key;
暗号化タイプを選んでください。 交渉された暗号化キーを使用することでOCTET STRINGをpacket.enc-part.cipherにコード化してください。
A.19. KRB_CRED verification receive packet; if (packet.pvno != 5) then either process using other protocol spec or error_out(KRB_AP_ERR_BADVERSION); endif if (packet.msg-type != KRB_CRED) then error_out(KRB_AP_ERR_MSG_TYPE); endif
A.19。 KRB_CRED検証はパケットを受けます。 次に、(packet.pvno!=5)は他のプロトコル仕様を使用することで処理されるか、そして、(KRB_AP_ERR_BADVERSION)からの誤り_。 endif、(_KRB_AP_ERR_エムエスジーTYPE)からの次に、(packet.msg-タイプ!=KRB_CRED)誤り_であるなら。 endif
cleartext := decrypt(packet.enc-part) using negotiated key; if (decryption_error()) then error_out(KRB_AP_ERR_BAD_INTEGRITY); endif if ((packet.r-address is present or required) and (packet.s-address != O/S_sender(packet)) then /* O/S report of sender not who claims to have sent it */ error_out(KRB_AP_ERR_BADADDR); endif if ((packet.r-address is present) and (packet.r-address != local_host_address)) then /* was not sent to proper place */ error_out(KRB_AP_ERR_BADADDR);
cleartext:=は交渉されたキーを使用することで(packet.enc-部分)を解読します。 ((KRB_AP_ERR_BAD_INTEGRITY)からの復号化_誤り())次に、誤り_。 そして、(存在しているか、または必要であるpacket.r-アドレス)と次に(packet.s-アドレス!=OS_送付者(パケット))/*OSが送付者について報告するならendifする、だれが、_外(KRB_AP_ERR_BADADDR)でendifに*/誤りをそれに送ったと主張するか、(packet.r-アドレスは存在しています)、(packet.r-アドレス!=ローカル_ホスト_アドレス)) 次に、/*は_外(KRB_AP_ERR_BADADDR)で適所*/誤りに送られませんでした。
Kohl & Neuman [Page 111] RFC 1510 Kerberos September 1993
コールとヌーマン[111ページ]のRFCの1510のケルベロスの1993年9月
endif if (not in_clock_skew(packet.timestamp,packet.usec)) then error_out(KRB_AP_ERR_SKEW); endif if (repeated(packet.timestamp,packet.usec,packet.s-address)) then error_out(KRB_AP_ERR_REPEAT); endif if (packet.nonce is required or present) and (packet.nonce != expected-nonce) then error_out(KRB_AP_ERR_MODIFIED); endif
endif、(KRB_AP_ERR_SKEW)からの(コネ_時計_斜行(packet.timestamp、packet.usec)でない)次に、誤り_であるなら。 (KRB_AP_ERR_REPEAT)からのendifな、しかし、(繰り返しにされる(packet.timestamp、packet.usec、packet.sアドレス))の当時の誤り_。 そして、endif、(packet.nonceは必要であるか、または存在しています)、(KRB_AP_ERR_MODIFIED)からの(期待しているpacket.nonce!=一回だけ)次に、誤り_。 endif
for (ticket[n] in tickets that were forwarded) do save_for_later(ticket[n],key[n],principal[n], server[n],times[n],flags[n]); return
(進められたチケットの中のチケット[n])に関して後で_のために_を取っておいてください。(チケット[n](主要な[n]、校長[n]、サーバ[n]、回[n])は[n])に旗を揚げさせます。 リターン
A.20. KRB_ERROR generation
A.20。 KRB_エラー生成
/* assemble packet: */ packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_ERROR */
/*はパケットを組み立てます: */packet.pvno:=プロトコルバージョン。 /*5packet.msg*/タイプ:=メッセージタイプ。 /*KRB_誤り*/
get system_time; packet.stime, packet.susec := system_time; packet.realm, packet.sname := server name;
システム_時間を得てください。 packet.stime、packet.susec:=システム_時間。 packet.realm、packet.sname:=サーバー名。
if (client time available) then packet.ctime, packet.cusec := client_time; endif packet.error-code := error code; if (client name available) then packet.cname, packet.crealm := client name; endif if (error text available) then packet.e-text := error text; endif if (error data available) then packet.e-data := error data; endif
次に、(空いているクライアント時間)packet.ctimeであるなら、packet.cusec:=クライアント_時間です。 endif packet.error-code:=エラーコード。 (クライアント名の利用可能)の当時のpacket.cnameであるなら、packet.crealm:=クライアント名です。 endifな、しかし、(誤りテキスト利用可能)の当時のpacket.e-テキスト:=誤りテキスト。 endifな、しかし、(エラー・データ利用可能)の当時のpacket.e-データ:=エラー・データ。 endif
Kohl & Neuman [Page 112]
コールとヌーマン[112ページ]
一覧
スポンサーリンク