プロジェクトの歴史と実績
OpenSSH
は、Tatu Ylönen によるオリジナルのフリー ssh 1.2.12 から
派生しました。私たちのプロジェクトで再利用できるものとしては、
これが最後のバージョンでした。OpenSSH の一部には、
このリリースで含まれていた Tatu のライセンスがまだ重くのしかかっています。
このバージョンおよび以前のバージョンでは libgmp ライブラリの
算術関数を使っていました。初期バージョンの ssh には、このライブラリが
含まれていました。現在、libgmp ライブラリは GNU 劣等一般公共使用ライセンス
(LGPL) のもとで使用可能になっています。けれどもこの時期のバージョンは
まだ標準の GNU 一般公共使用ライセンス (GPL) だったんですけどねえ。
(訳注: GPL でライセンスされたライブラリを使ったソフトウェアは、
すべて GPL のライセンスを継承しなければならないのですが、ssh はそうしていなかったということです)
各部分のライセンスを合わせたものは、
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE
で見ることができます。
ssh 1.2.12 がリリースされてすぐ、より新しいバージョンはだんだんと
厳しいライセンスになっていきました。初期のころの制限されたライセンスでは、
Windows 版および DOS版を作ることは禁止されていました。後のほうに
なると商業環境での利用が禁止され、かわりに企業は Datafellows から
出ていた高額なバージョンを買うよう要求されました。
1999年の始めに Björn Grönvall はこの特定のリリースを再発見し、
バグフィックスを始めました。彼の ssh のバージョンは
OSSH と呼ばれています。
当初彼はそのバージョンの中で、プロトコル バージョン 1.3 しかサポートしませんでしたが、
彼は独自にプロトコル バージョン 1.5 のサポートを開発しました。スウェーデンでは
いくつかの商用プロダクトが OSSH を塔載したそうです。
現在、OSSH はまだプロトコル バージョン 2 をサポートしていません。
OpenBSD プロジェクトのメンバーは
OpenBSD 2.6 リリース の
2ヶ月ほど前に、Björn の仕事に気がつきました。私たちは
ssh を 2.6 リリースに入れたいと思ったのですが、まずそれを完璧に
きちんとする必要がありました。そのため私たちはすぐに OSSH のリリースを
分岐させることを決め、元々の OpenBSD セキュリティ監査でやっていたのと
同じようなやり方で、素早い開発を追及したのです。この結果、多くの ssh
ソースコードファイルがすでに RCS リビジョン 1.34 になっており、
そのうちのいくつかは 1.66 にまで高まっていました。実際、開発は
ほんとうに早く進んだのです。守るべき締め切りがあったからですね。
以下のチームメンバーが参加しています:
- Theo de Raadt (カナダ) はコードを読みにくくしている
移植可能でない部分を取り除くことからはじめました --
目標はよりシンプルなソースコードです。こうすることにより
セキュリティホールやその他の問題がずっと見つけやすくなるからです。
- Niels Provos (ドイツ出身ですがアメリカに住んでいます) は
カナダまで自動車で旅をすることによって、残っている暗号部分と
GPL 化されたコンポーネントをあっさり取り除いてくれました。これによって
私たちは最終的に完全に自由かつ再利用可能なコードベースを手にいれることが
できました。
- Markus Friedl (ドイツ) はとび入りで、非常な速さで
1.2.12 リリースに入っていた SSH プロトコル 1.3 のコードを苦労して
置き換え、最近の ssh 1.2.27 シリーズで使われていたのと互換な
プロトコル 1.5 を組み込んでくれました (この変更はプロトコル 1.3 を
サポートしていない多くの Windows用 ssh 互換クライアントのために
必要だったのです)。彼の実装は現在 OSSH でも使われています。
- Bob Beck (カナダ) は Makefile の魔法を手伝ってくれ、OpenSSL が
特許つきのアルゴリズムなしでもコンパイルできるようにしてくれました --
これは私たちの CD を libssh と libcrypto 共有ライブラリつきで
出荷するために必要でした (ユーザは自分のマシンにインストール
するときに、インターネットを通じてこれらを置きかえるのです)。
- Aaron Campbell (カナダ) はすごくたくさんのドキュメントの欠陥と
その他いくつかのコードの問題を直してくれました。
- Dug Song (アメリカ合衆国) は Kerberos IV における、
いくつかの認証に関する問題を手伝ってくれました (彼の変更は
いかなる暗号化アルゴリズムがらみの問題にも触れないように、
慎重にチェックされています)。
つまり、OpenSSH は古いバージョンの ssh を元にはしていますが、
ずっと多くのバグがとり除かれ、より新しい機能が追加されているのです:
- 何らかの制限的事項が課されているすべてのコンポーネント (つまり特許など。
ssl(8)
を参照) を直接ソースコードから除いてあります。
特許あるいはライセンスつきのコンポーネントは、外部ライブラリ
(例: OpenSSL など)
から取り込むようにしています。
- KerberosIV
認証とチケットパスのサポートを追加しました。
- skey
による、one-time password 認証をサポートしました。
- その他幾百もの変更を加え、それらが新しい man ページやソースコードの
変更点から特定できるようにしました。
ここで OpenSSH 1.2.2 リリースが決まりました。これは 1999年
12月1日に、OpenBSD 2.6 とともに出荷されました。この時点までにおける
OpenSSH のほとんどの開発は、Aaron Campbell, Bob Beck, Markus Friedl,
Niels Provos, Theo de Raadt, そして Dug Song らによってなされました。
バグを発見し、彼らに報告してくれた多くの人々に感謝します。
OpenSSH の移植
私たちがプロトコル バージョン 1 の実装を出荷するとすぐに、
OpenBSD 以外のグループがこれに多大な感心をよせてきました。
Damien Miller や Philip Hands、その他少数の人々が OpenSSH を Linux や
その他いろいろな Unix オペレーティングシステムに移植しはじめました。
私たちは、自分たち自身の苦労から、オリジナルの ssh のコードがあまりに
複雑すぎると感じはじめていました。書き換えなければならない
オペレーティングシステム依存の部分がとにかく多すぎるのです。
私たちの、絶対安全で岩のように堅実なコードを書くというアプローチは
このような極端な差異を避けています。そのため、開発プロセスすべてが
私たち全員にとって簡単になるように、私たちは核となる開発と移植版の開発とを
分けることにしました。これは今のところ非常にうまく行っています。
(基本となるコードの行数と、移植版のコードの行数を比べると
その違いがよくわかるでしょう。)
SSH プロトコル バージョン 2
OpenBSD 2.6 のリリースが世に出てから、Markus Friedl は
SSH プロトコル バージョン 2 のサポートを追及することを
決めました。何ヶ月かにわたる苦労の末、とうとう彼は OpenSSH をスリム
なままで、余計なぜい肉をつけずに、バージョン 1 も 2 も
ひとつのソフトウエアで処理できるものをつくりあげたのです。
このバージョンは OpenSSH 2.0 と呼ばれていますが、2000年 7月 15日に
OpenBSD 2.7 とともに出荷されました。Markus の変更のほとんどは
Niels Provos と Theo de Raadt によってチェックが済んでいます。
OpenSSL を新しいバージョンにアップデートしてくれた
Bob Beck にも感謝しています。
SFTP のサポート
Markus Friedl は SFTP サブプロトコルのサーバ側でのサポートを
書き、2.3.0 リリースでこれを公開しました。2000年 11月のことです。
すぐに Damien Miller が sftp クライアントの製作にとりかかり、
これは 2.5.0 で最初に出荷されました。
SSH サーバのバージョンをスキャンする
企業ネットワークなどですでに広まっている SSH サーバを
検査できるよう、 Niels Provos は
scanssh
ツールを書きました。scanssh は SSH サーバを動かしている
ネットワークやアドレスのリストをスキャンし、そのバージョン番号を
調べます。これは大規模なネットワークの範囲からランダムに
IP アドレスを選んで検査することができ、ある企業やインターネット全体に
おける SSH サーバ使用の統計的な情報を集めるのに適しています。
またこの統計は、使っている SSH のプロトコルやソフトウエアの
バージョン情報も含んでいます。
scanssh はインターネットにおける SSH の普及と使用状況に関する
統計を集めるのに利用されています。
この測定によって、
互いに異なった SSH プロトコルがどれくらい普及しているか、および
特定のサーバ市場でどのように浸透しているかがわかります。
SSH: ついに完全にフリー。
www@openbsd.org
$OpenBSD: history.html,v 1.18 2005/09/03 16:41:44 saad Exp $
Mirror By Cedrat Net Last mirror Update 2010-07-30 03:05