zoukankan      html  css  js  c++  java
  • Open System Interconnection

    https://zh.wikipedia.org/wiki/Secure_Shell

    Secure Shell(缩写为SSH),由IETF的网络工作小组(Network Working Group)所制定;SSH为一项创建在应用层传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。

    传统的网络服务程序,如rshFTPPOPTelnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

    而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

    SSH之另一项优点为其传输的数据可以是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。

    基本架构

    SSH协议框架中最主要的部分是三个协议:

    1. 传输层协议(The Transport Layer Protocol):传输层协议提供服务器认证,数据机密性,信息完整性等的支持。
    2. 用户认证协议(The User Authentication Protocol):用户认证协议为服务器提供客户端的身份鉴别。
    3. 连接协议(The Connection Protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。

    同时还有为许多高层的网络安全应用协议提供扩展的支持。

    各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。

    SSH的安全验证

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

    • 第一种级别(基于密码的安全验证),知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的服务器在冒充真正的服务器,无法避免被“中间人”攻击。
    • 第二种级别(基于密钥的安全验证),需要依靠密钥,也就是你必须为自己创建一对密钥,并把公有密钥放在需要访问的服务器上。客户端软件会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密钥,然后把它和你发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有密钥加密“质询”(challenge)并把它发送给客户端软件。从而避免被“中间人”攻击。

    在服务器端,SSH也提供安全验证。 在第一种方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确保数据的保密性。 在第二种方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户端必须访问认证中心然后才能访问服务器主机。

    SSH协议的可扩展能力

    SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。这些扩展大多遵循IANA的有关规定,特别是在重要的部分,像命名规则和消息编码方面。

    w

    https://zh.wikipedia.org/wiki/TCP/IP协议族

     Craig Hunt著《TCP/IP网络管理》第一章〈TCP/IP概论〉:“TCP/IP这名称代表一整套数据通信协议的组合,这套组合得名于其中两项最重要的协议:传输控制协议(TCP)与网际协议(IP)。之所以强调这一点,是为了强调TCP/IP其实还包含TCP和IP之外的其他成员,只不过这两项是其中最具代表性的协议。因此,TCP/IP协议组也被称为互联网协议族(IPS),这两个名称是同义的。

    7 应用层
    application layer
    例如HTTPSMTPSNMPFTPTelnetSIPSSHNFSRTSPXMPPWhoisENRP
    6 表示层
    presentation layer
    例如XDRASN.1SMBAFPNCP
    5 会话层
    session layer
    例如ASAPSSH、ISO 8327 / CCITT X.225、RPCNetBIOSASPIGMPWinsockBSD sockets
    4 传输层
    transport layer
    例如TCPUDPTLSRTPSCTPSPXATPIL
    3 网络层
    network layer
    例如IPICMPIPXBGPOSPFRIPIGRPEIGRPARPRARPX.25
    2 数据链路层
    data link layer
    例如以太网令牌环HDLC帧中继ISDNATMIEEE 802.11FDDIPPP
    1 物理层
    physical layer
    例如线路无线电光纤

    通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

    4 应用层
    application layer
    例如HTTPFTPDNS
    (如BGPRIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)
    3 传输层
    transport layer
    例如TCPUDPRTPSCTP
    (如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)
    2 网络互连层
    internet layer
    对于TCP/IP来说这是因特网协议(IP)
    (如ICMPIGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上)
    1 网络接口层
    link layer
    例如以太网Wi-FiMPLS等。

    应用层[编辑]

    该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。 应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。

    一些特定的程序被认为运行在这个层上。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS(名称<-> IP地址寻找)以及许多其他协议。 一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。

    在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个公开的端口号相联系。服务器应用程序的端口由互联网号码分配局(IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。应用软件通常也允许用户强制性地指定端口号作为运行参数

    连结外部的客户端程序通常使用系统分配的一个随机端口号。监听一个端口并且通过服务器将那个端口发送到应用的另外一个副本以创建对等连结(如IRC上的dcc文件传输)的应用也可以使用一个随机端口,但是应用程序通常允许定义一个特定的端口范围的规范以允许端口能够通过实现网络地址转换(NAT)的路由器映射到内部。

    每一个应用层(TCP/IP参考模型的最高层)协议一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议。 常用的应用层协议有:

    运行在TCP协议上的协议:
    • HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
    • HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
    • FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
    • POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
    • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
    • TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
    • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
    运行在UDP协议上的协议:
    • BOOTP(Boot Protocol,启动协议),应用于无盘设备。
    • NTP(Network Time Protocol,网络时间协议),用于网络同步。
    • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
    其他:
    • DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCPUDP协议上)。
    • ECHO(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCPUDP协议上)。
    • SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
    • ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。

     

    https://en.wikipedia.org/wiki/Secure_Shell

    【建立在应用层和安全层上的安全协议】

    Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network.[1] The best known example application is for remote login to computer systems by users.

    SSH provides a secure channel over an unsecured network in a client-server architecture, connecting an SSH client application with an SSH server.[2] Common applications include remote command-line login and remote command execution, but any network service can be secured with SSH. The protocol specification distinguishes between two major versions, referred to as SSH-1 and SSH-2.

    The most visible application of the protocol is for access to shell accounts on Unix-like operating systems, but it sees some limited use on Windowsas well. In 2015, Microsoft announced that they would include native support for SSH in a future release.[3]

    SSH was designed as a replacement for Telnet and for unsecured remote shell protocols such as the Berkeley rloginrsh, and rexec protocols. Those protocols send information, notably passwords, in plaintext, rendering them susceptible to interception and disclosure using packet analysis.[4] The encryption used by SSH is intended to provide confidentiality and integrity of data over an unsecured network, such as the Internet, although files leaked by Edward Snowden indicate that the National Security Agency can sometimes decrypt SSH, allowing them to read the contents of SSH sessions.[5]

    【2017-07-06  拦截ssh连接】

    On 6 July 2017 the government transparency organization WikiLeaks confirmed that the US Central Intelligence Agency had developed tools that can be installed on computers running Microsoft Windows or GNU/Linux operating systems to intercept SSH connections started by SSH clients on the compromised systems.[6]

  • 相关阅读:
    为什么常见编程语言中数组的索引都是从0开始?
    【转载】计算机经典论文选读
    Jetbrains-别人家的公司
    2019.9沉淀反思
    HttpUrlConnection流传输问题(正确传输包含中文的JSON字符串)
    记一次SpringBoot启动缓慢问题的解决过程
    Maven发布jar包到私库
    2016年回顾
    Java集合框架源码分析之ArrayList
    关于哔哩哔哩直播姬
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6697613.html
Copyright © 2011-2022 走看看