ASP.NET Core中的Data Protection API是否会阻止重放攻击?

时间:2016-11-16 02:30:03

标签: cookies asp.net-core

我正在使用ASP.NET Core中的Cookie中间件来处理会话cookie。会话cookie数据由框架使用Data Protection API加密。

只是想详细了解此流程的保护级别。这些是我目前的假设:

  • 无法在浏览器中传输或在浏览器中查看Cookie数据且防篡改

  • 如果通过HTTP嗅探

  • ,可以重播cookie数据
  • 如果仅通过HTTPS发送和发送,则无法重播cookie数据

如果这些假设中的任何一个是错误的或需要更多细节,那么我会很感激答案。

1 个答案:

答案 0 :(得分:2)

您的假设是正确的:虽然默认情况下身份验证Cookie被标记为HttpOnly,但没有任何内容可以防止攻击者从浏览器的容器中窃取cookie并按原样使用它来管理恶意请求在受害者的机器上安装恶意软件。

将来,ASP.NET Core将支持名为" TLS令牌绑定的功能"这将使窃取身份验证cookie变得更加困难。

当服务器和用户代理都支持时,此功能允许服务器绑定敏感数据,如身份验证cookie或承载令牌,其密码值仅由原始客户端(即浏览器)知道。

在ASP.NET Core中,此功能将在加密级别实现:浏览器传输的密码将用于派生Data Protection用于保护和取消保护身份验证cookie的加密/验证密钥,因此不会一个人将能够使用被盗的cookie,而无需发送相应的令牌。