浅谈SSL/TLS协议及其实现

开篇感谢大神们指引方向,参考资料:

  1. https://www.paolotagliaferri.com/an-overview-of-ssl-tls-secure-sockets-layer-transport-layer-security-tls-1-2/
  2. https://www.paolotagliaferri.com/overview-of-transport-layer-security-protocol-tls-1-3/
  3. https://tls13.ulfheim.net/
  4. 《图解密码技术》
  5. https://tools.ietf.org/html/rfc8446#section-4.6.1

        Web应用通常使用HTTP协议在用户和Web服务器间传输信息。HTTP协议不对传输的数据加密,因此当我们通过HTTP协议访问网页和发送内容时,网络中任何可获取到(通过转发、嗅探等方式)HTTP流量的中间者都可以知晓传输内容。早期,Web应用的主要形式还是用户通过浏览器浏览网站发布的公开信息,这看起没有问题,但随着网站服务越来越多样化,用户需要和网站交互私密信息,如网购时传输的银行卡信息。为了防止其他人获取HTTP流量的内容,产生了SSL/TLS协议,SSL/TLS协议加密HTTP协议的内容,让中间者获取到的是加密后内容。SSL/TLS位于TCP/IP模型TCP的上一层,也可以用来加密传输其他上层协议的数据内容,如SMTP、POP3和FTP,SSL/TLS加上HTTP就是HTTPS。

    本文内容冗长,大家可以选择自己感兴趣的部分阅读,导航如下:

  1. SSL/TLS简介
  2. TLSv1.3协议的规范
  3. 基于Java的协议实现

一、SSL和TLS       

        SSL全称安全套接层(Secure Socket Layer),TLS全称传输层安全(Transport Layer Security)。最早网景公司设计了SSL,当SSL发展到3.0时,IETF(Internet Engineering Task Force)修复了SSL 3.0的漏洞,并在其基础上设计发布了TLS 1.0,也可将其看作SSL 3.1。至今,TLS已经发展到了版本1.3(RFC 8446 -> https://tools.ietf.org/html/rfc8446)。各个版本的SSL和TLS的发布时间如下:

        SSL 1.0 – 由于安全问题未公开发布。

        SSL 2.0 – 1995年发布,2011年弃用。存在公开的安全漏洞。

        SSL 3.0 – 1996年发布,2015年弃用。存在公开的安全漏洞。

        TLS 1.0 – 1999年发布,计划2020年弃用。

        TLS 1.1 – 2006年发布,计划2020年弃用。

        TLS 1.2 – 2008年发布。

        TLS 1.3 – 2018年发布。

        因存在安全问题,SSL基本上已被弃用。很多应用场景中提及SSL实际上就是指TLS,SSL证书(SSL Certificate)实际上是SSL/TLS证书,同时支持SSL协议和TLS协议。本文如未指明协议版本,则为TLS 1.3。

二、协议的规范

1、TLS 1.3

        TLS协议位于HTTP(或其他应用层协议,如SMTP)协议与TCP协议之间,TCP协议及其下层协议都不对传输的数据进行加密,也不对通信双方进行认证。TLS的作用是:1)保护传输数据的机密性(Confidentiality),即使第三方截获了通信数据也无法获知真实内容;2࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值