=encoding euc-jp =head1 名前 Crypt::SKey - Perl S/Key 計算プログラム =head1 概要 # perlスクリプト: use Crypt::SKey qw(compute); $output = compute($sequence_num, $seed, $password); @output = compute($sequence_num, $seed, $password, $count); # コマンドライン: perl -MCrypt::SKey -e key 500 fo099804 perl -MCrypt::SKey -e key 500 fo099804 100 # 以下のシェル・エイリアスが便利かもしれません: alias key 'perl -MCrypt::SKey -e key' # これにより以下のように単にタイプすることができます: key 500 fo099804 =head1 説明 このモジュールにはPerlで実装された簡単なS/Key計算プログラム(RFC 1760で記述されているような)が入っています。これはデフォルトで関数Cをエクスポートします。そしてオプションとして関数Cをエクスポートすることもできます。 C, C, C, そして C はMD4やMD5のハッシュを選択するための便宜上の関数として提供されます。デフォルトはMD4です;C や Cという値を代入することでC<$Crypt::SKey::HASH>という変数を変更することにより、これを変えることができます。 =head1 インストール Perlモジュールをインストールするための通常のステップに従ってください: perl Makefile.PL make test make install =head1 関数 =head2 C =head2 C =head2 C 3つの引数を与えられ、ハッシュ値を計算し、それを空白で区切られた6つの単語が入った文字列として返します。$countが指定され1よりも大きければ、そうした文字列のリストを返します。引数の意味は以下の通りです。 =over 4 =item * sequence_number 計算されるS/Key応答のうち何番目のものを出力として生成するか。RFC 1760ではCと呼ばれています。これは通常、S/Keyチャレンジでの先頭の数字として現れます。 =item * seed これは乱数のシード(種)です。これは通常、S/Keyチャレンジでの2番目の数値/文字として現れます。 =item * password これはあなたの秘密のパスワードです。 =item * count この引数はオプションでデフォルトはC<1>です。生成するS/Key応答の数を指定します。S/Key計算プログラムを後で実行する必要が無いように、あらかじめレスポンスをまとめて生成しておき、紙に印刷しておきたいときには便利でしょう。 =back =head2 C =head2 C =head2 C 標準のs/keyディストリビューションに入っている'key'実行可能プログラムと同じように動きます。コマンドラインからの引数(C<@ARGV>)を読み込み、ユーザのパスワード入力を求め、1つあるいは複数の計算された応答をCに出力します。コマンドラインの引数は前から順に以下の通りです: =over 4 =item * sequence_number =item * seed =item * count (optional) =back これらの意味は上記のC関数と全く同じです。 =head1 注意 もしあなたがセキュリティについて気にしているのであれば、おそらくはS/Keyを使うよりもSSHを使う方がいいでしょう。というのもSSHはあなたのセッションを完全に暗号化するのに対して、S/Keyはあなたのパスワードだけを暗号化するからです。私がこのモジュールを書いたのは、だれもまだこれをやっていなかったから、そして私はSSHもCプログラムもないシステムを時々、利用するのですが、S/Keyパスワード送信を提供するシステムにtelnetしたいからです。 オリジナルのCプログラムはCパラメータをC<-n>フラグを使って取得します。しかしこのバージョンではオプションの最後の引数として取得します。だれからもその動きを変更する必要があるとは聞いたことありませんが、私としてはC<-n>フラグを追加したくはありません。 私は現在、ログイン時点でS/Key応答の妥当性をチェックする、つまりサーバーがユーザを認証するために実行しなければならないコードを書くという計画はありません。しかし、それは難しくはないでしょう。そしてだれかがこの機能を実装するためのパッチを送りたいのであれば、私は喜んでそれを追加します。 =head1 作者(=AUTHOR) Ken Williams, ken@forum.swarthmore.edu =head1 著作権(=COPYRIGHT) Copyright 2000-2002 Ken Williams. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 参考資料 perl(1). L. Digest::MD4(1). Digest::MD5(1). Term::ReadKey(1). =head1 翻訳者 川合孝典 (GCD00051@nifty.ne.jp)