前の月 / 次の月 / 最新

swk's log 2007-05

<< 2007-05 >>
SuMoTuWeThFrSa
12345
6789101112
13141516171819
20212223242526
2728293031

2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2000 : 01 02 03 04 05 06 07 08 09 10 11 12
1999 : 01 02 03 04 05 06 07 08 09 10 11 12
1998 : 01 02 03 04 05 06 07 08 09 10 11 12
1997 : 01 02 03 04 05 06 07 08 09 10 11 12
1996 : 01 02 03 04 05 06 07 08 09 10 11 12

2007-05-30 Wed

* 『当ブログは移転しました』 - いろいろ [misc]

当ブログは移転しました

当ブログは 2007 年 5 月 4 日にhttp://nao.s164.xrea.com/td/に移転しました.

あなたがこの文章を読んでいるということは,あなたの購読している RSS フィードが古いものであることを意味します.この RSS フィードは今後更新されません.ブログの更新を引続きチェックする場合は,こちらから新しい RSS フィードを登録し直して下さい.

お手数をおかけしますが,よろしくお願い申し上げます.

あれ? bloglines で読んでて新しい URL に見えてたから,新しいのを読んでるんだと思いこんでた.古い RSS に新しい URL が埋め込まれていただけだったのか.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Nakano] Home run! Great slugging with that asnew... (2013-07-03 12:30:37)

* [nao] > 古い RSS に新しい URL が埋め込まれていただけだったのか.ご推... (2007-06-09 09:07:11)

2007-05-25 Fri

* 英文校正サイト NativeChecker [tech] 1 user

あー,そういえば,こういう作業って毎日のように手動でやってるわ.すばらしい.

2007-05-23 Wed

* 運動会 [misc]

工学部の運動会に出場.10年くらいぶりに (それ以上?) 全力疾走した.当日中に筋肉痛が出始めているのがまだ救いか.ていうかうっかり日焼けして痛い.

2007-05-21 Mon

* 『明星の鶏だし無菌充填スープがあまりにも美味なので夕食にしてみた』 [food]

残った麺の立場は?

2007-05-19 Sat

* あらゆる服のあらゆるところに iPod nano をつけられる「iWear」 [ipodnano]

ぐっと来た.しかしメールで注文って…

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [ClintonWrigo] Tinedol эффективное средство от грибка ... (2017-01-19 03:32:29)

* [Raymondpr] DPS Pharma Co., Ltd -"DrugsPowerSto... (2016-09-28 09:51:25)

* [Timothycant] Стимуляторы ЦНС нового поколения, регасп... (2016-05-24 08:27:44)

* [WilliamSag] Долго ждать не придется, что наступят та... (2016-02-01 19:02:55)

* [Jeremylep] Поставим дешево биостимы, энергетики, фа... (2016-01-12 05:05:38)

* ...

2007-05-18 Fri

* w3m でファイルを強制的に HTML として読む [tech] 1 user

localでみる時に w3m -T text/html しないとだめという問題があります。

w3m で表示してから v でもいいかと思いますし。

おおお.

hoge.html.ja みたいなファイルをローカルで見るのが面倒だといつも思ってたけど,これでちょっと幸せになった.

ローカル用に 拡張子 → MIMEタイプの対応づけを決め打ちできる方法があるともっと嬉しいのだけど.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Noboru] It\'s great to find an epexrt who can ex... (2013-07-04 17:09:16)

2007-05-17 Thu

* 『Amazonの配送料無料にはこんな罠があった』 [misc] 1 user

配送料の問題よりも,入手できないとわかるまでえんえんと時間がかかるのは何とかならんのか.まあこれは一般書店でも同じことかな.

* 色が変わるカードマジックのトリック [misc] 1 user

興味深い.最後の最後だけ違和感に気づいたけどそれまではまったく気づかなかった.

2007-05-16 Wed

* 韓国出張 [suwon]

数日ほど出張してました.初韓国だったので適当にメモ.

  • 仙台-仁川 の Asiana 直通便.水原 2 泊,ソウル 1 泊.
  • 機内食で焼肉弁当のようなものが出たけど全く辛くない.外国人向けの味付けなののかなあ,それにしても辛くなさすぎだろうなどと思いつつ食べ終わった後に,コチュジャンのペーストが入ったチューブを見つけた orz
  • 各部屋にインターネット接続が,とかいうのはもちろん既に全く驚かないが,各部屋に PC が置いてあるってのはやり過ぎだろうと思った
  • reconfirm が必要だと言われていたのだがすっかり忘れていた.が,問題なかった.
  • 自己紹介した後に名刺を裏返して Kagami は「鏡」だと説明して「That is why I use Digital Micromirrors」なるネタを使用可能.漢字文化圏限定.
  • 「鏡」は韓国読みで「キョン」

その他,何か思いついたら追記する.

* false positive と false negative [tech] 2 users

どっちがどっちだかよくわからなくなるという話題ですが,そりゃ当たり前です.そのシステムがどちらを positive でどちらを negative であると扱っているかに依存しているので,それが明示されていないか,あるいは文脈上明確になっていないと,混乱するというか不定です.

false positive

  • 「本当はスパムじゃないのにスパムと判定された」

false negative

  • 「本当はスパムなのにスパムじゃないメールとして判別された」

「スパムを検出するシステム」であれば上記の通りですが,「スパムじゃないメールを検出するシステム」について議論するならば positive / negative は逆になります.

そういう意味で,個人的には false accept / false reject とかの言い方の方が誤解の可能性が減るので,好んで使います.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Dennisbyday] With that in mind, project managers and ... (2017-05-27 14:21:55)

* [DavidLar] Of course the cost will have to figure i... (2017-05-27 02:06:55)

* [XRumerTest] Hello. And Bye. (2017-05-26 11:53:46)

* [JesseJaw] One may want to take some chairs to a ca... (2017-05-25 08:05:00)

* [RichardDooke] If you don\'t are training the "sel... (2017-05-23 00:07:26)

* ...

2007-05-09 Wed

2007-05-08 Tue

* 「おとなしい」の対義語 [misc]

赤子のことを「稚児」と書いて「ややこ」と読む。

つまり「大人しい」の反対は「ややこしい」。

!!

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Manthesh] I am forever indebted to you for this in... (2013-07-04 10:15:01)

2007-05-06 Sun

* iPod nano 買った [shopping][ipodnano]

激しく今さらなのだけど,急に欲しくなって iPod nano 買った.8GB の黒.ツクモの通販で税込 26,009 円,送料無し.

ipodnano/20070505-215027.jpg

ポータブルオーディオを使うのは MD ウォークマン以来.MD ウォークマンって言っても,持ってたのってこれだし.かなり隔世の感がある.ていうか実に 12 年か.

何だか最近,喫茶店やレストランで本を読んだり物を書いたりするときに,周りの音が気になってイライラするようになった,というのが急に欲しくなった理由.突然周りがうるさくなったってことはないと思うので,きっと私の側の変化なのだと思いますが.なんというか,最近いろんな意味で余裕がなくなった気がします.

さておき,

そういう理由なので,音質は二の次と最初から割り切っていたのですが,噂には聞いていたけど,結構気になります.曲によっては本当にひどい音になっていると感じる.いろいろ聴き比べた感じだと,AAC のせいとかヘッドフォンのせいとかいう以前に (それらの影響ももちろんあるけど) iPod nano 自体の再生系に問題がある感じ.全然気にならない曲もあるので一概にはいえないのだけど.というか私の場合,たいがいは音楽だか騒音だか分からないのを聴いているので,まあ別にいいんですけど.

「噂には聞いていた」くせにどうして iPod 買うんだよ,って言われそうですが,なんでだろう,やっぱり iTunes がよくできているからってのが大きかったかも知れない.あと見た目.

2007-05-05 Sat

* 『樹海に行ってきました』 [misc]

建物の色だけでほぼ会社バレに等しい件について.

* 計算問題によるコメントスパム対策 - 固定パラメータ攻撃対策 [logging] 1 user

というわけで [2007-04-30-1],まず世の中の CAPTCHA とかではどうやっているかというと,どうやらワンタイムトークンとするのが普通らしい.

今回のケースに置き換えると,サーバは計算問題を生成して (これがトークン),それをサーバ側に保存しておき,ユーザから送られて来た答えと,その保存しておいた問題 (の正解) と照合する.

ということでそれを実装すればよいのだけど,どうもぐっと来ない.なぜぐっと来ないのか考えた結果,思い当たったのは以下の 2 点:

  • くっつきBBSの場合,コメント閲覧ページとコメント投稿フォームが同一なので,コメントを閲覧するたびにトークンを保存しなくてはならなくなって何か嫌だ
  • 上と関連するけど,コメント投稿フォームをリクエストするときの method は GET なので,副作用を起こすのが気持ち悪い

ぐっと来ないものを作ってもろくなことにならないのでとっとと却下する.


というわけで考え方を変えてみる.要は,投稿のリクエストに関して,

  • サーバ側で,正しいパラメータの組合せの判断が可能で,
  • 攻撃者側では,正しいパラメータの組合せを不正に生成するのが事実上不可能で,
  • 一度成功したパラメータは再利用できない

という条件を満たせばよいのかな.これでどうだろう.

  • サーバ側で固定の秘密パスフレーズ $p を用意しておく.
  • 足し算の問題を生成するとともに,適当なトークン $t も生成する.
  • 足し算の答え $a と $p と $t からハッシュ値 $h = hash($a, $p, $t) を生成して,$h と $t を hidden input としてクライアントに渡す.
  • ユーザは投稿時,足し算の答え $a' とともに (hidden input の) $h と $t をそのままサーバに送り返す.
  • サーバは,まず $t が過去に投稿受理した際のものと同一でないかを確認する.OK であれば,hash($a', $p, $t) と $h を比較して,一致したら投稿を受理する.受理した際は,$t を保存しておく.

実装はとりあえず以下のような感じ.$page_template_default には

<div class="arith">
<br>
コメントスパム回避のため,以下の足し算の答えを半角でご記入下さい: <br>
$arith_x + $arith_y = <input class="field" name="arith" value="">
<input type="hidden" name="arith_token" value="$arith_token">
<input type="hidden" name="arith_hash" value="$arith_hash">
</div>

を仕込み,これを表示する直前に

my $arith_x = int(rand(9)) + 1;
my $arith_y = int(rand(9)) + 1;
my $accepted_tokens = {}; 
if (-e $arith_token_file) {
    $accepted_tokens = Storable::lock_retrieve($arith_token_file);
}
my $arith_token; 
do {
    $arith_token = Digest::MD5::md5_hex($logid .
      				  $q->remote_host() .
      				  int(rand(2 ** 32)));
} while (defined($accepted_tokens->{$arith_token}));
my $arith_hash = Digest::MD5::md5_hex($arith_token .
      				$arith_passph .
      				($arith_x + $arith_y));

とする.ここでは token ファイルは読み込んでいるだけなのに注意. if ($mode eq "write") { のときの処理は,

  my $arith = $q->param('arith') + 0;
  my $arith_token = $q->param('arith_token');
  my $arith_hash = $q->param('arith_hash');
  my $accepted_tokens = {}; 
  if (-e $arith_token_file) {
      $accepted_tokens = Storable::lock_retrieve($arith_token_file);
  }
  if (defined($accepted_tokens->{$arith_token})) {
      exit;
  } elsif ($arith_hash ne Digest::MD5::md5_hex($arith_token .
                                               $arith_passph .
                                               $arith)) {
      exit;   				 
  } else {
      $accepted_tokens->{$arith_token} = 1;
      Storable::lock_store($accepted_tokens, $arith_token_file);
  }

とした.

トークンの生成は適当で構わないのだけど,発行済みのトークンで過去に受理されたもの,および受理される可能性のあるものと重複しないようにだけは気をつける必要があるので,何かむにゃむにゃな処理をやっている.

うーむ,ちっともお手軽じゃなくなってきた.いろいろ工夫してみたところで所詮足し算を実行されたら終わりですからね.なんかベクトルが間違っている気がしないでもない.

現状の問題点:

  • 受理したトークンの記録が単調増加.expire する仕組みが必要.
  • 投稿を受け付けるする際の,$arith_token_file の read から write までの一連の処理が atomic でない.だから,場合によっては書き込んだはずの受理済トークンが失われて,二度目の使用を許してしまう場合があり得る.
  • MD5 ってもうダメなんでしたっけ?

というか何か根本的に見過ごしていることがあるような気がしてならない….どんなもんでしょ.


(追記)

2007年05月06日 kazuhooku しょうもないつっこみしてすみません。よっぱらいつつの感想: syncookies のようなゼロ記憶だと難しいのかな。

http://b.hatena.ne.jp/entry/http://www.kagami.org/diary/2007-05-05-1.html

恥ずかしながら syncookies って初耳だったのでちょっと勉強.

なるほど.トークンを乱数を使って作る代わりに時刻を使うことにして,一定時間経過してたら reject するってことになりますかね.ハッシュ値の計算に時刻をつっこんでおくことで,サーバ側の保存無しで expire をチェックできるところがミソだと理解しました.

「一定時間」をうまく設定してあげる必要があるかも.短いとコメントを書いているうちに expire しちゃうし,長いとその間は固定パラメータ攻撃されちゃいますよね.まあ 1 時間くらいにしておけば実用上十分な気がしますが.

…というのが SYN cookies の動作を単純にマッピングした場合の話だと思いますけど,もしかするともっとうまい応用のしかたがあったり…?

関連記事:
[2007-06-28-1] コメントスパムがやって来た
[2007-04-30-1] 計算問題によるコメントスパム対策の実装

2007-05-03 Thu

* itojun2.0 (RE: IPv6 Type 0 Routing Header issues) [tech]

よくわからないけど大変だということはよくわかった.

2007-05-02 Wed

* 日本初・民営刑務所 囚人が「ソフト開発」 [tech]

2007年05月02日 otsune 「Ruby on Jails」か

http://b.hatena.ne.jp/entry/http%3A//www.j-cast.com/2007/05/01007306.html

誰がうまいこと言(略

* 『プレイステーション9は粉末状で鼻から吸引、脳に直接作用』 [tech]

イーガンっぽい.

2007-05-01 Tue

* 「復活!ウゴウゴルーガSP」フジテレビ系地上波5月17日深夜 [misc]

1992年から94年までオンエアされた伝説のバラエティ番組「ウゴウゴルーガ」のDVD-BOXが発売されることとなり、都内でヒット祈願イベントが行われた。

会場には、すっかり大人になったウゴウゴくん(田嶋秀任、22)とルーガちゃん(小出由華、22)が登場、それに着きぐるみの「ミカンせいじん」がオフィシャルで初公開された。

(中略)

進行役は「おきらくごくらく」を流行させた「テレビくん」がつとめており、ミカンせいじんのVTRを見ながら「Youtubeにあがってます」とコメントするなど、テレビ的に際どいトークも健在だ。

http://news.ameba.jp/2007/04/4469.php

ちょww

「復活!ウゴウゴルーガSP」がフジテレビ系地上波で5月17日26:40〜27:10、CS放送フジテレビ721で5月25日22:00〜23:00、それぞれ放送される。

YouTubeで見るか(ぉ

* Europe / In The Future To Come [musicvideo]

YouTubeで試聴する偏った名曲選シリーズ,本日は Every Little Thing の Dear My Friend  をお送りします.



Europe / In The Future To Come

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Bryan] It\'s spooky how celevr some ppl are. Th... (2013-07-03 16:07:21)

2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2000 : 01 02 03 04 05 06 07 08 09 10 11 12
1999 : 01 02 03 04 05 06 07 08 09 10 11 12
1998 : 01 02 03 04 05 06 07 08 09 10 11 12
1997 : 01 02 03 04 05 06 07 08 09 10 11 12
1996 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2012-02-13 02:02


Shingo W. Kagami - swk(at)kagami.org