首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在TLS协议中通常不执行客户端身份验证?

为什么在TLS协议中通常不执行客户端身份验证?
EN

Security用户
提问于 2012-11-11 12:40:52
回答 4查看 42.8K关注 0票数 39

除了客户端的密钥/证书管理之外,还有其他原因吗?

EN

回答 4

Security用户

回答已采纳

发布于 2012-11-11 20:34:21

什么是身份验证?确保在隧道另一端的人就是你所相信的人。这真的取决于你想要使用的身份类型。

对于大多数网站来说,有趣的概念是连续性。他们并不真正关心谁是连接者;事实上,网站的意义在于让每个人都能读懂。Web站点希望实现的真实性是确保两个连续的请求确实来自同一个客户端(无论该客户端是谁)。这是因为Web站点的体验是由用户的操作(单击的链接)驱动的页面的逻辑顺序,以及对类似电影的框架的干预是攻击者所追求的。用户和网站设计人员从会话的角度考虑,攻击者想要劫持会话。

这种真实性是通过以下几种机制来实现的:

  • 来自同一客户端的连续HTTP请求经过相同的连接(具有“保持活动”功能)。
  • SSL提供了一种会话恢复机制,它重用协商后的共享密钥(即SSL/TLS标准第7.3节中描述的“缩写握手”)。
  • HTTP请求可以包括服务器选择的cookie;通常,一个随机的、特定于用户的值作为cookie发送给用户,并且当看到它在随后的请求中返回时,服务器确信请求来自同一个用户。

cookie足以确保连续性。

客户端证书会增加什么额外价值?嗯,不多。证书是分发密钥/名称绑定的一种方法。在大多数情况下,客户机证书(在Web上下文中)是相关的:

  1. Web服务器需要一个扩展的用户标识概念,这是由其他人定义的。例如,设想一个政府服务,公民可以访问,但必须经过适当的认证,例如一个在线选举系统。公民具有明确姓名和出生日期的原因是由国家管理的,但与执勤的公民并不相同。然后,客户证书是一种将身份验证从PKI传送给公民的一种方式,传输到网上选举系统,该系统根本无权说出谁被命名为什么,但必须保持明确的记录,说明谁与谁连接。
  2. 系统设计人员对现有Web浏览器的健壮性几乎不信任。如果用户的浏览器被劫持,那么秘密cookie就可能被窃取,用户基本上已经丢失了,永远。另一方面,如果使用者有一张智能卡,而该智能卡储存了一个私钥(该私钥与客户证书一起使用),那么完全的浏览器劫持仍然是一个大问题,但更多的问题是:由于智能卡将提交光荣的七库而不是泄露珍贵的私钥,这种情况可以从这里恢复过来。一旦执行了强制格式和重新安装,一切都是安全的。
  3. 该网站不仅想要真实性,也希望得到不可否认.不可否认是一个法律概念,需要系统技术部分的支持,而这种支持是数字签名。这里我们超出了SSL/TLS提供的范围。SSL/TLS客户端身份验证绝不能成为解决用户与服务器本身之间某些法律冲突的证据(银行服务器不能显示连接的记录,并说“看,该用户真的要求我以该价格购买这些操作”,因为银行可以很容易地伪造整个抄本)。为此,需要客户端证书和一些客户端代码,这些代码使用证书对实际数据进行签名。但是,一旦完成了向客户端颁发证书的艰苦工作,只将它们用于HTTPS是有意义的。

在Web服务器的常见情况下,这些方案都不适用。因此不使用客户端证书,因为它们会引起实际问题,同时不增加任何额外的价值。这将是一个寻找问题的解决方案。

票数 53
EN

Security用户

发布于 2012-11-11 13:09:22

主要原因是95%的互联网用户不知道客户端证书是什么,更不用说如何使用证书了。有些用户几乎无法使用用户名和密码,而且大多数用户仍然不需要进行双因素身份验证。在不同的设备(台式机、膝上型电脑、平板电脑、智能手机等)上安装客户端证书也是一个麻烦。用于对单个服务的身份验证。

因此,关于一个简短的列表:

  • 无知。人们只是不知道他们是什么,也不知道他们为什么有用。
  • 方便。人们不会费心地将他们的设备配置为使用客户端证书。
  • 支持。如果今天的人们在忘记密码或无法登录时仍要拨打技术支持电话,您能想象如果他们必须安装客户端证书,还需要多少支持电话吗?这个问题由于Internet的市场份额下降而进一步加剧,因此需要对工作人员进行培训,指导用户安装IE、Firefox、Chrome、Opera、Safari等各种移动设备。
  • 复杂。需要额外的服务器端代码来验证与用户帐户相关的证书。
  • 流行率。目前还没有主要网站在大规模使用它们,所以没有其他网站会使用它们。我意识到这是一个陷阱-22,但技术的采用往往是。
  • 自满。大多数供应商认为密码(或2FA)对于他们的目的来说是足够强的,即使这些供应商正在保护高度敏感/关键的信息,如财务数据。

所以,虽然看到大规模的客户端证书是件好事,但我真的不认为它会发生,除非一个严重的事件迫使供应商这么做。

票数 10
EN

Security用户

发布于 2012-11-11 19:34:19

客户端试图访问URL中标识的特定服务器。因此客户端需要对服务器进行身份验证。

另一方面,在大多数HTTPS的使用中,任何客户端都可以与服务器联系。服务器对客户端没有任何先验知识。因此,服务器不需要对客户端进行身份验证。服务器希望对用户进行身份验证,而不是对客户端机器进行验证。

在Internet设置中,客户端可能位于代理后面、动态IP地址等。服务器没有任何需要验证的内容。对客户端进行身份验证的唯一目的是记录其身份以供将来使用,或者用于法医目的,或者通过多个连接跟踪客户端。由于用户可以从多台机器连接,因此跟踪客户端计算机没有多大意义。记录客户端身份对于在事实发生后识别恶意客户端或用户非常有用(攻击者可能已经生成了一个没有提供任何有用信息的证书),因此不值得花费任何努力。

在intranet设置中,只有已知的客户端应该连接到服务器,客户端身份验证是有用的,并且是使用的。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/23880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档