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