信息安全系统工程SSL和OpenSSL.pptx
- 文档编号:1424793
- 上传时间:2022-10-22
- 格式:PPTX
- 页数:81
- 大小:1.39MB
信息安全系统工程SSL和OpenSSL.pptx
《信息安全系统工程SSL和OpenSSL.pptx》由会员分享,可在线阅读,更多相关《信息安全系统工程SSL和OpenSSL.pptx(81页珍藏版)》请在冰豆网上搜索。
一、一个简单的安全协议,1、协议概述2、协议过程,一个简单的安全协议,由于SSL协议的复杂性,为了更好地理解SSL,引入一个简单的安全协议,该协议适合于交互式应用。
该协议的主要目标:
1、保证通信数据的机密性;2、保证通信数据的完整性;3、确保通信双方身份的可靠性;4、不需为每个数据包都动用昂贵的公开密钥操作,具有较高的效率。
协议过程,基本步骤(假设通信双方为Alice、Bob):
1、握手(Handshake)Alice和Bob使用他们的证书和私钥来对对方进行身份鉴别并交换共享密钥(MSMastersecret)2、导出密钥(Keyderivation)Alice和Bob使用他们达成一致的共享密钥(MS)导出一组用于保护将要传输的数据的密钥(SessionKey)3、数据传输(Datatransfer)将要传输的数据分割成一系列的记录,并对每条记录加以保护4、关闭连接(Connectionclosure)使用特殊的、经过保护的关闭消息,安全地关闭连接,协议过程握手,握手阶段(Handshake),单向鉴别(结束后双方获得主密钥MS),声称的身份(Bob),掌握Bob的私钥才能解密,从而完成身份证明,Alice产生主密钥MS,并用Bob公钥加密(挑战),协议过程握手(续),握手阶段(Handshake),双向鉴别(结束后双方获得主密钥MS),Alice产生主密钥MS,并用Bob公钥加密(挑战),再用自己私钥签名(证明自己),协议过程导出密钥,使用同一个密钥来完成不同类型的加密操作是糟糕的思想本协议在每个传输方向上可以采用两个会话密钥,分别用于加密和消息鉴别(MAC):
会话密钥可通过密钥导出函数(KeyDerivationFunction,KDF)由MS和nonce导出;KDF一般基于Hash算法。
一种最简单的KDF可能如下(由同一个主密钥MS生成了四个不同的会话密钥):
Ecs=Hash(MS,nonce,”ECS”)/”ECS”等是一个常量Mcs=Hash(MS,nonce,”MCS”)/E是加密密钥,M是MAC密钥Esc=Hash(MS,nonce,”ESC”)/cs和sc是传输方向Msc=Hash(MS,nonce,”MSC”),协议过程数据传输,数据记录为实现数据传输的灵活性,必须对数据分块(记录)传输数据分块后MAC如何处理,放最后吗?
解决方法:
分块后,每个记录应该自带MAC记录大小定长,不经济理想的应是变长记录,每个记录要加上长度字段记录格式长度Mx+数据D+MACMAC计算M=MAC(Mx,D),协议过程数据传输(续),序号为对抗重放、删除、重排攻击,需要增加序号Sequence序号必须是MAC输入的一部分可以放在记录中在基于TCP的连接中,也可以使用隐含序号MAC的计算M=MAC(Mx,Sequence|D),协议过程关闭连接,控制信息为防止攻击者恶意切断连接,需要有一种机制使得Alice能告诉Bob(或反之),她已完成数据传送两种方法1、传送长度为0的记录2、在记录中增加类型字段增加类型字段后的记录格式长度Mx+序号Sequence+类型Type+数据D+MAC类型为0:
普通数据类型为1:
结束记录类型为其他:
报告错误信息MAC的计算M=MAC(Mx,Sequence|Type|D),协议过程完整图示,Alice,Bob,协议小结,该简单协议已经包含了SSL绝大多数的核心功能握手密钥交换双向鉴别保密传输遗漏的部分不完整,不包括具体实现细节数据结构定义每一字段大小使用何种算法涉及到数据结构表示、翻译等问题更重要的是缺少协商(negotiation)功能,二、SSL协议,1、SSL协议概述2、SSL的会话和连接3、SSL的握手协议4、SSL的ChangeCipherSpec协议5、SSL的Alert协议6、SSL的记录协议,1、SSL协议概述,SSL:
SecureSocketLayer(安全套接层)SSL是用于Internet上两台机器间提供安全通道的协议,主要有两项功能:
保护传输数据(机密性和完整性);识别通信机器(认证性)。
SSL协议的安全通道是透明的对传输的数据内容上不加变更,仅作了加密;透明性使得几乎所有基于TCP的协议稍加改动就可以在SSL上运行。
SSL的历史,TLS:
TransportLayerSecurity;TLSV1.0是一个Internet协议,完全建立在SSLV3的基础上,又称为SSLv3.1;RFC2246:
TheTLSProtocolVersion1.0Rfc3546:
TransportLayerSecurity(TLS)Extensions,SSL在协议栈中的位置,在分层模型下,某层进行了加密,则上层协议都将自动被加密,网络协议栈,TCP/IP协议报文封装,在分层模型下,某层进行了加密,则上层协议都将自动被加密,SSL的保护区域,SSL协议的使用,用于Web的SSLhttps:
/https的端口:
一般为443;在SSL上构建一切ftps-data(989),ftps(990)nntps(563)pop3s(995)telnets(992)目前SSL的主要应用范围是http协议。
加密传输,WWW服务器,HTTPsoverSSL,Internet,客户浏览器(1,2,n),路由器,路由器,路由器,攻击者,实际的报文传输物理路径,利用SSL构建的端到端的逻辑安全通道,利用WireShark抓包分析,SSL的体系结构,SSL由Handshake、ChangeCipherSpec、Alert和Record这四个子协议组成,2、SSL连接和会话,连接(Connection):
指一次提供适当类型服务的传送。
会话(Session):
由握手协议创建;定义了一组可以被多个连接共用的密码安全参数。
连接vs会话在任意一对的双方之间,也许会有多个安全连接;理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性。
会话状态参数,(48字节),会话状态中的Cipherspec,Enumstream,blockCipherType;Enumtrue,falseIsExportable;Enumnull,rc4,rc2,des,3des,des40,idea,fortezzaBulkCipherAlgorithm;Enumnull,md5,shaMACAlgorithm;StructBulkCipherAlgorithmBulk_Cipher_Algorithm;MACAlgorithmMAC_Algorithm;CipherTypeCipher_Type;IsExportableIs_Exportable;Uint8hash_size;/MAC的长度Uint8key_material;/对称加密密钥的长度Uint8IV_size;/IV的长度(CBC模式使用)CipherSpec;,连接状态参数,上述状态中的各种密钥,SSL使用两个相互独立的密钥,即Serverwritekey和clientwritekey,分别用于同一连接的两个方向上的加解密,对于MAC操作也一样。
各个密钥的关系如下:
预备状态和当前状态,SSL中定义了预备状态(pendingstate)和当前状态(currentoperatingstate):
用这些状态来协调客户和服务器同时使用新的加密参数和密钥。
预备状态:
包含本次握手过程中协商成功的各种算法和密钥。
当前状态:
包含记录层正在使用的各种算法和密钥。
此外,客户和服务器都有各自独立的读状态和写状态读状态:
包含解密、解压缩、MAC验证算法;解密密钥。
写状态:
包含加密、压缩、MAC生成算法;加密密钥。
预备状态和当前状态(续),以上二者结合,SSL的每一端都包含预备读、预备写、当前读、当前写4个逻辑状态。
客户/服务器通过Changecipherspec消息进行状态同步客户/服务器收到changecipherspec后,会将预备读状态中的内容复制到当前读状态;客户/服务器发送changecipherspec后,会将预备写状态中的内容复制到当前写状态。
3、SSL握手协议,SSL的握手协议层的功能是验证实体身份,协商密钥交换算法、压缩算法和加密算法,完成密钥交换以及密钥导出等。
客户和服务器的握手过程是指建立一个会话或恢复一个会话的过程。
在这一过程中,客户和服务器都建立新的会话的会话状态或使用已经存在的会话的会话状态,但每次握手都产生新的密钥、MAC密钥和IV,并将这些参数作为当前连接状态中的元素。
SSL握手协议消息,握手消息共有10种,除了Finished消息外,所有其他握手消息都以明文传送。
建立一个新会话的握手过程,建立一个新会话的握手过程(续),SSL握手协议本质上是一个密钥交换协议。
密钥交换最多用到5条消息:
ServerCertificate、ServerKeyExchange、ClientCertificate、ClientKeyExchange和CertificateVerify。
实际上,不同的握手过程蕴含了SSL的3种验证模式:
1)客户和服务器都被验证;2)只验证服务器,不验证客户,这是目前应用最广的模式;3)客户和服务器都不被验证,也成为完全匿名模式(SSL不鼓励,甚至反对使用该模式)。
Hello消息中的CipherSuite,包括一个密钥交换算法和一个CipherSpec。
DataEncryption:
AESRC2-40RC4-128DESDES403DESIDEAFortezzaMessageDigest:
MD5SHA,KeyExchange.RSAFixedDiffie-HellmanEphemeralDiffie-HellmanAnonymousDiffie-HellmanFortezzaDataCompression:
PKZipWinZipgzipStuffIt,Serverkeyexchange消息,服务器在3种情况下发送该消息,向客户提供ciphersuite中指定的密钥交换算法的临时公开密钥:
1)服务器没有证书2)服务器有证书,但只用于签名3)使用了Fortezza_dms密钥交换算法服务器可以对发送的临时公开密钥进行签名。
Clientkeyexchange消息,根据密钥交换算法的不同,该消息分为3类:
1)RSAEncryptedPre_master_secret:
当使用RSA密钥交换算法时,客户产生48字节的Pre_master_secret,用服务器证书中的公钥或Serverkeyexchange中给出的临时RSA公钥加密,然后发送给服务器。
2)Fortezza密钥交换消息:
略。
Clientkeyexchange消息(续),3)ClientDiffie-HellmanPublicValue:
当使用D-H算法时,客户端通过该消息发送其公开密钥(Publicvalue)。
当使用D-H时,双方产生的秘密值被用作pre-master-secret,因此在每次建立会话时,对于使用固定D-H的场合,pre-master-secret总是相同。
有鉴于此,SSL规定必须先通过pre-master-secret生成master-secret,再通过master-secret生成最终的会话密钥。
Finished消息,Finished消息总是在ChangeCipherSpec消息之后立即发送,用于证实密钥交换和验证过程的成功。
该消息是第一个应用刚刚协商成功的加密算法和密钥加密的消息。
如果客户或服务器在验证Finished消息的正确性时没有通过,则终止当前握手;如果都成功,就可以开始传送保密数据。
Finished消息(续),该消息的散列计算方法如下(以SHA为例):
SHA_Hash=SHA(master_secret+pad2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 系统工程 SSL OpenSSL