RC5-72 Personal Proxy

 Personal ProxyのRC5-72対応版はリリース準備中です。Release CandidateのBuild 332はPre-release版として公開されています。
 RC5-64の解読を行うために必要なキーのやりとりはインターネット経由で行います。しかし、状況によってはキーのやりとりがスムーズに行かないこともあります。
  1. distributed.netのキーサーバからのネットワーク距離が遠いため、混み合っていると、すぐに新しいキーがもらえない。
  2. LANには接続しているが、インターネットには直接接続していないので、キーのやりとりが面倒。
  3. ダイアルアップ環境なのでキーがなくなるたびにキーサーバにアクセスするのは不経済。
  4. 自分の管理しているマシンの状況を一括して管理したい。
 このようなときには代理キーサーバ(Personal Proxy)を設置しましょう。クライアントは代理キーサーバとキーのやりとりをします。代理キーサーバは手持ちの未解読キーが少なくなったり、解読済みキーがたまると、上位のキーサーバとキーのやりとりを行います。なお、代理キーサーバは常時接続、常時稼働していることが望ましいのですが、ダイアルアップ環境でも自動的にダイアルアップするようにしてやればいいでしょう。また、クライアントは、指定した代理キーサーバにアクセスできない場合、自動的にデフォルトのdistributed.netのキーサーバにアクセスします(しないようにもできる)ので心配は不要です。

ダウンロード

 代理キーサーバのダウンロードページまたはFTPサイトから自分の環境に合った代理キーサーバをダウンロードします。GUIのキーサーバはありませんし、開発予定もありません。すべてCLIです。なお、WindowsNT/2000/Xpではサービスとして動作させることもできます。現在のバージョンはBuild 332です。

インストール

 ダウンロードしたファイルを解凍して下さい。Win32版の場合、proxyper.exeが実行ファイル、proxyper.iniが設定ファイル、readme.txtが説明ファイル(英語)です。readme.txtの説明に従い、バックアップを取った上でproxyper.iniを編集して下さい。なお、;で始まる行はコメント行です。
  1. [Keyserver]セクション
    上位のキーサーバとの交信について設定します。
    1. ipaddress
      上位のキーサーバのアドレスを設定します。日本国内からdistributed.netのキーサーバにアクセスする場合はipaddress=jp.v27.distributed.netとします。さらに別の代理キーサーバを指定することも可能です。
    2. port
      上位のキーサーバのポート番号を設定します。通常はport=2064でOKです。
    3. connectperiod
      上位のキーサーバとのアクセス間隔を設定します。デフォルトはconnectperiod=30(秒)ですが、多くのクライアントを接続していないならもっと長くてもいいでしょう。個人的利用なら300(=5分)くらいにします。ここで指定したアクセス間隔ごとに上位キーサーバとアクセスし、キーのやりとりをします。
      注意1:代理キーサーバ起動中にマシンの日付・時刻を変更した場合、アクセス間隔が狂うことがありますので代理キーサーバを再起動した方が安全です。
      注意2:代理キーサーバはconnectperiodごと、あるいは正常終了時にメモリ上の未解読キー・解読済みキーをディスクに保存します。異常終了・ハングアップした場合、メモリ上のキーは消滅しますから、大きな値を設定するのは危険です。
    4. connectivity
      Build 300以降の新機能です。normal,offline,lurk,lurkonlyから選びます。専用線環境ではnormalに、ダイアルアップ環境ではlurkonly(ダイアルアップ接続を検出して上位キーサーバと交信する)にしておきます。
    5. uuehttpmode
      telnetやhttpのプロキシを経由して上位のキーサーバと通信する場合に設定します。デフォルトでは無効になっています。httpの場合は2にします。
    6. httpproxy
      httpのプロキシを経由している場合、そのサーバ名またはIPアドレスを設定します。デフォルトでは無効になっています。
    7. httpport
      httpのプロキシを経由している場合、使用するポート番号を指定します。
  2. [ports]セクション
    クライアントとの接続に利用するポートについて設定します。
    1. listenaddress
      代理キーサーバが複数のIPアドレスを持つ場合、接続に利用するIPアドレスを指定できます。デフォルトでは設定しません。
    2. port,port2,port3,port4
      接続に利用するIPアドレスを指定します。デフォルトではport=2064で、それ以外は無指定です。httpを利用する場合はport2=80も指定します。
    3. timeout
      クライアントの応答がなくなってから接続を切断するまでの時間です。デフォルトのtimeout=30のままでいいでしょう。
  3. [console]セクション
    画面表示と通信ログに関する設定です。
    1. logfileconsole
      通信ログのファイル名です。デフォルトでは「なし」ですが、初めのうちはログファイルを記録しておいた方がいいでしょう。
    2. logfileconsolerotation
      通信ログのファイル名を自動的に変更する場合に指定します。デフォルトはlogfileconsolerotation=dailyで、ログファイル名に日付が入り、毎日、0:00UTCにファイル名が変更されます。hourly,monthly,yearlyの設定もできます。
    3. consoleverbosity
      表示項目を設定します。デフォルトのconsoleverbosity="general stats keyblock server client buffers timestamp attention errlow errsevere"ではすべての項目を表示します。
  4. [rc564]セクション
    RC5-64のキーバッファに関する設定です。
    1. logfilekeyblock
      解読済みキー受信ログのファイル名です。デフォルトはlogfilekeyblock=pproxyrc5です。ログが必要ない場合は削除します。
    2. logfilekeyblockrotation
      解読済みキー受信ログのファイル名を自動的に変更する場合に指定します。デフォルトはlogfilekeyblockrotation=dailyで、ログファイル名に日付が入り、毎日、0:00UTCにファイル名が変更されます。hourly,monthly,yearlyの設定もできます。
    3. minkeysready
      代理キーサーバに確保しておく未解読キー数の最小値です。設定値未満になると上位のキーサーバから未解読のキーを取り込みます。単位は1ブロック=2^28キーです。デフォルト値はminkeysready=10ですが少なすぎます。ネットワークの状態が悪くなることも考えて、1日に接続クライアントが解読するキーの合計値(1ブロック=2^31キーの場合は値を8倍)以上を設定するようにして下さい。ダイアルアップ接続の場合やネットワーク停止が予定されていればもっと多くします。maxkeysreadyで設定した値より小さい値を設定するようにして下さい。同じ値は設定できません。なお、Personal Proxyでは最初に取り込んだキーから順に使用します(First In First Out)。
    4. maxkeysready
      代理キーサーバに確保しておく未解読キー数の最大値です。上位のキーサーバから未解読のキーを取り込むとき、この値以上になるまで取り込みを行います。単位は1ブロック=2^28キーです。デフォルト値はmaxkeysready=20ですが少なすぎます。最大値は200000ですが条件があります。なお、expertmode=1を設定しておくと自動設定を行わず、指定した数値がそのまま使用されます(こちらの方がわかりやすくておすすめ)。
      1. 1000以下ならそのままの値が採用されます。
      2. 1000を超える場合は、まず1000になります。起動後30分間の平均解読速度から4日分のブロック数を計算します。例えば、解読速度(ログに記載されています)が7Mkeys/secなら7x10^6/2^28x60x60x24x4=9012ブロックになります。この値が元の設定値を超えていれば、元の設定値が採用されます。minkeysreadyも適切な値に設定されるようです。上限の200000ブロックを取り込むには155.4Mkeys/sec(30分で1042ブロック)が必要です。
      3. 未解読キーがなくなって、キーの取り込みを行うと、計算をやり直し、再設定されます。
    5. minkeysdone
      代理キーサーバに保存しておく解読済みキー数の最小値です。設定値未満の場合は、上位のキーサーバに解読済みキーを送り出しません。デフォルト値はminkeysdone=1です。1にしておくと、未解読キーを取りに行くときに解読済みキーが送り出します。通常は1にしておいて下さい(指定しなくてもいいです)。大きい数字にしておくとため込むこともできます(「いろんな楽しみ方」の「1日ランキングの上位を目指す」を参照)。
    6. maxkeysdone
      代理キーサーバに保存しておく解読済みキー数の最大値です。設定値以上になると上位のキーサーバに解読済みキーを送り出します。デフォルト値はmaxkeysdone=3です。1にしておくと、解読済みキーが送られてくるたびに上位キーサーバに送出します。大きい数字にしておくとため込むこともできます。
    7. expertmode
      expertmode=1にしておくと、minkeysready,maxkeysreadyが自動設定されず、指定数値通りになります。設定しておくことをお勧めします。
    8. contestclosed
      コンテストが終了すると、このパラメータが設定されます。自分では書込まないように。
    9. ramdomprefix
      この値は定期的に上位のキーサーバから通知され、変更されます。クライアントで未解読のキーがなくなった時、この値を利用してランダムにキーを生成します。自分では書込まないように。
  5. [ogr]セクション
    OGRのキーバッファに関する設定です。
    1. allowogr
      OGRのキーを扱わない場合はallowogr=0にしておけばいいのでしょうか?(未確認)
    2. logfilekeyblock
      解読済みキー受信ログのファイル名です。デフォルトはlogfilekeyblock=pproxyogrです。ログが必要ない場合は削除します。
    3. logfilekeyblockrotation
      解読済みキー受信ログのファイル名を自動的に変更する場合に指定します。デフォルトはlogfilekeyblockrotation=dailyで、ログファイル名に日付が入り、毎日、0:00GMTにファイル名が変更されます。hourly,monthly,yearlyの設定もできます。
    4. minkeysready
      代理キーサーバに確保しておく未解読キー数の最小値です。設定値未満になると上位のキーサーバから未解読のキーを取り込みます。デフォルト値はminkeysready=10です。ネットワークの状態が悪くなることも考えて、1日に接続クライアントが解読するキーの合計値(1ブロック=2^31キーの場合は値を8倍)以上を設定するようにして下さい。ただし、maxkeysreadyで設定した値より小さい値を設定するようにして下さい。OGRを行いたくない時は0にしておいて下さい。
    5. maxkeysready
      代理キーサーバに確保しておく未解読キー数の最大値です。上位のキーサーバから未解読のキーを取り込むとき、この値以上になるまで取り込みを行います。デフォルト値はmaxkeysready=20です。OGRを行いたくない時は0にしておいて下さい。
    6. minkeysdone
      代理キーサーバに保存しておく解読済みキー数の最小値です。設定値未満の場合は、上位のキーサーバに解読済みキーを送り出しません。デフォルト値はminkeysdone=1です。1にしておくと、未解読キーを取りに行くときに解読済みキーが送り出します。通常は1にしておいて下さい(指定しなくてもいいです)。OGRは短期決戦なので解読済みのキーをためないように1にしておいた方がいいと思います。
    7. maxkeysdone
      代理キーサーバに保存しておく解読済みキー数の最大値です。設定値以上になると上位のキーサーバに解読済みキーを送り出します。デフォルト値はmaxkeysdone=100です。1にしておくと、解読済みキーが送られてくるたびに上位キーサーバに送出します。OGRは短期決戦なので解読済みのキーをためないように1にしておいた方がいいと思います。
    8. contestclosed
      コンテストが終了するとこのパラメータが設定されます。削除したりしないように。
  6. [misc]セクション
    その他の設定です。
    1. proxymessage
      クライアントと交信するときに送るメッセージです。デフォルトではproxymessage=rc5des Personal Proxy!になっていますが、自由に書き替えることができます。クライアント側ではThe perproxy says: "xxx" (xxxがここで記入したメッセージ)と表示されます。
    2. statusperiod
      プロキシの状態をコンソール画面やログに記録する間隔(秒)です。デフォルトではstatusperiod=30ですが、300にしておくと5分ごとにログに記録してくれます。

コンソールで起動

 proxyper.iniの作成が終わったら、proxyper.exeのアイコンをダブルクリックすると起動できます。「スタートアップ」に入れておけば、Windowsを立ち上げた時に自動起動できます。なお、クライアントについても、代理キーサーバと交信するように設定を変更して下さい。

サービスとして起動

 WindowsNTではサービスとして動作させることもできます。この場合は、コマンドプロンプトで「proxyper -install」とするとサービスとして登録され、スタートアップ時に起動するようになるのでおすすめです。
 サービスから削除する場合は、「proxyper -uninstall」とすれば、自動的にサービスが停止した後、削除されます。バージョンアップの時はいったん削除してから入れ替えて下さい。


Personal Proxy リンク

JWNTUG・いとうさんのPersonal Proxy 導入のすすめ (build308)
JLUG RC5 Cracking Effort代理鍵サーバを立てる
△橘研究所 with UHOONProxyPer(代理鍵サーバー)について


キーバッファについて
いろんな楽しみ方
ホームページに戻る
Last Updated on Dec-09-2002
by rc5-64@geocities.co.jp