SSH协议简单介绍

1 对称密钥和非对称密钥

1.1 对称密钥

      对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

1.2 非对称密钥

      非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
      另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;甲方再用自己的私钥对乙方发送回来的数据进行验签。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。

1.3 非对称密钥和对称密钥的对比

      非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

2 SSH如何保证通信安全

2.1 简要说明

在这里插入图片描述
      1)客户端向朋务器端发出连接请求
      2)朋务器端向客户端发出自己的公钥
      3)客户端使用朋务器端的公钥加密通讯密钥然后发给服务器端
      4)如果通讯过程被截获,窃听者即使获知公钥和经过公钥加密的内容,但未拥有私钥依然无法解密(RSA算法)
      5)服务器端接收到密文后,用私钥解密,获知通讯密钥。
ssh-keygen命令给服务器端产生公私钥密钥对,cp命令将服务器端公钥复制到客户端(注意在伪分布模式下服务器端和客户端是同一台机器),因此客户端本身就拥有了服务器端公钥,可以直接迚行免密码接入。

2.2 详细说明

      SSH的通信步骤主要包括建立加密通道、认证和通信三个阶段。

阶段一:协商加密通信连接。即通过非对称加密方式先在Client和Server之间安全的协商对称密钥(即会话密钥):

      1)双方协商SSH版本、采用的非对称加密算法等信息;
      2)Server发送公钥给Client;
      3)Client生成对称密钥(即会话密钥)的相关参数,并用公钥加密后发给Server;
      4)Server基于私钥解密信息获取参数,并基于密钥交换算法生成同样的会话密钥。
      5)双方后续通信均基于此会话密钥进行加密,从而避免密钥被窃取风险。会话密钥定期更新。
      本阶段的主要风险在于:SSH不具备CA证书机制,可能会被链路中间人伪造Server并发送自己的公钥给Client,而Client无法确定其真实性。
      解决方案:本阶段(协商)完成后,Client使用的客户端会计算并显示公钥的SHA1值,用户可以用这个值与Server服务方在公开渠道(如网站)提供的公钥的SHA1值对比,以确保其真实性。
      CA证书机制:CA 拥有一个证书(内含公钥和私钥)。如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。SHA1: 是一种数字签名算法。由它产生的消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要,它具有特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。

阶段二:登录认证。在会话密钥建立的安全加密连接上,Client向Server发出登录请求,Server进行认证。认证主要包括两种方式:

      1) 登录用户名和密码认证,即对称密钥方式认证。这个很简单,Server根据信息生成
SHA1值进行比对即可。
      2) SSH密钥对认证,即非对称密钥方式认证。在前期(如用户注册阶段)以安全的方式生成一个非对称密钥对,并将公钥信息配置到Server端。 随后使用Linux命令行或者Windows SSH客户端配置需要使用的证书路径,即发送密钥对登录请求到Server。Server端获取需要登录的账号信息后,基于非对称密钥启动认证流程,确认请求的私钥签名正确即可成功登录。

阶段三:通信阶段。

      理论上阶段二、三因为都是在阶段一的会话密钥加密后进行通信,因此除非暴力破解否则没有安全问题。

3 SSH免密登录原理

      1)需要依靠密钥,也就是先为自己创建一对密钥,并把公用密钥放在需要访问的朋务器
上。
      2)如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。
      3)服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用你的公用密钥加密“质询”(challenge)并把它发送给客户端软件。
      4)客户端软件收到“质询”之后就可以用你的私人密钥解密,再把它用服务器的公钥进行加密,最后把它发送给服务器。
      5)服务器用自己的密钥解密质询,比较发来的“质询”和原先的是否一致,如果一致则进行授权,完成建立会话的操作。

参考文章:
1.https://baike.baidu.com/item/对称加密算法/211953
2.https://baike.baidu.com/item/非对称加密算法/1208652?fr=aladdin
3. https://blog.csdn.net/qq_36718740/article/details/83386418
4. https://www.jianshu.com/p/8e5b7aea52b5

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值