欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    信息安全系统工程SSL和OpenSSL.pptx

    • 资源ID:18768698       资源大小:1.39MB        全文页数:81页
    • 资源格式: PPTX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    信息安全系统工程SSL和OpenSSL.pptx

    1、一、一个简单的安全协议,1、协议概述2、协议过程,一个简单的安全协议,由于SSL协议的复杂性,为了更好地理解SSL,引入一个简单的安全协议,该协议适合于交互式应用。该协议的主要目标:1、保证通信数据的机密性;2、保证通信数据的完整性;3、确保通信双方身份的可靠性;4、不需为每个数据包都动用昂贵的公开密钥操作,具有较高的效率。,协议过程,基本步骤(假设通信双方为Alice、Bob):1、握手(Handshake)Alice和Bob使用他们的证书和私钥来对对方进行身份鉴别并交换共享密钥(MSMaster secret)2、导出密钥(Key derivation)Alice和Bob使用他们达成一致的

    2、共享密钥(MS)导出一组用于保护将要传输的数据的密钥(Session Key)3、数据传输(Data transfer)将要传输的数据分割成一系列的记录,并对每条记录加以保护4、关闭连接(Connection closure)使用特殊的、经过保护的关闭消息,安全地关闭连接,协议过程握手,握手阶段(Handshake),单向鉴别(结束后双方获得主密钥MS),声称的身份(Bob),掌握Bob的私钥才能解密,从而完成身份证明,Alice产生主密钥MS,并用Bob公钥加密(挑战),协议过程握手(续),握手阶段(Handshake),双向鉴别(结束后双方获得主密钥MS),Alice产生主密钥MS,并用B

    3、ob公钥加密(挑战),再用自己私钥签名(证明自己),协议过程导出密钥,使用同一个密钥来完成不同类型的加密操作是糟糕的思想本协议在每个传输方向上可以采用两个会话密钥,分别用于加密和消息鉴别(MAC):会话密钥可通过密钥导出函数(Key Derivation Function,KDF)由 MS 和 nonce 导出;KDF 一般基于 Hash 算法。一种最简单的 KDF 可能如下(由同一个主密钥MS生成了四个不同的会话密钥):Ecs=Hash(MS,nonce,”ECS”)/”ECS”等是一个常量Mcs=Hash(MS,nonce,”MCS”)/E是加密密钥,M是MAC密钥Esc=Hash(MS,

    4、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|

    5、D),协议过程关闭连接,控制信息为防止攻击者恶意切断连接,需要有一种机制使得Alice能告诉Bob(或反之),她已完成数据传送两种方法1、传送长度为 0 的记录2、在记录中增加类型字段增加类型字段后的记录格式长度Mx+序号Sequence+类型Type+数据D+MAC类型为 0:普通数据类型为 1:结束记录类型为其他:报告错误信息MAC的计算M=MAC(Mx,Sequence|Type|D),协议过程完整图示,Alice,Bob,协议小结,该简单协议已经包含了SSL绝大多数的核心功能握手密钥交换双向鉴别保密传输遗漏的部分不完整,不包括具体实现细节数据结构定义每一字段大小使用何种算法涉及到数据结

    6、构表示、翻译等问题更重要的是缺少协商(negotiation)功能,二、SSL协议,1、SSL协议概述2、SSL的会话和连接3、SSL的握手协议4、SSL的Change Cipher Spec协议5、SSL的Alert协议6、SSL的记录协议,1、SSL协议概述,SSL:Secure Socket Layer(安全套接层)SSL是用于Internet上两台机器间提供安全通道的协议,主要有两项功能:保护传输数据(机密性和完整性);识别通信机器(认证性)。SSL协议的安全通道是透明的对传输的数据内容上不加变更,仅作了加密;透明性使得几乎所有基于TCP的协议稍加改动就可以在SSL上运行。,SSL的历

    7、史,TLS:Transport Layer Security;TLSV1.0是一个Internet协议,完全建立在SSL V3的基础上,又称为SSLv3.1;RFC2246:The TLS Protocol Version 1.0Rfc3546:Transport Layer Security(TLS)Extensions,SSL在协议栈中的位置,在分层模型下,某层进行了加密,则上层协议都将自动被加密,网络协议栈,TCP/IP协议报文封装,在分层模型下,某层进行了加密,则上层协议都将自动被加密,SSL的保护区域,SSL协议的使用,用于Web的SSLhttps:/https的端口:一般为 443

    8、;在SSL上构建一切ftps-data(989),ftps(990)nntps(563)pop3s(995)telnets(992)目前SSL的主要应用范围是 http 协议。,加密传输,WWW服务器,HTTPs over SSL,Internet,客户浏览器(1,2,n),路由器,路由器,路由器,攻击者,实际的报文传输物理路径,利用SSL构建的端到端的逻辑安全通道,利用WireShark抓包分析,SSL的体系结构,SSL由 Handshake、Change Cipher Spec、Alert 和 Record 这四个子协议组成,2、SSL连接和会话,连接(Connection):指一次提供适

    9、当类型服务的传送。会话(Session):由握手协议创建;定义了一组可以被多个连接共用的密码安全参数。连接 vs 会话在任意一对的双方之间,也许会有多个安全连接;理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性。,会话状态参数,(48字节),会话状态中的Cipher spec,Enum stream,block CipherType;Enum true,false IsExportable;Enum null,rc4,rc2,des,3des,des40,idea,fortezza BulkCipherAlgorithm;Enum null,md5,sha MACAlgorithm

    10、;Struct BulkCipherAlgorithm Bulk_Cipher_Algorithm;MACAlgorithm MAC_Algorithm;CipherType Cipher_Type;IsExportable Is_Exportable;Uint8 hash_size;/MAC的长度Uint8 key_material;/对称加密密钥的长度Uint8 IV_size;/IV的长度(CBC模式使用)CipherSpec;,连接状态参数,上述状态中的各种密钥,SSL使用两个相互独立的密钥,即Server write key和client write key,分别用于同一连接的两个方

    11、向上的加解密,对于MAC操作也一样。各个密钥的关系如下:,预备状态和当前状态,SSL中定义了预备状态(pending state)和当前状态(current operating state):用这些状态来协调客户和服务器同时使用新的加密参数和密钥。预备状态:包含本次握手过程中协商成功的各种算法和密钥。当前状态:包含记录层正在使用的各种算法和密钥。此外,客户和服务器都有各自独立的读状态和写状态读状态:包含解密、解压缩、MAC验证算法;解密密钥。写状态:包含加密、压缩、MAC生成算法;加密密钥。,预备状态和当前状态(续),以上二者结合,SSL的每一端都包含预备读、预备写、当前读、当前写4个逻辑状态

    12、。客户/服务器通过Change cipher spec 消息进行状态同步客户/服务器收到change cipher spec后,会将预备读状态中的内容复制到当前读状态;客户/服务器发送change cipher spec后,会将预备写状态中的内容复制到当前写状态。,3、SSL握手协议,SSL的握手协议层的功能是验证实体身份,协商密钥交换算法、压缩算法和加密算法,完成密钥交换以及密钥导出等。客户和服务器的握手过程是指建立一个会话或恢复一个会话的过程。在这一过程中,客户和服务器都建立新的会话的会话状态或使用已经存在的会话的会话状态,但每次握手都产生新的密钥、MAC密钥和IV,并将这些参数作为当前连

    13、接状态中的元素。,SSL握手协议消息,握手消息共有10种,除了Finished消息外,所有其他握手消息都以明文传送。,建立一个新会话的握手过程,建立一个新会话的握手过程(续),SSL握手协议本质上是一个密钥交换协议。密钥交换最多用到5条消息:ServerCertificate、ServerKeyExchange、ClientCertificate、ClientKeyExchange和CertificateVerify。实际上,不同的握手过程蕴含了SSL的3种验证模式:1)客户和服务器都被验证;2)只验证服务器,不验证客户,这是目前应用最广的模式;3)客户和服务器都不被验证,也成为完全匿名模式(

    14、SSL不鼓励,甚至反对使用该模式)。,Hello消息中的Cipher Suite,包括一个密钥交换算法和一个CipherSpec。Data Encryption:AESRC2-40RC4-128DES DES 403DESIDEAFortezzaMessage Digest:MD5SHA,Key Exchange.RSA Fixed Diffie-Hellman Ephemeral Diffie-Hellman Anonymous Diffie-Hellman FortezzaData Compression:PKZipWinZip gzip StuffIt,Server key exchan

    15、ge 消息,服务器在3种情况下发送该消息,向客户提供cipher suite中指定的密钥交换算法的临时公开密钥:1)服务器没有证书2)服务器有证书,但只用于签名3)使用了Fortezza_dms密钥交换算法服务器可以对发送的临时公开密钥进行签名。,Client key exchange 消息,根据密钥交换算法的不同,该消息分为3类:1)RSA Encrypted Pre_master_secret:当使用RSA密钥交换算法时,客户产生48字节的Pre_master_secret,用服务器证书中的公钥或Server key exchange中给出的临时RSA公钥加密,然后发送给服务器。2)For

    16、tezza密钥交换消息:略。,Client key exchange 消息(续),3)Client Diffie-Hellman Public Value:当使用D-H算法时,客户端通过该消息发送其公开密钥(Public value)。当使用D-H时,双方产生的秘密值被用作 pre-master-secret,因此在每次建立会话时,对于使用固定D-H的场合,pre-master-secret总是相同。有鉴于此,SSL规定必须先通过 pre-master-secret生成 master-secret,再通过 master-secret 生成最终的会话密钥。,Finished消息,Finished

    17、消息总是在ChangeCipherSpec消息之后立即发送,用于证实密钥交换和验证过程的成功。该消息是第一个应用刚刚协商成功的加密算法和密钥加密的消息。如果客户或服务器在验证Finished消息的正确性时没有通过,则终止当前握手;如果都成功,就可以开始传送保密数据。,Finished消息(续),该消息的散列计算方法如下(以SHA为例):SHA_Hash=SHA(master_secret+pad2+SHA(handshake_messages+Sender+master_secret+pad1)其中 Sender 是发送方标识、pad1和pad2是两个固定的常量、handshake_messa

    18、ges 是除Finished之外,从 Client Hello 开始的所有消息。,建立新会话时的密钥导出过程,建立新会话时的密钥导出过程(续),Master_secret=MD5(pre_master_secret+SHA(A+pre_master_secret+ClientHello.random+ServerHello.random)+MD5(pre_master_secret+SHA(BB+pre_master_secret+ClientHello.random+ServerHello.random)+MD5(pre_master_secret+SHA(CCC+pre_master_se

    19、cret+ClientHello.random+ServerHello.random),建立新会话时的密钥导出过程(续),Keyblock=MD5(master_secret+SHA(A+master_secret+ClientHello.random+ServerHello.random)+MD5(master_secret+SHA(BB+master_secret+ClientHello.random+ServerHello.random)+MD5(master_secret+SHA(CCC+master_secret+ClientHello.random+ServerHello.rand

    20、om)+/直到产生足够生成6个参数的位数为止最终从 keyblock 截取出 client write MAC secret、server write MAC secret、client write key、server write key、client write IV 和 server write IV。,重用SSL会话的握手过程,重用SSL会话的握手过程(续),当通过恢复一个会话建立连接时,这一新的连接继承这个会话状态下的压缩算法、Cipher Spec 和master_secret。但该连接产生新的ClientHello.random和ServerHello.random,二者和当前会

    21、话的master_secret用来生成该连接使用的新密钥、MAC密钥和IVs。,4、Change Cipher Spec协议,该协议只有一条消息:Change Cipher Spec消息,其作用是标志加密策略的改变。客户和服务器都发送此消息,通知接受方,在该消息之后发送的消息将采用握手层刚刚协商成功的算法、密钥进行压缩、MAC计算和加密操作。Change cipher spec消息的接收方令记录层将预备读状态复制到当前读状态;该消息的发送方令记录层将预备写状态复制到当前写状态。Change Cipher Spec消息只有1个字节,值为1。,5、Alert协议,Alert协议包括若干个报警(al

    22、ert)消息。报警消息的作用是,当握手过程或数据加密等操作出错或发生异常时,报警或终止当前连接。根据错误的严重程度,报警消息分为“警告性”消息和“致命性”消息:致命性报警消息导致立即终止当前连接,并将与这个连接相关的会话的Session_id作废,以免这个会话被继续用于建立新的连接。,Alert协议(续),SSL共有12 类报警消息,都是加密传输的。根据功能的不能,可以把它们分成两类:close_notify消息和error alerts消息。Alert 消息的结构是:,Alert协议(续),Close_notify消息通知接收方,发送方不再在当前的连接上发送消息。客户端和服务器端都通过发送该

    23、消息结束当前连接。如果一个连接不是通过发送close_notify终止的,则相关的会话不可恢复。Error_alerts消息检测到错误的一方向对方发送Error alerts消息。一旦发送或接收致命error alerts消息,客户和服务器立即终止当前连接,并忘掉该连接的密钥、MAC密钥以及与该连接相关的Session_id。共有11种error alerts消息(如unexpect_message、bad_record_mac等)。,一次真实的连接,Client,Server,6、SSL记录协议,记录层协议的功能是:根据当前会话状态指定的压缩算法、CipherSpec,以及连接状态中指定的客

    24、户和服务器随机数、加密密钥、MAC密钥、IVs、消息序号等,对当前连接中要传送的高层数据进行压缩和解压缩、加解密、计算与校验MAC等操作。记录层协议要封装的高层协议主要有4类:1)Change cipher spec 协议;2)Alert 协议;3)握手协议;4)应用层协议,如HTTP、FTP和Telnet 等。,各种协议协同工作,记录层协议的工作流程,发送方记录层协议的工作流程如下,记录层协议的工作流程(续),1)从应用层接受任意大小的数据块,将数据块分段成不超过214字节的明文记录;2)用当前会话状态中指定的压缩算法将明文结构SSL Plaintext 变换为压缩结构 SSL Compre

    25、ssed;3)用当前CipherSpec中指定的MAC算法对SSL Compressed计算MAC;4)用加密算法加密压缩数据和MAC,形成SSL Ciphertext。,记录层协议的工作流程(续),SSL记录协议中MAC计算(HMAC),SSL记录协议中的加密,SSL记录协议的封装,7、SSL的安全(1),SSL提供了什么SSL提供了通道级别的安全:连接的两端知道所传输的数据是保密的,而且没有被篡改。几乎总是要对服务器进行认证。可选的客户端认证。针对异常情况的安全通知错误警示。关闭连接。所有这些依赖于某些对系统的假定假定已经正确产生了密钥数据并且该密钥已被安全地保管。,SSL的安全(2),保

    26、护master_secret几乎协议的所有安全都依赖于master_secret的保密;在内存中保护秘密。保护服务器的私有密钥最常被违反的规则,很难保证做到;要求安全地存储私有密钥多数实现都对磁盘上的私钥进行加密,而且提供口令保护;其他实现在受保护的硬件中存储密钥。上述两种方案在启动服务器时都要求管理员的介入,从而使得在系统崩溃或电力故障恢复时无法实现无人看管的重新启动。使用良好的随机数生成器,三、OpenSSL,OpenSSL是什么?,一套密码学工具箱,实现了SSLv2/v3、TLSv1以及与SSL/TLS相关的若干密码标准不仅仅是SSL加密算法库Hash算法库数字签名算法库X.509证书处

    27、理库CA工具库SSL处理库EVP算法封装库BIO抽象I/O封装库openssl工具包,OpenSSL包括些什么?,源代码形如 openssl-0.9.7b.tar.gz编译后的版本C语言包含文件如#include 两个动态共享库Win32下libeay32.dllssleay32.dllLinux/Unix/FreeBSD下libcrypto.solibssl.so可执行文件openssl.exe,OpenSSL命令行工具,The openssl program is a command line tool for using the various cryptography function

    28、s of OpenSSLs crypto library from the shell.It can be used forCreation of RSA,DH and DSA key parametersCreation of X.509 certificates,CSRs and CRLsCalculation of Message DigestsEncryption and Decryption with CiphersSSL/TLS Client and Server TestsHandling of S/MIME signed or encrypted mail,OpenSSL标准命

    29、令(1),Asn1parse-Parse an ASN.1 sequence.Ca-Certificate Authority(CA)Management.Ciphers-Cipher Suite Description Determination.Crl-Certificate Revocation List(CRL)Management.Crl2pkcs7-CRL to PKCS#7 Conversion.Dgst-Message Digest Calculation.Dh-Diffie-Hellman Parameter Management.Obsoleted by dhparam.D

    30、sa-DSA Data Management.,OpenSSL标准命令(2),Dsaparam-DSA Parameter Generation.Enc-Encoding with Ciphers.Errstr-Error Number to Error String Conversion.Dhparam-Generation and Management of Diffie-Hellman Parameters.Gendh-Generation of Diffie-Hellman Parameters.Obsoleted by dhparam.Gendsa-Generation of DSA

    31、 Parameters.Genrsa-Generation of RSA Parameters.,OpenSSL标准命令(3),Ocsp-Online Certificate Status Protocol utility.Passwd-Generation of hashed passwords.Pkcs7-PKCS#7 Data Management.Rand-Generate pseudo-random bytes.Req-X.509 Certificate Signing Request(CSR)Management.Rsa-RSA Data Management.Rsautl-RSA

    32、 utility for signing,verification,encryption,and decryption.,OpenSSL标准命令(4),s_client-This implements a generic SSL/TLS client which can establish a transparent connection to a remote server speaking SSL/TLS.Its intended for testing purposes only and provides only rudimentary interface functionality

    33、but internally uses mostly all functionality of the OpenSSL ssl library.,OpenSSL标准命令(5),s_server-This implements a generic SSL/TLS server which accepts connections from remote clients speaking SSL/TLS.Its intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library.It provides both an own command li


    注意事项

    本文(信息安全系统工程SSL和OpenSSL.pptx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开