单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,http:/ Socket Layer,)是一种在两个端实体(,End Entity,)之间提供安全通道的协议。,它具有保护传输数据以及识别通信实体的功能,安全通道是透明的,IETF,制定的,TLS,(,Transport Layer Security,)版本是对,Nescape,公司的,SSL,和,Microsoft,公司的,PCT,(,Private Communication Technology,)两个协议的综合和兼容。,这里重点讨论,SSL,协议,http:/ SSL/TLS协议SSL(Secure S,2,SSL/TLS,协议设计目标,SSL V2,设计目标,为满足,WEB,安全通信而设计,提供客户和服务器之间传输数据的保密性,服务器认证(客户端认证可选),SSL V3,设计目标,修正,SSL V2,中存在的多处安全问题,设计一种安全磋商多种加密算法的机制,http:/ V2 设计目标http:/,3,SSL,提供了什么,?,SSL,提供了通道级别的安全,:,连接的两端知道所传输的数据是保密的,而且没有被篡改,几乎总是要对服务器进行认证,可选的客户端认证,针对异常情况的安全通知,错误警示,关闭连接,所有这些依赖于某些对系统的假定,假定已经正确产生了密钥数据并且,该密钥已被安全地保管,http:/ V1,(,1994,),未发布,SSL V2,(,1994,),第一版,SSL V3,(,1995,),TLS,(,1997,1999,),PCT,(,1995,),STLP,(,1996,),WTLS,(,1998,),http:/ V1(1994)SSL V2(199,6,用于,WEB,的,SSL,保护使用,HTTP,的,WEB,通信,新的,URL https:/,在浏览器中的表现,NETSCAPE,:工具条上会显示一把钥匙,IE,:右下角显示 一把锁,几乎所有的商业,WEB,服务器和浏览器都实现了内置的,SSL,协议,通过配置即可使用,http:/ (java,实现,),ApacheSSL,(针对,Apache,服务器的实现),Mod_ssl,http:/ 和NNTP(SNEWS)外,,8,一次真实的,SSL,连接,客户,服务器,握手:,ClientHello,握手:,ServerHello,握手:,Certificate,握手:,ServerHelloDone,握手:,ClientKeyExchange,ChangeCipherSpec,握手:,Finished,ChangeCipherSpec,握手:,Finished,应用数据交换,警示:,warning,close_notify,http:/ Protocol,创建。会话定义了一组可供多个连接共享的密码安全参数。,会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。,http:/ 和 双向认证 认证加密 和 认证,加密算法:,RSA DSS DH FORTEZZA,连接分为两个节段:,握手阶段 完成对服务器认证并建立加密密钥,数据传输阶段 加密数据传输,http:/ server,-,所支持的加密算法,随机数,选中的加密算法,随机数,服务器证书,加密后的,pre_master_secret,计算相关演化密钥 计算相关演化密钥,握手消息的,MAC,值,握手消息的,MAC,值,注:,1.pre_master_secret,可以由,KDF,(,key derivation function,)演化出,master_secret,最后再通过,master_secret,演化出系列加密密钥。,2.,最后两步防止握手本身遭受篡改(如低强度密码算法替换等),.,3.,客户端和服务器端随机数的传输,防止重放攻击。,http:/ server,-,握手:,ClientHello,握手:,ServerHello,Certificate,ServerHelloDone,ClientKeyExchange,(ChangeCipherSpec),Finished,(ChangeCipherSpec),Finished,http:/ client,14,完整,SSL,会话握手协议,交换,Hello,消息,对于算法、交换随机值等协商一致,交换必要的密码参数,以便双方得到统一的,premaster secret,交换证书和相应的密码信息,以便进行身份认证,产生,master secret,把安全参数提供给,SSL,记录层,检验双方是否已经获得同样的安全参数,http:/ Diffie-Hellman),,产生临时的密钥,,DH,公开参数由发送者的私钥进行签名,接收者用对应的公钥进行验证,匿名的,DH,,不加鉴别。会受到中间人攻击,然后,指定以下信息,加密算法和类型,(,流还是分组密码算法,),HMAC,、,MD5,还是,SHA-1,是否可出口,HashSize,Key Material,IV Size,http:/ secret,the client&server random values,在,hello,消息中,交换随机数以及各种算法,两类密钥交换算法:,RSA,,客户产生一个,48,字节的,pre_master_secret,,然后通过服务器的公钥传递给服务器,Diffie-Hellman,,双方协商得到的密钥被用作,pre_master_secret,对于各种密钥交换算法,从,pre_master_secret,计算得到,Master_secret,,然后从内存中删除,Master_secret,总是,48,字节长,而,pre_master_secret,长度不定,取决于密钥交换算法,http:/ 记录协议实际的数据传输是使用SSL记录协议实现的ht,25,记录头,(Head),ContentType;8,位,上层协议类型,Major version;Minnor version 16,位,主次版本,Compressed Length,:,16,位,加密后数据的长度,不超过,214+2048,字节,(SSL,几乎不用压缩,虽然支持,),EncryptedData fragment;,密文数据,http:/ bad_record_mac decryption_failed,record_overflow decompression_failure handshake_failure,no_certificate bad_certificate unsupported_certificate,certificate_revoked certificate_expired certificate_unknown,illegal_parameter unknown_ca access_denied,decode_error decrypt_error export_restriction,protocol_version insufficient_security internal_error,user_cancelled no_renegotiation,http:/ a command line tool.,ssl(3)the OpenSSL SSL/TLS library.,crypto(3)the OpenSSL Crypto library.,URL:http:/www.openssl.org,SSLeay,http:/www2.psy.uq.edu.au/ftp/Crypto/,Internet,号码分配当局已经为具备,SSL,功能的应用分配了固定的端口号,例如带,SSL,的,HTTP(https),被分配以端口号,443,带,SSL,的,SMTP(ssmtp),被分配以端口号,465,带,SSL,的,NNTP(snntp),被分配以端口号,563,http:/ http:/