传输层安全性(TLS)和安全壳(SSH)协议中的双向通道通过密钥交换,加密算法以及会话管理技术的结合来处理数据加密和解密,以确保在客户端和服务器之间的两个方向上进行安全通信。
TLS双向通道加密和解密
TLS旨在提供通过网络(例如客户端和服务器)在两个交流方之间交换的数据的机密性和完整性。它的双向通道允许通过利用多个加密过程同时将数据同时牢固地交换:
- 密钥交换和身份验证:TLS握手始于双方谈判加密参数以建立共享密钥而无需直接传输它们。公共密钥加密算法,例如RSA,DIFFIE HELLMAN(DH),短暂的Diffieâhellan(DHE),椭圆形弯曲diffie diffie hellman(ecdhe),其他人则用于安全地生成共享的秘密密钥。该密钥不是直接通过网络发送,而是在交换必要的公共价值之后由双方独立得出的。在此握手期间,服务器通常通过证书对客户端进行身份验证,可选地进行相互认证。握手还同意了用于规定用于批量数据加密的加密算法的密码套件。此过程在关键协议阶段提供了身份验证和保密性。
- 数据传输的对称加密:通过握手建立共享的秘密密钥后,TLS切换到对称加密以保护会话中交换的实际消息。由于对称加密算法在计算上是有效的,因此它们允许在两个方向上实时加密和解密。 TLS中使用的常见对称加密算法包括AES(高级加密标准),Chacha20等。双方都使用相同的会话密钥来加密传出和解密传入数据流,从而确保双向机密性。
- 数据完整性和身份验证:TLS集成了消息身份验证代码(MAC)或身份验证的加密模式,例如AES-GCM(GALOIS/COUNTER模式),以确保消息完整性和真实性。这可以确保将检测到任何方向上的任何消息的篡改或伪造。
- 双向性质:TLS通道本质上是双向的,这意味着两个端点都可以同时发送和接收加密数据。加密和解密过程在两端都使用建立的对称键在两端镜像,从而实现了无缝,安全的双向通信。
- 远期保密:TLS的现代变体使用dhe或ecdhe使用短暂的钥匙,以建立提供远期保密的每节钥匙。这意味着,即使长期密钥被妥协,过去的沟通会议仍然安全。
- 会话恢复:为了提高重复会话的效率,TLS支持会话恢复,在此恢复中,重新使用了先前的会话键或标识符,以避免在保持安全性的同时进行全部握手,这适用于双向加密数据流。
SSH双向通道加密和解密
SSH通过不安全的网络提供安全的远程登录和其他安全网络服务。其双向渠道还确保发送和接收时对数据进行加密和解密:
- 密钥交换协议:类似于TLS,SSH从键交换机制开始,以产生用于加密会话的共享秘密密钥。它通常使用Diffie-Hellman密钥交换算法。服务器显示其公共主机密钥,客户端验证在继续操作之前对服务器进行身份验证。然后,双方使用商定的算法独立生成共享的秘密密钥。
- 用于身份验证的非对称加密:与用于批量数据的对称加密不同,SSH中的不对称键特异性地提供了身份验证目的。这些不对称对中的私钥仍然是秘密的,用于证明身份,但是大量数据加密使用对称键。
- 通信的对称加密:在密钥交换和身份验证阶段之后,SSH切换到对称加密算法,用于在双向通道上安全传输数据。 SSH支持多个对称密码,例如AES,3DES,Blowfish,Cast128和Arcfour。客户端和服务器都使用相同的密钥来加密发出的数据并解密传入数据,从而实现全双工安全通信。
- 完整性和压缩:为了确保在运输中不篡改消息,SSH应用加密哈希功能来创建消息身份验证代码(MAC)或使用身份验证的加密模式。另外,可以应用压缩以提高传输效率。
- 双向通道功能:SSH连接创建了双向的安全隧道或通道,并支持同时发送和接收数据,并在客户端和服务器侧都对称地进行了加密和解密。这允许安全命令执行,文件传输(通过SFTP)和端口转发,所有这些都载在加密的通道上。
- 流控制和错误处理:SSH通道包括在两个方向上管理数据传输速率的流控制机制,调整网络条件并确保可靠的通信。
TLS和SSH双向渠道的共享特征
- 两者都使用初始握手来建立加密的会话键,而无需将其暴露于潜在的窃听器。
- 一旦建立了会话密钥,对称加密用于加密和解密批量通信数据的效率。
- 两者都采用消息身份验证技术来确保两个方向上数据的机密性,完整性和真实性。
- 它们支持安全加密的隧道中的全双工,同时双向数据流。
- 使用可以提供远期保密性的算法,即使长期密钥被妥协,也可以确保过去的通信仍然安全。
- 两种协议在会话开始时就加密算法和关键长度进行了协商并达成共识。
- 这些协议的双向性质可确保也可以安全地交换错误处理,重传和流控制消息。