2012-06-22 29 views
1

當使用Kerberos票據運行時,我注意到每個firefox請求在HTTP標頭中都有不同的授權行。我加載了一個簡單的頁面,然後點擊重新加載按鈕幾次,它從來沒有一樣的。什麼導致這種行爲?我會認爲授權行將在Kerberos證書期間保持不變。 (請注意,在啓動Firefox之前,我通過kinit命令獲得了憑據)。爲什麼授權行會針對每個Firefox請求進行更改?

當身份驗證方法爲Basic時,firefox每次都會繼續發送相同的base64字符串'user:password'。這是我期望的行爲。

任何想法?

+0

你沒有給任何人足夠的信息來回答這個問題。你需要花更多的時間來解決這個問題。 – rook

+0

Rook - 你是否說我需要深入瞭解Firefox的源代碼,以便弄清爲什麼瀏覽器不斷更新其授權元素?如果是這樣,那很好。我對我看到的實際線上數據包更感興趣。這是預期的行爲嗎? (我不是安全專家。)這聽起來像是一個Firefox的錯誤?我不知何故也失去了我們的舊評論。抱歉。 –

+0

你可能不需要進入源代碼。但是,你有沒有觸動wireshark?你確定firefox知道使用正確的認證方法嗎?不,它聽起來不像是一個Firefox的錯誤,這聽起來像是一個難以調試的問題,並且你沒有給任何人足夠的信息(包括你自己)來解決這個問題。 – rook

回答

0

嗯它很奇怪。任何機會,你可以張貼wireshark輸出snipptes。一種可能性是所獲得的服務票據未被緩存,並且FF獲得服務票據。已經有一些實現,客戶端可以獲得服務但不會緩存它,而是每次都需要獲取服務票據。有時候,這是因爲這個過程可能沒有寫權限,而且它相對來說是一種廉價的操作(單次往返和對稱加密數據)。

+0

RVM - 我會看看我是否可以發佈wireshark輸出。 (我懷疑它,但你永遠不知道公司會允許什麼。)我認爲你所說的是正確的 - 票不會被緩存。這似乎是一個相對容易的任務。 (有沒有任何Mozilla開發者在看這個?) –

0

這是由於HTTP協議和Auth協議工作方式的各種限制。

HTTP最初設計爲無狀態協議,HTTP的身份驗證系統採用該模型。它旨在在每個請求中進行完整的身份驗證交換;例如,使用Basic,它會在每個請求中附上您的完整憑證。通過Negotiate-Auth和SPNEGO,同樣的事情也是如此:一個全新的GSS-API上下文被創建,並且每個請求都會執行一次全新的認證。

是的,這是非常浪費。但是,(目前)沒有任何標準化的方式來驗證一次,建立一個會話,然後將所有後續請求綁定到該會話(例如,IMAP,POP或ssh的方式)。在這方面有一些IETF的工作,但這是非常初步的。

門票被緩存;它不是在做每次都做很多工作。但服務器和客戶端每次都會跳過整個GSS-API會話。

相關問題