From: tnaka@... Date: 2000-12-29T23:31:26+09:00 Subject: [ruby-list:26939] RZBD(暗号化ソケットライブラリ) 中島@ブレーンです。 Zebedee(http://www.winton.org.uk/zebedee/)という暗号化されたトンネルを作っ てくれるツール(sshのポートフォワーディングみたいなもの)をRubyに移植して みました。 http://www03.u-page.so-net.ne.jp/dc4/tnaka/zebedee/ http://www03.u-page.so-net.ne.jp/dc4/tnaka/zebedee/rzbd.html 目的は2つあります。 1) 簡単な暗号化通信ライブラリ Zebedeeのプロトコルはsshよりずっとシンプルですが、DiffieHellman + blowfishという由緒正しいアルゴリズムを使っていますので、暗号の強度として は実用的なものです。このプロトコルをRubyのスクリプトから簡単に使えるよう にしようと思っています。 2) Zebedeeを補助するツールを作成する Zebedeeには通信を暗号化してフォワードする機能がありますが、sshのようにファ イルをコピーしたりリモートのコマンドを実行する機能がありません。コマンド 実行はtelnetをトンネルすることで実用上は問題ないのですが、ファイルコピー がうまくできないのが問題でした。そこで、とりあえずZebedee経由のFTPをでき るようにしました。 通信ライブラリのAPIはこんな感じです。 ----------------------------------------------------- require "rzbd/zebedee" include Zebedee app = Zebedee::App::instance app.config.parse_config_file("configuration file") s = ZBDSocket.open(host, portno) s.puts("...") a = s.gets # s はSocketオブジェクトなので、IO::* をそのまま使える ----------------------------------------------------- configuration fileはZebedeeの形式で、暗号の強度、圧縮の有無、認証用のキー などを記述したファイルです。 つまり、TCPSocketをZebedee::ZBDSocketに置き換えるだけで、通信が暗号化さ れるという仕組みです。ちょっと変則的ですが認証の機能もあります。インター ネットを通して会話するスクリプトがほんのちょっとの手間でsecureになる、と いうもくろみです。 現バージョンではクライアント側しか実装してないので、相手側にZebedeeが必 要ですが、将来的にはサーバ側の機能(ZBDServer?)も実装して、Rubyスクリプト だけで暗号化通信ができるようにしようと思っています。 まだアルファレベルですが、いろいろ叩いてもらおうと思って、とりあえずリリー スしてみることにしました。もし興味のある方がいたら、御意見を聞かせてくだ さい。 -- 中島 拓 (tnaka@brain-tokyo.com) http://www03.u-page.so-net.ne.jp/dc4/tnaka/