`
fly.net.cn
  • 浏览: 187408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SSH通信协议(数据包格式和加密类型)

    博客分类:
  • ssh
阅读更多
二进制数据包协议:

包 = 包长域(4字节:u_int32_t) + 填充垫(1-7字节)+ 包类型域(1字节:u_char) + 数据域+ 校验和域(4字节)

加密部分 = 填充垫 + 包类型 + 数据 + 校验和

包长 = 1(包类型) + 数据字节长度 + 4(校验和)

数据包压缩:

       如果支持压缩,包类型域和数据域用 gzip 压缩算法进行压缩。压缩时在两个数据传送方向的任何一个上,包的压缩部分(类型域+数据域)被构造得象是它连在一起,形成一个连续的数据流。在两个数据传送方向上,压缩是独立进行的。

数据包加密:

      现时支持的数据加密方法有这样几种:

      SSH_CIPHER_NONE 0 不进行加密

     SSH_CIPHER_IDEA 1 IDEA 加密法(CFB模式)

     SSH_CIPHER_DES 2 DES 加密法(CBC模式)

     SSH_CIPHER_3DES 3 3DES 加密法(CBC模式)

     SSH_CIPHER_ARCFOUR 5 Arcfour加密法)

     SSH_CIPHER_BLOWFISH 6 Blowfish 加密法

     协议的所有具体实现都要求支持3DES。

    DES 加密:

           从会话密钥中取前8个字节,每个字只用高7位,忽略最低位,这样构成56位的密钥供加密使用。加密时使用CBC 模      式,初使矢量被初始化为全零。

   3DES 加密:

         3DES 是 DES 的变体,它三次独立地使用 CBC 模式的DES 加密法,每一次的初始矢量都是独立的。第一次用DES 加    密法对数据进行加密;第二次对第一次加密的结果用 DES 加密法进行解密;第三次再对第二次解密的 结果用 DES 加密法    进行加密。注意:第二次解密的结果并不就是被加密的数据,因为三次使用的密钥和初始矢量都是分别不    同的。与上面的    DES 加密采用的方法类似,第一次从会话密钥中取起始的前8个字节生成加密密钥,第二次取下一个紧跟着    的8个字节,    第三次取再下一个紧跟着的8个字节。三次使用 的初始矢量都初始化为零。

    IDEA 加密:

         加密密钥取自会话密钥的前16个字节,使用 CFB 模式。初始矢量初始化为全零。

    RC4 加密:

         会话密钥的前16个字节被服务器用作加密密钥,紧接着的下一个16字节被客户端用作加密密钥。结果是两个数据流方向    上有两个独立的129位密钥。这种加密算法非常快。
分享到:
评论

相关推荐

    ssh协议浅析

    SSH(Secure Shell)协议是一种网络协议,用于在不安全的...此外,SSH还允许用户通过隧道技术来加密和转发任意TCP连接,增强了网络服务的安全性。在实际应用中,SSH广泛用于远程登录、文件传输和网络服务的安全配置。

    SSH协议分析

    传输层协议主要提供安全的底层传输服务,包括对数据的加密传输、加密的服务器认证和数据包的完整性保护。该层次不负责客户端认证,只对服务器进行认证。建立连接的过程中,客户端首先发送TCP连接请求,服务器响应后...

    ssh隧道

    SSH(Secure Shell)隧道是一种网络安全协议,用于在不安全的网络上加密通信,确保数据传输的安全性。通过SSH隧道,可以将本地端口的流量转发到远程服务器,或者将远程服务器的端口转发到本地,从而实现数据的隐秘...

    SSH隧道下应用协议识别的网络安全研究.pdf

    SSH提供了一种安全的远程登录和执行命令的机制,它通过加密通信和身份验证来保护信息传输的机密性和完整性。对SSH协议的深入分析能够揭示出在连接建立阶段可获取的重要信息,这些信息有助于对SSH隧道中的应用层协议...

    抓包工具SSH Cliet 抓包精典工具

    标题中的“抓包工具SSH Client”指的是在网络诊断和分析中常用的工具,主要用于捕获网络上的数据包以便于分析网络通信情况。SSH(Secure Shell)客户端则是一种加密的网络协议,常用于安全地远程登录到服务器,执行...

    ssh2项目源码

    SSH2提供了加密的数据传输,确保了用户的身份验证和通信的机密性,通常用于管理远程服务器、文件传输以及网络设备配置。 首先,让我们了解一下SSH2的基本概念: 1. **身份验证**:SSH2使用公钥/私钥对进行身份验证...

    信息安全技术应用专业《通过WireShark进行SSH协议分析3》.pdf

    8. **实训步骤**:在实际操作中,首先要配置好网络环境,然后使用Wireshark设置过滤条件,捕捉SSH通信过程中的数据包。通过分析TCP连接建立、SSH服务版本信息、密钥交换过程、加密数据和TCP断开等步骤,可以深入了解...

    H3CNE专栏SSH实验配套资源

    “Wireshark的SSH验证过程数据包”这部分可能是通过网络分析工具Wireshark捕获的SSH通信过程中的数据包,用于分析SSH的握手过程和数据传输。学习者可以从中理解: 1. SSH握手过程:包括客户端发起连接请求,服务器...

    SSH协议的一些知识

    - **流量分析防护**:通过加密和分组,使外部观察者难以分析通信模式,从而保护隐私。 #### 结论 SSH协议作为一个成熟而全面的安全解决方案,不仅提供了强大的数据加密能力,还具备高度的灵活性和可扩展性,适用于...

    sshclient一款实用的后台抓包工具

    SSH提供了身份验证、加密和数据完整性检查等功能,广泛应用于远程登录、文件传输等场景。 压缩包中的文件名称列表揭示了一些关键组件: 1. SshClient.exe:这可能是SSH客户端程序本身,用于建立与SSH服务器的连接...

    SSH简介及配置使用SSH登陆远程主机讲义

    1. **密钥交换协议**:SSH使用非对称加密技术进行密钥交换,确保只有拥有正确密钥的客户端和服务端才能建立连接。这一过程可以防止中间人篡改密钥交换过程。 2. **主机和客户端认证**:SSH支持多种认证方式,包括...

    src1.zip_packet sniffer_ssh sniffer

    SSH(Secure Shell)是一种加密的网络协议,用于安全地远程登录和其他网络服务,如文件传输。SSH Sniffer则是专门针对SSH协议的嗅探工具,用于监控和分析SSH会话,这可能包含用户认证信息、命令执行等敏感数据。由于...

    ssh上传下载

    本文将深入探讨SSH上传下载的基本原理、实现方式以及文件名加密和大小限制的处理。 1. SSH协议基础 SSH协议分为两层:SSH传输层和SSH连接协议。传输层主要负责加密通信,确保数据不被窃取或篡改。连接协议则允许在...

    SSH权威指南 (TXT)

    - **SSH vs PGP**:虽然PGP(Pretty Good Privacy)也提供了数据加密和签名验证等功能,但SSH更专注于网络通信的加密,适用于远程登录和数据传输场景。 - **SSH vs Kerberos**:Kerberos提供了一种基于票据的认证...

    SSH.NET-2016.1.0-bin.zip

    这个特定版本(2016.1.0)修复了一个关键问题,即“Message type 80 is not valid”的错误提示,这通常与通信协议中的数据包类型不匹配有关,可能是由于协议实现中的bug导致的。 SFTP协议是FTP(File Transfer ...

    SSH和SSL网络服务程序教程

    其中,“SSL记录协议”负责加密和解密数据包;“SSL握手协议”则用于交换和验证应用程序的身份凭证。 **2.2 SSL工作流程** 1. **建立连接:** 客户端(通常是用户的浏览器)首先与服务器建立TCP/IP连接。 2. **交换...

    SSH_ssh_ssh源码eclipse_Eclipse_源码.rar.rar

    通过这个压缩包,开发者可以深入SSH的内部机制,学习如何实现一个安全的远程通信协议,并且能够运用Eclipse的强大功能来提升开发效率和代码质量。对于希望提升安全编程技能或对SSH感兴趣的开发者来说,这是一个宝贵...

Global site tag (gtag.js) - Google Analytics