SSLSecure Sockets Layer,安全套接层是一种用于保护网络通信安全的协议,通过在传输层和应用层之间建立加密通道,防止数据被窃听、篡改和伪装。
SSL 通过在应用层和传输层之间插入加密层,保护数据传输的安全。它的核心功能是建立加密通道和验证身份。
1.SSL 握手过程
- ClientHello:客户端发送支持的加密算法列表。
- ServerHello:服务器选择加密算法并发送服务器证书。
- 证书验证:客户端验证服务器证书的有效性。
- 密钥交换:客户端生成预主密钥,用服务器公钥加密后发送。
- 会话密钥:双方根据预主密钥生成会话密钥,用于加密后续通信。
2.安全通信
在加密通道建立后,客户端和服务器通过 SSL 进行安全通信:
- 客户端发送加密的请求数据。
- 服务器返回加密的响应数据。
SSL 广泛应用于以下场景:
- HTTPS:保护网页浏览的安全。
- SMTPS:保护邮件传输的安全。
- FTPS:保护文件传输的安全。
- VPN:保护远程访问的安全。
定义与用途:
SSL(Secure Sockets Layer)是一种加密协议,最初设计用于保护Web通信(如HTTP→HTTPS),确保数据在客户端(浏览器)和服务器之间的传输安全。
核心功能:
数据加密:防止中间人窃听或篡改数据(如信用卡信息)。
身份验证:通过数字证书验证服务器身份(可选客户端认证)。
完整性校验:确保数据未被篡改。
SSH
以下是 SSH 连接建立和数据传输的基本流程:
1.连接建立
- 客户端连接到服务器的 22 端口(默认的 SSH 端口)。
- 服务器发送自己的公钥给客户端。
- 客户端验证服务器公钥(通常通过已知的主机密钥指纹)。
- 客户端和服务器协商加密算法(如 AES、RSA 等)。
- 客户端生成一个会话密钥,用服务器的公钥加密后发送给服务器。
- 双方使用会话密钥加密后续通信。
加密机制:基于非对称加密(RSA/ED25519)协商会话密钥,后续通信使用对称加密(AES)。
2.用户认证
SSH 支持多种用户认证方式,常见的有:
- 密码认证:用户输入用户名和密码。
- 公钥认证:用户使用私钥进行认证,服务器验证对应的公钥。
密码认证
- 客户端发送用户名。
- 服务器请求密码。
- 客户端发送加密的密码。
- 服务器验证密码,返回认证结果。
公钥认证
- 客户端发送用户名和公钥。
- 服务器发送一个随机数。
- 客户端使用私钥对随机数进行签名,发送给服务器。
- 服务器使用公钥验证签名,返回认证结果。
虽然,SSH和SSL只有一字之差,但是二者并没有直接关联
技术实现上的关联
(1) 加密算法的重叠
共同依赖非对称加密:
两者均使用非对称加密(如RSA、ECC)进行密钥协商,但具体实现不同:
SSH 使用 Diffie-Hellman 或 ECDH 生成会话密钥。
SSL/TLS 使用 RSA 或 ECDHE 完成密钥交换。
对称加密算法:
均可能采用 AES、ChaCha20 等算法加密数据。
(2) 证书机制的差异
SSH:
依赖 SSH 密钥对(公钥/私钥),无第三方证书颁发机构(CA)。
通过
authorized_keys文件直接验证公钥。
SSL/TLS:
依赖 X.509 数字证书,需由 CA 签发以建立信任链。
支持服务器端证书验证(可选客户端证书)。
(3) 协议层的独立性
SSH:
完整协议栈(如密钥交换、认证、加密)独立实现,不依赖 SSL/TLS。
SSL/TLS:
作为通用安全层,可被多种应用协议(如HTTP、FTP)调用,但 SSH 不基于 SSL/TLS。
TLS
TLS(Transport Layer Security,传输层安全)是一种用于在网络中加密数据传输的协议,旨在保护数据的机密性、完整性和身份验证。
TLS 是 SSL(Secure Sockets Layer,安全套接层)的继任者,提供了更强的安全性和性能。TLS 是 HTTPS、SMTPS、FTPS 等安全协议的基础。
TLS 通过在应用层和传输层之间插入加密层,保护数据传输的安全。它的核心功能是建立加密通道和验证身份。
1.TLS 握手过程
- ClientHello:客户端发送支持的加密算法列表。
- ServerHello:服务器选择加密算法并发送服务器证书。
- 证书验证:客户端验证服务器证书的有效性。
- 密钥交换:客户端生成预主密钥,用服务器公钥加密后发送。
- 会话密钥:双方根据预主密钥生成会话密钥,用于加密后续通信。
2.安全通信
在加密通道建立后,客户端和服务器通过 TLS 进行安全通信:
- 客户端发送加密的请求数据。
- 服务器返回加密的响应数据。
TLS 的关键特性
加密通信:
- 使用对称加密(如 AES)加密数据。
- 使用非对称加密(如 RSA、ECDHE)交换密钥。
身份验证:
- 通过服务器证书验证服务器的身份。
- 可选地通过客户端证书验证客户端的身份。
数据完整性:
- 使用哈希算法(如 SHA)确保数据未被篡改。
前向保密:
- 使用临时密钥交换算法(如 ECDHE),即使长期密钥泄露,历史通信也不会被解密。
兼容性:
- 支持多种加密算法和协议版本。
TLS 的应用场景
TLS 广泛应用于以下场景:
- HTTPS:保护网页浏览的安全。
- SMTPS:保护邮件传输的安全。
- FTPS:保护文件传输的安全。
- VPN:保护远程访问的安全。
- API 调用:保护数据传输的机密性和完整性。
OpenSSLhttps://openssl.org/
Regular Expression 正则表达式
Gratuitous ARP 免费ARP
ps命令支持3种不同类型的命令行参数:
- Unix风格的参数,前面加单破折线; 比如ps -ef
- BSD风格的参数,前面不加破折线;比如ps ef
- GNU风格的长参数,前面加双破折线。比如
团结周围一切可以团结的力量。