©2008HTTP协议、SSL、cookie、session培训教材2009年1月13日2©2008Allrightreserved,FiberhomeconfidentialHTTP协议—概述HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送方式的数据。HTTP是一种基于文本的应用层协议,可以承载于任何底层协议,目前常见为承载于TCP协议。HTTP是一种请求/应答模型的协议。HTTP是一种无会话的,无状态的协议。HTTP可作为其他协议的承载,比如SOAP,WEBDAV等3©2008Allrightreserved,FiberhomeconfidentialHTTP协议格式请求格式POST/HTTP/1.0\r\nContent-Type:text/xml;charset=UTF-8\r\nContent-Length:7\r\nUser-Agent:JakartaCommons-HttpClient/3.0\r\nHost:219.148.202.18:9081\r\n\r\nABCDEFG4©2008Allrightreserved,FiberhomeconfidentialHTTP协议格式应答格式HTTP/1.1200OK\r\nContent-Type:text/xml;charset=utf-8\r\nContent-Length:8\r\nConnection:close\r\n\r\nResponse5©2008Allrightreserved,FiberhomeconfidentialHTTP头HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。6©2008Allrightreserved,FiberhomeconfidentialHTTP头—请求头Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。7©2008Allrightreserved,FiberhomeconfidentialHTTP头—响应头Age、Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、。8©2008Allrightreserved,FiberhomeconfidentialHTTP头—通用头Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。9©2008Allrightreserved,FiberhomeconfidentialTrunked传输方式HTTP/1.1200OK\r\nServer:Apache/2.2.9(Fedora)\r\nTransfer-Encoding:chunked\r\n\r\n86b\r\nAbcdefg………\r\n23c\r\nFdjfkdjfkdjfdkfj\r\n0\r\n10©2008Allrightreserved,FiberhomeconfidentialSSL简介安全套接层协议SSL是网景公司(Netscape)提出的基于公钥密码机制的网络安全协议,用于在客户端浏览器软件与Web服务器之间建立一条安全通道,实现Internet上信息传送的保密性。它包括服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上数据保密性。现在国内外一些对保密性要求较高的网上银行、电子商务和电子政务等系统大多数是以SSL协议为基础建立的,SSL协议已成为Web安全方面的工业标准。目前广泛采用的是SSLv3版。SSL提供的面向连接的安全性作用,具有以下三个基本功能:(1)连接是秘密的,在初始握手定义会话密钥后,用对称密码(例如用DES)加密数据。(2)连接是可认证的,实体的身份能够用公钥密码(例如RSA、DSS等)进行认证。(3)连接是可靠的,消息传输包括利用安全Hash函数产生的带密钥MAC(MessageAuthenticationCode:报文鉴别码)11©2008Allrightreserved,FiberhomeconfidentialSSL协议层次12©2008Allrightreserved,FiberhomeconfidentialSSL协商过程客户client端发送ClientHello信息给服务器Server端,Server回答ServerHello。这个过程建立的安全参数包括协议版本,“佳话”标识,加密算法,压缩方法。另外,还交换2个随机数:ClientHello.Random和ServerHello.random.用以计算机“会话主密钥”Hello消息发送完后,Server会发送它的证书和密钥交换信息,如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送Hello-done消息以示达成了握手协议,即双方握手接通Server请求Client证书时,Client要返回证书或返回“没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后Client发送密钥交换消息。服务器Server此时要回答“握手完成“消息(Finished),以示完整的握手消息交换,已经全部完成。握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第(2)步密钥协商时确定的对称加/解密密钥。如DES、3DE等等,目前商用加密强度为128位。非对称密钥一般为RAS,商用强度1024位,用于证书的验证。13©2008Allrightreserved,FiberhomeconfidentialSSL的应用单向认证:又称匿名SSL连接,这是SSL安全连接的最基本模式,它便于使用,主要的浏览器都支持这种方式,适合单向数据安全传输应用。在这种模式下客户端没有数字证书,只是服务器端具有证书,以确认用户访问的是自己要访问的站点。网上银行的所谓“大众版”就是这种。双方认证:是对等的安全认证,这种模式通信双方都可以发起和接收SSL连接请求。通信双方可以利用安全应用程序(控件)或安全代理软件,前者一般适合于B/S结构,而后者适用于C/S结构,安全代理相当于一个加密/解密的网关,这种模式双方皆需安装证书,进行双向认证。这就是网上银行的B2B的专业版等应用。电子商务中的应用。电子商务与网上银行交易不同,因为有商户参加,形成客户――商家――银行,两次点对点的SSL连接。客户,商家,银行,都必须具证书,两次点对点的双向认证。14©2008Allrightreserved,Fiberhomeconfidentialcookie、sessionCookie定义“Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回他。信息的片断以‘名/值’对(name-valuepairs)的形式储存。”session定义session指的就是访问者从到达某个特定主页到离开为止的那段时间的会话上下文。15©2008Allrightreserved,FiberhomeconfidentialCookie、session区别Session是存在服务器端的;而Cookie是存在客户端的!!Session更无需Cookie来支持和不会受浏览器端的配置影响,可记录每个访问者的信息,单独在服务器端,比Cookie安全!Session是存在内存中的,浏览器关闭他也就“死”了;Cookie是以文档方式存在的,能够修改其“存活”时间。©2008欢迎指正