2016-11-16 89 views
1

我在ASP.NET Core中使用Cookie中間件獲取會話cookie。會話cookie數據由框架使用Data Protection API進行加密。ASP.NET Core中的Data Protection API是否可防止重放攻擊?

只是想詳細瞭解什麼程度的保護水平。這是我目前的假設:

  • 的cookie數據不能在運輸過程中或休息時瀏覽器中查看,並防篡改

  • 的cookie數據可如果嗅探通過HTTP重播

  • 如果發行,並通過HTTPS

如果這些假設都是錯誤的或者需要更多的只派出

  • 的cookie數據不能被重播細節,那麼我會很感激答案。

  • 回答

    2

    你的假設是正確的:雖然身份驗證cookie被標記爲HttpOnly默認情況下,沒有什麼可以阻止攻擊者從瀏覽器的容器偷餅乾,並把它作爲-是,如果他設法受害者的機器上安裝惡意軟件進行惡意請求。


    未來,ASP.NET Core將支持名爲「TLS令牌綁定」的功能,這將使竊取身份驗證cookie變得更困難。

    如果服務器和用戶代理都支持此功能,則此功能允許服務器將敏感數據(如身份驗證Cookie或承載令牌)與僅由原始客戶端(即瀏覽器)知道的祕密值綁定。

    在ASP.NET Core中,此功能將在加密級別實現:瀏覽器傳輸的密鑰將用於派生由Data Protection用來保護和取消保護身份驗證Cookie的加密/驗證密鑰,以便如果沒有發送相應的令牌,任何人都無法使用被盜的cookie。

    +0

    注意:TLS令牌綁定已在Cookie中間件中實現,但官方服務器(即WebListener和Kestrel,即使在IIS後面)也不支持此功能。您可以在此處查看進度:https://github.com/aspnet/WebListener/issues/231 https://github.com/aspnet/KestrelHttpServer/issues/736 https://github.com/aspnet/AspNetCoreModule/issues/24 – Pinpoint

    +0

    感謝TLS令牌綁定信息,我會密切注意這一點。 – Sam