8月18日、en.andros.devが「Finger: the 1971 social network that never died」と題した記事を公開した。1971年生まれのネットワークプロトコル「Finger」が、半世紀を経ても現役であり続けている経緯を詳しく紹介している。
アカウント登録も、アルゴリズムも、中央サーバーも不要。プロフィールはホームディレクトリに置いた1枚のプレーンテキストファイルだけ——そんなプロトコルが、Mastodon・Blueskyといった分散型SNSへの関心が高まる2020年代に静かに再注目されている。1997年8月18日、John Carmackはウェブサイトでも記者会見でもなく、この.planファイルを通じてDoomのソースコード公開計画を明らかにした。プロトコルが誕生して半世紀が経つ今、その設計思想は時代を超えて刺さり直している。
ソーシャルネットワークの起源は1971年だった
試しに今すぐ動かせる。macOSやほとんどのUnix系システムにはクライアントが最初から入っており、Debian/Ubuntuならapt install finger、WindowsにはOS標準のfinger.exeが同梱されている。
finger random@happynetbox.com
このコマンドを打つと、現在もFingerアカウントをホストしているサーバーからランダムなユーザーの情報が返ってくる。
「指で画面をなぞる」という動作がそのまま名前になった
1971年、スタンフォード大学人工知能研究所(SAIL)。研究者たちはWHOコマンドで誰が接続しているか確認していたが、出力は見づらいリストだった。エンジニアのLes Earnestは、人々が画面をフィンガーでなぞりながら「これはDonで、あれはPattieだ。でもTomが最後に見られたのはいつだろう」と話している光景を日常的に目にしていた。
Earnestが作ったプログラムは、実名・場所・端末のアイドル時間を人間が読める形で返すものだった。動機は実用的だ——廊下を歩いて会いに行く価値があるかどうかを、席を立つ前に確認したかったのである。副産物として、ネットワーク上のプレゼンス(接続状況の共有)という概念が誕生した。
プロトコルは**1977年にRFC 742として、1991年にRFC 1288**として策定された。
世界初のマイクロブログ:.planファイル
Fingerが返す情報の核心は、ホームディレクトリに置かれた**.planと.projectという2つのテキストファイルだ。本来の用途は「何に取り組んでいるか」「何を計画しているか」を示す静的なステータス表示だったが、人々はすぐにそこに詩、日記、ASCIIアート、ジョークを書き始めた。インターネット上の最初のマイクロブログ**と呼ばれる所以だ。
最も有名な.planの使い手はJohn Carmack(id Software共同創業者、DoomおよびQuakeのプログラマー)だ。1996年から2010年にかけて、世界中のファンがfinger johnc@idsoftware.comを打つだけで、彼が取り組んでいるゲームエンジンの最新状況を直接読むことができた。
彼のスタイルは簡潔そのもの——タスクリストとバグ報告が中心だが、時折重大な発表が混じった。1997年8月18日、Webサイトでも記者会見でもなく、.planを通じてDoomのソースコード公開計画を告知した:
-----------------------------------------
John Carmack's .plan for Aug 18, 1997
-----------------------------------------
I get asked about the DOOM source code every once in a while, so here is a
full status update:
[...]
The DOOM code should be a lot more interesting. It is better written, 32 bit,
and portable.
このアーカイブは現在GitHub上に保存されており、ゲーム史上最も価値ある技術文書の一つとされている。
IoTの祖先もFingerだった
1982年、カーネギーメロン大学。Fingerが既にキャンパスネットワーク上に普及していた時代、学生たちはコーラの自動販売機に空振りするのに疲れ、マイクロスイッチで各列のボトル数と冷却時間を検知する仕組みを作った。そのステータスをネットワーク越しに公開するインターフェースとして選んだのが、他でもなくFingerだった。finger coke@cmu.eduを叩けば、在庫の有無だけでなく「どのボタンを押せば最も冷えた1本が出るか」まで分かった。IoTの祖先と呼ばれる所以だ。
プロトコルの構造は驚くほどシンプル
FingerはTCPポート79番に接続し、ユーザー名(またはリスト要求の空行)をCRLF終端で送るだけ。サーバーはプレーンテキストを返して接続を閉じる。暗号化なし、ヘッダーなし、セッションなし。netcatで手打ちもできる:
echo "random" | nc happynetbox.com 79
Whois、Gopher、SMTPと同じ発想——接続してプレーンテキストで問い合わせ、レスポンスを読む。
なぜ廃れ、なぜ今も残るのか
Fingerが廃れた原因は流行の変化ではなくセキュリティだ。1988年11月2日、インターネット初期の大規模ワームであるMorrisワームの感染経路の一つが、fingerdデーモンのバッファオーバーフロー脆弱性だった(他にSendmailのデバッグ機能やrshも悪用された)。当時のインターネット接続コンピュータ約6,000台(全体の約10%)が感染した。加えてRFC 1288自体にも「Fingerはユーザー情報を開示する。その情報は機密とみなされる場合がある」という警告が記載されており、1990年代末にはほとんどの管理者がサービスを無効化した。
ところが2020年、Windowsに標準搭載されたfinger.exeがマルウェアのダウンロードに悪用されていることが発覚した。Astarothマルウェアがペイロード取得に使ったとされる、いわゆる「living-off-the-land」攻撃だ。1970年代のプロトコルが今もWindowsに同梱されているという事実が、逆説的にその設計の堅牢さを示している。
現在も続くFinger復権の動き
Gemini、IRC、RSS、NNTPといったミニマルで分散型のプロトコルへの関心が高まる中、Fingerも静かに再浮上している。中央集権型プラットフォームへの疲弊感が高まる2020年代、「アルゴリズムも広告もない、自分でコントロールできる場所」としてのFingerの文脈は以前より刺さりやすい。
現在利用できる主な実装・サービスは以下の通りだ:
- **Happy Net Box**:Webインターフェースで
.planを編集できるホスティングサービス。finger random@happynetbox.comで試せる - **Finger.Farm**:Node製のオープンソース実装。Web、REST API、cURLで更新可能。セルフホスト向け
- **plan.cat**:ActivityPubへのブリッジ機能を持ち、
.planをMastodonから読める
アクティブなアカウントのディレクトリも存在する:
finger ring@thebackupbox.net
半世紀前に生まれたプロトコルが、シンプルさゆえに今も生き続けている。
詳細はFinger: the 1971 social network that never diedを参照していただきたい。