SSH(Secure Socket Shell)是一种远程访问协议。它能够基于不安全的网络环境,实现强认证、加密传输,避免中间人攻击。
Telnet、RSH等协议采用明文传输,使用不可靠的密码,易受到监听、嗅探和中间人攻击。
SSH有安全漏洞。
加密方式:非对称加密
先看对称加密:
是加密和解密都使用同一个密钥(或者两个可以相互推算的密钥),这组密钥是两个或多个成员之间的共同秘密。常见的DES、3DES、AES、Blowfish、IDEA、RC5、RC6。优点是比较快。
非对称加密:
使用两个不同的密钥,且不能相互推算。一个公开,任意向外发布,称为公钥;另一个由用户秘密保管。数字签名就是基于公钥的特性。
加密过程:
任何人都可以使用公钥加密明文,但只有私钥持有者可以解密该密文。————购物网站登录过程,使用网站提供的公钥加密敏感信息,只有受信任的网络服务器可以解密信息。
某一用户使用私钥加密明文,通过公钥,任何人都可以解密秘文。————利用这一特性可以实现数字签名(私钥加密),通过电子证书(公钥解密)可以核实该信息是否来自某一用户。
典型用途
登录远程电脑,执行命令;也支持隧道协议、端口映射、X11连接等;还可以借助SFTP、rsync、SCP、FISH(Files transferred over shell protocol)、 FASP(Fast and Secure Protocol)等协议传输文件。
SSH使用C/S服务架构
SSH协议框架:
SSH协议框架中最主要的部分是三个协议:
传输层协议(The Transport Layer Protocol):传输层协议提供服务器认证,数据机密性,信息完整性等的支持。
用户认证协议(The User Authentication Protocol):用户认证协议为服务器提供客户端的身份鉴别。
连接协议(The Connection Protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。
同时还有为许多高层的网络安全应用协议提供扩展的支持。
各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。