https://zh.wikipedia.org/wiki/Secure_Shellphp
Secure Shell(缩写为SSH),由IETF的网络工做小组(Network Working Group)所制定;SSH为一项建立在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。算法
传统的网络服务程序,如rsh、FTP、POP和Telnet其本质上都是不安全的;由于它们在网络上用明文传送数据、用户账号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另外一我的或者一台机器冒充真正的服务器接收用户传给服务器的数据,而后再冒充用户把数据传给真正的服务器。shell
而SSH是目前较可靠,专为远程登陆会话和其余网络服务提供安全性的协议。利用SSH协议能够有效防止远程管理过程当中的信息泄露问题。经过SSH能够对全部传输的数据进行加密,也可以防止DNS欺骗和IP欺骗。promise
SSH之另外一项优势为其传输的数据能够是通过压缩的,因此能够加快传输的速度。SSH有不少功能,它既能够代替Telnet,又能够为FTP、POP、甚至为PPP提供一个安全的“通道”。安全
SSH协议框架中最主要的部分是三个协议:服务器
同时还有为许多高层的网络安全应用协议提供扩展的支持。网络
各类高层应用协议能够相对地独立于SSH基本体系以外,并依靠这个基本框架,经过链接协议使用SSH的安全机制。session
在客户端来看,SSH提供两种级别的安全验证。架构
在服务器端,SSH也提供安全验证。 在第一种方案中,主机将本身的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用本身的私有密钥来解密数据,从而实现主机密钥认证,确保数据的保密性。 在第二种方案中,存在一个密钥认证中心,全部提供服务的主机都将本身的公开密钥提交给认证中心,而任何做为客户端的主机则只要保存一份认证中心的公开密钥就能够了。在这种模式下,客户端必须访问认证中心而后才能访问服务器主机。app
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 |
例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP |
6 | 表示层 presentation layer |
例如XDR、ASN.1、SMB、AFP、NCP |
5 | 会话层 session layer |
例如ASAP、SSH、ISO 8327 / CCITT X.22五、RPC、NetBIOS、ASP、IGMP、Winsock、BSD sockets |
4 | 传输层 transport layer |
例如TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL |
3 | 网络层 network layer |
例如IP、ICMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 |
2 | 数据链路层 data link layer |
例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP |
1 | 物理层 physical layer |
例如线路、无线电、光纤 |
一般人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。因为TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭链接组成,而且在TCP和UDP下的各类应用提供不一样的端口号,这些功能可以被单个的应用程序(或者那些应用程序所使用的库)增长。与此类似的是,IP是按照将它下面的网络看成一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就能够把它看成一个独立的层。
4 | 应用层 application layer |
例如HTTP、FTP、DNS (如BGP和RIP这样的路由协议,尽管因为各类各样的缘由它们分别运行在TCP和UDP上,仍然能够将它们看做网络层的一部分) |
3 | 传输层 transport layer |
例如TCP、UDP、RTP、SCTP (如OSPF这样的路由协议,尽管运行在IP上也能够看做是网络层的一部分) |
2 | 网络互连层 internet layer |
对于TCP/IP来讲这是因特网协议(IP) (如ICMP和IGMP这样的必须协议尽管运行在IP上,也仍然能够看做是网络互连层的一部分;ARP不运行在IP上) |
1 | 网络接口层 link layer |
例如以太网、Wi-Fi、MPLS等。 |
该层包括全部和应用程序协同工做,利用基础网络交换应用程序专用的数据的协议。 应用层是大多数普通与网络相关的程序为了经过网络与其余程序通讯所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,而后被编码成标准协议的格式。
一些特定的程序被认为运行在这个层上。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登录)、DNS(名称<-> IP地址寻找)以及许多其余协议。 一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。
在传输层,应用程序最经常使用的是TCP或者UDP,而且服务器应用程序常常与一个公开的端口号相联系。服务器应用程序的端口由互联网号码分配局(IANA)正式地分配,可是现今一些新协议的开发者常常选择它们本身的端口号。因为在同一个系统上不多超过少数几个的服务器应用,端口冲突引发的问题不多。应用软件一般也容许用户强制性地指定端口号做为运行参数。
连结外部的客户端程序一般使用系统分配的一个随机端口号。监听一个端口而且经过服务器将那个端口发送到应用的另一个副本以建立对等连结(如IRC上的dcc文件传输)的应用也可使用一个随机端口,可是应用程序一般容许定义一个特定的端口范围的规范以容许端口可以经过实现网络地址转换(NAT)的路由器映射到内部。
每个应用层(TCP/IP参考模型的最高层)协议通常都会使用到两个传输层协议之一: 面向链接的TCP传输控制协议和无链接的包传输的UDP用户数据报文协议。 经常使用的应用层协议有:
【创建在应用层和安全层上的安全协议】
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 rlogin, rsh, 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]