在SSL加密Cookie与客户端证书中保存会话

时间:2010-12-10 21:27:18

标签: asp.net asp.net-mvc persistence certificate single-sign-on

背景:从桌面应用程序中,用户将导航到SSL加密的Web门户,如果是第一次登录,他们必须输入用户名/密码。我希望能够安全地保持他们的用户会话。我在考虑使用加密的cookie,存储他们的用户名和唯一的会话令牌/密钥,但是想知道客户端证书在安全性方面有什么好处。

我目前的理解方式是:

加密的Cookie:

  • 就像其他任何cookie一样保存在用户的计算机上
  • 由于整个网站都是SSL,因此无法篡改Cookie的内容
  • 易于实施
  • 当用户再次登录时,使令牌/密钥无效并发出新的

问题:

  • 任何尝试使用保存的会话访问计算机上的Web门户的人都可以,但这是任何持久会话的问题,对吧?
  • 我怎么知道计算机A是计算机A而不只是计算机B复制了计算机A的cookie?

客户端证书:

  • 安装屁股的痛苦
  • 将该人的计算机(或者可以限制为用户帐户)唯一标识到门户网站
  • 如果客户端证书被盗,则该帐户会被盗用

问题:为了保持最高安全性的用户会话,加密的Cookie是否足够,还是需要安装客户端证书?他们有什么不同?

1 个答案:

答案 0 :(得分:0)

2-face-authentication(客户端证书)并不意味着持久化会话。每次用户访问该页面时,客户端证书都用于对站点进行身份验证。根据客户端策略(或AD),用户可能会输入PIN以便能够提交证书,或者从安装到证书库的证书列表中进行选择。