女性喝什么茶最好| 失眠可以吃什么药| hbsag阴性是什么意思| 什么解酒最好最快| aimee是什么意思| honor是什么牌子手机| hope是什么意思啊| 极光是什么| 犯六冲是什么意思| 妨夫痣是什么意思| delvaux是什么牌子| 吃中药为什么要忌口| a型血和b型血生的孩子是什么血型| 胡子长的快是什么原因| 日不落是什么意思| 佛光普照是什么生肖| 肚子中间疼是什么原因| 苹果充电口叫什么| 新疆有什么好吃的| 科颜氏属于什么档次| 2月12日什么星座| 蚂蚁最怕什么东西| hpv是什么| 减肥吃什么好而且瘦的快| 股票洗盘是什么意思| 洋溢着什么样的笑容| 缠腰蛇是什么原因引起的| 梦见自己有孩子了是什么预兆| 脂肪由什么组成| 什么是生粉| 622188开头是什么银行| 牛骨煲什么汤对儿童好| 无赖不还钱最怕什么| 外科和内科有什么区别| 失重感是什么感觉| 小粉是什么粉| 信仰是什么意思| 脸部肌肉跳动是什么原因| 做梦梦到自己拉屎是什么意思| 东倒西歪是什么意思| 先兆流产是什么意思| 李连杰为什么不娶丁岚| 谷草谷丙偏高是什么意思| 闻鸡起舞是什么意思| 活水是什么意思| 不拘小节是什么意思| 空腹喝可乐有什么危害| 黑糖和红糖有什么区别| gm是什么| 血管炎吃什么药| 恍惚是什么意思| 天加一笔变成什么字| 蒟蒻是什么东西| 吃完饭就犯困是什么原因| 胃疼胃胀用什么药效果最好| 心脾两虚吃什么食物补最快| 踮脚有什么好处| 孕妇不能吃什么| 禅宗是什么意思| 头爱出汗是什么原因引起的| 发蒙是什么意思| 什么是打飞机| 金铃子是什么昆虫| 皮疹和湿疹有什么区别| 8月17号是什么日子| 钧字五行属什么| 吃叶酸有什么好处| 先锋霉素又叫什么| 覆水难收什么意思| 秋葵和什么不能一起吃| 渡情劫是什么意思| 玹字五行属什么| 嫡是什么意思| 手掌发黄是什么原因| 梦见很多蜜蜂是什么意思| 为什么老是睡不着| 肛周脓肿吃什么药| 吃西瓜有什么坏处| 什么东西去火| 糖尿病是什么原因造成的| 牙龈肿吃什么药| 老是打饱嗝是什么原因| 蓝色小药丸是什么| 县公安局局长是什么级别| 头发汗多是什么原因| 体癣是什么原因引起的| 思维跳脱是什么意思| 3月14日是什么日子| 犬瘟吃什么药管用| 天德合是什么意思| 脾虚湿盛吃什么中药| 开水烫了用什么紧急处理| 双重性格是什么意思| 什么病不能吃西兰花| 真身是什么意思| 过意不去是什么意思| 舌头烂了是什么原因| 颞颌关节紊乱挂什么科| 气是什么| 吃木瓜有什么好处| 平五行属什么| 苯是什么味道| 6月20日是什么日子| 胆结石吃什么排石最快| 调节肠道菌群吃什么药| 猫咪黑下巴是什么原因| 山药对人体有什么好处| 物以类聚人以群分什么意思| 胃糜烂吃什么药效果好| 乳头有点痛什么原因| manu是什么意思| 发烧是什么原因引起的| 六月二十五号是什么星座| 早上吃黄瓜有什么好处| air是什么牌子| ssr是什么意思| 氪金什么意思| 云为什么不会掉下来| 怀孕二十天有什么反应| 煲排骨汤放什么材料好| 清醒的反义词是什么| 官符是什么意思| 一个王一个月念什么| 小孩几天不大便是什么原因怎么办| 吃红薯有什么好处和坏处| 喝什么茶叶减肥效果最好| 吃什么养头发| 刮痧的痧是什么东西| 骨科是什么意思| 目瞪口呆是什么生肖| 自由意志是什么意思| ch发什么音| 爱情是什么| 8.23是什么星座| 夏天吃什么菜最好| 什么是反流性食管炎| 甲状腺手术后可以吃什么水果| adh是什么激素| romoss是什么牌子| 蛇的贵人是什么生肖| 为什么会得麦粒肿| 水车是什么意思| 中筋面粉是什么粉| 艮什么意思| 乙肝135阳性是什么意思| 牙周康又叫什么名字| 自由奔放是什么生肖| 万事如意是什么生肖| 日值上朔是什么意思| 泉中水命是什么意思| 蚕吃什么| 血友病是什么意思| 指甲凹陷是什么原因| 经常喝红茶有什么好处和坏处吗| 冬天送什么礼物| 7点到9点是什么时辰| 左腰疼痛是什么原因男性| 牙神经挑了为什么还疼| 一吃饭就吐是什么原因| 妈妈的姐姐应该叫什么| 洋盘是什么意思| 925银和s925银有什么区别| 名称是什么意思| 吃什么英语怎么说| 老虎下山下一句是什么| 什么品牌的母婴用品好| 威士忌是用什么酿造的| 扁的桃子叫什么名字| 形同陌路什么意思| 为什么会梦游| 宁静是什么意思| 被是什么偏旁怎么读| 小圆细胞阳性什么意思| crp是什么检查| 红十字会是干什么的| 湿邪是什么意思| 骗婚是什么意思| beer是什么意思| 平均血红蛋白量偏高是什么意思| 孕妇缺钙吃什么食物补充最快| 正觉是什么意思| 中药天龙又叫什么| 李字五行属什么| gpt是什么| 地蛋是什么| 化疗后吃什么补白细胞| 什么样的充电宝不能带上飞机| 2030年属什么生肖| pw是什么意思| 为什么小孩子经常流鼻血| 慢阻肺用什么药| 乳头瘤是什么病| 功德是什么意思| 口腔溃疡为什么那么痛| 胺试验阳性是什么意思| 脑多普勒检查什么| 懿是什么意思| 补肾气吃什么药最好| 黑木耳不能和什么一起吃| 臀疗是什么| 珉字五行属什么| 牛骨煲汤搭配什么最好| 11月13日什么星座| 2月25号是什么星座| 为什么会得近视眼| 男孩长虎牙预示什么| 两女一杯是什么| 男模什么意思| 脾虚吃什么中药| 肾脏炎有什么症状| gb10769是什么标准| 什么的云海| 女人梦见火是什么预兆| 海灵菇是什么| 药品经营与管理学什么| 男人阴茎硬不起来是什么原因| 敬谢不敏是什么意思| 舌头有裂纹什么原因| 白带发黄是什么原因引起的| 粉色配什么颜色| 冷暖自知上一句是什么| 玺是什么意思| ifashion是什么意思| 10月23号是什么星座| 名称是什么意思| 晒背什么时候最佳时间| 及第是什么意思| 检查胰腺挂什么科| 下午16点是什么时辰| 猫咪冠状病毒什么症状| 头好出汗是什么原因| 4.20号是什么星座| 手上长疣是什么原因造成的| 加拿大签证需要什么材料| 心三联是指什么| 煮玉米加盐有什么好处| AX是什么意思| 鸡枞菌生长在什么地方| 女攻男受是什么意思| 喝石斛水有什么禁忌| 寒疾现代叫什么病| 什么是房补| 为什么这么热| 肚子痛看什么科| 922是什么星座| 轻度脂肪肝有什么症状| 尽收眼底是什么意思| 心率偏高是什么原因| 痣长在什么地方不好| 叶酸是什么东西| 阴囊瘙痒挂什么科室| 阳虚吃什么| 耳朵流血是什么原因| 龙女是什么意思| 三月六日是什么星座| 扁平疣用什么治疗| 收是什么生肖| 舛是什么意思| 女人出汗多是什么原因| 情绪波动大是什么原因| 晚上十一点半是什么时辰| 舌根发黄是什么原因造成的| 甜茶为什么叫甜茶| 早搏心律不齐吃什么药| 百度Jump to content

申论热点:治理“学区房”热,还需在关键点上发力

From Wikipedia, the free encyclopedia
Kerberos
Developer(s)Massachusetts Institute of Technology
Initial release24 January 1989 (2025-08-05) (version 4)
Stable release
Version 5, Release 1.21.3 / 26 June 2024; 13 months ago (2025-08-05)[1]
Written inC
Operating systemCross-platform
TypeAuthentication protocol
Websiteweb.mit.edu/kerberos/
百度 另外从售价表现来看,版本的入门级车型要比顶配车型要便宜不少,并且手动挡+小排量涡轮增压发动机还可以获得更多驾驶乐趣,对于注重操控体验的消费者来说这款车型还是比较划算的。

Kerberos (/?k??rb?r?s/) is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

Kerberos builds on symmetric-key cryptography and requires a trusted third party, and optionally may use public-key cryptography during certain phases of authentication.[2] Kerberos uses UDP port 88 by default.

The protocol was named after the character Kerberos (or Cerberus) from Greek mythology, the ferocious three-headed guard dog of Hades.[3]

History and development

[edit]

The Massachusetts Institute of Technology (MIT) developed Kerberos in 1988 to protect network services provided by Project Athena.[4][5] Its first version was primarily designed by Steve Miller and Clifford Neuman based on the earlier Needham–Schroeder symmetric-key protocol.[6][7] Kerberos versions 1 through 3 were experimental and not released outside of MIT.[8]

Kerberos version 4, the first public version, was released on January 24, 1989. Since Kerberos 4 was developed in the United States, and since it used the Data Encryption Standard (DES) encryption algorithm, U.S. export control restrictions prevented it from being exported to other countries. MIT created an exportable version of Kerberos 4 with all encryption code removed,[8] called "Bones".[9] Eric Young of Australia's Bond University reimplemented DES into Bones, in a version called "eBones", which could be freely used in any country. Sweden's Royal Institute of Technology released another reimplementation called KTH-KRB.[10]

Neuman and John Kohl published version 5 in 1993 with the intention of overcoming existing limitations and security problems. Version 5 appeared as RFC 1510, which was then made obsolete by RFC 4120 in 2005.

In 2005, the Internet Engineering Task Force (IETF) Kerberos working group updated specifications. Updates included:

MIT makes an implementation of Kerberos freely available, under copyright permissions similar to those used for BSD. In 2007, MIT formed the Kerberos Consortium to foster continued development. Founding sponsors include vendors such as Oracle, Apple Inc., Google, Microsoft, Centrify Corporation and TeamF1 Inc., and academic institutions such as the Royal Institute of Technology in Sweden, Stanford University, MIT, and vendors such as CyberSafe offering commercially supported versions.

Protocol

[edit]

Description

[edit]

The client authenticates itself to the Authentication Server (AS) which is part of the key distribution center (KDC). The KDC issues a ticket-granting ticket (TGT), which is time stamped and encrypts it using the ticket-granting service's (TGS) secret key and returns the encrypted result to the user's workstation. This is done infrequently, typically at user logon; the TGT expires at some point although it may be transparently renewed by the user's session manager while they are logged in.

When the client needs to communicate with a service on another node (a "principal", in Kerberos parlance), the client sends the TGT to the TGS, which is another component of the KDC and usually shares the same host as the authentication server. The service must have already been registered with the TGS with a Service Principal Name (SPN). The client uses the SPN to request access to this service. After verifying that the TGT is valid and that the user is permitted to access the requested service, the TGS issues a service ticket (ST) and session keys to the client. The client then sends the ticket to the service server (SS) along with its service request.

Kerberos negotiations

The protocol is described in detail below.

User Client-based Login without Kerberos

[edit]
  1. A user enters a username and password on the client machine(s). Other credential mechanisms like pkinit (RFC 4556) allow for the use of public keys in place of a password. The client transforms the password into the key of a symmetric cipher. This either uses the built-in key scheduling, or a one-way hash, depending on the cipher-suite used.
  2. The server receives the username and symmetric cipher and compares it with the data from the database. Login was a success if the cipher matches the cipher that is stored for the user.

Client Authentication

[edit]
  1. The client sends a plaintext message of the user ID to the AS (Authentication Server) requesting services on behalf of the user. (Note: Neither the secret key nor the password is sent to the AS.)
  2. The AS checks to see whether the client is in its database. If it is, the AS generates the secret key by hashing the password of the user found at the database (e.g., Active Directory in Windows Server) and sends back the following two messages to the client:
    • Message A: Client/TGS Session Key encrypted using the secret key of the client/user.
    • Message B: Ticket-Granting-Ticket (TGT, which includes the client ID, client network address, ticket validity period, and the Client/TGS Session Key) encrypted using the secret key of the TGS.
  3. Once the client receives messages A and B, it attempts to decrypt message A with the secret key generated from the password entered by the user. If the user entered password does not match the password in the AS database, the client's secret key will be different and thus unable to decrypt message A. With a valid password and secret key the client decrypts message A to obtain the Client/TGS Session Key. This session key is used for further communications with the TGS. (Note: The client cannot decrypt Message B, as it is encrypted using TGS's secret key.) At this point, the client has enough information to authenticate itself to the TGS.

Client Service Authorization

[edit]
  1. When requesting services, the client sends the following messages to the TGS:
    • Message C: Composed of the message B (the encrypted TGT using the TGS secret key) and the ID of the requested service.
    • Message D: Authenticator (which is composed of the client ID and the timestamp), encrypted using the Client/TGS Session Key (found by the client in Message A).
  2. Upon receiving messages C and D, the TGS retrieves message B out of message C. It decrypts message B using the TGS secret key. This gives it the Client/TGS Session Key and the client ID (both are in the TGT). Using this Client/TGS Session Key, the TGS decrypts message D (Authenticator) and compares the client IDs from messages B and D; if they match, the server sends the following two messages to the client:
    • Message E: Client-to-server ticket (which includes the client ID, client network address, validity period, and Client/Server Session Key) encrypted using the service's secret key.
    • Message F: Client/Server Session Key encrypted with the Client/TGS Session Key.

Client Service Request

[edit]
  1. Upon receiving messages E and F from TGS, the client has enough information to authenticate itself to the Service Server (SS). The client connects to the SS and sends the following two messages:
    • Message E: From the previous step (the Client-to-server ticket, encrypted using service's Secret key by the TGS).
    • Message G: A new Authenticator, which includes the client ID, timestamp and is encrypted using Client/Server Session Key.
  2. The SS decrypts the ticket (message E) using its own secret key to retrieve the Client/Server Session Key. Using the sessions key, SS decrypts the Authenticator and compares client ID from messages E and G, if they match server sends the following message to the client to confirm its true identity and willingness to serve the client:
    • Message H: The timestamp found in client's Authenticator (plus 1 in version 4, but not necessary in version 5[11][12]), encrypted using the Client/Server Session Key.
  3. The client decrypts the confirmation (message H) using the Client/Server Session Key and checks whether the timestamp is correct. If so, then the client can trust the server and can start issuing service requests to the server.
  4. The server provides the requested services to the client.

Support by operating systems

[edit]

Microsoft Windows

[edit]

Windows 2000 and later versions use Kerberos as their default authentication method.[13] Some Microsoft additions to the Kerberos suite of protocols are documented in RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols". RFC 4757 documents Microsoft's use of the RC4 cipher. While Microsoft uses and extends the Kerberos protocol, it does not use the MIT software.

Kerberos is used as the preferred authentication method: in general, joining a client to a Windows domain means enabling Kerberos as the default protocol for authentications from that client to services in the Windows domain and all domains with trust relationships to that domain.[13]

In contrast, when either client or server or both are not joined to a domain (or not part of the same trusted domain environment), Windows will instead use NTLM for authentication between client and server.[13]

Internet web applications can enforce Kerberos as an authentication method for domain-joined clients by using APIs provided under SSPI.

Microsoft Windows and Windows Server include setspn, a command-line utility that can be used to read, modify, or delete the Service Principal Names (SPN) for an Active Directory service account.[14][15]

Unix and other operating systems

[edit]

Many Unix-like operating systems, including FreeBSD, Apple's macOS, Red Hat Enterprise Linux, Oracle's Solaris, IBM's AIX, HP-UX and others, include software for Kerberos authentication of users or services. A variety of non-Unix like operating systems such as z/OS, IBM i and OpenVMS also feature Kerberos support. Embedded implementation of the Kerberos V authentication protocol for client agents and network services running on embedded platforms is also available from companies [which?].

Drawbacks and limitations

[edit]
  • Kerberos has strict time requirements, which means that the clocks of the involved hosts must be synchronized within configured limits. The tickets have a time availability period, and if the host clock is not synchronized with the Kerberos server clock, the authentication will fail. The default configuration per MIT requires that clock times be no more than five minutes apart. In practice, Network Time Protocol daemons are usually used to keep the host clocks synchronized. Note that some servers (Microsoft's implementation being one of them) may return a KRB_AP_ERR_SKEW result containing the encrypted server time if both clocks have an offset greater than the configured maximum value. In that case, the client could retry by calculating the time using the provided server time to find the offset. This behavior is documented in RFC 4430.
  • The administration protocol is not standardized and differs between server implementations. Password changes are described in RFC 3244.
  • In case of symmetric cryptography adoption (Kerberos can work using symmetric or asymmetric (public-key) cryptography), since all authentications are controlled by a centralized key distribution center (KDC), compromise of this authentication infrastructure will allow an attacker to impersonate any user.
  • Each network service that requires a different host name will need its own set of Kerberos keys. This complicates virtual hosting and clusters.
  • Kerberos requires user accounts and services to have a trusted relationship to the Kerberos token server.
  • The required client trust makes creating staged environments (e.g., separate domains for test environment, pre-production environment and production environment) difficult: Either domain trust relationships need to be created that prevent a strict separation of environment domains, or additional user clients need to be provided for each environment.

Security

[edit]

The Data Encryption Standard (DES) cipher can be used in combination with Kerberos, but is no longer an Internet standard because it is weak.[16] Security vulnerabilities exist in products that implement legacy versions of Kerberos which lack support for newer encryption ciphers like AES.

See also

[edit]

References

[edit]
  1. ^ "Kerberos 5 Release 1.21.3".
  2. ^ RFC 4556, abstract.
  3. ^ "Kerberos authentication". IONOS Digitalguide. Retrieved 2025-08-05.
  4. ^ Garman 2003, p. 5.
  5. ^ Steiner, Jennifer G.; Geer, Daniel E. (21 July 1988). Network Services in the Athena Environment. Proceedings of the Winter 1988 Usenix Conference. CiteSeerX 10.1.1.31.8727.
  6. ^ Steiner, Jennifer G.; Neuman, Clifford; Schiller, Jeffrey I. (February 1988). Kerberos: An authentication service for open network systems. Proceedings of the Winter 1988 USENIX Conference. CiteSeerX 10.1.1.112.9002. S2CID 222257682.
  7. ^ Elizabeth D. Zwicky; Simon Cooper; D. Brent (26 Jun 2000). Building Internet Firewalls: Internet and Web Security. O'Reilly. ISBN 9781565928718.
  8. ^ a b Garman 2003, p. 7.
  9. ^ Pr?hl & Kobras 2022, p. 7.
  10. ^ Garman 2003, pp. 7–8.
  11. ^ Neuman, C.; Kohl, J. (1993). "The Kerberos Network Authentication Service (V5)". doi:10.17487/RFC1510. Archived from the original on 2025-08-05.
  12. ^ Neuman, Clifford; Hartman, Sam; Yu, Tom; Raeburn, Kenneth (2005). "The Kerberos Network Authentication Service (V5)". doi:10.17487/RFC4120. Archived from the original on 2025-08-05.
  13. ^ a b c "What Is Kerberos Authentication?". Microsoft TechNet. 8 October 2009. Archived from the original on 2025-08-05.
  14. ^ Setspn - Windows CMD - SS64.com
  15. ^ Setspn | Microsoft Docs
  16. ^ Tom, Yu; Love, Astrand (2012). "Deprecate DES, RC4-HMAC-EXP, and Other Weak Cryptographic Algorithms in Kerberos". doi:10.17487/RFC6649. Archived from the original on 2025-08-05.
General
RFCs
  • RFC 1510 The Kerberos Network Authentication Service (V5) [Obsolete]
  • RFC 1964 The Kerberos Version 5 GSS-API Mechanism
  • RFC 3961 Encryption and Checksum Specifications for Kerberos 5
  • RFC 3962 Advanced Encryption Standard (AES) Encryption for Kerberos 5
  • RFC 4120 The Kerberos Network Authentication Service (V5) [Current]
  • RFC 4121 The Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Mechanism: Version 2
  • RFC 4537 Kerberos Cryptosystem Negotiation Extension
  • RFC 4556 Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
  • RFC 4557 Online Certificate Status Protocol (OCSP) Support for Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
  • RFC 4757 The RC4-HMAC Kerberos Encryption Types Used by Microsoft Windows [Obsolete]
  • RFC 5021 Extended Kerberos Version 5 Key Distribution Center (KDC) Exchanges over TCP
  • RFC 5349 Elliptic Curve Cryptography (ECC) Support for Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)
  • RFC 5868 Problem Statement on the Cross-Realm Operation of Kerberos
  • RFC 5896 Generic Security Service Application Program Interface (GSS-API): Delegate if Approved by Policy
  • RFC 6111 Additional Kerberos Naming Constraints
  • RFC 6112 Anonymity Support for Kerberos
  • RFC 6113 A Generalized Framework for Kerberos Pre-Authentication
  • RFC 6251 Using Kerberos Version 5 over the Transport Layer Security (TLS) Protocol
  • RFC 6448 The Unencrypted Form of Kerberos 5 KRB-CRED Message
  • RFC 6542 Kerberos Version 5 Generic Security Service Application Program Interface (GSS-API) Channel Binding Hash Agility
  • RFC 6560 One-Time Password (OTP) Pre-Authentication
  • RFC 6649 Deprecate DES, RC4-HMAC-EXP, and Other Weak Cryptographic Algorithms in Kerberos
  • RFC 6784 Kerberos Options for DHCPv6
  • RFC 6803 Camellia Encryption for Kerberos 5
  • RFC 6806 Kerberos Principal Name Canonicalization and Cross-Realm Referrals
  • RFC 6880 An Information Model for Kerberos Version 5
  • RFC 8009 AES Encryption with HMAC-SHA2 for Kerberos 5

Further reading

[edit]
[edit]
狗狗为什么会得细小 因果是什么意思 喝什么排肝毒最快 1985年什么命 肺栓塞的主要症状是什么
骆驼吃什么 五月五日什么星座 crn什么意思 什么的天安门 后背痛什么原因
军分区司令是什么级别 叫姑姑是什么关系 卵巢囊肿有什么症状 脚痒是什么原因 阿西是什么意思
头痛吃什么 什么时候打胎对身体伤害最小 子宫切除对女人有什么影响 白天不懂夜的黑是什么意思 茯苓是什么味道
中秋节是什么时候hcv9jop1ns0r.cn 阴毛长虱子用什么药hcv8jop1ns5r.cn 五味子是什么味道hcv7jop4ns5r.cn 男人早泄吃什么药96micro.com 62年属什么hcv8jop3ns1r.cn
镶是什么意思hcv7jop9ns4r.cn 梦见自己鼻子流血是什么预兆hcv8jop7ns8r.cn 脚踝疼挂什么科hcv8jop9ns6r.cn 便秘吃什么药好fenrenren.com 参芪颗粒适合什么人吃hcv8jop9ns6r.cn
杨桃是什么季节的水果hcv9jop2ns0r.cn pof是什么意思tiangongnft.com 2009年五行属什么hcv8jop9ns7r.cn 什么蛇不咬人hcv8jop1ns4r.cn 梦见自己流血是什么预兆hcv7jop6ns1r.cn
哮天犬是什么狗hcv9jop3ns4r.cn 什么动物睡觉不闭眼睛hcv7jop9ns1r.cn 巨蟹座和什么星座最配hcv9jop5ns7r.cn 玉米须加什么治痛风hcv9jop3ns5r.cn 勃起不坚吃什么药hcv8jop8ns6r.cn
百度