网络基础之TLS

1. TLS 是什么

Transport Layer Security (TLS) is the most widely used protocol for implementing cryptography on the web. TLS uses a combination of cryptographic processes to provide secure communication over a network.

传输层安全协议是网络上应用最广泛的密码学实现。TLS使用一个加解密过程的组合来在网络上进行安全通信。

TLS provides a secure enhancement to the standard TCP/IP sockets protocol used for Internet communications. As shown in the table TCP/IP Protocol Stack with TLS, the secure sockets layer is added between the transport layer and the application layer in the standard TCP/IP protocol stack. The application most commonly used with TLS is Hypertext Transfer Protocol (HTTP), the protocol for Internet web pages. Other applications, such as Net News Transfer Protocol (NNTP), Telnet, Lightweight Directory Access Protocol (LDAP), Interactive Message Access Protocol (IMAP), and File Transfer Protocol (FTP), can be used with TLS as well.

TLS提供了一个安全加强的协议给标准的TCP/IP协议来进行网络通信。SSL是加在标准TCP/IP协议栈的传输层与应用层之间的。TLS应用最广泛的就是给网页的HTTP协议。其他的场景如NNTP,LDAP,FTP,IMAP也都可以使用TLS。

2. TLS发展史

SSL是由Netscape在1994年研发的,在网络社区的帮助下,已经变成了一个标准。现在由互联网标准组织IETF管理。
IETF将SSL改名为TLS,并且在1999年1月发布了第一个版本。
TLS 1.1 在2006年4月发布
TLS 1.2 在2008年8月发布
TLS 1.3 在2018年8月发布

TLS 1.3 是对 TLS 协议的重大修改,与以前的版本相比,提供了显著的安全性和性能改进。

3. How TLS works

TLS如此有效的一个原因是它使用了多个不同的加密过程。TLS使用公钥加密来提供认证,使用hash方法的私钥加密来提供隐私与数据完整性。
简单来说,就是使用非对称加密,使用公钥加密,私钥解密,这样更加安全。

3.1 公钥证书

公钥证书为一个实体提供了一个安全的方式来传输它用来异步加密的公钥。公钥证书避免了下面的情况:
如果Charlie创建了一个自己的公钥和私钥,但是他可以对外宣称自己是Alice并且把自己的公钥发送给Bob,Bob将可以和Charlie通讯,但是Bob将会认为,他的数据是发送给Alice的。
公钥证书可以被认为是数字签字。它是有一个可信的组织签发并为持票人提供身份证明。可信的签发公钥证书的组织被认为是证书颁发机构(CA)。CA可以比作公证人。要从 CA 获取证书,必须提供身份证明。一旦 CA 确信申请人代表其声称所代表的组织,CA 就会签署证书,证明证书中包含的信息的有效性。

公钥证书包含如下字段:

  • Issuer: 颁发证书的 CA。如果用户信任颁发证书的 CA,并且证书有效,则用户可以信任证书。
  • Period of validity: 证书具有到期日期。验证证书的有效性时,应检查此日期。
  • Subject: 包括有关证书所代表的实体的信息。
  • Subject’s public key: 证书提供的主要信息是使用者的公钥。提供所有其他字段以确保此密钥的有效性。
  • Signature:证书由颁发证书的 CA 进行数字签名。签名是使用 CA 的私钥创建的,可确保证书的有效性。由于仅对证书进行签名,而不对 TLS 事务中发送的数据进行签名,因此 TLS 不提供不可否认性。

如果Bob只接受Alice的公钥在公钥证书中发送时有效,那么当Charlie伪装成Alice时,Bob就不会被愚弄向Charlie发送秘密信息。

证书链中可以链接多个证书。使用证书链时,第一个证书始终是发件人的证书。接下来是颁发发件人证书的实体的证书。如果链中有更多证书,则每个证书都是颁发前一个证书的颁发机构的证书。链中的最后一个证书是根 CA 的证书。根 CA 是广泛信任的公共证书颁发机构。多个根 CA 的信息通常存储在客户端的 Internet 浏览器中。此信息包括 CA 的公钥。著名的CA包括DigiCert,Entrust和GlobalSign。

4.The TLS 1.3 Handshake

使用 TLS 1.3 的通信开始 TLS 握手。这是客户端和服务器之间的初始协商,用于在 TLS 中建立其后续交互的参数。它包括三个阶段:密钥交换、服务器参数和身份验证:

  • 密钥交换(Key Exchange): 此阶段建立共享密钥材料,例如共享密钥可以属于哪个命名组(椭圆曲线组 (ECDHE) 或有限字段组 (DHE)),并选择加密参数,例如对称密码选项。

  • 服务器参数(Server Parameters): 此阶段建立其他握手参数,例如是否需要基于证书的客户端身份验证。

  • 身份验证(Authentication): 此阶段对服务器(以及客户端)进行身份验证,并提供密钥确认和握手完整性。

5. 参考

具体握手细节,请参考 TLS

猜你喜欢

转载自blog.csdn.net/Apple_wolf/article/details/132737187
TLS