2009-05-02 98 views
2


驗證票(表單認證)

Q1 - 表格認證模塊將其放置在一個cookie之前加密其認證信息(票)。

現在,我很少了解加密算法,他們通常使用一些隨機生成的值來加密和解密一段數據。因此,如果相同的算法使用值A來加密一些數據,那麼爲了能夠解密這些數據,它也將需要相同的值。


A)由於幾個用戶可以在(經由表格認證模塊),以特定的web應用程序,將認證爲每個這些用戶的信息被記錄具有相同的隨機生成值進行加密?

  • 如果是,那麼這是否代表安全風險?


  • 如果沒有,那麼,當在下次請求Asp.Net接收認證的cookie(其中包含票)從用戶,它將如何知道哪個隨機生成值它用來加密票(我假設它需要將這個值來解密票)


Q2 身份驗證票包含有關經過身份驗證的用戶的幾條信息,但哪些數據實際上告訴Asp.Net(當用戶再次請求某個頁面時)它正在處理已經過身份驗證的用戶?


感謝名單

回答

5

Q1:窗體身份驗證使用machineKey加密cookie中。由於它的值在machine.config中是不變的,所以ASP.NET能夠解密用相同密鑰加密的cookie。

Cookie使用相同的密鑰進行加密,但此密鑰僅爲服務器所知,這意味着用戶不能篡改cookie的數據,因此不能冒充其他用戶,因此不存在安全風險使用相同的私鑰來加密cookie。

Q2:票證包含以下信息:用戶名和日期,用於確定它是否有效(如果設置了過期期限,ASP.NET可以在每次請求檢查其有效性時重寫Cookie) 。如果cookie由客戶端發送,並且解密後仍然有效,則ASP.NET假定客戶端已通過身份驗證。

+1

您也可以使用自動生成的machineKey,我相信它將在應用程序啓動時生成並緩存。 – sisve 2009-05-02 20:55:40

+0

thanx爲您提供幫助 – SourceC 2009-05-02 23:40:15