SSL和证书

use*_*291 4 ssl certificate ssl-certificate

1)据我所知,无法建立只连接客户端以提供证书的SSL连接.知道为什么SSL不允许这样做吗?

2)我假设SSL连接可以配置为:

  • 仅要求服务器提供证书
  • 要求服务器和客户端都提供其证书

3)可能是一个愚蠢的问题,但SSL如何"知道"哪一方是客户端,哪一方是服务器?

4)是否可以在没有SSL请求任何证书的情况下建立SSL连接?

谢谢

eri*_*son 7

  1. 如果服务器未经过身份验证,您实际上无法拥有私有通道 - 中间人太容易被窃听,在两个合法方之间转发流量.如果您没有隐私或身份验证,为什么要使用SSL?实际上存在"匿名"模式,其中公钥加密用于同意加密密钥,但客户端或服务器都不提供证书; 但是,我从未见过它们,可能是因为它们无法解决中间人的窃听攻击.

  2. 是的,服务器提供证书.服务器可以从客户端请求证书.客户端可以使用证书进行响应,或忽略该请求.如果忽略该请求,则服务器可以选择继续匿名客户端,或终止连接.

  3. 客户端和服务器的角色是在SSL握手期间建立的.第一条消息被调用ClientHello.发送此消息的一方是客户端.通常,这将是启动TCP连接的一方,但它不一定是(事实上,SSL中没有任何东西需要TCP作为传输).

  4. 是的,正如我在#1中所提到的,SSL具有"匿名"模式,其中任何一方都无法安全地验证另一方.这将为未知方提供一个私密的防篡改通道.但是,由于你不知道频道的另一端是谁,你不知道这是一个中间人,谁同时进行了两次握手,并且正在拦截你和你之间的所有交通.你认为你正在与之交谈的派对.为了阻止这种情况,您必须在SSL之上拥有一个身份验证协议,为了安全起见,它将不可避免地看起来像经过身份验证的SSL.