传统的网络服务程序,如:ftp
、
pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序
的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,
就是“中间人”冒充真正的服务器
接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。 服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。 通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS
欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet
,又可以为FTP、PoP
、甚至为PPP
提供一个安全的"通道"。
SSH协议框架中最主要的部分是三个协议:
传输层协议
(The Transport Layer Protocol):传输层协议提供服务器
认证,数据机密性,信息完整性等的支持。
用户认证协议
(The User Authentication Protocol):用户认证协议为服务器提供客户端的身份鉴别。
连接协议
(The Connection Protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。
同时还有为许多高层的网络安全应用协议提供扩展的支持。
各种高层应用协议可以相对地独立于SSH
基本体系之外,并依靠这个基本框架,通过连接协议使用SSH
的安全机制。
从客户端
来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器, 也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。
如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,
先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,
服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。
客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。 但是整个登录的过程可能需要10秒。
分享到:
相关推荐
### SSH协议体系结构详解 #### 一、概念与背景 SSH,全称Secure Shell,是由IETF(Internet Engineering Task Force)的Network Working Group制定的一系列协议。它的目标是在不安全的网络环境中提供安全的远程...
本资源包含了SSH协议相关的主要rfc文档 其中有: rfc4250 The Secure Shell SSH Protocol Assigned Numbers pdf rfc4251 The Secure Shell SSH Protocol Architecture pdf rfc4252 The Secure Shell SSH ...
### SSH协议连接远程服务器的Java实现 #### 一、引言 在计算机网络领域中,SSH(Secure Shell)协议是一种广泛使用的网络安全协议,用于在不安全的网络上提供安全的远程登录服务。本文将深入探讨如何使用Java语言来...
SSH协议库是实现SSH功能的核心组件,允许开发者在自己的应用程序中集成SSH功能,比如进行远程操作、文件传输等。本资源包含了一系列用于构建SSH协议支持的库文件,如`libssh2.h`、`libssh2.lib`、`libssh2_config.h`...
总结而言,Python结合SSH协议在远程管理Linux系统方面展现出其强大的功能和灵活性,能够高效完成日常的运维任务,提高系统管理的便捷性和安全性,对于IT运维领域具有重要的实用价值。随着技术的发展和Python语言的日...
以下是SSH协议的详细分析: 1. **协议初始化**: SSH协议的启动过程始于客户端发起一个TCP连接请求到服务器。一旦TCP连接建立,服务器会发送一个包含其协议版本号(主版本号和次版本号)和软件版本号的报文。...
SSH协议分析: SSH,即安全外壳(Secure Shell),是一种在不安全网络中为网络服务提供安全通信的网络协议。它主要目的是建立一个加密的网络连接,替代不安全的远程登录协议(如Telnet)。SSH通过加密所有传输的数据...
SSH协议的广泛应用和安全特性使其成为IT领域不可或缺的工具。然而,随着网络环境的复杂性增加,SSH也面临新的安全挑战,如密钥管理问题、恶意软件利用SSH漏洞等。因此,理解和正确使用SSH,以及及时更新和配置安全...
这个压缩包“SSH协议相关资料和软件”显然包含了一些关于SSH协议的学习资源和可能的实施工具,比如`setupssh.exe`,这很可能是一个SSH客户端或服务器的安装程序。下面将详细讨论SSH协议及其相关知识。 SSH协议最初...
通过SSH协议挂载远程文件系统的优势在于数据传输的安全性,因为SSH提供了数据加密,可以防止中间人攻击,保护数据隐私。 在.NET开发中,dotnet-sshfs的使用可能涉及以下几个方面: 1. **安装与配置**:首先,...
基于SSH协议的SFTP协议详解 SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种安全的文件传输协议,基于SSH(Secure Shell,安全外壳)协议实现。SFTP协议提供了一个安全的文件传输机制,用于在不同...
Win 10 ODBC SSH 协议远程连接 MySQL 3306 在本文中,我们将探讨如何使用 Win 10 自带的 OPENSSH 通过 SSH 协议远程连接 MySQL 服务器, 并使用 ODBC 连接到远程 MySQL 服务器。 SSH 协议 SSH(Secure Shell)是...
总结一下,`ganymed-ssh2-build`是用于Java的SSH协议实现库,核心类包括`ch.ethz.ssh2.Connection`和`ch.ethz.ssh2.SCPClient`。`Connection`类负责建立和管理SSH连接,而`SCPClient`类则提供了SCP文件传输服务。...
### SSH协议安全性分析及改进 #### 一、SSH协议概述 SSH(Secure Shell)协议是一种在网络环境中提供安全的远程登录和其他服务的协议。它最初由芬兰程序员Tatu Ylonen在1995年设计,旨在解决传统的远程访问工具如...
ssh协议详解ssh协议详解ssh协议详解ssh协议详解
SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。S S H最初是U N I X系统上的一个程序...
"信息安全技术应用专业《通过WireShark进行SSH协议分析3》" 本文档主要介绍了通过 WireShark 进行 SSH 协议分析的技术应用。SSH 协议是一种安全的远程登录协议,使用加密技术来确保数据的安全性。该协议的工作过程...
基于SSH协议的执行命令工具,如标题所示,是一个允许用户通过SSH连接到远程主机并执行命令的程序。这样的工具对于系统管理员、开发者以及需要远程操作Linux或Unix服务器的人员来说非常实用。 首先,我们要理解SSH的...
在这个"SSH协议安装包及安装说明"中,我们重点关注的是在LINUX环境下安装和配置SSH的过程,特别是作为HADOOP配置的前期准备。首先,我们需要了解SSH的基本概念和工作原理: 1. **SSH工作原理**:SSH通过公钥/私钥对...