SSH
SFTP
SFTP(SSH File Transfer Protocol)是SSH FTP的简称,是一种安全的FTP。SFTP建立在SSH连接的基础之上,远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备提供了SFTP客户端功能,可以从本设备安全登录到远程SSH服务器上,进行文件的安全传输。
STelnet
STelnet是基于SSH的安全Telnet服务。与Telnet相比,SSH服务器通过对客户端进行认证及双向的数据加密,为网络终端访问提供了安全的服务。
SCP
SCP(Secure Copy)是基于SSH的安全协议,对客户端进行认证和数据加密,以保证在传统的非安全网络环境下进行安全的文件传输。
SCP使用SSH进行数据传输和用户认证,从而确保数据传输的可靠性和机密性。客户端可以发送(上传)文件到服务器,亦可从服务器请求(下载)文件或目录。缺省情况下,SCP运行于TCP协议下的22号端口。
SSH服务支持其他端口
SSH协议的标准侦听端口号为22,攻击者不断访问标准端口,导致带宽的浪费和服务器性能的下降,致使其他正常用户无法访问,这是一种DoS(拒绝服务)攻击。
设定SSH服务端的侦听端口号为其他端口,攻击者不知道SSH侦听端口号的更改,可有效防止攻击者对SSH服务标准端口访问消耗带宽和系统资源。正常用户通过对非标准端口的SSH服务的访问,降低遭受DoS(拒绝服务)攻击可能性。
图4-3是一个通过其他端口访问SSH服务器的组网应用。
只有合法的用户采用SSH服务器设定的非标准侦听端口才能建立Socket连接,进行SSH协议的版本号协商、算法协商及会话密钥生成、认证、会话请求、会话阶段等过程。
SSH服务可以应用在网络中的中间交换设备、边缘设备上,可以实现用户对设备的安全访问和管理。
安全的远程访问
SSH通过以下措施实现在不安全网络上提供安全的远程访问:
支持RSA(Revist-Shamir-Adleman Algorithm)/DSA(Digital-Signature Algorithm)/ECC(Elliptic Curves Cryptography)公钥验证方式,根据非对称加密体系的加密原则,通过生成公钥和私钥,实现密钥的安全交换,最终实现安全的会话全过程。
支持证书验证方式,客户端通过证书签名来进行服务器端验证,有效防止中间人攻击。
支持数据加密标准DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard)。
SSH客户端与服务器端通信时,对传输的数据进行加密,包括用户名及口令,有效防止对口令的窃听。
支持SM2椭圆曲线密码算法
SM2算法与RSA算法一样,同属于非对称密码算法体系,是基于ECC(Elliptic Curves Cryptography)算法的非对称算法。与RSA算法不同的是:
- RSA算法是基于大数的因子分解算法,导致了RSA算法的密钥的长度也越来越长。而长密钥带来了运算速度较慢、密钥存储和管理不方便问题。
- ECC算法是基于离散对数的算法,很难破解,具有更高的安全性。
与RSA算法相比,在相同安全性条件下,ECC算法可以大大减少密钥的长度。
相较于RSA,椭圆曲线密码算法使用更短的密钥长度就能实现比较牢固的加密强度,同时由于密钥长度相对较短,加密速度也就相对较快。总而言之,ECC椭圆曲线密码算法具有以下优点:
- 相同的安全性,ECC算法的密钥长度比RSA算法更短。
- 计算量小,处理速度快。
- 存储空间小。
- 带宽要求低。
为了保证更好的安全性,建议不要使用DES/3DES/小于2048位的RSA算法做为SSH用户的认证和数据加密方式,推荐使用更安全的ECC认证算法。
支持ACL应用
ACL是访问控制列表。通过ACL对SSH类型的用户界面限制呼入呼出权限,防止一些非法地址的用户进行TCP连接,避免其进入SSH协商,借此提高SSH服务器安全性。
SSH特性IPv6支持情况
目前,SSH客户端支持连接IPv6主机地址,SSH服务器支持IPv6的连接。