4/17/2021

FTPが誕生して50年

Filestashより

1971年4月16日は、ローリング・ストーンズが『ブラウン・シュガー』をリリースした日であると同時に、FTPの誕生日を示すRFC114が発行された日でもあります。

当時、ベトナム戦争がニュースの中心で、TCP/IPはまだ存在せず、ジミ・ヘンドリックスは半年前に亡くなり、telnetは新しいクールな子供で、最も影響力のあるロックンロール・アーティストたちが傑作をリリースしようとしていた頃で、FTPはNCPというネットワーク・プロトコルを使用していました。

その後、FTPプロトコルは16回のリビジョン(*1)を経て改良され、TCP/IPのサポート、HTTPSと同じ技術を利用したFTPSと呼ばれるセキュアな拡張機能、IPv6のサポートなどの機能が追加されてきました。

誕生から50年経った今でも、FTPはいまだに健在で、何百万ものFTPサーバがインターネット上に公開されています。これは、多くの人々やDropboxのような企業が、FTPがいかに悪いものであるか、プロトコルを完全な製品と混同して書いている悪評を考えると、かなり驚くべきことです。言うまでもなく、FTPプロトコルに近いものは、Dropboxが親切にも鍵を与えてくれた場合にのみ使用可能な、はるかに洗練されていない独自のAPIです。

2021年、進歩として認められているものは、RFCを一切使わずに密室で作られたプロプライエタリなプロトコルの形をとっています。その代わり、競合するサーバを作りたいベンダーは、MinioがS3で行ったようにSDKをリバース・エンジニアリングすることになります。

また、Filestashを作る際の大きなインスピレーションの源となった Hacker Newsの最も悪名高いコメントを指摘せずに、FTPの話題に触れることはできません。確かに、私の母が使っているツールがどのプロトコルを使っているかは問題ではないと思います。このツールが使いやすければ、母は共有したい写真を転送したり、ビデオを開いたり、プロトコルを知らなくてもすべてのことができるはずです。エンジニアとしての私たちの仕事は、複雑なものをすべて抽象化することですから、抽象化の魔法によって、快適なブラウザから銀行口座にアクセスする人が、SSLをネゴシエートするときに暗号を選ぶことが期待されているわけではありません。

(*1) 長年にわたるFTP:

  • RFC 114(1971年4月)
  • RFC 697(1975年7月): CWDコマンド
  • RFC 765(1980年6月): TCP/IP
  • RFC 959(1985年10月): ファイル転送プロトコル
  • RFC 1579(1994年2月): ファイアウォールに優しいFTP
  • RFC 1635(1994年5月): 匿名FTPの使用方法
  • RFC 1639(1994年6月): ビッグアドレスレコードを介したFTP操作
  • RFC 1738(1994年12月): Uniform Resource Locator
  • RFC 2228(1997年10月): FTPセキュリティ拡張機能
  • RFC 2389(1998年8月): ファイル転送プロトコルの機能ネゴシエーション・メカニズム
  • RFC 2428(1998年9月): IPv6、NAT、拡張パッシブモードの拡張
  • RFC 2577(1999年5月): FTPセキュリティの考慮事項
  • RFC 2640(1999年7月): ファイル転送プロトコルの国際化
  • RFC 3659(2007年3月): FTPの拡張
  • RFC 5797(2010年3月): FTPコマンドと拡張レジストリ
  • RFC 7151(2014年3月): 仮想ホスト用のファイル転送プロトコルHOSTコマンド

Hacker NewsSlashdot