`
WS_Daniel
  • 浏览: 24522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SSL与TLS的区别以及介绍

阅读更多
 



SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
  TLS:(Transport LayerSecurity,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。
  SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。
  SSL (SecureSocket Layer)
  为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
  当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
  SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL HandshakeProtocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  SSL协议提供的服务主要有:
  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2)加密数据以防止数据中途被窃取;
  3)维护数据的完整性,确保数据在传输过程中不被改变。
  SSL协议的工作流程:
  服务器认证阶段:
  1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
  2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
  3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
  4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
  用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
  从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa和MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。
  TLS(Transport Layer Security Protocol):安全传输层协议
  安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。
  TLS 记录协议提供的连接安全性具有两个基本特性:   
·       私有――对称加密用以数据加密(DES 、RC4 等)。对称加密所产生的密钥对每个连接都是唯一的,且此密钥基于另一个协议(如握手协议)协商。记录协议也可以不加密使用。   
·       可靠――信息传输包括使用密钥的MAC进行信息完整性检查。安全哈希功能( SHA、MD5 等)用于 MAC 计算。记录协议在没有 MAC 的情况下也能操作,但一般只能用于这种模式,即有另一个协议正在使用记录协议传输协商安全参数。
  TLS记录协议用于封装各种高层协议。作为这种封装协议之一的握手协议允许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥。 TLS 握手协议提供的连接安全具有三个基本属性:   
·       可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。
·       共享加密密钥的协商是安全的。对偷窃者来说协商加密是难以获得的。此外经过认证过的连接不能获得加密,即使是进入连接中间的攻击者也不能。
·       协商是可靠的。没有经过通信方成员的检测,任何攻击者都不能修改通信协商。
  TLS的最大优势就在于:TLS是独立于应用协议。高层协议可以透明地分布在TLS协议上面。然而, TLS 标准并没有规定应用程序如何在TLS上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。
  协议结构
  TLS 协议包括两个协议组――TLS记录协议和TLS握手协议――每组具有很多不同格式的信息。在此文件中我们只列出协议摘要并不作具体解析。具体内容可参照相关文档。
  TLS记录协议是一种分层协议。每一层中的信息可能包含长度、描述和内容等字段。记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机。
  TLS连接状态指的是TLS记录协议的操作环境。它规定了压缩算法、加密算法和MAC算法。
  TLS记录层从高层接收任意大小无空块的连续数据。密钥计算:记录协议通过算法从握手协议提供的安全参数中产生密钥、 IV 和MAC密钥。
  TLS 握手协议由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。
  关系就是。。。。并列关系
  最新版本的TLS(Transport LayerSecurity,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。
  1.TLS与SSL的差异
  1)版本号:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。
  2)报文鉴别码:SSLv3.0和TLS的MAC算法及MAC计算的范围不同。TLS使用了RFC-2104定义的HMAC算法。SSLv3.0使用了相似的算法,两者差别在于SSLv3.0中,填充字节与密钥之间采用的是连接运算,而HMAC算法采用的是异或运算。但是两者的安全程度是相同的。
  3)伪随机函数:TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式。
  4)报警代码:TLS支持几乎所有的SSLv3.0报警代码,而且TLS还补充定义了很多报警代码,如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等。
  5)密文族和客户证书:SSLv3.0和TLS存在少量差别,即TLS不支持Fortezza密钥交换、加密算法和客户证书。
  6)certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息计算MD5和SHA-1散列码时,计算的输入有少许差别,但安全性相当。
  7)加密计算:TLS与SSLv3.0在计算主密值(master secret)时采用的方式不同。
  8)填充:用户数据加密之前需要增加的填充字节。在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式可以防止基于对报文长度进行分析的攻击。
  2.TLS的主要增强内容
  TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。TLS 在SSL v3.0 的基础上,提供了以下增强内容:
  1)更安全的MAC算法
  2)更严密的警报
  3)“灰色区域”规范的更明确的定义
  3.TLS对于安全性的改进
  1)对于消息认证使用密钥散列法:TLS 使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变更。SSLv3.0还提供键控消息认证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全。
  2)增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。
  3)改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。
  4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。
  5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。
分享到:
评论

相关推荐

    SSL and TLS Theory and Practice.pdf

    本书第二版由Rolf Oppliger撰写,详细介绍了SSL与TLS的发展历程、技术细节以及在实际中的应用情况。该书是信息安全领域的重要参考资料之一,旨在为读者提供深入的技术知识,帮助其理解并掌握这两种广泛应用于互联网...

    scapy-ssl_tls-1.2.3.4.zip

    这个库扩展了著名的Scapy框架,使其能够解码和构建SSL/TLS协议的数据包,这对于网络安全分析、渗透测试以及网络协议开发等工作至关重要。 在Python环境中,通常会使用PyCharm这样的集成开发环境(IDE)来安装和管理...

    .net中为 SSL/TLS 安全通道建立信任关系

    .net 中为 SSL/TLS 安全通道建立信任关系 在 .NET 中,建立 SSL/TLS 安全通道时,需要建立信任关系,以确保数据的安全传输。在本文中,我们将讨论如何在 .NET 中建立 SSL/TLS 安全通道的信任关系,并解决常见的调试...

    《HTTPS权威指南》《Bulletproof SSL and TLS》pdf

    1. SSL/TLS与密码学的基础知识:这部分内容介绍了SSL/TLS协议的基本概念,以及它们在保障数据传输安全中的作用,包括握手过程、数据加密、身份验证和完整性的保证等。 2. 协议的历史和发展:作者详细回顾了SSL和TLS...

    基于SSL/TLS协议的FTP客户端和服务器端

    整个过程涉及SSL/TLS的初始化、证书管理、密钥协商以及数据的加密解密。 **文件传输的安全保障** 在SSL/TLS保护下的FTP传输,所有文件内容都将被加密,即使数据在网络中被截获,攻击者也无法解读。同时,通过证书...

    ssl and tls essentials

    本文将详细介绍SSL与TLS的基本概念、工作原理、发展历程以及在实际应用中的配置方法。 #### 二、SSL概述 **1. 定义** - SSL协议是一种用于提供互联网上数据加密的技术标准,由网景公司(Netscape)于1994年首次...

    关于SSL和TLS的区别

    SSL 和 TLS 的区别 SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)是两种常用的网络安全协议,用于保护网络通信的安全性。下面是它们的区别: 1. 历史背景:SSL 是 Netscape 公司在 1994 年开发...

    SSL and TLS Theory and Practice(2nd) 无水印原版pdf

    SSL and TLS Theory and Practice(2nd) 英文无水印原版pdf 第2版 pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 ...

    Netty和SSL/TLS应用例子

    通过阅读和分析这些代码,你可以深入理解Netty如何与SSL/TLS结合,以及如何在实际项目中实现安全的网络通信。代码中可能包括了如`SSLEngine`的创建和配置,证书的加载,以及异常处理等关键部分。通过学习这个示例,...

    ssl/tls安全协议

    它提供了SSL/TLS协议的实现,以及各种加密算法、散列函数和证书管理功能。OpenSSL库不仅用于服务器端,也常被客户端应用用来实现安全通信。开发者可以通过OpenSSL提供的API接口来编写支持SSL/TLS的程序。 4. ...

    ssl_tls协议RFC5246文档_ssl_ssl标准文档_

    本文将深入探讨SSL/TLS协议的核心概念、工作流程以及其在RFC5246中的规定。 SSL/TLS协议的主要目标是提供数据的机密性、完整性和身份验证。它通过使用公钥基础设施(PKI)和数字证书来实现这些目标。PKI允许用户...

    JAVA实现的SSL/TLS双向认证源代码

    本篇将深入探讨如何使用Java实现SSL/TLS双向认证,以及涉及到的相关工具和步骤。 首先,让我们理解什么是SSL/TLS双向认证。通常,SSL/TLS连接采用单向认证,即服务器验证客户端的身份,而客户端不需要验证服务器。...

    TLS和SSL的区别

    最新版本的TLS(Transport Layer ...在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作. 主要介绍 1、 TLS与SSL的差异.2、 TLS的主要增强内容、3、 TLS对于安全性的改进

    SMTP发送邮件程序(支持SSL和TLS)

    SSL/TLS的使用为邮件服务器与客户端之间的通信提供了端到端的加密,使得即使数据在网络中被截取,也无法解读其内容。 程序的核心部分应该是实现了SMTP协议,并且添加了对SSL和TLS的支持。这意味着它能够连接到支持...

    tls.rar_ tls protocol_TLS_ssl_ssl/tls_tls pdf

    4. **TLS与SSL的区别**: - TLS支持更多加密算法,安全性更强。 - TLS有更复杂的握手协议,以提供更好的安全性和效率。 - TLS有更严格的证书验证机制。 5. **TLS协议流程**:包括客户端发起连接、服务器回应、...

    Implementing SSL TLS Using Cryptography and PKI.pdf

    根据提供的文件信息,我们可以深入探讨以下几个关键的知识点:SSL/TLS协议的作用与实施、加密技术在SSL/TLS中的应用以及公钥基础设施(PKI)如何支撑整个安全通信过程。 ### 1. SSL/TLS协议的基本概念及作用 **SSL...

    Implementing SSL / TLS Using Cryptography and PKI 1st Edition (无水印,数字版)

    - 禁用SSL和旧版本的TLS:为避免安全风险,应禁用SSL 3.0以及TLS 1.0和1.1。 - 强化服务器配置:合理配置服务器,比如禁用不需要的密码套件,启用HSTS等。 - 监控和日志:监控SSL/TLS连接,记录日志以便事后分析和...

    发邮件,支持SSL\TLS,支持Gmail、Hotmail、yahoo

    在IT行业中,电子邮件服务是日常通信的重要组成部分,尤其是在企业...通过理解SSL/TLS的工作原理,以及如何正确配置邮件服务的相关设置,开发者可以更安全地实现邮件发送功能,同时确保与各种邮件服务提供商的兼容性。

Global site tag (gtag.js) - Google Analytics