2012-09-12 34 views
0

我在apache,tomcat和IIS 7.5上用cac智能卡實現了強大的認證,但問題是當客戶端從閱讀器中刪除智能卡時,他仍然可以完全訪問服務器。 所以如何在智能卡被移除後創建一個認證器mamager或會話斷開客戶端。會話在智能卡被移除後斷開客戶端

會話可以在兩個狀態,連接或斷開的一個:

連接:被顯示在客戶端與所連接的狀態的每個會話。當用戶移除智能卡或將客戶端切換到不同的會話時,會話會自動斷開。

斷開連接:這些會話仍在服務器上執行,但未連接到客戶端,因此不會顯示。但是,用戶可以重新連接到斷開連接的會話,例如將包含適當令牌的智能卡插入客戶端的讀卡器。這會將會話的狀態更改爲連接並使其顯示在該客戶端上。

+0

是你的問題如何時,他插入CAC卡放回重新連接用戶到自己的斷開的會話機器並擊中網站? –

+0

是的,這是問題的一部分,但更重要的部分是當用戶移除智能卡 – xfocus

回答

0

我認爲之前有人問過類似的問題,但我找不到鏈接(可能類似於「點擊註銷時刷新ssl會話」)。這裏的關鍵是SSL(重新)協商和SSL會話緩存。

您有兩種選擇:或者減少服務器的SSL會話緩存(減慢連接速度),從而在移除卡時更早地強制失敗重新協商(Apache mod_ssl中的默認會話緩存超時爲IIRC 300秒)或者實現一個瀏覽器插件(除非你有一個專用的客戶端軟件),這個插件會檢測到卡的移除,從而使客戶端的會話無效(或者甚至向服務器發送一個信號來刷新服務器端的會話) 。

如果你是在談論一個Web服務,你永遠不能擁有「完全控制」標準工具...

+0

感謝您的幫助時會話自動斷開連接,您可以更詳細地瞭解如何發送信號到服務器刷新服務器端的會話 – xfocus

+0

另一種方法是添加一些JavaScript來輪詢Web服務器,以繼續請求一些文本/ HTML(類似於ping,Web應用程序將返回一小段文本)。當請求由於CAC卡已被刪除而失敗時,客戶端知道它已斷開連接。在服務器端,如果您跟蹤每個會話的ping,並且您不再接收它們,則知道會話已斷開連接。這不是最優雅的解決方案,但它可能很容易實現。 –

+0

感謝您的幫助,我想我會努力處理您的想法。 – xfocus