ITパスポート試験 用語辞典
ユーザ名やパスワードを平文で送信する仕様でセキュリティ上の脆弱性があるため、現在では、代わりにセキュアな接続上で認証情報をやり取りするSFTPやFTPSが用いられることが多い。
Webサイト作成の際に、クライアントからWebサーバ上にファイルをアップロードする用途にも使用される。
(Wikipedia File Transfer Protocolより)
File Transfer Protocol(ファイル・トランスファー・プロトコル、FTP、ファイル転送プロトコル)は、ネットワークでファイルの転送を行うための通信プロトコルの1つである。
FTPは、インターネット初期から存在する古いプロトコルであり、セキュア(安全)なプロトコルとして設計されていない。ユーザ名やパスワードなどの認証情報を含むすべての通信内容を暗号化せずに転送するなどの問題の他、数多くのセキュリティ脆弱性が指摘されている。そのため、現在では、FTPのかわりに FTPS (SSL/TLSを使ったFTP) や SFTP (SSH File Transfer Protocol) といったプロトコルがよく用いられる。
概説
インターネット初期の頃から存在するプロトコルで、今でもインターネットでよく使用されるプロトコルの1つである。プロトコル上は任意のホスト間のファイル転送を行うことが可能であるが、通常は接続したクライアントとサーバ(FTPサーバ)間の転送に利用される。
用途としては
- ウェブページ用各種データファイル(HTMLソース、画像など)のクライアントのパソコンからウェブサーバへのアップロード
- パソコンソフト配布サイトや、データが入っているFTPファイルサーバからクライアントへのファイルのダウンロード
などに使われる。
ダウンロードについては、ブラウザソフトでも可能であるが、アップロードについてはFTPクライアントソフトやCUIコマンドが必要となる。任意のホスト間の転送を指示できる名残として、サーバへの接続時のコマンド用とは別にデータ転送用のコネクションを確立するが、この確立方法にアクティブモード、パッシブモードという2種類の方式がある。
アクティブモード(ポートモードとも言う)では、クライアントがサーバへ待ち受けIPアドレスとート番号を通知し、サーバがクライアントから通知されたIPアドレスのポート番号へコネクションを確立しに行く。このとき利用するート番号が毎回異なるので、ファイアーウォール、NAT(IPマスカレード)などを使った環境では場合によってはうまく接続できないこともある。この場合はパッシブモードを用いる。
パッシブモードではサーバがクライアントへ待ち受けポート番号を通知し、待ち受けポート番号の通知を受けたクライアントがサーバへコネクションを確立しに行く。
いずれのモードでも、コマンド用とデータ用で別々のコネクションを張ることには変わりはない。
サーバ側にファイアーウォールがある場合、データコネクションのためにどのポート番号を使うかを設定してファイアーウォールとの整合を確認する必要がある。
パッシブモードを使っている限りにおいては、クライアント側のファイアーウォールは気にする必要がない。通常、サーバに接続する際には認証を必要とするが、専らファイル(主に無償のフリーソフトなど)を配布する目的で、匿名でアクセスできる Anonymous(匿名) FTP サーバを用いる場合もある。ただし、匿名アクセスでも形式上認証が必要であり、この場合、ユーザとして"anonymous"または"ftp"を指定する。パスワードは通常何でもよいが、配布したソフトに瑕疵があった場合などにサーバ管理者が連絡をとることができるよう、ユーザの電子メールアドレスを指定するのがマナー(ネチケット)とされてきた(メールアドレスのドメインがクライアントのIPアドレスの逆引きなどから明らかな場合は、"foo@"のようにドメインを省略することも多い)。サーバによっては、パスワードがメールアドレスの形式を満たさないと利用できないこともある。しかし、近年ではスパム(迷惑メール)などの問題により、むやみにメールアドレスを公開しない風潮が高まっていることから、このマナーは廃れつつある。また、現在ではFTPクライアント機能を備えたウェブブラウザで匿名FTPサーバにアクセスすることも多く、この場合パスワードは特に指定しない限りブラウザのデフォルト設定(Internet Explorerであれば"IEuser@"など)が使われ、メールアドレスとして意味のあるものにはならない。
セキュリティ
FTPはセキュア(安全)なプロトコルとして設計されていない。ユーザ名やパスワードを暗号化せずに転送するなどの問題の他、数多くのセキュリティ脆弱性が指摘されている。RFC 2577は、以下の脆弱性を列挙している:
- 総当たり攻撃
- パケットキャプチャ (sniffing)
- Port stealing
- ユーザ名保護
FTPは通信内容を暗号化できない。通信経路上でパケットをキャプチャすることで、ユーザ名・パスワード・コマンド・データといった情報を容易に盗聴できる。この問題は、SMTPやIMAPといった他の歴史のあるインターネットプロトコルでも同様である。これらのプロトコルをセキュアにする一般的な方法は、SSL/TLSセッション上で通信を行うことである。FTPでこれを行うのがFTPSである。またSSHを介してファイル転送を行うSFTP、SCPといったツールもある。
関連RFC
- RFC 4217 - Securing FTP with TLS
- RFC 3659 - Extensions to FTP
- RFC 2640 - Internationalization of the File Transfer Protocol
- RFC 2577 - FTP Security Considerations
- RFC 2428 - FTP Extensions for IPv6 and NATs
- RFC 2389 - Feature negotiation mechanism for the File Transfer Protocol
- RFC 2228 - FTP Security Extensions
- RFC 1635 - How to Use Anonymous FTP
- RFC 1579 - Firewall-Friendly FTP
- RFC 1127 - A Perspective on the Host Requirements RFCs
- RFC 1123 - Requirements for Internet Hosts -- Application and Support 4.1章
- RFC 959 - FILE TRANSFER PROTOCOL (FTP)
- RFC 765 - FILE TRANSFER PROTOCOL (RFC 959 で改訂)
- RFC 114 - A FILE TRANSFER PROTOCOL
同様の目的に使えるプロトコル
- TFTP
- HTTP/WebDAV
- SCP
- SSH File Transfer Protocol
- Rcp
- rsync
- NFS
- SMB/CIFS(Samba)
- FTPS(FTP over SSL/TLS)
出題例
- DHCPはWeb閲覧のプロトコルである。
- FTPはファイル転送のプロトコルである。
- NTPは設定するIPアドレスなどの情報をサーバから取得するプロトコルである。
- POPはメールクライアン卜がメールを送信するプロトコルである。
正解
- 基礎理論(23)
- アルゴリズムとプログラミング(27)
- コンピュータ構成要素(32)
- システム構成要素(29)
- ソフトウェア(17)
- ハードウェア(14)
- 情報デザイン(21)
- 情報メディア(28)
- データベース(19)
- ネットワーク(71)
- セキュリティ(121)
このページのWikipediaよりの記事は、ウィキペディアの「File Transfer Protocol」(改訂履歴)の記事を複製、再配布したものにあたり、このページ内の該当部分はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下 に提供されています。