传输层安全协议TLS/SSL

本文详细介绍了传输层安全协议TLS及其前身SSL,包括各版本的发展历程,如SSL 1.0到TLS 1.3。重点讨论了TLS握手协议的步骤,数字签名和数字证书的作用,以及TLS记录协议在加密和验证数据完整性方面的重要性。内容涵盖了从Client Hello到Server Finished的整个交互过程,旨在帮助读者理解网络通信中的安全机制。
摘要由CSDN通过智能技术生成

部分链接可能需要使用Google才能打开

描述:

传输层安全协议TLS(Transport Layer Security)是设计用来保护网络通信过程中信息的私密性的一种工业标准,允许客户机,服务器应用程序可以探测到安全风险,包括消息篡改(message tampering),消息拦截(message interception),消息伪造(message forgery),其前身是安全套接字层协议SSL(Security Socket Layer),有时这两者都被成为SSL。作为计算机网络安全通信的协议,被广泛应用于网页浏览器,邮箱,网络传真,即时消息通信等。大部分的网站都是用TLS保护服务器和网页浏览器之间的所有通信。
传输层安全协议的最初目标是为两个应用程序提供通信的私密性和数据的完整性。是由SSL协议发展而来的,其历史:

Protocol Year
SSL 1.0 N/A
SSL 2.0 1995
SSL 3.0 1996
TLS 1.0 1999
TLS 1.1 2006
TLS 1.2 2008
TLS 1.3(draft) TBD


SSL 1.0, 2.0 和3.0

Netscape 公司最初开发了SSL协议,1.0版本由于有严重的安全缺陷没有公开发布。2.0版本也有一些安全问题,所以最后发布了SSL 3.0, 3.0版本基于以前的版本几乎是做了重新设计。SSL 3.0由互联网工程任务组(IETF: Internet Engineering Task Force)在1996年起草发布,并保存进了网络通信协议发布常用的文档 RFC6101中。该协议由安全套接字记录协议(SSL Record Protocol)和安全套接子握手协议(SSL Handshake protocol)两部分组成。

Tacher Elgamal博士被认为是“SSL之父”,他在1995年到1998年担任Netscape公司的首席科学家。现在是salesforce.com的CTO,他在密码学领域和信息安全领域非常有成就。其中就有以他名字命名的Elgamal加密算法, 我另写一片文章来介绍Elgamal加密算法。

但是SSL3.0现在也已经是过时且不安全的协议,被暴露出安全问题。Google安全团队在2014年10月14号公布了“贵宾犬”攻击,即POODLE AttackPadding Oracle On Downloaded Legacy Encryption vulnerability),利用该漏洞,黑客以中间人身份可以攻击支持SSL3.0协议的浏览器和支持SSL3.0协议服务器端的通信,使握手协议失败,实现降级攻击,由于SSL3.0使用的CBC块加密(Cipher Block Chaining mode encryption)实现存在漏洞,则攻击者可以破解SSL连接的加密信息,获取用户cookie数据,详细信息可以参考这里pdf。由于考虑到兼容性,在发现该漏洞之前很多浏览器都是向后支持SSL 3.0的,后来Chrome, Mozilla, IE,Safari等都相继禁止了对SSL 3.0的支持。

TLS 1.0, 1.1 ,1.2 和 1.3

TLS 1.0就是SSL 3.0的两位开发者开发出来的SSL3.0协议升级版,可以降级到SSL 3.0,但是由于采用的算法不同,两者之间不具备互操作性。TLS协议是互联网工程任务组为了规范和提高安全性提出的新的协议,写入RFC中。

TLS 1.1版本添加了针对CBC(cipher-block chaining)块攻击的保护。

TLS 1.2对加密套件和握手协议中的算法做了改进,用SHA-256代替原来的MD5-SHA-1,还做了一些扩展,支持经过身份认证的加密技术(authenticated encryption ciphers),高级加密标准加密(Advanced Encryption Standard)等,TLS 1.2版本还彻底移除了TLS会话中通过协商使用SSL 2.0不安全协议的支持。

TLS 1.3还没有正式的公布,互联网工程任务组(IETF)正在起草,与TLS 1.2相比,移除了一些加密比较弱,更少使用的加密算法(Elliptic curve cryptography, MD5, SHA-224),弃用静态加密算法RSA,禁用SSL添加新的Ed25519更加安全的数字签名算法,添加新的秘钥交换协议等。

Note:
关于TLS 1.3协议中的改进也可以参考Tim Taubert的这篇博客:
MORE PRIVACY, LESS LATENCY, Improved Handshake in TLS version 1.3

数字签名

使用公钥加密技术实现的用于鉴别数字信息的方法,由信息的发送者产生的别人无法伪造的一段数字串,放松方用一个哈希函数从报文中生成报文摘要(Digest),然后使用自己的私钥对该摘要加密,加密后的摘要即时该报文的数字签名。接收方需要用和加密是一样的哈希函数从接收到的报文中算出报文摘要,然后再用发送发的公钥来对报文中的数字签名进行解密,对比两个摘要,如果相同,则该数字签名就是发送发的。

数字证书

数字证书是通信双方中持有公钥和个人唯一信息的由信任的第三方权威机构CA(Certificate Authority)颁发的授权证书,通信中的另一方可以利用其中的签名和声明来识别对方身份,生成相对应的秘钥,验证有效期等。

Note:
关于数字签名和数字证书比较通俗的理解可以参考这两篇博客,里面有插图说明:
* 英文原文:What is a Digital Signature?
* 中文翻译:数字签名是什么?

类似的一个证书如下:


Certificate: 
    Data: 
        Version: 3 (0x2) 
        Serial Number: 1 (0x1) 
        Signature Algorithm: md5WithRSAEncryption 
        Issuer: C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root CA/Email=administrator@sopac.org 
        Validity 
            Not Before: Nov 20 05
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值