簡體   English   中英

Java和Kerberos

[英]Java and Kerberos

我想將字符串與當前經過身份驗證的用戶的密碼進行比較(加密密鑰比較)。 好像是從票證緩存中檢索密碼,但是我該怎么辦呢?

謝謝

無法從客戶端或kerberos系統中任何地方的可用信息中檢索密碼。 根據Wikipedia中kerberos文章 (該信息與我在其他來源處所獲得的信息類似),用戶輸入的密碼通過單向函數散列為從那時起用作秘密的東西。 該密鑰在密鑰分發中心(KDC)上可用,並且使用該密鑰對票證授予票證(TGT)進行對稱加密。 為了接收和使用TGT,客戶端必須提供用於解密程序包的秘密-這是通過向用戶詢問密碼來完成的。 這樣做之后,TGT被解密並保存在票證緩存中。

TGT本身具有用kdc知道的秘密加密的部分,它不保存用戶密碼。 例如,如2000年的這篇文章所述,密碼也不存儲在票證緩存中-只是TGT的一部分。 據我了解,不可能使用票證緩存檢查用戶密碼。

您可能想要編寫自己的CallbackHandler以便以某種方式重用或以編程方式提供憑據,但是據我所知,這可能會導致安全問題。

您可能想考慮使用完全不同的方法來解決問題,但是幾乎沒有什么信息可以建議其他解決方案。

我不知道這是否有可能。 該散列可以用僅服務器已知的密鑰來加鹽。 我將嘗試使用用戶的id和給定的String進行身份驗證。 如果服務器接受身份驗證請求,則密碼有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM