﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-笔记-随笔分类-协议</title><link>http://www.blogjava.net/yuxh/category/42718.html</link><description>way</description><language>zh-cn</language><lastBuildDate>Thu, 12 Nov 2009 10:25:30 GMT</lastBuildDate><pubDate>Thu, 12 Nov 2009 10:25:30 GMT</pubDate><ttl>60</ttl><item><title>SSL</title><link>http://www.blogjava.net/yuxh/archive/2009/11/12/302125.html</link><dc:creator>yuxh</dc:creator><author>yuxh</author><pubDate>Thu, 12 Nov 2009 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/yuxh/archive/2009/11/12/302125.html</guid><wfw:comment>http://www.blogjava.net/yuxh/comments/302125.html</wfw:comment><comments>http://www.blogjava.net/yuxh/archive/2009/11/12/302125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuxh/comments/commentRss/302125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuxh/services/trackbacks/302125.html</trackback:ping><description><![CDATA[<p>1 ． SSL(Server Socket Layer) 简介 </p>
<p>在网络上信息在源 -
宿的传递过程中会经过其它的计算机。一般情况下，中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视，从而导致个人
隐私的泄露。由于 Internet 和 Intranet
体系结构的原因，总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展，人们对信息安全的要求越来越高。因此 Netscape
公司提出了 SSL 协议，旨在达到在开放网络 (Internet) 上安全保密地传输信息的目的，这种协议在 WEB 上获得了广泛的应用。 之后
IETF(ietf.org) 对 SSL 作了标准化，即 RFC2246 ，并将其称为 TLS （ Transport Layer
Security ），从技术上讲， TLS1.0 与 SSL3.0 的差别非常微小。 </p>
<p>2 ． SSL 工作原理 </p>
<p>SSL 协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性，并且会话双方能鉴别对方身份。不同于常用的 http 协议，我们在与网站建立 SSL 安全连接时使用 https 协议，即采用 <a linkindex="17" href="https://ip/" target="_blank">https://ip:port/</a> 的方式来访问。当我们与一个网站建立 https 连接时，我们的浏览器与 Web Server 之间要经过一个握手的过程来完成身份鉴定与密钥交换，从而建立安全连接。具体过程如下： </p>
<p>用户浏览器将其 SSL 版本号、加密设置参数、与 session 有关的数据以及其它一些必要信息发送到服务器。 </p>
<p>服务器将其 SSL 版本号、加密设置参数、与 session 有关的数据以及其它一些必要信息发送给浏览器，同时发给浏览器的还有服务器的证书。如果配置服务器的 SSL 需要验证用户身份，还要发出请求要求浏览器提供用户证书。 </p>
<p>客户端检查服务器证书，如果检查失败，提示不能建立 SSL 连接。如果成功，那么继续。客户端浏览器为本次会话生成 pre-master
secret
，并将其用服务器公钥加密后发送给服务器。如果服务器要求鉴别客户身份，客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。 </p>
<p>如果服务器要求鉴别客户身份，则检查签署客户证书的 CA 是否可信。如果不在信任列表中，结束本次会话。如果检查通过，服务器用自己的私钥解密收到的 pre-master secret ，并用它通过某些算法生成本次会话的 master secret 。 </p>
<p>客户端与服务器均使用此 master secret 生成本次会话的会话密钥 ( 对称密钥 ) 。在双方 SSL 握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上，能够显著提高双方会话时的运算速度。 </p>
<p>客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次 SSL 握手。 </p>
<p>服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次 SSL 握手。 </p>
本次握手过程结束，会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。
<img src ="http://www.blogjava.net/yuxh/aggbug/302125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuxh/" target="_blank">yuxh</a> 2009-11-12 17:38 <a href="http://www.blogjava.net/yuxh/archive/2009/11/12/302125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>