Misc Change Log

`OpenBSD で scheme のアプリ開発' みたいなことをやってます。

2005-03-28

resolv.conf(5) の動的読み込み

tech@obsd

DNS がころころ変わる環境(DHCP とかノートで出張してるとか)によいかもしれないパッチ。

いまのところ、 アプリーションは起動中に resolv.conf が変わっても捕捉できないので、 環境が変わるとアプリケーションを再起動するしかない。

このパッチは gethostby* が呼ばれると、 それが以前の呼出しから 30 秒以上経過していれば(__res_chktime=30) resolv.conf をチェックし、 変更があればリロードすることで解決するらしい。

私はローカルに DNS サーバを起動して resolv.conf を nameserver 0.0.0.0 とすることでうまくやっていけてるので、 このパッチは当てないけどね:P

Posted at 01:25 | Permalink | Category | Comments

耐コリジョンハッシュ

http://www.ietf.org/...

via: http://yendot.org/

IETF のドラフト。既存のハッシュ関数を使う。SHA1 なら CR-SHA1、MD5 なら CR-MD5 等。

上のドラフトでは ASN.1 の DER エンコードを例にしているので、読んでみる。

ASN.1 の書式はこう。

DigestInfo ::= SEQUENCE {
    digestAlgorithm AlgorithmIdentifier,
    digest OCTET STRING }

AlgorithmIdentifier ::= SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL }

CR-MD5 を選択した場合、 CR-MD5 の OBJECT IDENTIFIER は 1.3.6.1.4.1.10471.6.4.3.1 になる予定で、 これを DER エンコードすると、

30 1f
   06 0b
      2b 06 01 04 01 d1 67 06 04 03 01
   04 10
      XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX

XX は乱数列になる。

例えば、 XX が 109de96f90aa7d08814c32fc456f9e6e6a となるような ASN.1 ストリームと 平分 f8f04799c4ea178042b604660a6fe3f166599a815aa9e2edf4 を受け取ったとき、

digest(平分) => MD5(4f63cc47a5cc2d2e563b54cd0b38f5d7)

digest(乱数列 + 平分) => CR-MD5(faa4702ab6e7fa890627192cd6cc6333)

となる。なるほど。入力を制御しようという試みか。これって salt の発想そのもの?

Posted at 00:28 | Permalink | Category | Comments