SSL、SSH、TLS简单介绍
SSL(Secure Sockets Layer,安全套接层)、SSH(Secure Shell,安全外壳协议)和TLS(Transport Layer Security,传输层安全协议)都是网络通信中用于保护数据传输安全的加密协议。
-
SSL:
- SSL是一种安全协议,用于在互联网上建立安全连接,确保数据在客户端和服务器之间传输过程中的安全性和完整性。
- SSL通过使用证书和密钥来加密数据,防止数据在传输过程中被截获或篡改。
-
SSH:
- SSH是一种网络协议,用于加密方式安全地访问远程计算机。
- 它不仅加密了所有的通信以防止截听,还提供了其他安全特性,如主机身份验证、数据完整性检查和连接完整性保护。
- SSH常用于远程登录到服务器、执行远程命令、传输文件等。
-
TLS:
- TLS是SSL的继承者,是一种用于网络通信的加密协议,用于在互联网上提供安全通信。
- TLS通过在传输层上加密数据来保护数据传输,防止数据在传输过程中被窃听或篡改。
- TLS广泛应用于Web浏览器、电子邮件、即时通讯和VoIP等应用中。
SSL和TLS主要用于保护Web浏览器和服务器之间的数据传输,而SSH则用于安全地访问和控制远程服务器。随着技术的发展,TLS已经取代了SSL,成为目前最常用的安全通信协议。
工作原理
SSL、SSH和TLS的工作原理各有特点,下面分别进行介绍:
SSL/TLS 工作原理和加密方式
-
握手过程:
- SSL/TLS通信开始时,客户端和服务器之间会进行一个握手过程,以协商加密算法、生成密钥等。
- 握手过程中,服务器会向客户端发送其证书,证书中包含了服务器的公钥。
-
证书验证:
- 客户端会验证服务器的证书是否由受信任的证书颁发机构(CA)签发,以及证书是否有效。
-
密钥交换:
- 一旦证书验证通过,客户端和服务器将使用Diffie-Hellman密钥交换算法或其他密钥交换机制来生成一个会话密钥(session key)。
-
数据加密:
- 使用生成的会话密钥,客户端和服务器将对传输的数据进行加密和解密,确保数据的机密性和完整性。
-
消息完整性:
- SSL/TLS使用消息认证码(MAC)或数字签名来确保数据在传输过程中未被篡改。
SSH 工作原理和加密方式
-
密钥生成:
- SSH使用公钥/私钥机制,用户和服务器各自持有一对密钥,公钥公开,私钥保密。
-
服务器认证:
- 当客户端尝试连接到SSH服务器时,服务器会向客户端发送其公钥。
-
用户认证:
- 用户可以通过输入密码或使用SSH密钥对来进行认证。如果使用密钥对,客户端会使用私钥对数据进行签名,服务器使用公钥进行验证。
-
会话密钥生成:
- 认证成功后,客户端和服务器将使用密钥交换算法(如Diffie-Hellman)生成一个会话密钥。
-
数据加密:
- 使用会话密钥,SSH对传输的数据进行加密,使用对称加密算法如AES。
-
完整性保护:
- SSH使用HMAC(Hash-based Message Authentication Code)来确保数据的完整性。
加密方式
- 对称加密:使用相同的密钥进行加密和解密,如AES、DES等。
- 非对称加密:使用一对密钥,公钥用于加密,私钥用于解密,如RSA、DSA等。
- 混合加密:结合对称加密和非对称加密的优点,例如在SSL/TLS和SSH中,使用非对称加密交换会话密钥,然后使用对称加密来加密实际传输的数据。
通信端口
SSL、SSH和TLS这些协议通常使用特定的端口号来进行通信。下面是这些协议常用的端口号:
-
SSL/TLS:
- SSL和TLS通常使用端口443进行HTTPS(HTTP Secure)通信,即安全超文本传输协议。
- SSL和TLS还会用于多种不同的应用层协议,因此它可能会使用不同的端口,具体取决于它所支持的应用。例如:
- 电子邮件可能使用端口587(提交邮件)或465(SMTPS,SMTP over SSL/TLS)。
- FTP(文件传输协议)可能使用端口990(FTPS,FTP over SSL/TLS)。
-
SSH:
- SSH的默认端口是22。通过SSH,用户可以安全地访问远程服务器,执行命令或传输文件。
所在网络层
SSL、SSH和TLS这些协议在网络模型中工作在不同的层级。这些层级通常指的是OSI(开放式系统互联)模型或TCP/IP模型,它们定义了网络通信的不同抽象层。下面是这些协议对应的层级:
-
SSL/TLS:
- SSL/TLS工作在OSI模型的传输层(第四层)和TCP/IP模型的传输层。
- 它们为应用层协议(如HTTP、FTP、SMTP等)提供加密和数据完整性服务,通过在传输层上加密数据包来保护数据在网络中的传输。
-
SSH:
- SSH工作在OSI模型的会话层(第五层)和TCP/IP模型的应用层(最高层,第七层)。
- 它提供了一个安全的通道,允许用户远程登录到服务器,执行命令,以及安全地传输文件。SSH可以看作是应用层协议,因为它直接与用户或应用程序交互。
理性的人追求的并非快乐,而只是避免痛苦。