SSL保证客户端和web服务器间交互的信息不会被窃听者解密。 SSL在HTTP的底层工作,不会改变处理HTTP请求的方式。受SSL保护的URL地址以https://开头,而不是以http://开头。他们使用的端口也不同。要使服务器支持SSL连接,必须安装X.509证书,并且在web服务器中进行配置
证书一般从已知的CA(Certificate Authority)处购买。客户端隐式的信任CA,也就信任CA签发的证书。业界标准的证书类型是x.509v3,包括以下基本信息:
- 持有者的名称,组织和地址
- 持有者的公匙,用于加密通信中的SSL会话密匙
- 证书的有效日期
- 证书的序列号
利用SSL进行浏览的过程如下,其中客户端指浏览器,服务器指web服务器:
- 客户端发送连接到服务器的请求
- 服务器对自己的证书签名并把它发送到客户端
- 客户端检查证书是否是由信任的CA(Certificate Authority)颁发. 如果是,进行下一步。 在IE选项的内容标签页内可以看到保存的证书
- 客户端将证书中的信息和从网站获得的信息进行比较,以决定是否继续
- 客户端告诉服务器它支持什么样的通信加密密匙。
- 服务器选择最强的密匙长度并通知客户端
- 根据指定的密匙长度,客户端随机产生一对称加密密匙,将在这个通信事务中使用
- 客户端使用服务器的公匙(来自证书) 加密会话密匙,并把加密后的会话密匙发送给服务器
- 服务器接受到加密后的会话密匙后用自己的私匙解密。服务器和客户端现在都拥有共享的密匙,可以在会话中使用该密匙加密所有的通信
客户端必须生成对称密匙,这个密匙仅用于会话期间。如果客户端提供了强度较弱的密匙,那么整个交互过程的安全可能收影响。在部署应用程序时,可能要向真正的CA购买证书。
<ASP.net 高级程序设计>