几种安全的网络传输协议·从URL谈起(可以直接跳到第4页看FTPS,HTTPS)当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,这个网站地址,术语叫做URL(Uniform Resource Locator),译成中文即“统一资源定位符”。
就像每家每户都有一个门牌地址一样,每个网页也都有一个互联网地址。
当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。
·超文本传输协议HTTP大家一定注意到,在输入网站地址时,http://这一部分通常不用输入,系统软件会自动补上,所有网页地址都少不了它。
那么,http 究竟是个什么含义呢?HTTP 是“超文本传输协议(Hypertext Transfer Protocol)”的意思。
简单地讲,HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。
浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。
基于HTTP协议的通讯的基本工作过程如下:由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器)。
一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息,包括请求修饰符、客户机信息和可能的内容。
服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
在互联网上,HTTP通讯通常发生在TCP/IP连接之上。
缺省端口是TCP 80,但其它的端口也是可用的。
HTTP只预示着一个可靠的传输。
它并不特别指明网络传输媒介,HTTP传输可以在互联网上完成,也可以在其它网络的其它协议之上完成。
在WWW中,“客户机”与”服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户机在另一个连接中可能作为服务器。
基于HTTP协议的客户机/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。
你的浏览器是HTTP客户机,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。
服务器的驻留程序接收到请求,在进行必要的操作后回送所要求的文件。
在这一过程中,根据TCP/IP协议的规定,在网络上发送和接收的数据被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。
TCP/IP协议决定了每个数据包的格式。
传输完成后的这些数据包再重新组合,还原为数据信息。
从网络层次模型的角度讲,HTTP协议以及下面将要讲述的几种互联网传输协议都属于TCP/IP模型最上层的应用层协议。
·文件传输协议FTP以上介绍的HTTP协议主要是用于网页传输。
下面,我们再介绍另一种很常见的网络传输应用层协议FTP。
FTP(File Transfer Protocal),是文件传输协议的简称,主要功能是完成从一个系统到另一个系统完整的文件拷贝。
同时,它也是一个应用程序。
用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上载”(Upload)。
“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上载”文件就是将文件从自己的计算机中拷贝至远程主机上。
用互联网语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。
FTP工作原理如下:与大多数互联网服务一样,FTP也是一个客户机/服务器系统。
用户通过一个支持FTP 协议的客户机程序,连接到在远程主机上的FTP服务器程序。
FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户机与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户机向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户机在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。
于是服务器从20端口向客户机的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的不同点在于:当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。
于是客户机向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
两种方式的命令链路连接方法是一样的。
FTP客户程序有字符界面和图形界面两种。
字符界面的FTP的命令复杂、繁多。
图形界面的FTP客户程序,操作上要简洁方便的多。
那么,FTP协议的必要性究竟是什么呢?一般来说,用户联网的首要目的就是实现信息共享,我们知道互联网是一个非常复杂的计算机环境,有PC,有工作站,有小型机,有大型机,据统计连接在互联网上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等。
各种操作系统之间的文件交流问题,如果没有一个统一的文件传输协议,就会变得非常困难。
而FTP就是一个统一的文件传输协议。
虽然基于不同的操作系统有不同的FTP应用程序,但只要所有这些应用程序都遵守同一种协议,用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
在所有的互联网协议中,FTP协议是个相对古老的协议,它的第1版(RFC172)公布于1971年,甚至早于TCP/IP的诞生。
随着技术的不断发展,FTP协议已经更新了很多次,1985年公布的FTP(RFC 959)是目前各项定义的基础。
从那时以后,还有多次其他标准的发布,为FTP的功能扩展提供了补充。
下面就是一个例子——·FTP的匿名机制使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。
也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。
换言之,除非有用户ID和口令,否则便无法传送文件。
这种情况违背了互联网的开放性,互联网上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。
匿名FTP就是为解决这个问题而产生的。
FTP支持匿名机制。
用户可通过匿名FTP机制连接到远程主机上,并从其下载文件,而无需成为其注册用户。
系统管理员建立了一个特殊的用户ID,名为anonymous(意匿名),互联网上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous。
该用户ID的口令可以是任意的字符串。
习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
值得注意的是,匿名FTP不适用于所有互联网主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。
系统中的其余目录则处于隐匿状态。
作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。
即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。
随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
作为一个互联网用户,可通过FTP在任何两台互联网主机之间拷贝文件。
互联网上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。
而且,这一切是免费的。
这是互联网吸引我们的重要原因之一。
匿名FTP是互联网网上发布软件的常用方法。
互联网之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。
像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
互联网中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的哪个目录中呢?这正是ARCHIE服务器所要完成的工作。
在Internet 上有许多ARCHIE服务器,用户可以通过Telnet方式登录到ARCHIE服务器上,用户只需提供所要查找的文件名,ARCHIE服务器就能找到该文件所在的FTP服务器及所在路径并将查询结果通知用户,使你可以直接找到所需文件的位置信息。
为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色。
·远程登录服务协议Telnet上文曾提到,用户可以通过Telnet方式登录到ARCHIE服务器上。
那么Telnet又是什么东西呢?Telnet最早是由ARPANET开发的Internet的登录和仿真程序。
它的基本功能是,允许用户登录进入远程主机系统。
通过远程登录,我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。
这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用的服务器程序。
但为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统,给设计人员带来极大的不便。
因此,需要制定一个这方面的标准来解决这个问题,这个标准就是远程登录服务协议Telnet。
Telnet协议是TCP/IP协议族中的一员,应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。