zoukankan      html  css  js  c++  java
  • SSH与SSL

    1. SSL

    SSH 即Secure Shell,它主要由三部分组成:

    第一部分:连接协议 [SSH-CONNECT]

    将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

     

    第二部分:用户认证协议 [SSH-USERAUTH]

    用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

     

    第三部分:传输层协议 [SSH-TRANS]

    注意这里的传输层跟OSI的传输层其实关系不大,只不过他们是应用层中最靠近传输层协议的部分。提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

     

    2. SSL

    SSL即Secure Socket Layer

    http://www.cnblogs.com/ajianbeyourself/p/3898911.html

     

    3. SSH与SSL比较

    相同点

    如果按五层协议来划分的话,那SSH与SSL都可以算是应用层协议,他们都使用了非对称加密,将应用层进行了加密,另外,他们其实都是比较基础的应用层协议,即它们上面还可

    以再放其它应用层协议,如FTP协议等

     

    不同点

    SSH不需要证书,即不需要公证机构(从这点来说,SSH的安全性要比SSH弱一些,貌似SSH无法解决中间人攻击),SSH实现了主机用户名和密码的认证,这是SSH的

    SSH-TRANS部分完成的,而SSL没有这个功能。

     

    适用场景

    SSL一般用于私有访问,它提供了主机用户名和密码的验证功能,当然用户也可以通过在服务端保存自己的公钥来让服务端验证你,Github等就是通过这种方式;而对于Web等这

    种提供公共服务的访问呢?这种情况下,我并不想让用户登录主机的,这种情况下,也要求保证数据传输的安全,这时我们用SSL/TLS,我们会在自己设计的应用层(即应用程序)

    中验证用户的身份。

    更通俗的说,SSH可以让用户以某个主机用户的身份登录主机,并对主机执行操作(即执行一些命令),目前用的最多的就是远程登录和SFTP(还有简易版的SCP);而SSL和主

    机用户名登录没有任何关系,它本身并不实现主机登录的功能,它只的一个单纯的加密功能。为了方便理解,可以简单的认为SSH=SSL+主机用户登录功能等应用层协议

     

  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/ajianbeyourself/p/4220244.html
Copyright © 2011-2022 走看看