Windows

我的事件日誌中的 0x19 KDC_ERR_PREAUTH_REQUIRED

  • January 17, 2022

所以我有一台伺服器,每次使用者或服務賬戶登錄機器時,系統日誌中都會產生一個錯誤事件:

A Kerberos Error Message was received:
on logon session DOMAIN\serviceaccount
Client Time: 
Server Time: 12:44:21.0000 10/9/2012 Z
Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED
Extended Error: 
Client Realm: 
Client Name: 
Server Realm: DOMAIN
Server Name: krbtgt/DOMAIN
Target Name: krbtgt/DOMAIN@DOMAIN
Error Text: 
File: e
Line: 9fe
Error Data is in record data.

所以當然我用Google搜尋了這個,我得到的唯一資訊是“它不一定表示有問題,你通常可以忽略它。”

好吧,天哪,那太好了,但是這些錯誤大約每分鐘一次向我的系統日誌發送垃圾郵件,我真的很想讓它們停止。有任何想法嗎?

來自 Microsoft AskDS 部落格:

KDC_ERR_PREAUTH_REQUIRED

如果您在跟踪中看到此錯誤,則根本不表示存在問題。客戶端請求了一張票,但沒有包含預認證數據。您通常會看到與數據和發出票證的域控制器再次發送相同的請求。Windows 使用此技術來確定支持的加密類型。

我不能幫你阻止他們;恐怕我是 Linux 人。我至少可以解釋他們。理解此消息需要稍微偏離一下 Kerberos 身份驗證的工作原理。

基本的 Kerberos 身份驗證過程是客戶端從 KDC 請求加密的 TGT,然後使用其本地密鑰對其進行解密。然而,天真地實現,這允許攻擊者為您領域中的每個使用者下載 TGT,然後在攻擊者空閒時嘗試通過暴力攻擊解密它們。因此,Kerberos 添加了一種稱為預身份驗證的機制。

預身份驗證的工作方式是,KDC 在收到 TGT 請求時,會發回預身份驗證質詢,而不僅僅是發回 TGT。預認證挑戰可以採取多種形式,但最常見的形式是要求客戶端發送以客戶端密鑰加密的目前時間。然後,KDC 在發送 TGT 之前確認客戶端可以執行此操作(這表明對客戶端密鑰有一定的了解)。

但是,部分是因為添加了預身份驗證,部分是因為客戶端不知道將發送什麼預身份驗證質詢,客戶端總是發送基本的 TGT 請求,然後 KDC 總是用預身份驗證質詢拒絕它。這些日誌消息是 Active Directory 記錄它在沒有預先身份驗證的情況下收到 TGT 請求並發回質詢的事實。

你的猜測和我的猜測一樣好,因為它是協議的正常部分,而且不是非常有趣,但所有基於 Linux 的 KDC 都做同樣的事情。

引用自:https://serverfault.com/questions/436450