最新

おおいわのこめんと (2005-01)


2005-01-01 あけおめ

[Rail] 初日の出ツアー

今年も犬吠崎まで行ってきました。

大雪の翌日で天気はそこそこ回復していたんですが、 東の海上は分厚い雲に阻まれてました (;_;

ギャラリー:
夜明け前 日の出は過ぎたが...
雲が赤くなってきた 出たー。

おまけ: 例年より少ない人出 例年より少ない人の数


2005-01-08 お引越し〜

[Misc] [tDiary] こめんと reloaded

Trackback とかを使ってみたくなったので、 tDiary を導入してみた。 元々の「こめんと(ぉ」も、他人の Web ドキュメントへのコメントつけをかなり 意識していたので、Trackback への対応は自然かなぁと。

というわけで、とりあえずツッコミは有効にしてあるけど、 ひょっとしたら trackback のみにするかもしれない。 まぁ使ってみて考えるかなぁと。

トラックバック

とりあえず自分に Trackback を送ってみる。いまいち使い方がわかってないんだよな。

………Section タグがずれている……。これは etDiary スタイルのバグかな。→ CVS から etdiary_style.rb ファイルを持ってきて更新したら直った。

tdiary-mode

emacs から tDiary を直接編集できるような major-mode があったので試してみる。 とりあえずちゃんと動いているようだ。

http.el の中に (while (not (search-forward "</body>" nil t)) とかいう かなり怪しげな行があるのだがそのうち直そう (^^;

……直した。まぁ尤も、tDiary に使っている限りは問題無い仕様だったみたいね。


2005-01-09

[tDiary] Trackback (続)

Trackback URL のあるページから自動的にトラックバックを作成する Bookmarklet を、 MozillaContextMenu Extensions の Custom Scripts に登録して使うように改変した。

ついでに、新規 Tab に予めリンクが本文フィールドに書き込まれた状態になるように拡張。

_window.document.getElementsByTagName("html")[0].
   innerHTML.match(/trackback:ping=[\'\"](http.+)[\'\"]/i);
var pingUrl = RegExp.$1;
var url = _window.location.href.replace(/\?\d\d\d\d\d\d\d\d(#.*)?$/, '');
var title = _window.document.title;
var linktag = '<a href="' + url + '" title="' + title + '">' 
            + title +'</a>';
_setClipBoard(linktag);
var href =
    'http://www.EXAMPLE.JP/URL/TO/TDIARY/update.rb?plugin_tb_url='
    + escape(pingUrl);
_openNewTabAndDo
  (href, // URI
   null, // リファラ
   function(aWindow)
   {
    aWindow.document.forms[0].body.value = '<<' + linktag + '>>';
   }
);

_openNewTabAndDoの使い方がわからなくて難儀したが、 この辺りを参考に適当にやったら動いた。 挿入するタグは etDiary スタイル用なので 必要なら適当に最後の function の中と、linktag 変数の定義を書き換えるべし。

[Comp] TRAMP for emacsen

tDiary のスタイルファイルを編集するのにいちいち 『ローカルコピーを編集→fcpでコピー』とかやるのが繁雑なので、

「昔 ange-ftp の ssh backend とか探したなぁ」

とおもってちょっと調べたところ、ange-ftp をむちゃくちゃ便利にしたような TRAMPという代物が 出来ていたらしい。便利便利。

[Misc] サイトデザイン

Recent List とか calendar2 とかを使いたいんですが、 このスタイルだとあまりうまくないね……

table タグを使わないとサイドバー風のデザインで サイドバーと本文の部分の長さを揃えられない気がするのだが、 何か回避方法があるだろうか……。

→ トリッキーな手段で実現してみた。微妙に IE6 の動作がおかしい気がする (^^;


2005-01-10

[tDiary] fastcgi for tDiary

なんかリクエストの処理に

% /tmp>time httpget -sv0 http://www.oiwa.jp/~yutaka/tdiary/index.rb
writing to file: index.rb                                                      
http://www.oiwa.jp/~yutaka/tdiary/index.rb: 12209 bytes transfered in 0.0s.    

0.010u 0.020s 0:00.75 4.0%      0+0k 0+0io 779pf+0w
              ~~~~~~~

とかいう時間がかかっているので、fastcgi を入れてみた。 fastcgi 自体は Debian unstable から持ってきてコンパイルして、 tDiary の wrapper は この辺り を参考にさせてもらった。とりあえず

% /tmp>time httpget -sv0 http://www.oiwa.jp/~yutaka/tdiary/index.fcgi
writing to file: index.fcgi                                                    
http://www.oiwa.jp/~yutaka/tdiary/index.fcgi: 12209 bytes transfered in 0.0s.  

0.000u 0.030s 0:00.30 10.0%     0+0k 0+0io 779pf+0w

くらいになったようだ。 そのうちちゃんとベンチマークをとってみようかな。

# その代わりに mod_deflate が勝手に無効になっているような……。

→ ab で計ってみた。同一マシンからの "ab2 -c 10 -n 100" で、

  • fcgi → 33.95 s, 2.94#/sec
  • cgi → 69.80 s, 1.43#/sec

だった。そこそこ速くなっている模様。 最大同時インスタンス数が10に制限されてるのもいい感じなんだが、 これは Apache の設定をいじれば CGI でも可能なのかな?


2005-01-11

[tDiary] small hack for etDiary スタイル

# Linux の Mozilla と kinput2 が干渉して書きかけの記事が飛びやがった……

僕はこれまで他人の記事へのコメントやソフトの感想などを日記に書く時に、 タイトル部分に直接 <a> タグを埋め込んでいたのだが、 tDiary の Recent List にそれがそのまま反映されると、 一見して僕の書いた本文へのリンクに見えてしまうという問題が生じていたので、 dirty hack を書いて回避してみることにした。

remove_a_tag_from_title.rb (1/27改名のため削除) が出来たプラグイン。 中身を見ればわかるが etDiary にフックをかけて 強引に書き換えているので etDiary 専用。 カテゴリ別記事一覧リストなど割と全般的に効く模様。

ところで、最初このプラグインには 16 行目の

if method_defined? :original_stripped_subtitle_to_html

がなかったのだが、手元の実験環境では動くのに本番のこの日記で Ruby が Segmentation Fault を吐いて落ちるという症状に見舞われた。 最初原因がわからなかったのだが、要するに header_proc は 日記を処理する度に毎回呼び出されるので、FastCGI や mod_ruby のように 環境を複数回使い回すような状況ではフックを2回かけて 自己再帰してしまっていた模様。 いきなりやってしまった感高し……。

追記 (1/27)

カテゴリ再構築の際に有効になっていなかったので 少し書き換えた。 010remove_a_tag_from_title.rb。01sp.rb や category.rb より 先に読み込まれないといけなかったのと、 header_proc に依存してはいけないのの2点が変更。 うっかり↑の if 文を消して再びどはまった orz


2005-01-12

[Misc] とある数学の問題

米澤研で立沢君からだされたこんな問題で盛り上がってしまった。

\[a_0 = p,~a_{n + 1} = p^{a_n}\] で定義される数列 \[a_n\] が収束する正の実数 \[p\] の範囲は何か。

もともとは高校生向けの \[p = \sqrt 2\] の場合のみの問題だったのを パラメータ化したらしいのだが、やたらとややこしい。部分的には解が出たんだけど、厳密解には至っていない。

この元の問題の高校生的な答えとしては、全ての \[a_n\] が 2 で上から押えられるので、 「上界を持つ単調増加数列は収束する」、でおしまい。

と、とりあえず \TeX プラグインをテストしたところであとに続く。

(続きを読む) ...

2005-01-13

[Misc] とある数学の問題 追記

昨日の「とある数学の問題」に追記。

[tDiary] seemore.rb 改造

seemore.rb プラグインは昨日も使っていた便利なプラグインなのだが、 ダイジェストで省略されるべきテキストを文字列で食わせなきゃいけないので内部でプラグインを使うには非標準の書き方をしなきゃいけないのが ちょっと辛いので、dirty hack で別バージョンを作ってみた。

<%=seemore2 <<'END','title属性'%>;
新着表示で省略される本文
<%
END
%>;

みたいな表記になる。本文は通常のフォーマットで書けるが、 tDiary と etDiary 以外のスタイルではうまくいかないかも。 tDiary スタイルだと END のタグは空白除けば1行で書けるけど、 etDiary では少なくとも後ろの改行は必要とか、 かなり tricky なので公開はためらわれる(笑)。 変なところに END タグ埋めると変な HTML になると思います。 また、略記部分の本体は評価されないので プラグインに副作用があると誤動作するかも。


2005-01-14

[tDiary] tDiary とセキュリティー

と、seemore2.rb を書いていて、日記本文って ERB でかなりなんでも 出来てしまうということに気がついた。 平文シェルログインと同じだねぇ。怖いねぇ……。

とりあえず更新フォームは SSL でしかアクセスできなくしてみた。 tdiary-mode.el が使えなくなってしまったが、 まぁその辺りはゆっくり考えよう。

→結局 local proxy を SSL 対応させて無事使えるようにした。

→さらに念のため、専用ユーザを作って隔離してしまった。 まぁこの辺りは専用サーバならではというか。

→そうしたら、いろんな箇所のリンクが壊れていた。 tdiary.conf 内で base_url メソッドを上書きして対処。

使ってるプラグインが全部 secure モードに対応していればそれでもいいんだけど、 どうかなぁ……。試してみないと駄目か?


2005-01-15

[Comp] TRAMP 設定変更

1/9の日記で導入したTRAMP を、 もう一回ドキュメントを読んで設定をいじってみた。

とりあえず学校 (Solaris 2.8, ssh.com の sshd) 相手では fcp メソッドが何故か動いてくれない (/bin/sh が ~ を認識しないので、/bin/bash に切り替えようとしてこける)ので、 fcp メソッドでは bash を直接起動するようにしてみたら、動いている様子。 ドキュメントにはこっちの方が ssh メソッドより速いよと書いてあるのだが……。

しかし、リモートのファイルに対して直接 vc の操作が出来たり (但し RCS ではユーザ名が違うので non-strict モードにしておかないと steal lock しようとしてしまう)、 multi:ssh:host:su:root@:... とかやるとリモートで su して直接ファイル 操作できちゃったり(怖いから使わないとは思うけど)、なかなか強力だねぇ。

[Misc] カテゴリ分け

カテゴリのラベルは今回はカテゴリ別記事一覧が出ることもあって正直悩むのだが、 とりあえず旧日記からカテゴリを適当に拾ってみた。

% awk '/^ *\[[\(A-Za-z\)]+\]/{print $1}' *.html | sort | uniq -c | sort -nr
    216 [Misc]
     63 [Comp]
     39 [Rail]
     23 [Work]
      6 [Prog]
      6 [Music]
      3 [Private]
      3 [Announce]
      2 [GANA]
      1 [Unix]
      1 [TA]
      1 [Rec]
      1 [Personal]
      1 [Meta]
      1 [Live]
      1 [Life]
      1 [Lef]
      1 [Igo]
      1 [Health]
      1 [Emacs]
      1 [Comic]
      1 [Book]

うーん、適当ですなぁ(笑) もともと「こめんと」では人の日記にコメントする時は [] の中に名前を書いていて、 それ以外の時は適当なラベルを振ることにしていたため、 "GANA" と "Lef" はそういう人名由来のエントリだし、 まぁ"Misc" が多いのも自然なのだが、他の 1 桁のエントリは……。

tDiary ネタとか多分将来的にはカテゴリを割るような内容ではないと思うので、 Comp 扱いでもいい気がするんだけど、どうしたものか。

[tDiary] uconv

Ruby 1.8 にしてから RSS が EUC になっていたようなので、 Ruby の uconv ライブラリを手で入れた。 なぜか libuconv-ruby1.8 は backport に入っていない。何故だろう……。

[Comp] WWWコンテンツ作成

普段のWWWページでもツッコミ機能とTrackback機能を使いたくなってきたんだが、 どうしたもんだろうか :-)。 通常の Blog ツールの用途とは違って、一切横方向のリンクの無い 独立したページの集合を作りたいのだが。

Blog モードの tDiary をもう1つ設置して plugin で手を入れる という方法はあるのだが、URLが数字になるのは嫌なんだよなぁ……。 書式的には結構 etDiary に慣れてきたのと、自作の改造が 比較的容易そうなこと、それと SPAM 避けとかの開発が割と活発なことから、 出来れば tDiary のシステムを流用していきたいと思っている。


2005-01-16

[Misc] 新年会

なぜか新年早々わんこそば食べに東白楽へ。久しぶりに東急東横線で 移動したが、武蔵小杉→元住吉の工事が大分進捗していたようだ。

初挑戦だったがとりあえず82杯(15杯=盛蕎麦1枚らしい)。満腹で死ぬる。 胃に血が全部いって目が回るというのは割と初体験かも。

ラウンド終了後、帰りがけに残っていたエビ天麸羅を「もったいない」と パクついて立ち上がったのが間違いでした (^^;。


2005-01-18

[Comp] GPL のバージョン特定の件

奥君のblog に連載されている GPL 関連の記事の第4回 「FSF は、あとになってこそこそするな - Linus Torvalds」より。

うかつにも普段使っている Linux kernel が 'GPLv2' を特定していることに気がついていなかったのだが、かなり前から僕も GPL の "or (at your option) any later version." は疑問に思っていた *1。 実際今回 GPL 3 で微妙な意図を持った条項が入りそうということで話題になっているようだが、FSF がそれこそ「利用者は原作者に1使用当たり1$を請求できる」とか追加しても有効になっちゃうわけで、明らかに変な委譲条項だと思う。

大体にして、この部分は本文ではないのに、 "How to Apply These Terms to Your New Programs" の部分で「このライセンスを適用するには………の様に書くといいよー」とか書いて、 愚かなソフトウェア作者が *2 何も考えずに従うと 法律的重要な意味を持った委譲が成立してしまうっていうのは、 ソフトウェア作者をFSFが馬鹿にしているというか、詐欺の対象にしているというか、いずれにしても Fair じゃないと思う。 FSFのGPL/Copyleft戦略にとって、GPLでソフトウェアを書いてくれる作者は本来は重要な協力者なはずなのに、将棋の歩としか見ていないんだなぁという印象がある。

そういうわけで、昔から僕は自作ソフトウェアに GPL の「将来バージョン条項」は適用しないように書いてきたつもりである。 とはいっても他人のソフトウェアの改良が多いので、自分でライセンスを決めるケースは殆どないのではあるが。

自作もの:

  • Regexp/OCaml: QPL 1.0 (Clause 6c除外例外条項つき), 一部は Library GPL 2 (固定) *3 (static link 例外条項つき)
  • italk.l: BSD ライセンス(日本語正文化、宣伝条項なし)
  • 単発もの中心にライセンスつけるまでもないという判断だったものも多い...

他作もの:

  • xitalkbiff: Apache License ベース*4
  • italk.el おおいわ版: BSD ライセンス (宣伝条項なし)

ちなみに、Regexp/OCaml の一部モジュール (declare_once) が LGPL になっているのは、当該モジュールのような機能が欲しいマクロは他にもあるだろうと思われることと、機構的にそれを2人がバラバラに書いて同時に使うと激しく内部干渉するので、どうせなら僕の書いたモジュールを標準モジュールとしてみんなが使っていてくれた方が皆 happy で、そういう組み込み用途に使いやすくしておこうという意図。実装の方もそれを意図していて、僕の書いた同じソースからコンパイルされたモジュールを2回読み込んでも干渉せずに協調して動作するようにしてある。

*1  まぁ、言いたいことは 奥君が訳してくれている Linusのメール に全部かいてあるんだけど(笑)

*2 もちろん、この宣言の持つ重要な意味を理解した上で 進んで FSF に将来のライセンスの決定権を委譲する人を 愚か者と呼ぶつもりはないし、好きにすればいいと思う。

*3 "lesser GPL" って命名も作者なめてるよな... 特に将来のバージョン条項と組み合わせた場合、Library GPLの名前で LGPL 適用してたソフトに片っ端から lesser general のレッテル貼るわけだからねぇ。

*4 原作にライセンス条項がなかったので原作者と協議の上付加した。


2005-01-19

[Misc] 日記

たまにはほんとに日記ってのもいいかな……。

  • 出張所で印鑑証明と身分証明書を取得。
    印鑑証明は https://www.oiwa.jp/ のマトモな SSL 証明書を取るため。 身分証明書は就職関係。
  • D論の若干の手直し。実験進んだので結果を補充。
  • この「こめんと」のスタイルをまたいじる。 category2.rb の内容は 既に out of date のようなので、同じ機能の物を最初から作る。 しかし僕が書くとどうしてこう tricky になるかなぁ。 そのあとは CSS と格闘。IE と Mozilla でまたも挙動が違うんですけど……。 これで昨日の日記のようにタイトルにリンクが設定されている物が ちゃんと下線付きで表示されて、かつ左端の ■ とカテゴリの部分は下線がつかないようになった。 Opera の見栄えは誰か教えて。

で、気がついたことその1。身分証明書の内容って、要は破産その他してないことの証明なのだが、 区役所って「破産の通知を受けていない。」ことを証明してくれるのね。 すごく堅苦しく解釈すると、要は「裁判でインチキとかしてたら知らんけど、少なくとも我々の知る限り 戸籍に破産の登記はされてないことは証明できるよ」ということで、 まぁ厳密だなぁと。それだけ。

その2。これをいじっていて気が付いたのだが、tDiary って mod_ruby その他を使っても プラグインのソースは毎回読み込むんだね。だからこそプラグインのソース(のトップレベル)で日付とか 取得できるのも事実なのだが、これって処理重いよなぁ……。

追記 (1/20)

とりあえず、Zaurus 上では Netfront, Opera とも期待通りの動作をしている模様。 2通りの方法で指定したうちのどちらが効いているのかは不明。


2005-01-22

[Book] [Misc] 気絶

大体いつものメンバーで福のれん飲み。 その後新しくできたOAZO内の 丸善丸の内本店の 理工書コーナーに立ち寄る。

……やばいですあれ。気がつくと3〜4万円財布から消えてそう(笑)。

とりあえず軽めに気絶。はぁはぁ。

複雑系の数理: 本複雑系の数理: 本

[Misc] mixi

invitation をもらって加入してみました。 RDF で外部日記の参照が出来るようなのでここを参照するようにしました。

……どうせここで実名ばれてるのであちらも実名公開です(笑)。

[News] [Security] (/.J)「振り込め詐欺」は発信者番号を偽装する?

ふーむ、海外発はもう魑魅魍魎の世界だなぁ……。

私の某PHSは、アメリカ発の着信は +1xxxyyyzzzz と履歴に載った気がする。これなら少なくとも海外ネットワークから来たことは判別可能だよねぇ。

しかし、本当に原因がこれだとしたら、+ が表示できないのは仕方がないとしても、0101xxxyyyzzzz と海外発発信者番号の頭に010を付加しないキャリアが阿呆という結論になるような気が。発信側の名乗る Unique ID なんて信用できる相手同士じゃないと意味ないのも当たり前なのにねぇ。なんのために独立した電話番号空間を設けてるんだか。


2005-01-23

[Caml] [Work] Regexp/OCaml 0.9.5.3 リリース

Regexp/OCaml 0.9.5.3 をリリース。 とりあえず現状では変更点は CVS 版 Objective Caml への追従のみ。近いうちにひとネタ実装する予定。 それにしても camlp4 は変化が多過ぎる……。


2005-01-24

[Book] 多次元・平面国 / 多次元・球面国

多次元・平面国―ペチャンコ世界の住人たち: 本多次元・平面国―ペチャンコ世界の住人たち: 本 / 多次元・球面国―ふくらんだ国のファンタジー: 本

高校生の時に興味をもった数学書の1つ。 平面国の方は SEG の数学のテストでいい点を取った時の賞品にもらったのだが、 球面国の方は現在未入手。(と思いきやアマゾンで中古がでていたので 注文してしまった。定価を考えるとちょっと高いけどねぇ……。) 内容は2次元空間の仮想生物をモチーフにした小説仕立ての科学書(?)。

気がついたら 復刊.com で復刊投票を やっている。現在 51票/100 集まっているようだ。

[Caml] [Work] Regexp/OCaml 1.0.pre1 リリース

というわけで、現実逃避気味に新バージョン。

Python 風味の名前つきサブパターン("(?P<var>regexp)") をサポート。束縛する変数名をパターンの中に埋め込めるようにした。

例は match-regexp-test5.ml 辺りを参照。型変換の指定周りがまだこなれていないけど、まぁこの syntax では限界に近い気もする。


2005-01-25

[Caml] [Work] ばぐ

あはははは、 "昔"と同じ エンバグ、 やっちまいました。修正修正。

そもそもこの部分のコードが ad-hoc なのがいかんのだよなぁ……。


2005-01-26

[Comp] Mozilla 拡張

僕はいまだに Mozilla Suite の方を使い続けているのだが、 更新をさぼっていた古い環境をアップデートするついでに 使っているプラグインを GANA さんに習って 書き出してみる。

最近は FireFox 専用っぽいプラグインが増えてきて面倒になってきたので、 そろそろ乗り換えるかな……。

ちなみに NextImage はイメージでなくても、 数字の入った URL 全てに有効なので、 むしろ日記の前後の月とかそういう類の HTML ページ間の移動に重宝している。

[Security] オレオレSSL証明書、オレオレPGP鍵

だれだこういうイカすネーミングを思いついたのは(笑)

追記: 探してみた(笑)。これだ。 その後高木さんとこで 採用されて一気に広まったのかな?:-)

https://www.oiwa.jp/ では自己署名 SSL 鍵を使用し、 Regexp/OCaml とかその他の研究とかの Subversion Repository を収容しているのだが、 巷に自己署名SSL鍵の議論が盛んな今、セキュリティー研究者の端くれとしては 放置できないので (大嘘 :-)、とりあえず PGP 署名した 注意書きをおいてごまかすことにした(笑)。 もっとも PGP の鍵 (ID = FF98592D, 指紋 = C9 8D 5C B8 86 ED D8 07 EA 59 34 D8 F4 65 53 61) もオレオレ鍵なわけだが、こちらは 過去に配った全ての名刺とか、Mailing List に投稿した全てのメール (例えば これとか これとか これとか これ) とかに Fingerprint を表示してあるので、ある程度人定可能だと思う。

既に印鑑証明は取得してあるので、近いうちに正式な証明書を入手する予定。

1/27, 追記

ついでに GnuPG で OpenPGP 準拠の 新しい鍵 (ID = 995DD3E1, 指紋 = 3C21 17D0 D953 77D3 02D7 4FEC 4754 40C1 995D D3E1) を作ってみた。 いい加減 PGP2.6.3ia を使い続ける時代でもないしね。 昔 T-gnus on emacs20 で試した時は PGP5 も GnuPG もうまく 動いてくれなかったのだが、 emacs21 にして久々にテストしてみたら GnuPG と組み合わせても ちゃんと動いてくれた。

[News] (asahi.com) 雄山の標高38m低く 三宅島の地図14年ぶり修正

asahi.com のニュースに新しい地図の画像はあるのだが、 古いのはない。 どれくらい変わったのかなぁと思って国土地理院の地図を カシミール3Dで探してみた。

image
(国土地理院数値地図25000より「三宅島(NI-54-27-8-3)」、山旅倶楽部経由)

……激しく変わってるねぇ……。


2005-01-27

[Security] (Kazuho Oku's blog) 信頼できるオレオレ証明書 (笑)

いやまぁ、個人的にはむしろ「高木さんいけいけ」なんですが(笑)。 特に、オレオレルート証明書を「安全です」ってインストールさせるのは 邪悪にも程があるので是非高木さんには頑張ってもらわないと :-)。

ただ、これまであくまで個人レベルで例えば研究室のSSLサーバ (研究室の内部リソースへの研究室メンバーのアクセス用) とか立ち上げる分にはオレオレサイト証明書でよかったし、www.oiwa.jp も その延長だった (最初の動機は単に mod_ssl を使ってみたかっただけ(笑)) んだけど、最近外向けに見えるサービスに使い始めてしまったので、 どうしたものかなーと15分くらい悩んだ解がこれ。 Subversion で使う場合、Secure Shell と同じで、 あまり頻繁に新しいホストにアクセスにいかないため、 「知らない鍵だよ」と言われればなりすましだとすぐ分かるから 初回だけ検証してもらえばこれでもなんとか運用できるというのもある。 サイト証明書なので *確認さえすれば* オレオレルート証明書ほど危険ではないしね。

普通の人がいきなりPGPとかで署名しても単なるオレオレPGP署名なので、 なーんの意味がない点はもうみなさん分かってると思うんですが、 僕の場合、ここ5年くらいずーーっと名刺に印刷して正式な場面でも あちこちに配りまくってきたり、「シグネチャは4行まで」とか言ってた 古きよき時代から7年くらいずーっとあちこちの Mailing List や fj.* で fingerprint をばらまいている(そして7年間偽物はでていない)ため、 鍵の信頼性を offline で確認する手段が存在するのが重要。

# メール末尾の署名を更新するのと同時に漁っていたら、1998年(学部3年)の PGP fingerprint 入り署名テンプレートが見つかった。 ていうか、7年間同じ鍵を使っている(正確には使っていないで放置してる) のはすごい問題だったなぁ(笑)さすがに10年前(学部1年)ではなかったようだ。

というわけで、鍵の指紋を確認したければうちの大学まで来てもらえれば名刺はお渡しできます (とか書いていきなり見ず知らずの人に来られても困るな(笑)) が、 問題はそれで名刺を渡した人が Regexp/OCaml の作者であり oiwa.jp のオーナである事実は確認できない ということだ :-) fingerprint は公開情報だから、 だれでも僕の鍵の本物の fingerprint や、 乗っ取った後の贋の fingerprint を「おおいわ」って書いた名刺に書くことはできるからね。 物理的な信頼というのもなかなか難しい。 学生証も見ますか? :-)

そういうわけで、subversion repository に限っていえば Caml Mailing List のアーカイブが一番信用できるかな……。

[Comp] mod_dav_svn

ところで、Subversion の DAV モジュールって、

  • 同じ apache2 のインスタンスの
  • 違う VirtualHost から
  • 物理的に同じ repository を

公開してもちゃんと動きますかねぇ。 Subversion の本体の実装の思想みたいなの見てる限り、多分動くとは思うんですけど。

これがちゃんと動くと https: でサイト証明書使って公開する意義の半分くらい無くなるんだよな(笑)

[Security] オレオレじゃないサイト証明書ぷろじぇくと

とりあえずCSRを作ってお金も振り込んだ。 あとは実在証明の手続きがあるはず。

ま、遊べるうちに身銭切って実体験してみよう、というプロジェクトなので、 実用性はあまりないよなぁ(笑)

[Security] 怪しげなCAポリシー

大分前から某CAの「ドメインオーナーが申請してることをメール送るだけで認証します」 という商品 (推奨したくないのでリンクは張らない) に激しく疑問を感じていたのだが、 最近何を疑問に思っていたのか分かってきた気がした。

(実名書いてたんだけど、いろいろと調べてみたくなってきたので 一旦隠しておく(笑)。 隠す必要が無くなったら公開しますねー。もっとも 検索すればすぐ分かります。)

問題点の1つ目は比較的小さくて、「信頼できないメールでどうしてそんなことが確認できるんだ」 って点ね。SSL が man-in-the-middle attack 防止機構なのに、man-in-the-middle attack が 容易な方法で認証してどうするんだ、って辺りの批判は割とすぐに思いつく。 で、問題点はそれだけじゃないとずーっと思いつつ整理できてなかったんだが、 最近別の例を見て自分が何に疑問をもっていたのか氷解した。

1/28: 重要な追記あり (^^;

上記のメールアドレス認証を安全だと仮定したとする。 SSL の certificate は当然出所を明示するので、「オレオレ」乗っ取り防止のために SSL certificate の Organization と Issuer は両方ちゃんとチェックしましょう、 ってのはフィッシング防止の基本。 つまり、証明書の存在は IP レベルの偽装(乗っ取り)の不存在と ドメイン名レベルの偽装の不存在(オーナ実在性の証明)を兼ねていることになる。 で、問題は、この会社だけの判断で「実在証明のない」SSL certificate を勝手に発行してる、 という辺りなのだが、実在証明がないことが問題になるのは次のようなケース。

例えば www.example.jp を「株式会社例示専用」が持っているとして、 www.reijisenyou.jp というドメインを「株式会社例示専用」と名乗って取得して、 このドメイン名に関連付けられた「株式会社例示専用」向けの完全な certificate を 取得できてしまう、というケース。 JPRS は特に汎用JPドメインに関してな〜んにも認証してない (一応 .co.jp は昔は認証してたんだけどね。いまは登記謄本要求しないみたい。) ので、 正しい証明書を持ったフィッシングサイトを簡単に作れてしまう。 一応 Common Name (URI のアドレス部分と同一) が違うことは確認できるのだが、 サイト証明書が example.jp と同一主体であることを積極的に示唆しているので タチが悪い。これではPKIを破壊しているとしかいいようがない。 実在証明は別サービスだ、と強弁しているようだが、なんの抗弁にもなってない。

(ひょっとしてそのサービスが下記のようになっていれば一応問題はないんだが、 CSR には正式な会社名書いてください、ってなってるんだよな……)

1/28追記: と思ったら、WWWの表記とは異なって勝手に O = CN の証明書を返してくる (つまり、「下記のようになっている」との) 重要な情報を頂いた。上記の記述のうち特定のCAに対する批判部分は削除。 でもそれって注文前にその旨が明示されていないのは 商品として重大な瑕疵があると思うんですが、どこかに記述ありますか?
ちなみに、CSR と異なる証明書を発行できるのは知っていました (Comodo に 「住所(の英語表記?)とかはこちらで補正できますので 重要フィールドだけは正しく作ってください」との記述があります) が、 それはいくらなんでも顧客が納得しないだろうと思って、 その選択肢は排除してました。

で、なんで問題点が突然理解できたかというと、この問題を解決してるサービスを見つけたからなのだが、 困ったことにURL無くした(笑)

無料のコミュニティーベースの unofficial CA なのだが、 実在認証をしていないホストには証明書に会社名の明示を許さない というポリシーで運用をしている。会社名の代わりにドメイン名だけが表示され、 「CAとしてはドメインのオーナであることはちゃんと確認しましたよ、 その正当性は自分で確認してくださいね」というのが明示されていることになる。 上記の例では "O=Example Only Co.,Ltd., CN=www.reijisenyou.jp" という証明書は取れなくて、 "O=reijisenyou.jp, CN=www.reijisenyou.jp" という証明書のみが入手できる。 このサイトを開いて証明書をちゃんと確認した偉い人は(笑)、 「reijisenyou.jp と自分の利用しようとしているサービスが同一かどうか」を 自分で判断することになる。 これは PKI 実装としては抜け道的だが「正しい」というか、ずっと「正直」だと思う。 当たり前だけど、認証者は自分が証明できることだけ証明書に書くべきだよね。

証明書を確認しないで reijisenyou.jp にだまされる人は、 どうせ Organization が "いんちき商法株式会社" になっててもだまされるので、 まぁそれはしょうがない(笑)。

だからといって自分がそのルート証明書をインストールするかといわれると 多分インストールしないけどね(笑)。

1/28追記: 某社のサービスが分かったので補記しておくが、 (オレオレCAがやる分には問題ないのだが)、 O = CN であることが「主体の実在証明をしていない」ことを示すということは、 推測可能ではあるが、PKI インフラ全体の安全性を保つ上で重要な事項なので、 ちゃんと周知徹底しないといけない。
それ以前に世間の現状はSSLだからって証明書見るまで信用しちゃいけないという 当たり前のことを周知徹底しないといけない気がしますが (^^;;
本日のツッコミ(全5件) [メッセージを送る]

kazuho [「怪しげなCAポリシー」ってG社の話でしょうか? この前ここの証明書を取得したのですが、CSR にちゃんと会社名を書..]

おおいわ [G社ですね……。 それならまぁ証明書としての問題はないんですけど、 補正を越えて勝手に書き直すのはそれはそれで 商売..]

Lef [>一応 .co.jp は昔は認証してたんだけどね。いまは登記謄本要求しないみたい。) .co.jpはいまでも登記簿謄..]

おおいわ [co.jp の件なんですけど、JPRS および JPNIC の現行規則では、「申請時には必要としない、登録事項更新な..]

上美谷 [G社のクイックな奴は取得する前から怪しい印象を受けたので使ったことないんですが、 うちは同様にメールだけで認証する ..]


2005-01-28

[Security] 追記: 怪しげなCAポリシー

貴重な実利用者から重要な情報を頂いたので怪しげなCAポリシーを加筆修正。

[Security] SSL通信の警告ダイアログ

↑を見直していて思ったのだが、「暗号化通信を開始しました」のダイアログに、 最低限「Organization と Issuer」は表示すべきだと思ったんですが。 Mozilla 辺りにだれか提案してないかな。

Mozilla なんか Cookie に関してはダイアログにかなり詳細な情報を出すんだから、 暗号化のダイアログに Organization くらい表示しても罰は当たらないような気がする。

…と書いてから、Mozilla でマウスを右下の鍵マークに当てると 「Signed by Oiwa Network」とか表示されるという機能に気がつく。あと一歩だなぁ。 (オレオレ認証の場合の動作は オレオレ証明書サイト https://www.oiwa.jp/~yutaka/tdiary/ で確認可能。 鍵は「一時的に」受け入れてね :-)

[tDiary] mod_fcgid

mod_fastcgi は、cgi が1リクエストも処理せずに起動に失敗するような状態 (tDiary だと例えば plugin に syntax error があるとか) における 挙動が怪しいような気がするので、mod_fcgidも 自宅サーバの方で試してみることにした。

設定ディレクティブが名前衝突のことをな〜んにも考えてないとか割と荒削りだが、 とりあえず動いている様子。 しばらく使ってみて結果が良かったら www.oiwa.jp にも導入しようかと思う。

[tDiary] トラックバック、その他

  • exblog にうまく trackback が送れない。ぐぐってみるとなんか他にもうまく送れないケースがあるようなのだが……。
  • いつのまにか 2005-01-26 へのトラックバック1件がいつのまにか非表示になっていた。消した覚えないのになぁ……。 一応いくつか疑わしい操作を手元で再現してみたのが、現象再現せず。
  • recent_list.rb の出力 HTML がいまいちスタイルシートで整形し辛いので 改善してみる。 <br> の代わりに class 付きの <div> にした。 ついでに title_list.rbも同じフォーマットに書き換えて導入 (月次ページのみ)。

2005-01-29

[tDiary] mod_fcgid ……orz

昨日導入した mod_fcgid だが、 どうもプロセス数上限に当たるといきなり 503 (Service Unavailable) エラーを返す模様。 自宅サーバでちょっと負荷 (同時リクエスト数100、総リクエスト数1000) かけるとこんな↓感じになります。 Fast CGI の設定はどちらも最大10プロセス。Failed と Non-2xx responses に注目。

Document Path:          /~yutaka/tdiary-test/test1/
Document Length:        2100 bytes

Concurrency Level:      100
Time taken for tests:   3.139370 seconds
Complete requests:      1000
Failed requests:        940
   (Connect: 0, Length: 940, Exceptions: 0)
Write errors:           0
Non-2xx responses:      944
Total transferred:      1481112 bytes
HTML transferred:       1136080 bytes
Requests per second:    318.54 [#/sec] (mean)
Time per request:       313.937 [ms] (mean)
Time per request:       3.139 [ms] (mean, across all concurrent requests)
Transfer rate:          460.60 [Kbytes/sec] received

それってどうよ………。とりあえず mod_fastcgi に戻した。 こちらの結果はこんな感じ。

Document Path:          /~yutaka/tdiary-test/test1/
Document Length:        2100 bytes

Concurrency Level:      100
Time taken for tests:   26.775617 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      2456000 bytes
HTML transferred:       2100000 bytes
Requests per second:    37.35 [#/sec] (mean)
Time per request:       2677.562 [ms] (mean)
Time per request:       26.776 [ms] (mean, across all concurrent requests)
Transfer rate:          89.56 [Kbytes/sec] received

mod_fcgid は mod_deflate との相性は良かっただけにちょっと残念。 まぁ最大プロセス数制限を負荷制御に使うな、ってことなのかも知れないけどねぇ……。

ついでに、現状の tDiary って、mod_ruby / fastCGI 環境下でも毎回 plugin を読み込む仕様になっている。 もったいないなぁと思って (というか、www.oiwa.jp はすごく遅いマシンなので) 少しいじってみたのだが、 その仕様に依存したプラグインが山ほどあってなかなか難しい、しかもあまり速くならない(笑)。 うーん……。


2005-01-30

[Work] PPL2005

一応通ったようだが、〆切が 2/14………死ぬる。


2005-01-31

[Work] PPL2005(続)

査読コメントも帰ってきた。……結構きついのはきついな……。 まぁ未完成承知で反応の雰囲気掴みたくて出してるからしょうがないんだけど。

でもさらに新アイディア思いついたので……って間に合わねぇって(笑) でも割と全体の実現のメドはついた感じ。

[Comp] awstats

GANAさんによると AWstats はカッコいいらしい(笑)ので、入れてみた。

Debian backports に 6.2 があったので導入。 apt-get upgrade だと依存の関係で keptback されて導入されなかったのだが、 これは dist-upgrade するべきところだったのかなん。 しょうがないので dselect で入れました。 うちのサイトは Apache2 なので、設定ファイルを書き換え書き換え。

GANA さんのところにあった検索エンジン文字化け対策なのだが、 Debian woody だと perl が 5.6 なので Encode は使えないので、 どうしたものか……。 GANA さんみたいに Perl 5.8 を全部入れるのはめんどくさいなぁ。

あ、ちなみに管理ページは Digest 認証かかってるんで、その辺りよろしく。

っていうか仕事がいそがしい………

[Comp] DirectoryIndex

……はずなのに、なんでこんなことやってるんだろう(爆)

正解: 逃避 (^^;

というわけで、学校の方のメインのホームページで使っていたディレクトリ表示 CGI を 環境依存が無くなるように書き直して、ここにも導入してみた。

こんな感じ。読めないファイルはどうせオリジナルと一緒なので 気にしないように (笑)

パッチはちゃんと上流に戻さないとねぇ (^^;。

[News] やじうまこめんと

パロディーにすらなっていない詰まらんタイトルだな……orz

(朝日) 中部国際空港の南の新市、名は「南セントレア市」に

愛知県南セントレア市の位置

……… orz。ここですかそうですか。ちなみに赤丸が中部国際空港(セントレア)の大体の位置。 ぜんぜん関係ないじゃないか。

合併協議会の委員26人が、昨年12月に公募した名称に、自分たちの作品を含めて投票。 新空港の愛称を使った案は公募ではゼロだったが、 委員案には「南セントレア市」「セントレア市」「遷都麗空(セントレア)市」の三つがあった。 単独での最多得票は「南知多市」だった。しかし、セントレアを使った3案を合計すると1位を上回った。
(上記朝日新聞記事より引用、太字強調筆者)

いや、何のための公募だったの……? なんでセントレアを使った委員案3案だけ合計して無理矢理1位にするの……? 遷都麗空って何よ……。ツッコミどころ満載すぎます。

まじで出身地じゃなくて良かったとしかいいようがないっす。

(読売) 新市の名称「太平洋市」に…千葉県の4町村合併

千葉県太平洋市の位置

……… OTL。ここですかそうですか。

意見求められた高知県市町村振興課長も困っただろうなぁ(笑)

某所 italk ろぐ:
(21:25:17)[あぶら] 九十九里町が入ってれば
(21:25:27)[あぶら] 九十九里市でばちしなんだけどねぃ

ふむ。ちなみに九十九里町は太平洋市の南側の海沿いの南北に長い町です。その隣の大きいのは東金市。

ちなみに、白地図製作には Map of Japan を使わせて頂きました。

(日経) ユニークなデザインのバーコードが登場

………。ユニークっちゃユニークだけど……。 本当に『流通システム開発センターが推奨するバーコードのガイドライン遵守』してるんですか (^^;;

日経の3つのサンプルは可愛い方で、その企業のホームページにある サンプル6のピアノの縁の縦線とか こんなところに線引いたらやばいだろ……と思ったらこの線がガードバーの外側線なのか……。 鍵盤のところを見ると線が1本足りない……。よくできてることは確かだな……。

しかし、この企業のホームページのできはよくできていない(笑)。全部画像かよ (-_-)

本日のツッコミ(全3件) [メッセージを送る]

GANA [これまたえらく昔の日記を引っ張ってきましたねヽ(´ー`)ノ Debian はさっさと Sarge を stable ..]

おおいわ [1日のエントリにたくさん書きすぎなんでしょうね(笑) システムを決めた時には旧日記のコンテンツ量だとこんな感じでもい..]

ゆーな [バーコードは限界までかすれてもCheckDigitあればなんか問題ないっぽいしなー。 どっちかというと印刷のかすれの..]


大岩 寛 (おおいわ ゆたか) <yutaka@oiwa.jp.nospam ... remove .nospam> .

Copyright © 2005-2014 Yutaka OIWA. All rights reserved.
Posted comments and trackbacks are copyrighted by their respective posters.

記事の内容について (Disclaimer / Terms and Conditions)