理解SSL-Secure Socket Layer

SSL保证客户端和web服务器间交互的信息不会被窃听者解密。 SSL在HTTP的底层工作,不会改变处理HTTP请求的方式。受SSL保护的URL地址以https://开头,而不是以http://开头。他们使用的端口也不同。要使服务器支持SSL连接,必须安装X.509证书,并且在web服务器中进行配置

证书一般从已知的CA(Certificate Authority)处购买。客户端隐式的信任CA,也就信任CA签发的证书。业界标准的证书类型是x.509v3,包括以下基本信息:

  1. 持有者的名称,组织和地址
  2. 持有者的公匙,用于加密通信中的SSL会话密匙
  3. 证书的有效日期
  4. 证书的序列号

利用SSL进行浏览的过程如下,其中客户端指浏览器,服务器指web服务器:

  1. 客户端发送连接到服务器的请求
  2. 服务器对自己的证书签名并把它发送到客户端
  3. 客户端检查证书是否是由信任的CA(Certificate Authority)颁发.  如果是,进行下一步。 在IE选项的内容标签页内可以看到保存的证书
  4. 客户端将证书中的信息和从网站获得的信息进行比较,以决定是否继续
  5. 客户端告诉服务器它支持什么样的通信加密密匙。
  6. 服务器选择最强的密匙长度并通知客户端
  7. 根据指定的密匙长度,客户端随机产生一对称加密密匙,将在这个通信事务中使用
  8. 客户端使用服务器的公匙(来自证书)  加密会话密匙,并把加密后的会话密匙发送给服务器
  9. 服务器接受到加密后的会话密匙后用自己的私匙解密。服务器和客户端现在都拥有共享的密匙,可以在会话中使用该密匙加密所有的通信

客户端必须生成对称密匙,这个密匙仅用于会话期间。如果客户端提供了强度较弱的密匙,那么整个交互过程的安全可能收影响。在部署应用程序时,可能要向真正的CA购买证书。

<ASP.net 高级程序设计>

posted on 2011-06-02 11:13  一颗麦粒  阅读(2911)  评论(0编辑  收藏  举报

导航