美文网首页
TLS 如何保证网络通讯安全

TLS 如何保证网络通讯安全

作者: Danielme | 来源:发表于2019-08-15 19:26 被阅读0次

加密基础知识

  • 非对称加密:使用一对公私钥能够加密解密信息。例如使用私钥作为密钥加密信息,可以通过公钥解密,反之亦然。优点:安全性更高,公钥是公开的,私钥是自己保存的,不需要将私钥给别人。缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
  • 对称加密:使用同一个密钥加密解密信息。优点:算法公开、计算量小、加密速度快、加密效率高。 缺点:秘钥的管理和分发非常困难,不够安全。
  • PKI:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施。PKI是一种遵循标准的利用公钥加密技术提供一套安全基础平台的技术和规范。

TLS 证书

在一般网络环境,特别是互联网环境,通讯双方线上明文交换公钥并不安全,也不太可能提前线下交换公钥。为了解决这个问题,需要引入PKI。当客户端发起访问请求的时候,服务端会发送包含了公钥信息的TLS证书给客户端。

TLS证书是如何保证公钥信息不被恶意修改呢?先来看看证书内容,信息包含了:

  • CA的名称(Issuer)
  • 服务端的名称(Subject)
  • 证书有效时间
  • 公钥的加密算法
  • 公钥明文
  • 可选的SAN(Subject Alternative Name),一般是服务端的域名,IP地址,高版本Chrome要求一定要有SAN
  • 签名算法(一般是特定Hash算法)
  • 签名密文内容B(使用签名算法对证书内容进行计算,得到Hash值A,然后再使用CA私钥进行加密,得到最终的签名内容B)
证书例子

通过对证书内容进行验证,可以确认公钥是否被修改。现代OS一般都内置了部分CA的公钥,客户端拿到服务端TLS证书后,验证过程如下:
1. 会根据证书的Issuer,查找到CA公钥
2. 根据证书的加密算法和CA公钥,对签名内容B解密得到证书的Hash值A
3. 根据证书中的签名算法,对证书内容进行计算,得到Hash值A1
4. 如果A和A1相等,证明证书的确是CA发布,并且没有修改
5. 验证证书的有效期、SAN(验证是否是客户端访问的域名、IP地址)等

在上述验证都通过后,客户端最终确认证书有效。利用公钥和服务端交换后续通讯临时的对称密钥。后续的通讯双方都使用该密钥进行加密解密,从而保证的网络的通讯安全。

相关文章

  • TLS 证书生成和使用

    TLS 证书基础知识参考 TLS 如何保证网络通讯安全 这一篇主要介绍证书的生成,以及在Java项目中的应用 证书...

  • TLS 如何保证网络通讯安全

    加密基础知识 非对称加密:使用一对公私钥能够加密解密信息。例如使用私钥作为密钥加密信息,可以通过公钥解密,反之亦然...

  • TLS整理(下):TLS如何保证安全

    上篇主要是介绍了HTTP存在的两大安全问题 明文 无法验证服务器的真实性 从而引出了TLS。本篇就来着重介绍下TL...

  • EMQ X MQTT 服务器启用双向 SSL/TLS 安全连接

    作为基于现代密码学公钥算法的安全协议,TLS/SSL 能在计算机通讯网络上保证传输安全,EMQ X 内置对 TLS...

  • EMQ X MQTT 服务器启用 SSL/TLS 安全连接

    作为基于现代密码学公钥算法的安全协议,TLS/SSL 能在计算机通讯网络上保证传输安全,EMQ X 内置对 TLS...

  • 二零一九年三月

    安全 漫谈网络通讯加密到现在一共5篇文章,写的很清晰,我这种菜鸡努努力也能看懂 基于TLS1.3的微信安全通信协议...

  • 加密与安全刷题

    刷题网站:牛客网 HTTPS保证信息安全 HTTP协议通常承载于TCP协议之上,有时也承载 于TLS( 安全传输层...

  • 深入TLS/SSL协议

    总体 TLS/SSL协议是为了解决网络通讯中的信息安全问题而诞生的。 它的设计目的主要有三个: 身份验证——搞清楚...

  • 用TLS/SSL保证EMQ的网络传输安全

    作为基于现代密码学公钥算法的安全协议,TLS/SSL能在计算机通讯网络上保证传输安全,EMQ的MQTT broke...

  • TLS,SSL,OpenSSL,http,https 的关系

    1.TLS是什么呢? 他是一种协议,保证数据的安全性。他有一个前身SSL。 传输层安全协议(英语:Transpor...

网友评论

      本文标题:TLS 如何保证网络通讯安全

      本文链接:https://www.haomeiwen.com/subject/miktsctx.html