当前位置:Linux教程 - Linux - Internet安全原理之FTP

Internet安全原理之FTP




返回首页 新闻资讯 源码世界 技术支持 在线培训 应用开发 解决方案
您尚未登录!




您的位置:首页 > 技术支持 > 查看具体内容

==>操作提示<==
〖发表注释〗
〖常见问题〗

==>搜索引擎<==
搜索 综合 新闻资讯 源码世界 技术支持 在线培训 应用开发 解决方案 技巧提示
中的




Internet安全原理之FTP

null null

〖返回〗〖转发〗

Internet安全原理之FTP

网络与信息安全概论 丁力


FTP的安全问题


摘要

文件传输协议(File Transfer Protocol,FTP)是一个被广泛应用的协议,它使得
我们能够在网络上方便地传输文件。早期FTP并没有涉及安全问题,随着互连网
应用的快速增长,人们对安全的要求也不断提高。本文在介绍了FTP协议的基本
特征后,从两个方面探讨了FTP安全问题的解决方案:协议在安全功能方面扩
展;协议自身的安全问题以及用户如何防范之。


1. 简介

1.1 FTP的一些特性
早期对FTP的定义指出,FTP是一个ARPA计算机网络上主机间文件传输的用户级协
议。其主要功能是方便主机间的文件传输,并且允许在其他主机上进行方便的存
储和文件处理。[BA72]而现在FTP的应用范围则是Internet。

根据FTP STD 9定义,FTP的目标包括:[PR85]
1) 促进文件(程序或数据)的共享
2) 支持间接或隐式地使用远程计算机
3) 帮助用户避开主机上不同的
4) 可靠并有效地传输数据

关于FTP的一些其他性质包括:FTP可以被用户在终端使用,但通常是给程序使用
的。FTP中主要采用了传输控制协议(Transmission Control Protocol,TCP)[PJ81],
和Telnet 协议[PJ83]。

1.2 重要历史事件[PR85]

1971年,第一个FTP的RFC(RFC 114)由A.K. Bhushan在1971年提出,同时由MIT与
Harvard实验实现。

1972年,RFC 172 提供了主机间文件传输的一个用户级协议。

1973年2月,在长期讨论(RFC 265,RFC 294,RFC 354,RFC 385,RFC 430)
后,出现了一个官方文档RFC 454。

1973年8月,出现了一个修订后的新官方文档 RFC 542。确立了FTP的功能、目标
和基本模型。当时数据传输协议采用NCP。

1980年,由于底层协议从NCP改变为TCP,RFC 765 定义了采用TCP的FTP。

1985年,一个作用持续至今的官方文档RFC 959(STD 9)出台。

1.3 FTP模型[PR85]

就模型而言,从1973年以来并没有什么变化。下图是FTP使用模型:

-------------
|/---------|
|| User || --------
||Interface|---| User |
|----^----/| --------
---------- | | |
|/------| FTP Commands |/----V----|
||Server|----------------| User ||
|| PI || FTP Replies || PI ||
|--^---/| |----^----/|
| | | | | |
-------- |/--V---| Data |/----V----| --------
| File |---|Server|----------------| User |---| File |
|System| || DTP || Connection || DTP || |System|
-------- |------/| |---------/| --------
---------- -------------

Server-FTP USER-FTP

注: 1. data connection 可以双向使用(双工)
2. data connection 不需要一直存在.

图一 FTP使用模型
术语
User PI(user-protocol interpreter): 用户协议解释器
Server PI(Server-protocol interpreter): 服务协议解释器
control connection:控制连接
Data connection:数据连接
FTP Commands:FTP命令。描述Data connection的参数,文件操作类型
FTP Replies:FTP命令

在图一描述的模型中,User PI创建control connection。control connection
遵从Telnet协议。在用户初始化阶段,标准FTP命令被User PI生成并通过
control connection 传到服务器处理。Server PI将相应的标准FTP应答通过
control connection回传给User PI。数据传输由Data connection完成。
User DTP 在特定端口监听,由Server DTP 用指定参数初始化连接。

另一种情形是用户希望在两台非本地的主机上传递文件。用户与两个服务器建立
control connection,安排两个服务器间的文件传输。下图描述了这样的模型。

Control ------------ Control
---------->| User-FTP |<-----------
| | User-PI | |
| | ""C"" | |
V ------------ V
-------------- --------------
| Server-FTP | Data Connection | Server-FTP |
| ""A"" |----------------------| ""B"" |
-------------- Port (A) Port (B) --------------