`
bestxiaok
  • 浏览: 455932 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

SSH简介

  传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。 服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

  SSH的英文全称是Secure Shell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。

SSH的安全验证工作原理

  从客户端来看,SSH提供两种级别的安全验证。

  第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器, 也就是受到“中间人”这种方式的攻击。

  第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。 如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后, 先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致, 服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。 客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

  用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

  第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。 但是整个登录的过程可能需要10秒。

详细介绍

  (SSH: Secure Shell Protocol)

  安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。Secure Shell,又可记为S S H,最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H是一个好的应用程序,在正确使用时,它可以弥补网络中的漏洞。除此以外, S S H之所以酷,还有以下原因:S S H客户端适用于多种平台。几乎所有的U N I X平台—包括H P - U X、L i n u x、A I X、S o l a r i s、Digital UNIX、I r i x、S C O,以及其他平台—都可以运行S S H。而且,已经有一些客户端(其中有些为测试版)可以运行于U N I X操作平台以外,包括O S / 2、V M S、B e O S、J a v a、Wi n d o w s 9 5 / 9 8和Windows NT。这样,你就可以在几乎所有的平台上运行S S H客户端程序了。对非商业用途它是免费的。许多S S H版本可以获得源代码,并且只要不用于商业目的,都可以免费得到。而且,U N I X版本也提供了源代码,这就意味着任何人都可以对它进行修改。但是,如果你选择它用于商业目的,那么无论使用何种版本的S S H,你都得确认已经注册并获得了相应权限。绝大多数S S H的客户端和守护进程都有一些注册限制。惟一的S S H通用公共注册(General Public License,G P L )版本是l s h,它目前还是测试版。通过I n t e r n e t传送密码安全可靠。这是S S H被认可的优点之一。如果你考察一下接入ISP(Internet Service Provider,I n t e r n e t服务供应商)或大学的方法,一般都是采用Te l n e t或P O P邮件客户进程。因此,每当要进入自己的账号时,你输入的密码将会以明码方式发送(即没有保护,直接可读),这就给攻击者一个盗用你账号的机会—最终你将为他的行为负责。对应用的支持。由于S S H的源代码是公开的,所以在U N I X世界里它获得了广泛的认可。L i n u x,其源代码也是公开的,大众可以免费获得,并同时获得了类似的认可。这就使得所有开发者(或任何人)都可以通过补丁程序或b u g修补来提高其性能,甚至还可以增加功能。这也第一部分获得并安装S S H意味着其性能可以不断得到提高而无须得到来自原始创作者的直接技术支持。S S H替代了不安全的远程应用程序。S S H是设计用来替代伯克利版本的r命令集的;它同时继承了类似的语法。其结果是,使用者注意不到使用S S H和r命令集的区别。利用它,你还可以干一些很酷的事。通过使用S S H,你在不安全的网络中发送信息时不必担心会被监听。你也可以使用P O P通道和Te l n e t方式,通过S S H可以利用P P P通道创建一个虚拟个人网络( Virtual Private Network, V P N )。S S H也支持一些其他的身份认证方法,如K e r b e r o s和安全I D卡等。

  但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。 OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越 来越多的人使用它而不是SSH。

  SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

  SSH 主要有三部分组成:

  传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

  用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当

  SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

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

  一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。

  通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTPPoP、甚至为PPP提供一个安全的"通道"。

  SSH分为两部分:客户端部分和服务端部分。

  服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

  客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

  他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。

  SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

  SSH:新的MVC软件开发模式, SSH(Struts,Spring,Hibernate) Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装,这种新的开发模式让我们的开发更加方便、快捷、思路清晰!

分享到:
评论

相关推荐

    SSH(安全外壳协议)详解.md

    SSH(安全外壳协议)详解 目录 1. SSH简介与历史 - SSH的定义 - SSH的发展历史 2. SSH的工作原理 - 加密机制 - 认证机制 3. SSH的主要特点 - 安全性 - 适应性 4. SSH协议的结构 - 组件 - 层次结构 5. SSH...

    ssh安全协议

    SSH安全协议,全称为Secure Shell(安全外壳协议),是一种用于加密数据交换的网络协议,它允许用户在不安全的网络上安全地进行远程登录和其他网络服务。SSH协议通过在客户端和服务器之间建立加密通道来保护数据传输...

    ssh协议——

    SSH,全称Secure Shell,中文通常称为安全外壳协议,是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他网络服务。SSH通过加密技术确保了数据传输过程中的隐私和完整性,防止了中间人攻击、窃听以及数据...

    网络安全协议在计算机通信技术中的作用和对策.pdf

    1. 应用层安全协议:包括安全外壳协议(SSH)、安全电子交易协议(SET)和安全套接层协议(SSL)等。这些协议主要在应用层提供安全功能,如SSH主要用于远程登录会话和其他网络服务提供安全性的协议,SET协议专注于...

    CISCO协议总结大全

    4. **SSH(Secure Shell)**:安全外壳协议,用于远程登录和其他网络服务的安全传输,提供加密通信。 5. **SSL/TLS(Secure Sockets Layer/Transport Layer Security)**:安全套接字层/传输层安全,用于加密网络...

    网络通信协议图 2014版

    SSH(安全外壳协议)用于远程登录和命令执行的安全保护。 7. **无线通信协议**:如802.11标准定义的Wi-Fi协议,以及蓝牙、LTE(长期演进)等无线通信技术的协议概述。 8. **互联网协议演进**:从IPv4到IPv6的过渡...

    SSH:安全外壳(SSH)协议的实现

    安全外壳(SSH)协议是一种广泛使用的网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH协议的设计目标是替代传统的telnet、rlogin等不安全的通信方式,通过加密技术确保数据传输过程中的隐私和完整...

    TCPIP协议族功能总结----每年必考协议.pdf

    虽然TCP/IP模型没有明确的会话层,但有些协议如SSH(安全外壳协议)和SSL/TLS(安全套接字层/传输层安全)可以视为在会话层上操作,它们提供加密和身份验证功能,确保数据的安全传输。 5. **表示层**: 同样,TCP...

    协议书完整版.zip

    8. SSH协议:安全外壳协议,用于远程登录和其他安全网络服务,提供加密的网络连接。 9. SSL/TLS协议:安全套接层/传输层安全协议,用于在互联网上创建安全的加密连接,常用于保护网页浏览、电子邮件和文件传输等。 ...

    远程通信协议原理.rar

    SSH(安全外壳协议)则提供了一种加密的网络通信方式,常用于远程登录、文件传输等,确保数据的安全性。 此外,还有SSL/TLS(安全套接层/传输层安全)协议,用于加密网络通信,确保数据在传输过程中不被窃取。HTTPS...

    一个简单好用安全的开源交互审计系统支持RDP、SSH、VNC、Telnet、Kubernetes协议.zip

    这款系统特别强调了易用性和安全性,同时支持多种常见的远程访问协议,如RDP(远程桌面协议)、SSH(安全外壳协议)、VNC(虚拟网络计算)、Telnet以及Kubernetes API接口。接下来,我们将深入探讨这些知识点。 ...

    TCP/IP协议分析与应用学习资料

    4. 远程登录:如SSH(安全外壳协议)依赖TCP/IP进行远程操作。 这份PPT可能涵盖了TCP/IP的详细结构、工作流程、报文格式、拥塞控制、网络故障排查等内容,对于网络管理员、软件开发者或对网络感兴趣的学员来说,是...

    各种协议示例代码

    本资源包含了一些常用的网络协议实现的示例代码,如FTP(文件传输协议)、Telnet(远程登录协议)和SSH(安全外壳协议)。这些协议在日常开发中有着广泛的应用,下面将分别对这三个协议进行详细介绍,并展示其基本的...

    一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议

    【标题】中的“一个简单好用安全的开源交互审计系统”指的是一个专为网络管理和安全性设计的工具,它允许用户通过交互方式审计和控制多种远程访问协议,包括RDP(远程桌面协议)、SSH(安全外壳协议)、VNC(虚拟...

    这是一篇总结网络协议的说明文档

    10. SSH协议:安全外壳协议,提供加密的远程登录和其他网络服务,保护数据传输安全,广泛应用于系统管理员对远程服务器的管理。 这些协议共同构成了互联网通信的基础,确保了不同设备之间的数据交换准确无误。了解...

    信息安全_数据安全_Deep Dive Analysis of Current En.pdf

    例如,SSH(安全外壳协议)、TLS(传输层安全协议)和IPsec(互联网安全协议)等协议在确保数据安全传输的同时,也带来了配置和管理的复杂性。 为了提升对网络协议的理解并预测未来的发展趋势,我们将关注协议的...

    SSH Secure Shell.zip

    安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH由IETF的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠...

    收集的一些常见的协议号和端口号

    - **SSH (22)**:安全外壳协议,用于远程登录和管理服务。 - **Telnet (23)**:远程登录协议,未加密的文本通信服务。 - **SMTP (25)**:简单邮件传输协议,用于电子邮件的发送和接收。 - **Time (37)**:时间服务,...

    电子商务安全与管理实验报告.pdf

    例如,SSH(安全外壳协议)提供加密的网络通信,确保数据传输安全;FTP(文件传输协议)用于文件传输;SMTP(简单邮件传输协议)用于电子邮件发送;HTTP(超文本传输协议)是浏览网页的基础,而HTTPS则是在HTTP基础...

Global site tag (gtag.js) - Google Analytics