信息安全系统工程SSL和OpenSSL.pptx
《信息安全系统工程SSL和OpenSSL.pptx》由会员分享,可在线阅读,更多相关《信息安全系统工程SSL和OpenSSL.pptx(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、一个简单一、一个简单(jindn)的安全的安全协议协议n n1、协议(xiy)概述n n2、协议(xiy)过程第一页,共81页。一个简单的安全一个简单的安全(nqun)协议协议n n由于SSL协议的复杂性,为了更好地理解SSL,引入一个简单的安全协议,该协议适合于交互式应用。n n该协议的主要目标:n n1、保证通信数据的机密性;n n2、保证通信数据的完整性;n n3、确保通信双方身份的可靠性;n n4、不需为每个数据包都动用昂贵的公开密钥操作(cozu),具有较高的效率。第二页,共81页。协议协议(xiy)过程过程n n基本步骤(假设通信双方为基本步骤(假设通信双方为AliceAlic
2、e、BobBob):):n n1 1、握手(、握手(HandshakeHandshake)n nAliceAlice和和BobBob使用他们的证书和私钥来对对方进行身份鉴使用他们的证书和私钥来对对方进行身份鉴别并交换共享密钥(别并交换共享密钥(MSMaster secretMSMaster secret)n n2 2、导出密钥(、导出密钥(Key derivationKey derivation)n nAliceAlice和和BobBob使用他们达成一致的共享密钥(使用他们达成一致的共享密钥(MSMS)导出)导出一组用于保护将要传输的数据的密钥(一组用于保护将要传输的数据的密钥(Session
3、 KeySession Key)n n3 3、数据传输(、数据传输(Data transferData transfer)n n将要传输的数据分割成一系列的记录将要传输的数据分割成一系列的记录(jl)(jl),并对每条,并对每条记录记录(jl)(jl)加以保护加以保护n n4 4、关闭连接(、关闭连接(Connection closureConnection closure)n n使用特殊的、经过保护的关闭消息,安全地关闭连接使用特殊的、经过保护的关闭消息,安全地关闭连接第三页,共81页。协议协议(xiy)过程过程握手握手n n握手(w shu)阶段(Handshake)AliceBobHel
4、loHelloCertificateCertificate(BobBob)Encrypt(Bob,MS)=EMSEncrypt(Bob,MS)=EMS单向鉴别(结束后双方单向鉴别(结束后双方单向鉴别(结束后双方单向鉴别(结束后双方(shungfng)(shungfng)获得主密钥获得主密钥获得主密钥获得主密钥MSMS)声称的身份(Bob)掌握Bob的私钥才能解密,从而完成身份证明Alice产生主密钥MS,并用Bob公钥加密(挑战)第四页,共81页。协议协议(xiy)过程过程握手(续)握手(续)n n握手(w shu)阶段(Handshake)AliceAliceBobBobHello,Cert
5、ificate(AliceHello,Certificate(Alice)Certificate(Bob)Certificate(Bob)Sign(Alice,Encrypt(Bob,MS)双向鉴别(结束后双方双向鉴别(结束后双方双向鉴别(结束后双方双向鉴别(结束后双方(shungfng)(shungfng)获得获得获得获得主密钥主密钥主密钥主密钥MSMS)Alice产生主密钥MS,并用Bob公钥加密(挑战),再用自己私钥签名(证明自己)第五页,共81页。协议协议(xiy)过程过程导出密钥导出密钥n n使用同一个密钥来完成不同类型的加密操作是糟糕的思想使用同一个密钥来完成不同类型的加密操作是糟
6、糕的思想n n本协议在每个传输方向上可以采用两个会话密钥,分别用于加密本协议在每个传输方向上可以采用两个会话密钥,分别用于加密和消息鉴别(和消息鉴别(MACMAC):):n n会话密钥可通过密钥导出函数(会话密钥可通过密钥导出函数(Key Derivation FunctionKey Derivation Function,KDFKDF)由由 MS MS 和和 nonce nonce 导出;导出;n nKDF KDF 一般基于一般基于 Hash Hash 算法算法(sun f)(sun f)。n n一种最简单的一种最简单的 KDF KDF 可能如下(由同一个主密钥可能如下(由同一个主密钥MSM
7、S生成了四个不生成了四个不同的会话密钥):同的会话密钥):n nEcs=Hash(MS,nonce,”ECS”)/”ECS”Ecs=Hash(MS,nonce,”ECS”)/”ECS”等是一个常量等是一个常量n nMcs=Hash(MS,nonce,”MCS”)/EMcs=Hash(MS,nonce,”MCS”)/E是加密密钥,是加密密钥,MM是是MACMAC密钥密钥n nEsc=Hash(MS,nonce,”ESC”)/csEsc=Hash(MS,nonce,”ESC”)/cs和和scsc是传输方向是传输方向n nMsc=Hash(MS,nonce,”MSC”)Msc=Hash(MS,non
8、ce,”MSC”)第六页,共81页。协议协议(xiy)过程过程数据传输数据传输n n数据记录数据记录(jl)(jl)n n为实现数据传输的灵活性,必须对数据分块(记录为实现数据传输的灵活性,必须对数据分块(记录(jl)(jl))传)传输输n n数据分块后数据分块后 MAC MAC 如何处理,放最后吗?如何处理,放最后吗?n n解决方法:分块后,每个记录解决方法:分块后,每个记录(jl)(jl)应该自带应该自带 MAC MACn n记录记录(jl)(jl)大小大小n n定长,不经济定长,不经济n n理想的应是变长记录理想的应是变长记录(jl)(jl),每个记录,每个记录(jl)(jl)要加上长度
9、字段要加上长度字段n n记录记录(jl)(jl)格式格式n n长度长度Mx+Mx+数据数据D+MACD+MACn nMACMAC计算计算n nM=MAC(MxM=MAC(Mx,D)D)第七页,共81页。协议协议(xiy)过程过程数据传输数据传输(续)(续)n n序号n n为对抗重放、删除、重排攻击,需要增加序号Sequencen n序号必须是 MAC 输入的一部分n n可以放在记录中n n在基于(jy)TCP的连接中,也可以使用隐含序号n nMAC的计算n nM=MAC(Mx,Sequence|D)第八页,共81页。协议过程协议过程(guchng)关闭连接关闭连接n n控制信息控制信息n n为
10、防止攻击者恶意切断连接,需要有一种机制为防止攻击者恶意切断连接,需要有一种机制(jzh)(jzh)使得使得AliceAlice能能告诉告诉BobBob(或反之),她已完成数据传送(或反之),她已完成数据传送n n两种方法两种方法n n1 1、传送长度为、传送长度为 0 0 的记录的记录n n2 2、在记录中增加类型字段、在记录中增加类型字段n n增加类型字段后的记录格式增加类型字段后的记录格式n n长度长度Mx+Mx+序号序号Sequence+Sequence+类型类型Type+Type+数据数据D+MACD+MACn n类型为类型为 0 0:普通数据:普通数据n n类型为类型为 1 1:结束
11、记录:结束记录n n类型为其他:报告错误信息类型为其他:报告错误信息n nMACMAC的计算的计算n nM=MAC(Mx,Sequence|Type|D)M=MAC(Mx,Sequence|Type|D)第九页,共81页。协议过程协议过程(guchng)完整图示完整图示AliceAliceBobHelloHelloCertificate,nonceCertificate,nonceSign(Alice,Encrypt(Bob,MS)Sign(Alice,Encrypt(Bob,MS)Type 0,Seq 1,DataType 0,Seq 1,DataType 0,Seq 2,DataType
12、0,Seq 2,DataType 0,Seq 1,DataType 0,Seq 1,DataType 0,Seq 3,DataType 0,Seq 3,DataType 1,Seq 4,CloseType 1,Seq 4,CloseType 1,Seq 2,CloseType 1,Seq 2,Close第十页,共81页。协议协议(xiy)小结小结n n该简单协议已经包含了该简单协议已经包含了SSLSSL绝大多数的核心功能绝大多数的核心功能n n握手握手n n密钥交换密钥交换n n双向鉴别双向鉴别n n保密传输保密传输n n遗漏的部分遗漏的部分n n不完整,不包括具体实现细节不完整,不包括具体实
13、现细节n n数据结构定义数据结构定义n n每一字段大小每一字段大小n n使用使用(shyng)(shyng)何种算法何种算法n n涉及到数据结构表示、翻译等问题涉及到数据结构表示、翻译等问题n n更重要的是更重要的是n n缺少协商(缺少协商(negotiationnegotiation)功能)功能第十一页,共81页。二、二、SSL协议协议(xiy)n n1、SSL协议(xiy)概述n n2、SSL的会话和连接n n3、SSL的握手协议(xiy)n n4、SSL的Change Cipher Spec协议(xiy)n n5、SSL的Alert协议(xiy)n n6、SSL的记录协议(xiy)第十二
14、页,共81页。1、SSL协议协议(xiy)概述概述n nSSL:Secure Socket Layer(安全(nqun)套接层)n nSSL是用于Internet上两台机器间提供安全(nqun)通道的协议,主要有两项功能:n n保护传输数据(机密性和完整性);n n识别通信机器(认证性)。n nSSL协议的安全(nqun)通道是透明的n n对传输的数据内容上不加变更,仅作了加密;n n透明性使得几乎所有基于TCP的协议稍加改动就可以在SSL上运行。第十三页,共81页。SSL的历史的历史(lsh)SSLv1(1994SSLv1(1994,Netscape)Netscape)未发布未发布SSLv2
15、(1994)SSLv2(1994)第一版第一版SSLv3(1995)SSLv3(1995)只进行认证的模式只进行认证的模式;DH,DSS;DH,DSS;关闭握手关闭握手;再握手再握手;证书链证书链TLS(1997-1999)TLS(1997-1999)IETF;IETF;必须支持必须支持DH,DSS;DH,DSS;新的新的MACMAC算法算法;新的密钥扩展新的密钥扩展 TLSTLS:Transport Layer SecurityTransport Layer Security;是一个是一个InternetInternet协议,完全协议,完全(wnqun)(wnqun)建立在建立在SSL V3
16、SSL V3的基础上,又称为;的基础上,又称为;RFC2246RFC2246:Rfc3546Rfc3546:Transport Layer Security(TLS)ExtensionsTransport Layer Security(TLS)Extensions第十四页,共81页。SSL在协议在协议(xiy)栈中的位置栈中的位置IPHTTPFTPSMTPTCPSSL or TLS第十五页,共81页。应用层应用层表示层表示层会话层会话层传输传输层(层(TCPTCP)网络层(网络层(IPIP)数据链路层数据链路层物理层物理层应用层应用层表示层表示层会话层会话层传输传输层(层(TCPTCP)网络层
17、(网络层(IPIP)数据链路层数据链路层物理层物理层物理介质物理介质主机主机 A A主机主机 B B在分层模型下,某层进行了加密,则上层在分层模型下,某层进行了加密,则上层(shngcng)(shngcng)协议都将自动被加协议都将自动被加密密网络协议栈网络协议栈第十六页,共81页。TCP/IP协议协议(xiy)报文封装报文封装在分层模型下,某层进行了加密,则上层在分层模型下,某层进行了加密,则上层(shngcng)(shngcng)协议都将自动被加协议都将自动被加密密SSLSSL的保护的保护(boh)(boh)区区域域第十七页,共81页。SSL协议协议(xiy)的使用的使用n n用于Web的
18、SSLn nhttps的端口:一般为 443;n n在SSL上构建一切(yqi)n nftps-data(989),ftps(990)n nnntps(563)n npop3s(995)n ntelnets(992)n n目前SSL的主要应用范围是 http 协议。第十八页,共81页。加密传输加密传输第十九页,共81页。HTTPs over HTTPs over SSLSSLInternetInternet客户客户(k h)(k h)浏览器浏览器(1,2,n)(1,2,n)路由器路由器路由器路由器路由器路由器攻击者攻击者实际的报文传输实际的报文传输实际的报文传输实际的报文传输物理路径物理路径物
19、理路径物理路径利用利用利用利用SSLSSL构建的端到端的构建的端到端的构建的端到端的构建的端到端的逻辑安全通道逻辑安全通道逻辑安全通道逻辑安全通道第二十页,共81页。SSL加密前明文数据加密前明文数据(104协议协议)SSL加密后数据加密后数据利用利用(lyng)(lyng)WireSharkWireShark抓包分析抓包分析第二十一页,共81页。SSL的体系结构的体系结构SSLSSL由由 Handshake Handshake、Change Cipher SpecChange Cipher Spec、Alert Alert 和和 Record Record 这四个子协议这四个子协议(xiy)
20、(xiy)组成组成第二十二页,共81页。2、SSL连接连接(linji)和会话和会话n n连接(连接(ConnectionConnection):指一次提供适当类型服务的传送):指一次提供适当类型服务的传送(chun(chun sn)sn)。n n会话(会话(SessionSession):):n n由握手协议创建;由握手协议创建;n n定义了一组可以被多个连接共用的密码安全参数。定义了一组可以被多个连接共用的密码安全参数。n n连接连接 vs vs 会话会话n n在任意一对的双方之间,也许会有多个安全连接;在任意一对的双方之间,也许会有多个安全连接;n n理论上,双方可以存在多个同时会话,但
21、在实践中并未用到这个理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性。特性。第二十三页,共81页。会话会话(huhu)状态参数状态参数(48字节)字节)第二十四页,共81页。会话会话(huhu)状态中的状态中的Cipher specEnum stream,block CipherType;Enum stream,block CipherType;Enum true,false IsExportable;Enum true,false IsExportable;Enum null,rc4,rc2,des,3des,des40,idea,fortezza Enum null,rc4,r
22、c2,des,3des,des40,idea,fortezza BulkCipherAlgorithm;BulkCipherAlgorithm;Enum null,md5,sha MACAlgorithm;Enum null,md5,sha MACAlgorithm;Struct Struct BulkCipherAlgorithm Bulk_Cipher_Algorithm;BulkCipherAlgorithm Bulk_Cipher_Algorithm;MACAlgorithm MAC_Algorithm;MACAlgorithm MAC_Algorithm;CipherType Cip
23、her_Type;CipherType Cipher_Type;IsExportable Is_Exportable;IsExportable Is_Exportable;Uint8 hash_size;/MACUint8 hash_size;/MAC的长度的长度的长度的长度(chngd)(chngd)Uint8 key_material;/Uint8 key_material;/对称加密密钥的长度对称加密密钥的长度对称加密密钥的长度对称加密密钥的长度(chngd)(chngd)Uint8 IV_size;/IVUint8 IV_size;/IV的长度的长度的长度的长度(chngd)(chng
24、d)(CBCCBC模式使用)模式使用)模式使用)模式使用)CipherSpec;CipherSpec;第二十五页,共81页。连接连接(linji)状态参数状态参数第二十六页,共81页。上述状态上述状态(zhungti)中的各种中的各种密钥密钥n nSSLSSL使用两个相互独立的密钥,即使用两个相互独立的密钥,即Server write keyServer write key和和client write keyclient write key,分别用于同一连接,分别用于同一连接(linji)(linji)的两个方向上的两个方向上的加解密,对于的加解密,对于MACMAC操作也一样。操作也一样。n
25、n各个密钥的关系如下:各个密钥的关系如下:pre_master_secretpre_master_secretmaster secretmaster secretClient write MAC secretClient write MAC secretClient write secretClient write secretClient write IVClient write IVServer write MAC secretServer write MAC secretServer write secretServer write secretServer write IVServer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 系统工程 SSL OpenSSL
限制150内