现在的很多网络程序中都是用明文传送口令和秘密信息。而有些人可以利用网络上的计算机监听这些程序和服务器之间的通信。所以现在使用明文传送信息显得不安全。而SSH就是一个可以对信息进行加密的协议,有了它你就可以有效的防止数据被人获取或者被人攻击了,下面来了解一下SSH安全协议以及SSH的验证方式吧吧。
SSH是一个建立在应用层以及传输层上面的安全协议,它的全名是Secure Shell。SSH为计算机的Shell提供了一个安全的传输环境。在前言中我们也说到了,现在的网络程序所使用的传统的网络服务协议对传输的数据不会进行加密。例如:Telent、FTP等等。由于这些协议不进行加密,导致数据很容易被人盗取以及攻击,所以就有了SSH的出现。
SSH协议可以将所有要进行传输的数据进行加密,这样子就有效的防止了信息的泄露。而在“中间人”的攻击方法就不可能实现了,并且能优先的防止DNS和IP的欺骗。SSH的另一个好处就是传输的数据是要进行压缩的,所以可以加快传输的速度。
软件
SSH协议现在又SSH1以及SSH2两种,而SSH2协议又兼容SSH1。平时我们经常说的“使用SSH登录”大多数情况下都是使用“SSH协议进行远程登陆会话”,而这个和“使用Telent登录”相类似。目前实现SSH1和SSH2协议的主要软件有OpenSSH和SSH Communications Security Corporation公司的SSH Communications 软件。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件。而我们常用的是Openssh,因为它是一个开源并且免费的软件。
工作原理
SSH中的认证以及加密是体现了它的安全保障的。
认证:就是对登录用户的身份认证。
加密:就是对传输过程中的数据进行加密。
从客户端来看,SSH提供两种级别的安全验证:
1. 基于口令的安全验证,只要知道自己的账号和密码就可以登录远程的主机,数据也都是加密的,但不能确定的是正在连接的服务器是不是你想到登录的服务器,也有可能受到"中间人" 的攻击 。
2. 基于密匙的安全验证,需要自己创建一对密匙,并把公用密匙放在服务器上。如果你需要连接到SSH服务器上,客户端就会向服务器端发出请求,请求用你的密匙进行安全验证。服务器 收到请求之后,先在服务器上找到公用密匙,再用这个密匙和你发送过来的进行比对。如果两个密匙一致,服务器就用公用密匙加密"质询"(challenge)并把它发送给客户端。客户端软件收到质询之后再用你的私人密匙进行解密再把它发给服务器。
在这里我们首先说一下SSH所使用的非对称密钥加密的方法。
非对称密钥:就是说分别有一个加密密钥以及一个解密的密钥。这两个密钥是数学相关的,所以加密密钥加密之后只有解密密钥才可以将之解密。而且这个的好处是就算知道了两者之中的一个,是不能将另一个计算出来的。所以就算公开了其中一个密钥也不会对另一个密钥产生危害。
我们把公开的密钥称作公钥,不公开的密钥称为私钥。
认证过程
假设AB两方,A将公钥先传送给B,因为是公钥所以也不用担心被截获。然后A使用私钥对文件签名进行加密再传送给B。最后B使用A给的公钥对文件进行解密。如果成功解密的话,就说明A的身份是真实的。
如果有人想冒充A的和B进行通信的话,B使用A的公钥机密文件就会失败。因为就算得到了公钥也不能计算出私钥的信息。所以就可以验证是否是冒充者。
加密的过程
A将公钥传送给B,然后B使用公钥对文件或者数据进行加密再传送给A,A再使用密钥进行解密。
如果有人想要截取数据进行解密,由于没有私钥无法进行解密,所以也保证了数据的安全性。
所以在使用SSH的时候首先要创建一对公钥和密钥。公钥是传送给对方的,私钥是自己拿着,这样就很简单的使用公钥认证的方式登录对端,并且保证数据的安全性。
总的来说,SSH是一个很有用的网络加密协议,利用SSH协议可以有效防止远程管理过程中的信息泄露问题。当然,它还有很多其他特性,可以帮助系统管理员们节省很多时间。如果有兴趣的朋友不妨可以深入了解学习,希望本文能对您有所帮助。
上一篇:Vim的命令你知道多少
¥299.00
¥399.00
¥498.00
¥29.00