68user's page 掲示板

Prev< No. 1472〜1507> Next  [最新発言に戻る] [過去ログ一覧]
No. 1472 # rosegarden 2000/12/17 (日) 20:40:55
>>1471参照
ついでだったので、調べておきました。
http://www.linux.or.jp/JF/JFdocs/DNS-HOWTO.html
JF インストールすれば大抵入っています。

No. 1473 # CoreFighter 2000/12/17 (日) 23:12:35
rosegardenさん有難う御座います。

教えてくれたページを見て勉強します。
これからもよろしくお願いします。

No. 1474 # ぷに辻 2000/12/18 (月) 11:12:26
ども。お世話になってます。
管理モードのパスワードとかって、普通crypt()でハッシュしますよね。
でもDESの場合辞書アタックとかで簡単に破られちゃいますよね。
なのでmd5(md5sum)コマンドで「4fcf95ef97e1b7b248698bca83781902」みたいに
ハッシュしているのですが、これはcrypt()のDES、MD5($1$...$)と比べてどっちが
セキュリティ的によろしいのでしょうか。

No. 1475 # 辻 義一 [E-mail] 2000/12/18 (月) 19:29:03
URLエンコードの件ありがとうございました。

URIですか?に&をそのまま入れているページはたくさんあります。自分のホームページ上のCGIもそうだし、検索エンジンとかもそう。修正しようか迷っています。登録されている実体参照と重なっていないようなので、事実上大丈夫なのでしょうが。勉強になりました。これを、CGIに反映させるかは迷っているのですが。

現在作っているプログラムでは、色々動かして問題がないようですので、このままにしておきます。ブラウザでも正しくエンコードされていない、ページを開くときに支障があるぐらいですから、こちらで変換すれば上手く出来そうですが、ページの責任と言うことで。終わらせます。

ありがとうございました。

今回は、

No. 1476 # SabaCurry [E-mail] 2000/12/18 (月) 23:14:44
こんちはーっす。
ず、ずいぶんまえに、ここに(そのときとはURL違うような気もするが)
永久保存版の過去ログなかったっすか?
久しぶりに見たくなって検索したのですが・・・・

最近行ってないけどtestボードまだ、げんきなのかなー・・・・

No. 1477 # gixs 2000/12/19 (火) 22:10:02
>>1474 ぷに辻
> 管理モードのパスワードとかって、普通crypt()でハッシュしますよね。
DESやmd5を1方向関数として使用している点は了解していると仮定します。
(余談1
ハッシュ関数と1方向関数は同義と言ってもよいですが、一応別物です。
1方向関数は(結果的に)ハッシュ関数ですが、逆は必ずしも真ではありません。
moduloはハッシュ関数ですが、出力から元の値が容易に推測可能なので良い1方向関数ではありません。)

> でもDESの場合辞書アタックとかで簡単に破られちゃいますよね。
辞書アタックと言っているのは、1方向関数でエンコードされたパスワードを奪われて、それに対して、しらみつぶしにパスワードを探索していると仮定します。
(余談2
暗号化パスワードと呼ぶ場合もありますが、復号化するわけではないので、誤用に近いと思っています。)
辞書アタックは、ワードを同じ1方向関数でエンコードして、マッチするものを探すことですから、同じ長さのパスワードなら、探索にかかるコストは、DESでもmd5でも大差無いと思います。
ただ、DESの場合、鍵長が56bitで、パスワード自体を鍵に使うことで(本来、暗号化アルゴリズムであるDESを)1方向関数にしているので、パスワードの長さが8文字に制限されます。
md5は(本来から1方向関数で)元データの長さに(現実的な)制限はないので、もっと長いパスワードが選べます。
この差は大きいですが、弱い(or 短い)パスワードを使っている限り、辞書アタックに対する強さは変わらないと思います。
(辞書アタック以外の探索法に対する強さは分かりません。
DESが簡単に破られる、と言っているのは、3年ぐらい前(もっと前?)のRSAコンテストで、約半年かかって破られたことを根拠にしていると思いますが、逆に言えば、未だ辞書アタックしか有効な手が無いという辺り、腐ってもDESと思わせるものもあります。)

No. 1478 # 68user 2000/12/20 (水) 00:59:20
>>1476 SabaCurry
> 永久保存版の過去ログなかったっすか?
はい、ありました。半永久保存版は1997年9月16日だけですが、
一応 1997/9/29〜1998/09/20 の分は保存してあります。

データはありながらも閲覧用 CGI スクリプトがどっか行っちゃって
見られない状態が続いてましたが、さきほど発掘してきました。

見てたら恥ずかしくなったので (笑)、URL はメールで送ります。
そのうちアナウンスもなくひっそりと公開します。

>>1474 ぷに辻
> crypt()のDES、MD5($1$...$)と比べてどっちがセキュリティ的に
> よろしいのでしょうか。
md5 より crypt+md5 の方が、salt という仕組みがある分
強固ではないかと思います。推測にしか過ぎませんが。

>>1477 gixs
> RSAコンテストで、約半年かかって破られたこと
専用ハードウェアを使うと、56bit DES 解読に要する時間は
22時間くらいでしたっけ。剣呑剣呑。

No. 1479 # 68user 2000/12/20 (水) 02:34:41
>>1478 68user
> URL はメールで送ります。
    From: MAILER-DAEMON@lala.v3.com (Mail Delivery System)
    <tetuya@i.am>: unknown user: "tetuya"
ということで、メールが送れませんでした。

No. 1480 # rosegarden 2000/12/20 (水) 02:39:01
>>1478 68user さん
>md5 より crypt+md5 の方が、salt という仕組みがある分
>強固ではないかと思います。推測にしか過ぎませんが。

そう言えば、perl スクリプトなどから crypt 使うと FreeBSD の最近の
RELEASE では DES で決めうちになっていることが多いようです。
ことに 4.1.1-RELEASE 以降の暗号解禁リリースの話です。
無論 DES 入れなければ、MD5 ですが。
システム全体では、切替え用のライブラリ関数もあって
DES と MD5 を切替えて使えるのに
perl が FreeBSD の切替えメカニズムに追従できていないようなんです。
それともできるのかな?ご存知の方いたらスクリプトレベルでの
切替え法を教わりたいです。

断定はしませんが、ソースをちょっと見た印象として、
-current は、login.conf で切替えられて、
デフォルトは MD5 です。今の所。4-stable は DES 入れると
有無を言わさず DES みたいですね。

No. 1481 # rosegarden 2000/12/20 (水) 02:43:57
>>1480 参照
>ことに 4.1.1-RELEASE 以降の暗号解禁リリースの話です。
正確にはDES が気軽に使えるようになったのは 4.0-RELEASE からですね。

No. 1482 # 68user 2000/12/20 (水) 02:55:43
>>1480 rosegarden
> システム全体では、切替え用のライブラリ関数もあって
> DES と MD5 を切替えて使えるのに perl が FreeBSD の
> 切替えメカニズムに追従できていないようなんです。
あ、そうなんですか。全然知りませんでした。
    /usr/lib/libcrypt* -> libscript*
というリンクなら MD5、
    /usr/lib/libcrypt* -> libdescript*
なら DES、くらいの切り替え方法しかないのかと思ってました。

4.2-BETA (make world しなきゃな〜) のソースを見た限りでは
よくわからなかったのですが、切り替え用ライブラリ関数とは
どれのことでしょうか?

No. 1483 # rosegarden 2000/12/20 (水) 03:03:40
>>1480 参照
>今の所。4-stable は DES 入れると有無を言わさず DES みたいですね。
ちょっと調べて見たら、意外に以前のバージョンで変更されていますね。
知らなかった。

green 2000/08/21 19:15:54 PDT

    Modified files:
(略)
        usr.bin/passwd local_passwd.c
        usr.sbin/pw Makefile pw_user.c
    Log:
    Add working and easy crypt(3)-switching. Yes, we need a whole new API
    for crypt(3) by now. In any case:
    
    Add crypt_set_format(3) + documentation to -lcrypt.
    Add login_setcryptfmt(3) + documentation to -lutil.
    Support for switching crypt formats in passwd(8).
    Support for switching crypt formats in pw(8).
    
    The simple synopsis is:
    edit login.conf; add a passwd_format field set to "des" or "md5"; go nuts :)
    
    Reviewed by: peter

ちなみに RELENG_4 だと変更のタイムスタンプは 2000/09/20 04:19:56 PDT
見たいですね。ちょうど、4.1.1-RELEASE のでる前後ですね。

>>1482 68user さん
>4.2-BETA (make world しなきゃな〜) のソースを見た限りでは
>よくわからなかったのですが、切り替え用ライブラリ関数とは
>どれのことでしょうか?
答えは上の commitlog を御覧ください。crypt_set_format ですね。

No. 1484 # SabaCurry [E-mail] 2000/12/20 (水) 07:40:04
失礼しました。転送メールがうまくいってない(?除名された?
みたいなので

よければ、こちらの方にURLを教えていただけないでしょうか?

久々にセガの過去ログなど見て、懐かしさにひたってしまいました。

No. 1485 # ぷに辻 2000/12/20 (水) 10:34:25
>>1477 gixs
>>1478 68user
gixsさん、68userさんありがとうございました。
> md5 より crypt+md5 の方が、salt という仕組みがある分
> 強固ではないかと思います。推測にしか過ぎませんが。

なるほど。では全部のスクリプトcrypt+md5に変えようと思います。

# gixsさんのは難しすぎて僕には分かりませんでした(汗)

No. 1486 # gixs 2000/12/20 (水) 20:42:12
> # gixsさんのは難しすぎて僕には分かりませんでした(汗)
説明する側の落度です。精進します。

>> md5 より crypt+md5 の方が、salt という仕組みがある分
>> 強固ではないかと思います。推測にしか過ぎませんが。
正しいと思います。
下のぼくの(分かりにくい)説明は、crypt+des vs. crypt+md5の話です。
結論は、パスワード長が同じなら辞書アタックに対する強度に差はないだろう、ということです。
saltありなしに関する余談は・・・、また分からないと言われるのが恐いので止めます。

No. 1487 # 68user 2000/12/21 (木) 01:41:19
>>1483 rosegarden
> システム全体では、切替え用のライブラリ関数もあって
なるほど。crypt(3) の切り替えではなく、passwd(1)/pw(1) で
使用される crypt ライブラリのフレームワークが追加された
ということですね。

> perl が FreeBSD の切替えメカニズムに追従できていないようなんです。
> それともできるのかな?
perl も libutil 使えばいいのにってことでしょうか。
でも #ifdef __FreeBSD__ を埋めこむようなものなので
(埋めこまないけど、意味としては同じ)、仕組みとしては
美しくないですねぇ。

ここらへんのもどかしさが
    Yes, we need a whole new API for crypt(3) by now.
と言わせるのでしょうか。

> スクリプトレベルでの切替え法を教わりたいです。
安直ですが、MD5 っぽい salt を渡すのはどうでしょう。
    % perl -e 'print crypt("secret","salt")."\n"'
    saHW9GdxihkGQ (DES)
    % perl -e 'print crypt("secret","\$1\$salt\$")."\n"'
    $1$salt$ez2vlPGdaLYkJam5pWs/Y1 (MD5)

>>1484 SabaCurry
> よければ、こちらの方にURLを教えていただけないでしょうか?
はい、後ほど送ります。

No. 1488 # Qさいとう [E-mail] 2000/12/21 (木) 16:23:39
マルチプロセスがよく分かっていませんので お願いします ...
今fork関数を使い,二つのプロセス, 1)表示画面にイヴェントが発生したら処理するプロセスと 2)時間監視を行っているプロセス  を作成しました. 2)は,ある時間の条件でXtOpenDisplayでメッセージ画面が表示し,OKボタンが押させるか画面右上のXボタンが押されると,メッセージ画面が消えます.しかし,メッセージ画面が複数個,表示されるのに,一画面を消去するだけで,全てのメーッセージ画面が消去されてしまいます. その為,複数プロセスにしよう ー 3つのメッセージ画面が表示されたら,3つのプロセスが
動いている − フ゜ロク゛ラムを作成中なのですが,3つ出力されればいいのに6つ(3つx2回)出力されたり,.... 何か簡単に作成できる方法はないでしょうか? execl命令などを使わずに簡単にできませんでしょうか.

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1489 # rosegarden 2000/12/21 (木) 17:43:28
>>1487 68user さん
>安直ですが、MD5 っぽい salt を渡すのはどうでしょう
なるほど、salt をかえればいいんですね。言われて見れば、
確かにそうですね。もっとも、言われるまでは気が付きませんでしたが。
どうもありがとうございました。

No. 1490 # 68user 2000/12/21 (木) 21:47:15
>>1488 Qさいとう
> 今fork関数を使い,二つのプロセス,
>  1)表示画面にイヴェントが発生したら処理するプロセスと
>  2) 時間監視を行っているプロセス
> を作成しました.
X サーバとの通信の実態は、ソケット経由でのデータのやりとりです。
大抵は (同一ホスト内なら) /tmp/.X11-unix/X0 経由です。
# つまり UNIX ドメインソケットを使う。

で、ソケットを作成したあと fork して、複数のプロセスが
ソケット共有するのは多分うまくいかないでしょう。
# そういう構成であるとは書いてありませんので推測ですが。

クライアント→サーバは OK かもしれませんが、サーバ→
クライアントのデータは親プロセスか子プロセスのどちらに
渡るかが決まっていないからです。

というわけで、そもそも構成がまずいと思います。1プロセスで
できませんか? Xt は知らないのですが、何かコールバック関数を
登録できる仕組みがあると思います。

仮に複数プロセスでやるとしても、X サーバと接続する前に
fork して、片方は X サーバとの通信、もう片方は監視などと
役割分担し、両プロセスの間はパイプやシグナルやソケット経由で
やりとりすべきでしょう。

>>1487 68user
>> よければ、こちらの方にURLを教えていただけないでしょうか?
> はい、後ほど送ります。
あ、まだ送ってなかったかもしれない。今日明日はちょっと
無理かもしれないので、すいませんが気長にお待ちくださいませ。

No. 1491 # 酒井 [E-mail] 2000/12/22 (金) 17:53:48
「UNIXの部屋」で

telnet リモートホストにログインする  という項目がありました。


ここで 自動的にログインし、自動的にコマンドを実行するには sleep の項のサンプルを参照。
                (コマンド sleep *)

とありますが、sleepの項では、下記のようになってます。


                sleep 指定秒数だけ動作を止める
                5分間 (300秒) 動作停止するには

                % sleep 300

                とする。sleep コマンドは、スクリプトの中で使うことが多い。

                % ( echo username ; sleep 1 ; echo password ; sleep 1 ; echo ls ; sleep 1 ) | telnet foo.bar.com

                なんてこともできたりする。

                (日本語マニュアル sleep)


実際に自動的にログインし、自動的にコマンドを実行したい場合はどうすれがいいのでしょうか


誠に勝手なお願いですが、ぜひ教えてください。

No. 1492 # 68user 2000/12/23 (土) 14:13:45
>>1491 酒井
> 実際に自動的にログインし、自動的にコマンドを実行したい場合は
> どうすれがいいのでしょうか
そこに書いてある
    % ( echo ... sleep 1 ) | telnet foo.bar.com
ではダメだったのでしょうか。

まぁ普通は ssh や rsh を使いますね。
    http://X68000.startshop.co.jp/~68user/unix/pickup?keyword=rsh&target=command#rsh
    http://www.jp.FreeBSD.org/QandA/HTML/1576.html

No. 1493 # 68user 2000/12/23 (土) 15:20:34
古い話ですが
>>1380 book
> gcc -c share_test.cc
> ar cr libtestshare.so share_test.o
> ranlib libtestshare.so
> CC test_gcc.cc -L. -ltestshare
gcc に -g オプションを付ければいける、と fj で読んだような
読んでないような。

>>1484 SabaCurry
メールで送りました。

No. 1494 # CoreFighter 2000/12/30 (土) 23:28:20
BIOSの設定画面で、MPSってありますけど
Versionの1.1と1.4の違いってなんでしょうか?

No. 1495 # Abe [E-mail] 2000/12/31 (日) 04:58:45
ある日突然?起動音が出なくなり、サウンドはすべて聞えなくなりました。[リソースの競合に遭遇し、自己流で、[コントロールパネル]-[システム]-
デバイスマネージャー]より、「はてなマーク」のものを削除して、
[サウンド関連のデバイス]を手動設定変更し、競合を避けることができ、
デスクトップ右下にスピカーが表示され音が出るようになったのですが、
再起動するたびに、「PCI Universal Sirial Bus」の入手案内が表示され、キャンセルボタンを押してからでないと、正常に作動を開始しません。起動の度に案内画面が出ないようにするにはどうすればよいでしょうか?

No. 1496 # アイスクリーム [URL] 2001/01/03 (水) 08:34:43
    チャトって、どこですか???

No. 1497 # ふくし 2001/01/03 (水) 20:06:29
あけましておめでとうございます。本年もよろしくお願いします。
別のことをやっていて偶然発見したんですが、

------------------------------ foo
#! perl
use strict;

my $n = 17; # 普通の変数
print "---> $\$n\n"; # リファレンスしていきなりデリファレンス

------------------------------
% perl -w foo
Use of uninitialized value in concatenation (.) or string at foo line 5.
---> 17

結果は確かに出てるんだけど、なんかundefの変数を二重引用符に入れたときと同じ
警告メッセージが出ます。これはなぜでしょう?

No. 1498 # mm 2001/01/03 (水) 22:29:52
>結果は確かに出てるんだけど、
↓を試してみて下さい。
my $n = 17; # 普通の変数
$\ = '<OUTPUT RECODE SEPARATOR>';
print "---> $\$n\n"; # リファレンスしていきなりデリファレンス

↓こっちも
my $n = 17; # 普通の変数
print "---> ${\$n}\n"; # リファレンスしていきなりデリファレンス

No. 1499 # 68user 2001/01/04 (木) 16:53:48
>>1494 CoreFighter
> BIOSの設定画面で、MPSってありますけど
> Versionの1.1と1.4の違いってなんでしょうか
MultiProcessor Specification の略ですが、詳しいことはさっぱりです。
現状では ACPI に取って変わられたんじゃないかな。具体的なことは
intel のサイトあたりに仕様書が転がってるかもしれません。

No. 1500 # ふくし 2001/01/04 (木) 17:39:57
>mmさん
あー、、、(^^;;;;; すいませんでした。
どうもありがとうございます!

No. 1501 # E田 2001/01/04 (木) 17:43:36
UNIXで、C言語で、TCP/IPを使って、クライアント/サーバ(マルチクライアントがアクセスする。非ブロッキングという)プログラムをしています。
selectを使用して、特定の、クライアントが接続しているソケットのタイムアウトを知りたいのですが、その方法が、良くわかりません。
こちらの方が詳しいということなので、ぜひ教えてください。
お願いします。本を読んでも、良くわかりませんでした。

No. 1502 # 68user 2001/01/04 (木) 17:54:58
>>1501 E田
現状はどこまでわかっているんですか?

何もわからないなら、まずは
    http://X68000.startshop.co.jp/~68user/net/c-echo-1.html
を読んでください。で、ソケットを使えるようになると。

で、perl ですが、select の使い方はこんな感じ。イメージをつかんで下さい。
    http://X68000.startshop.co.jp/~68user/net/echo-4.html

んで、C での select(2) の使い方。
    http://home.jp.FreeBSD.ORG/cgi-bin/showmail/FreeBSD-users-jp/54916
    http://home.jp.FreeBSD.ORG/cgi-bin/showmail/FreeBSD-users-jp/54917

わからなければ、作ってるソースから余計な部分をそぎ落としたソースを
公開して、再度質問してください。

No. 1503 # inpaku 2001/01/04 (木) 20:50:44
こんにちは。ネットワークプログラミングについて質問があるのですが…。
現在、Debian Linuxをもちいて、簡単なプログラミングから練習している
のですが、いき詰まりました。
PF_PACKETをつかってデータリンクに直接データを渡したいのですが、
ethhdrのh_dest や h_sourceにどうやってMACアドレスを入れて良いか
解らなくなりました。IPアドレスでは、inet_ptonとかあったんですが、
MACアドレスの場合もあるのですか??
宜しくお願いします。

No. 1504 # 68user 2001/01/04 (木) 23:22:14
>>1503 inpaku
> 簡単なプログラミングから練習しているのですが、いき詰まりました。
ははぁ、「簡単なプログラミングから練習」で、いきなりデータリンク層ですか。
僕にはちょっと荷が重いなぁ。

確認ですが、非 TCP/UDP かつ 非 IP のデータを送りたいのですよね?

UNIX Magazine 2000年7月号「BSD をハックする - 齊藤明紀」で、
    - 非 IP のプロトコルを使うにはどうすればよいか
    - 送信する Ethernet パケットに含まれる MAC アドレスを自由に
        設定することはできるか
について、NetBSD での解説が書かれています。

また、「UNIX ネットワークプログラミング第2版 Vol.1」
    http://X68000.startshop.co.jp/~68user/net/link-book.html#8
では、データリンクへのアクセス手法として、
    - BSD の BPF (BSD Packet Filter)
    - SVR4 の DLPI (SVR4 Data Link Provider Interface)
    - Linux の SOCK_PACKET
の3つがあげられています。どうやらここらへんは OS により
API がまちまちらしいですね。実際、手元の FreeBSD 4.2-BETA
では (PF|AF|SOCK)_PACKET という定数は定義されていません。

で、この本によると Linux の SOCK_PACKET を使うなら
    fd = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL));
とすると、データリンクからすべてのフレームを受けとれる
らしいです。

あと、tcpdump が使用している libpcap というライブラリが
上記3種の方法に対応しているようなので、参考になるかも
しれません。
# libpcap は読み出ししかできませんが、送信に対応させるのは
# それほど面倒ではないとか。

> IPアドレスでは、inet_ptonとかあったんですが、
> MACアドレスの場合もあるのですか??
BSD には libc に ether_aton とか ether_hostton てのがあります。
Linux はどうですか?

くぅ、面白い話題だけど、調べるのに一杯一杯だ。

No. 1505 # inpaku 2001/01/05 (金) 00:07:02
68userさんへ
親切にお答え下さって、ありがとうございます。
ether_aton とか ether_hostton ですか、探してみます。
実は僕もUNIX ネットワークプログラミング第2版 Vol.1を
持ってますが、はっきりいって、C言語すらおぼつかない僕
には辛いです(笑)
たしかにLinuxではSOCK_PACKETを使うと本には書いてあり
ましたが、Kernel2.2以降?からはPF_PACKETを使えと、man
ページに書いてあったものですから、それを使ってます。
また、libpcapのソースも落としましたが、書き換えるのは
僕には不可能でした(苦笑)
ところで、僕は何をしたかったのかというと、自分で任意の
プロトコルをつくってそれで通信させてみようということだ
ったんです。無謀とお思いでしょうが、やらなきゃならんの
です。卒業のために…。とにかくがんばってみます。
ありがとうございました。

No. 1506 # E田 2001/01/05 (金) 11:52:25
早速、回答してくださいまして、ありがとうございます。
どこまでわかっているか、ということなので書きますが、
ソケットの生成とかは、できています。
サンプルとかを真似して、クライアント/サーバで動かしてみました。
fork()で、マルチクライアントにもできています。
でも、select()を組み合わせると、よくわかりません。
動作は、教えてもらったページとかで、なんとなくわかるのですが、
それをCでやろうとすると、わからなくなります。
select[1]とかと書いて、タイムアウトの時間を指定してやると、
それをすぎても読み出せない時にはタイムアウトしたっていうことで
検出できるんですか?
よろしくお願いします。

No. 1507 # E田 2001/01/05 (金) 11:54:12
追伸です。
ソースとかは、まだ、ほとんど、サンプルとかのechoサーバとかなので、
書きませんでした。

Prev< No. 1472〜1507> Next  [最新発言に戻る] [過去ログ一覧]