Kerberos認證工作之第三幕

2021-04-13 23:01:07 字數 2619 閱讀 1191

第三幕

第二天一早,athena在咖啡間遇上了euripides。在euripides倒咖啡的時候,athena拍了拍euripides.

athena: 我有了乙個新的charon的版本來解決我們的問題。

euripides: 真的嗎?好快呀。

athena: 好,你看,這些問題困擾了我一夜。

euripides: 一定是你良心發現了。我們去那邊的小會議室吧?

athena: 好的。

兩人去了小會議室。

athena: 我要重新描述問題,但我要根據我們的需要進行適當的轉換。

athena清了清嗓子。

athena: 第乙個限制:使用者只輸一次口令,在他們工作站啟動的時候,這意味著當你需要申請新的服務的票時,不需輸入你的口令。第二個限制:口令不能在網路上進行明文傳輸。

euripides: 好的。

euripides: 每次我想要另一種網路服務的時候,我都要去取一張「票據授權」票嗎?

athena: 不。記住,上次我們已經同意票是能被重用的。一旦你要用到票據授權票,直接用就可以了。

euripides: 好,有道理。既然你能重用票,一旦你得到了某個服務的票,你就無需再去取了。

athena: 對啊,那不好嗎?

euripides: 好的,我沒話說,只要你在取得票據授權票的時候沒有用明文在網上傳輸你的口令。

athena: 如我所說,我已解決了這個問題。聽起來好像是,當我說我要和charon聯絡取得票據授權票的時候,你就要在網路上傳輸明文密碼。但其實不是這樣的。 實際上是,當你用kinit程式取得票據授權票的時候,kinit沒有把你的口令送給charon伺服器,kinit只送你的使用者名稱。

euripides: 很好。

athena: charon用使用者名稱去查詢你的口令。然後charon就會組乙個包含票據授權票的包。在送給你之前,charon用你的口令去把這個包加密。你的工作站收到了包。你輸入你的口令。kinit用你的口令對這個包進行解密。如果成功你就向charon成功的進行了認證。你現在有了票據授權票,你可以用這張票來取得其它的票。這些奇思妙想怎麼樣?

euripides: 我不知道...我正在思考。你知道你的系統一部分工作得很好。你的系統只需要我認證一次。以後,charon會給我服務的票而我需要關心。天衣無縫,天衣無縫。但服務票的設計還是有一些困擾我。服務票是可重用的。我同意它們應該能被重用,但重用的服務票,由於它們自身的性質,是非常危險的。

athena: 什麼意思?

euripides: 這樣看。假設你正在用乙個不安全的工作站。在你登入後,你需要郵件服務票,列印票,和檔案服務票。假設你無意中在你退出後留下了那些票。現在假設我登入到那個工作站並且發現了那些票。我想製造一些麻煩,於是我就用你的名字登入了。既然那些票上是你的名字,那我就可以取你的郵件,打大量的檔案。這些完全是因為這些票被偶然的放在了那裡。 並且我還可以把這些票拷走,永遠的使用它們。

athena: 但是這很好解決。我們可以寫乙個程式,在使用者退出的時候把票銷毀掉,這些票也主不能再用了。

euripides: 那麼很明顯你的統應該有乙個票據銷毀程式,讓使用者依賴這樣的機制是非常愚蠢的。你不能指望使用者在他們退出的時候會銷毀票據。並且甚至不能依賴銷毀票據本身,看下面的情況。 我有乙個程式可以監視網路並且拷內別人的服務票據。假設我想犧牲你。我等你登到工作站的時候,開啟我的程式並拷貝乙份你的票。我等你退出並離開。我把我的工作站的位址調整為你登入時用的位址。我讓工作站認為我是你。我有你的票,你的使用者名稱,你的位址。我可以用這些票來使用你的服務。你離開工作站時銷毀你的票已沒並繫。這些我偷來的票可以一直使用下去,因為你現在的票並沒有可以使用多少次的期限,或可以使用多長的時間。

athena: 哦,我明白你所說的了!票不能是永遠合法的,因為它可能是乙個非常大的安全隱患。我們應該限制每一張票可以用多長的時間,也許可以給每張票設乙個有效期。

euripides: 非常正確。我想票需要增加兩項資訊:生存期表示票多長時間內是合法的,和乙個時間標記來說明charon是什麼時候發出這張票的。

euripides走到了黑板寫下了如下的內容:

euripides: 現在當服務解開票時,它檢查票的使用者名稱,位址是否與傳送者匹配,然後它用有效期和時間戳來檢查票是否有效。

athena: 很好。典型的票使用哪長的有效期呢?

euripides: 我不知道。也許是乙個典型工作站的工作週期。就八小時吧。

athena: 那如果我在工作站呆的時間超過八小時,所有的票將會失效。包括票據授權票。那我就要重新向charon作認證,在八小時以後。

euripides: 是不是不合理?

athena: 我想不是。好我們就定下來吧--票在八小時後失效。現在我有乙個問題問你。假設我從網路上拷了你的票--。

euripides: (眨了眨眼睛)啊,athena!你不會真的這樣做吧?

athena: 這只是為了討論。我拷了你的票。現在我等你退出並離開。假設你有乙個醫生的約會或聚會要參加,你在兩個小時後退出,並且你在退出之前銷毀了你的票。但我已經偷了你的票,它們還可以使用六小時。這給了我足夠的時間用你的名義去取你的檔案並列印一千份什麼東西。 你看,時間戳工作的很好如果小偷選擇在它失效以後來用的話。如果小偷能在它失效之前用...。啊,好...當然,你是對的。

athena: 我想我們遇上了乙個大問題了。(她嘆了口氣)停了一下。

euripides: 我想這意味著你今晚要忙了。再來點咖啡?

athena: 為什麼不。

drf 三大認證之 認證元件

原始碼分析 1 apiview的dispath self,request,args,kwargs 2 dispath方法內 self.initial request,args,kwargs 進入三大認證 認證元件 校驗使用者 遊客 合法使用者 非法使用者 非法使用者 代表校驗失敗,丟擲異常,返回40...

如何通過高新技術企業認證工作網知道高企申報審核結果

當我們通過高新技術企業認證工作網提交高新認證之後,可以通過高企申報材料列表頁的狀態來判定我們所申報材料的審核狀態,其中審核狀態主要分為以下九類,分別對應不同的審核結果。1 已提交 已提交是指我們成功把申報高新認證的材料提交後,認定機構還未進行審查處理的一種狀態。2 已受理 如果認定機構成功處理了該申...

工作第三天總結

1 align與text align的區別 align是規定div元素中的內容的水平對齊方式 p中也可以使用 text align是規定元素中的文字的水平對齊方式,它是css屬性,若要在div中使用,則需要用到style text align center 來撰寫css屬性 2 清除瀏覽器自帶的邊框...