Resto運営日記

Resto( http://www.k-score.net/ ) www.cms-e.netサーバー( http://www.cms-e.net/ ) 運営に関する日々を記します

いろいろ壊れる…

最近いろいろなものが壊れます.

まず手始めにヘッドフォン.
まぁ,これは3年以上使っていたし,経年劣化でしょう.
ヘッドアームがぽっきり折れました.
スピーカー部が,リード線でぶら下がり状態.
修理費も8000円くらい取られました.(新品みたいになって帰ってきたけどね.ちなみに元値は3万円くらいだったか?)

そしてメインPC,電源がね,パン!という音共に焦げ臭いにおいを発しました.
コンデンサの破裂かな?
これは保証期間内だったけれど,その間PC動かせないのは辛いので,新しい電源を買う羽目に.約12000円の出費.

次にグラボ.
壊れたワケじゃないけど,さすがに古いので,換装.
もう遊ばなくなったゲームを売り払って,それを足しに少し良いものを調達.約30000円なり.
ところがこのグラボ,まともに画面表示ができなかった.
初期不良?初期不良なら良いんだけど,相性とかマジやめて.
3万円が無駄になるぅ….

最後にプリンタ
あまり実害は無いのだけれど,プリンタの操作画面の液晶のバックライトが切れたようで,ほんのりうっすらとしか表示されない.
コピーを取るときは懐中電灯を横から当てて画面を確認.
修理に出すつもりは無い.

グラボは特に,最初はドライバとかが問題なのかと思って,OSのクリーンインストールもしたのに,症状改善しなかったので,マジへこみ気味.
バックアップや再インストールに掛かった時間が…orz
これから環境を再構築するのもヤルキデナイ…
そしてToDoは溜まるばかりでやる気は下がるばかり.

とりあえず,ToDo等をまとめ直さないと…

岡崎図書館事件 超解説

はじめはただ単なるDoS攻撃を仕掛けた人が逮捕されたということで,気にもとめなかった.
ところが,ここへ来て事件は新たな局面を見せた.
私はこう見えてもウェブプログラマーの端くれ.
ウェブに詳しくない方が「アレは事件で,犯罪者が捕まったんだ」と思われるのは本意ではない.
はっきりいって他人事じゃないので.
というわけで,ここではウェブに詳しくない方に向けて事件を解説していく(つもりだ).


1.事の発端
すでに記事が存在しないため,引用させていただく.
なお,記事中の本名,住所は削除させて頂く.
-------------------------------------------------------------------------------------
> 愛知県の岡崎市立図書館のホームページに集中的にアクセスし、閲覧しにくくしたとして、愛知県警は25日、男性を業務妨害の疑いで逮捕し、発表した。

> 県警生活経済課と岡崎署によると、男性は、4月2日から15日にかけて、岡崎市立中央図書館のホームページに、計約3万3千回のアクセスを繰り返し、ホームページを閲覧しにくい状態にした疑いがある。

> 同図書館のホームページ管理用サーバーには、3月中旬からの約1カ月間に、男性の自宅のパソコンなど特定の端末から計約6万4千回のアクセスがあり、その影響でホームページの閲覧は21回停止されていた。

> 同課によると、男性は1回ボタンを押すだけで、1秒に1回程度の速度でアクセスを繰り返せるプログラムを作っていたという。男性は同図書館の利用者だったが、目立ったトラブルは確認されていないといい、動機を調べている。

> asahi.com 2010 5 26
-------------------------------------------------------------------------------------


2.疑問点
さて,皆さんは,この記事を見てどういう印象を持つだろうか.
1ヶ月で約6万4千回(1アクセス/秒)のアクセスでウェブの閲覧障害.
大抵の方は「逮捕されても仕方ない」という印象を持つと思う.
だって,アクセス6万回以上.ふつーの人はそんなことするはず無い.

これで事件は収束かと思いきや,ネット上で大騒ぎとなった.
その理由として,いくつか上げてみる.

・業務妨害罪に過失罰はない
「意図的に」業務を妨害しようと大量アクセスをしない限り,罪は成立しない.
では,今回「意図的」だったのかといえば,プログラムは1秒1回のプログラム.
やろうと思えば秒間1アクセスというのはおかしい.
本当に業務を妨害するつもりなら,短時間に数十万アクセスは行うはずだ.
容疑は「業務妨害」だが,本当にそれが成立するのか?という疑問が一つ.

1ヶ月で6万4千アクセスは多くない
一般の方が「えっ?」と驚く今の常識.
1ヶ月で6万4千アクセス.めんどくさいので,1アクセス/秒(を1日30分)とするが,そもそもこの程度のアクセスでウェブサーバがダウンすることはまず無い.今回,このアクセスが原因でウェブが閲覧できなくなって業務妨害罪が成立したと言うが,そもそもコレがおかしいのだ.
しかし,それでもふつーの人は1秒1アクセスを続けない.
一体何をしていたのか.

・図書館ウェブサイトの情報を取得して,まとめていた
逮捕されてしまった男性が何をしていたかというと,本来,人が見るウェブサイトを,プログラムで取得し,新着図書などの情報をまとめていた.
実は,これも特段珍しいことでなく,今は既存の情報をいろんなところから集めてまとめる「マッシュアップシステム」と呼ばれるものが増えている.
今回,図書館ウェブに大量アクセスしたのは,(マッシュアップシステムかどうかは分からないが)自作のシステムに図書館の情報を反映させたかったからであろう.


3.嫌疑不十分と起訴猶予
そして,不起訴の続報が届いた.
嫌疑の男性,起訴猶予処分
http://librahack.jp/readme/

ネットで,嫌疑不十分でなく起訴猶予とした岡崎地検を叩いている人がいるが,起訴猶予となったのは,男性が罪を認めているため
おそらく否認し続ければ嫌疑不十分での不起訴となっただろう.


4.実は図書館システムに不具合
そして,さらに続報
図書館HP閲覧不能、サイバー攻撃の容疑者逮捕、だが…
http://www.asahi.com/digital/internet/NGY201008200021.html

>愛知県内の男性が、自作プログラムで図書館ホームページから新着図書の情報を集めたところ、サイバー攻撃を仕掛けたとして逮捕された。しかし、朝日新聞が依頼した専門家の解析によると、図書館ソフトに不具合があり、大量アクセスによる攻撃を受けたように見えていたことが分かった。同じソフトを使う全国6カ所の図書館でも同様の障害が起きていたことも判明。

あっと驚く新事実.
・図書館ソフトに不具合
大量アクセスに見えていただけ
どういうことなのか.

通常のウェブのアクセスは以下の図のようになっている.
図1

利用者が図書館サーバに,「サイトみたいよー」とリクエストを投げて,図書館サーバはウェブサイトを送る.
非常に単純である.
しかし,このような単純な仕組みになっているのはごく稀で,今回は下の図のような構成になっている.
図2

流れは,
利用者が図書館ページにアクセスする.

図書館サーバがデータベースサーバへ,新着図書や蔵書などの情報を取りに行く

データベースサーバが,図書館サーバへ新着図書などの情報を送る

図書館サーバはデータベースサーバから受け取った情報を元にウェブサイトを構築し,利用者へ送る

という流れだ.

今回,不具合とされたのは,図の中の2と3の矢印部分.
データベースサーバの部分だ.
詳細は省かせていただくが,データベース(に限らないが)には通常,コネクション数(同時接続数)というものがある.
同時コネクション数という名の通り,同時に接続できる量で,同時コネクション数以上の接続があった場合,データベースはエラーを返す.
今回の閲覧不能というのは,この同時コネクション数をオーバーしてしまったため,表示できなくなったという事だ.

記事中には約1000同時アクセスを受けるとつながらなくなるとある.
同時接続数が1千件.十分な数のはずだ
それでも同時コネクション数をオーバーしてしまったのは,利用者のリクエストでデータベースのコネクションを確立したのは良いが,そのコネクションを切断しなかったことにある.

コネクションを切断しないということは,ずっとつながったままということ.
例えば,男性のプログラムが1秒間に1回アクセスしたと言うことは,単純に1分間で60回データベースにアクセスしたことになる.
通常,1回のアクセス毎にデータベースのコネクションは切断するので(コネクションプーリングは端折らせて貰う),1分後のデータベースコネクション数は最後のアクセスの1つのみである.
しかし,今回不具合が有ると言われた図書館システムは,アクセス毎にコネクションを切断しなかった.その結果,1分後,データベースへのコネクション数は60になる.
10分後には600だ.
そうしてだんだんコネクション数は増えていき,1000を超えるとデータベースへアクセスできなくなって図書館サイトはエラーを返す.
アクセス後,一定時間(約624秒)が経過すると,タイムアウトでコネクションは切断されるものの,男性のプログラムで約600コネクション,一般の利用者が400コネクションを張られたときにサーバがダウンしたと思われる.


5.問題点の整理
◎男性
・1秒間に1回アクセスするプログラムを作成した
--新着図書の入手に1秒間隔でアクセスするのは多い気がするが,全体的に見ればたいしたアクセス数じゃない.
・罪を認めている


◎岡崎図書館
・サーバ管理は完全外注.
--図書館システム納入業者である三菱電機インフォメーションシステムズに任せっきり.
・愛知県警とのやりとり
--警察へはあくまで「なんだろうねこれ?」といった感じで相談で行った.
--警察から被害届を出すように言われ,提出
・男性逮捕に関して
--男性逮捕は報道で知る
・図書館システムについて
--不具合は無く,図書館に責任は無い(8/21)
--了解を求めずにアクセスしてきた男性に問題と発表(8/21)
・男性のプログラムについて
--違法性が無いことは知っていた(8/21)


@三菱電機インフォメーションシステムズ
・図書館システムについて
--同システムを導入している他の図書館でも閲覧障害あり
--同システムのバージョンアップで,すでに不具合は取り除いているが,旧システムに適用してない
--不具合があったと認識.しかし,図書館には知らせず
--ただし,公式に不具合があったとは認めていない
・第三者機関の調査
--上記朝日新聞の記事によれば,3つの第三者機関に図書館システムと男性のプログラムを解析して貰った結果,3機関とも図書館システムに不具合が有り,男性のプログラムに違法性は無いとの見解


@愛知県警
・捜査
--図書館システムの不具合を把握せずに逮捕
--男性のプログラムに違法性が無い事も把握せずに逮捕
--実際に図書館の業務が妨害されたので,男性逮捕は問題なかった



いろいろと突っ込みどころ満載であるが,一つ一つ考察していこうと思う.
@男性
・1秒間に1回アクセスするプログラムを作成した
はっきり言って,問題ない.


@岡崎図書館
・サーバ管理は完全外注.
--図書館システム納入業者である三菱電機インフォメーションシステムズに任せっきり.

これは仕方ないと思う.
図書館員に専門知識持たせるのは酷だ.


・愛知県警とのやりとり
--警察へはあくまで「なんだろうねこれ?」といった感じで相談で行った.
--警察から被害届を出すように言われ,提出

この辺も警察に言われて行ったこと.
特に言うことはない.


・男性逮捕に関して
--男性逮捕は報道で知る

さぞ驚いたことだろう.
だが,ここも図書館に非は無い.


・図書館システムについて
--不具合は無く,図書館に責任は無い(8/21)
http://www.asahi.com/digital/internet/NGY201008210009.html

今回の件について,8/21の会見まで図書館の対応は問題ないと思っていた.
が,なんで自爆するかなぁ.

図書館システムに不具合が有ったのは朝日新聞が専門家に依頼した調査結果から明か
例え図書館システムに不具合が合ったと認めても,納品,保守は三菱電機インフォメーションシステムズなんだから,図書館の責任にはならないはず
なぜ嘘をつく.

--了解を求めずにアクセスしてきた男性に問題と発表(8/21)
http://www.asahi.com/digital/internet/NGY201008210009.html

失言その2.
ウェブのアクセスに了解が必要とか,何を言っているんだ.
ウェブで公開している以上,訪れるのは人だけじゃない.
今回の男性のプログラムもそうだし,YahooやGoogleのクローラも同様のものだ.
アクセスを許可制にしたいならパスワード制限でも掛けたらいい.
いくら何でもこの発言は今のウェブの常識からあまりにも逸脱している.


・男性のプログラムについて
--違法性が無いことは知っていた(8/21)
http://www.asahi.com/digital/internet/NGY201008210009.html

違法性が無いことを知っていたのに被害届出したんかーーーーい!


@三菱電機インフォメーションシステムズ
・図書館システムについて
--同システムを導入している他の図書館でも閲覧障害あり
--同システムのバージョンアップで,すでに不具合は取り除いているが,旧システムに適用してない
--不具合があったと認識.しかし,図書館には知らせず.
--ただし,公式に不具合があったとは認めていない

もう,あれだ,なんてコメントしたらいいのか…

・第三者機関の調査
--上記朝日新聞の記事によれば,3つの第三者機関に図書館システムと男性のプログラムを解析して貰った結果,3機関とも図書館システムに不具合が有り,男性のプログラムに違法性は無いとの見解

今回の件で,三菱電機インフォメーションシステムズの株は下がりっぱなし
(ネット上の評価的な意味で)
しかも,すでに第三者機関の調査が行われているのに,「不具合は無かった」と公式発表.
故意でないにしろ,人一人逮捕させておいて無責任な発表にネットコミュニティは激怒.
素直に認めれば良いものを…



@愛知県警
・捜査
--図書館システムの不具合を把握せずに逮捕
--男性のプログラムに違法性が無い事も把握せずに逮捕

いったい何を捜査したの?
こういうブログで警察批判は簡単なんだけど,ホントに今回逮捕した要因が見えない
被害届が出たら,問答無用で逮捕されるの?
男性のプログラムは秒間1アクセス.
秒間1アクセスなんて,携帯電話のウェブサーバでさえ裁ける量なのに,専用サーバがダウンするワケが無かろう.
(携帯電話のウェブサーバに関して)
(コレに関してソースを提出できずに申し訳ないのだが,情報処理学会のDICOMO 2010のナイトテクニカルセッションにてXperiaを用いて発表された内容.学会の余興的なセッションなので,公式記録には無い.Xperiaは秒間2アクセスでダウン)

--実際に図書館の業務が妨害されたので,男性逮捕は問題なかった

あれ?業務妨害罪に過失罰は無いんじゃなかったっけ?
全然結果オーライになってないんだけど….




6.考察
事件を振り返ると,やはり根本的な問題は愛知県警にあるように思える.
ホントに何も捜査してないんじゃないか?と疑いたくなるほど.
なんで逮捕したのか?被害届だけ有れば十分なのか?
男性が罪を認めているからとは言え,あまりにもお粗末すぎないか?

三菱電機インフォメーションシステムズは,もはや何も言えないだろう.
自分の知らないところで(多分だけど)自分のソフトの不具合で,一人の男性が誤認逮捕を受けてしまった.
結果的に,図書館に不具合を伝えていなかった事も一因となり,それを認めたら警察の捜査を真っ向から否定することになるし,誤認逮捕の一部責任を負うことになる(ネットの印象的に)
マスコミが男性逮捕に関してコメントを求めたが,同社は「コメントすることはない」としている.
そりゃそーだろう.コメントできるわけがない.
コメントしたところで男性の神経を逆なでするだけだ.
とはいえ,知らんぷりをし続ける三菱電機インフォメーションシステムズにも批判は集まってきている.
人間も企業も,誠実さって大切だと思うんだ.
ボクシーラナイ.カンケーナーイ.じゃ,ねぇ….

岡崎図書館は下手に会見とか開かずに黙ってた方が良い
言論弾圧ってワケじゃないけど,8/21の会見のような頓珍漢な事を言うよりは,図書館システムに不具合が合ったことを認めて,図書館に責任は無い.で良いと思う.
図書館が叩かれたのは,ほとんど8/21の会見の内容.
口を出すべきじゃない「図書館システムに不具合無し」とか(これは三菱電機インフォメーションシステムズが言うこと),ウェブを閲覧するなら許可を取れとかね.



7.まとめ
逮捕された男性が認めている以上,私たちが「無実だろ」と叫んでも意味が無い.
ただし,今回男性が逮捕された可能性は,私たちに存在するということでもある.
自分の身を守るため,こういう情報を発信していくのには意味があると思う.


8.8/23追記
毎日新聞がとっても誤解を招く記事を書いているので,ここに訂正しておく
http://mainichi.jp/select/jiken/news/20100822k0000m040070000c.html


>図書館のソフトが古いため
古さは関係ない.不具合があったということが重要
(不具合が修正されていない古いバージョンっていう意味には取れないと思う)

>1時間のアクセス数が400回を超えただけでHPが閲覧できなくなるという古いもの
2005年でも1時間のアクセス400回で落ちるサーバなんてあり得ない. (秒間400アクセスでも普通落ちない)
ハードウェア性能ならなおさら,ソフトウェアに不具合があったとなぜ書かない


>通常の利用者とは違う方法で大量のアクセスがあり、想定していなかった。
図書館ソフト(ウェブサーバ)から見ればどっちも同じ.
違うのはアクセス回数のみ.


>男性のプログラムの方法がまずい
いいえ.日記本文に書いたけれど,図書館ソフトのデータベースコネクション周りがまずい.
はっきり言うけど,図書館システムには不具合があり,男性のプログラムに違法性は無い.
これは朝日新聞社が実際に第三者機関へ両システムを解析して貰い,3機関とも解析結果を出している.
http://www.asahi.com/digital/internet/NGY201008200021.html

図書館ソフトを納品・保守しているのは三菱電機インフォメーションシステムズ.
図書館ソフトの不具合を認めても図書館の責任にはならないはずなのに,なぜ嘘をつく.


>最高で10分間に約1600回、HPにアクセスしていたという。

これ,多分正確には,「最高で10分間に約1600回データベースへアクセスしていた
だと思う.
秒間1アクセスのプログラムを多重起動していたワケじゃないんだから,600アクセス以上になることはない
多分,新着図書の検索や蔵書検索など,1回のウェブアクセスで複数回データベースにつないでいたのが原因だと思う.


参考
http://www.nantoka.com/~kei/diary/?20100817&to=201008171&from=201007141#T201008171
http://www.nantoka.com/~kei/diary/?20100624S1
http://www.nantoka.com/~kei/diary/?20100714S1
http://www.nantoka.com/~kei/diary/?20100622S1
http://togetter.com/li/43777
http://www.asahi.com/digital/internet/NGY201008200021.html
http://www.asahi.com/digital/internet/NGY201008210009.html
http://www.asahi.com/national/update/0821/NGY201008210001.html
http://takagi-hiromitsu.jp/diary/
http://takagi-hiromitsu.jp/diary/20100710.html
http://librahack.jp/

厳しい規制でも好評、制服のような「制携帯」

神戸の中学校で,生徒に携帯電話を貸与するらしい.
http://sankei.jp.msn.com/life/education/100621/edc1006210910001-n1.htm

個人的に,中学生に携帯は要らないとは思うけれど,ある意味,この学校の試みには期待したい.
と言うのも,これからインターネットとつきあっていく上で,どうしても情報リテラシーというものは非常に大切になっている.
特に,高校生くらいになって,やっと「ネット始めました」っていう人と,ネットをあらゆる手段で悪用している人がばったり出会って,詐欺を仕掛けた場合,ほとんど100%,騙すことができる.
最低限のリテラシーが無いと,こういう不測の事態や,有害情報に対応できないため,個人的に小中学生を自由にネットを使わせるのは非常に危険であると思う.
(私自身,小学生から使っていたのだけどね)
でも,私がまだ小学生の頃は,ダイヤルアップで,音楽とか映画とか,ダウンロードできる高速通信は物理的に不可能だったし,まだ,そういう技術もほとんど無かった.
現在,はっきり言って小学生でもP2Pが可能だし,動画サイトも見放題だし,一昔前とは明らかに必要なリテラシー量が異なる.

しかし,小中学校で情報リテラシーを身につけさせてくれるならともかく,実際は5教科7科目の勉強でいっぱいいっぱいで,まともな情報の授業など年1回も行っていない学校もある(例えば私の出身校とか.今はどうか知らないが.)
また,問題はそれだけでなく,インターネットを悪用した手法は,私ですら追えきれないほど日々進化している.
これらを,リテラシーで身につけさせると言ったら,そう簡単ではない.
そして,更に問題なのが,インターネットを1つのツールとしか見ていない親も多く,その危険性を理解していない.(というよりは,把握し切れていない.これはまぁ,当然だろうけど)

小中学校で,ろくにリテラシーを身につけられず,高校生になって,やれ携帯だPCだでインターネットの世界に入り込んだとき,詐欺師たちの餌食となってしまう.もしくは,有害情報の魅力にとりつかれてしまう.

今やインターネットに入る際,最低限のリテラシーを持つ必要がある.
インターネットの中だと忘れがちだが,現実社会でやってはいけないことは,インターネットでもやってはいけない.そしてそれは法律云々ではなくて,倫理観によるものだ.
記事中の様に,インターネットに接続できるとは言え,厳しい規制が有れば,インターネットを使うなとは言わない.それは,これからインターネットとつきあっていくだろう中学生たちのリテラシーを育てていくことになると思われる.
ただし,フィルタリングなどの規制も万能ではない.
一歩間違えれば虐めの温床となるし,携帯の魅力に惑わされる者も出てくるだろう.

携帯を与えて規制して,リテラシーは各自身につけるようにではなく,学校がきちんとリテラシーを育てられるかが,問題というか,興味深いところだ.

あぅあぅ…

やること,やりたいことはたくさんあるのに,やる気が起きない.
一段落できるのは一体いつになるのやら…

いい加減,楽譜作成ソフトをまともに動くようにしないとなぁ.

期待はずれ【DoCoMo新製品発表会】

<NTTドコモ>夏モデル20機種 健康応援サービス開始 コラボモデル6機種に
http://headlines.yahoo.co.jp/hl?a=20100518-00000021-maiall-sci

スマートフォン3機種にケータイ17機種.
発表直後はすげーと思ったけど,中身を見るとそうでもない.
なんだか,最近のDoCoMoは,市場の需要を満たす製品ではなく,DoCoMoが作りたい物を作ってる感じ.

そんなわけで,Star iアプリやiモード2.0にしたいなーと思って,今回新機種発表を楽しみにしていたのだけど,見事に期待はずれで涙目.

WiMAXももうすこし電波入らないと使い物にならないし,今回は両者とも見送りかな…
ただ.WiMAXは乗り換えるだけでe-mobileより月の支払料金が安くなるから,悩みどころ.
今e-mobileを解約しても,4ヶ月後に解約しても,支払額は同じだから,しばらくは様子見でも良いか….

データ通信の料金体系もわかりにくいし….
とりあえずe-mobileを継続して,冬モデルが良さそうだったらデータ通信もろともDoCoMoに移るのも良いかな.

そんなことよりLETマダー?

いや~な予感

国民ID制度導入へ 政府、13年までに
http://headlines.yahoo.co.jp/hl?a=20100511-00000087-mai-bus_all

> 政府は11日の「IT戦略本部」(本部長・鳩山由紀夫首相)で、インターネットを通じた24時間行政サービスの2020年の実現に向け、13年までに個人認証のための「国民ID制度」を導入することなどを盛り込んだ新たな情報技術(IT)戦略を決めた。

> 国民ID制度の導入により13年には、国民の半数以上が住民票や戸籍謄本などをコンビニエンスストアや郵便局に置いた「行政キオスク端末」を通じて入手できるようにする。電子化による行政コストの削減も目指す。

> 医療・介護分野での活用も重点項目に据え、診療情報を電子化して患者自身が管理・活用できるようにするため、13年までに調剤情報の電子化から着手。医師が遠隔地から診断するシステムや、高齢者の見守りシステムの普及で、医療過疎や孤独死対策にも活用する。

> 各施策は6月に政府がまとめる成長戦略に盛り込まれるが、国民ID制度は、現行の住民基本台帳ネットワークシステムの利用や、政府が検討中の納税者番号制度との関係について現時点で整理がついていない。予算についても古川元久副内閣相が会見で「今後、工程表策定の中で明らかになる」と述べるにとどまり、実現に向けた見通しは立っていない。【望月麻紀】


-----------------------------------------------------

まぁ,現時点では認証に関する記事ではないのだが,な~んか,嫌な予感がするので,とりあえず書いておく.
「国民ID」以外は記事本文とあまり関係ないかも.

携帯電話のユニークIDを用いた認証技術を研究している私が言うのも何だけど,ユニークID(国民ID)が有るからと言って個人認証にはならない.
これは,情報セキュリティの専門家である高木浩光氏も自身のブログで何度も書かれている.(ユニークIDがあれば認証ができるという幻想:<http://takagi-hiromitsu.jp/diary/20100411.html#p01>)
また,これも同記事で書かれているが,既に住民登録番号が導入されている韓国では個人認証としての機能が破綻している.

>住民登録番号の入力が韓国の多くのサイトで求められている中で、他人の住民登録番号を盗用するケースが目立ち、もはや、本人確認の手段として機能しづらい状況にある。そのため政府は、2015年までにインターネット上で住民登録番号による本人確認手続きを完全に禁止する方針を明らかにした。 (Wikipedia:<http://ja.wikipedia.org/wiki/%E4%BD%8F%E6%B0%91%E7%99%BB%E9%8C%B2%E7%95%AA%E5%8F%B7>)

実際,携帯電話のユニークIDでも,ブラウザから強制的にヘッダに乗せて送り込むことができるし,IP制限をしようにも携帯電話各社が,IPアドレス帯域を保証していない以上意味がない.
一般プロバイダからアクセス可能なiPhone,iTouchやスマートフォンのユニークIDを利用しての簡単ログイン機能なんて以ての外だ.それはすでに認証ではなく脆弱性でしかない.
ユニークIDを用いるなとは言わないが,それを「認証」としてはいけない.用いるのならばユーザIDとして用いるべきであり,「認証」には別途記憶認証,生体認証,物理認証などが必要となってくる.

また,そのユニークIDも「変更不可」なもので有ってはいけない.
ユニークID自体は個人情報に該当しなくても,そのユニークIDが広く自由に利用可能なもの(DoCoMoでいうiモードID)であれば個人情報と結びつけるのが非常に容易になる.
どこかのサイトから少し漏れるだけで,ユニークIDから紐づけられた個人情報がわさわさと取得できるようになってしまう.(その逆も然り)

実はID,パスワード認証は,脆弱なようでしっかりした認証基盤でもある.(でも脆弱であるともいえる微妙なところ)
まず,IDはユニークでないため,1つのIDから個人情報がズラズラ取得できるってことは無い.もちろん,複数のサービスで同一のIDを指定していたりすると意味がないが….そして,そのユーザIDに加え,パスワードという記憶認証が施されている.
つまり,適切にIDとパスワードを設定すればユーザIDとパスワードの組み合わせの認証はそれなりにしっかりした認証基盤であると言える.(まぁ,その適切に設定するというのがされていないのであるが)
そういった意味で,emailアドレスをユーザIDにするサービスは,ユニークIDとなるので,あまり好ましくない.

では,冒頭の国民IDの変更は容易なのだろうか.
少なくとも「変更できない」ようでは国民IDを振り分けたところで,韓国の二の舞になるのは目に見えている.
開発するだけ税金のムダ…だけではなく,「個人情報の悪用」を助長する危険性がある.

私の研究は,携帯電話のユニークIDを用いて認証を行うものであるが,携帯電話とPCをリンクさせ,ユーザの意識で,認証を承認するか非承認とするかを選択させている.また,通信全体をSSLで保護し,暗号化しているため,PCのセッションハイジャックは難しく,また携帯電話側のなりすましも難しい.
いずれもSSL通信そのものが破られなければ安全と言えるはずだ(たぶん)

まぁ,私の研究については割愛するが,国民IDを利用する際,ユーザがその都度「承認」できる機構が必要と言える.

耳の限界?

このところずっと研究ばかりだったので,気分転換に楽譜の制作のための採譜をしていたのですが,もう全く音が拾えなくて驚きました.
音楽聴いても,楽譜やMIDIに起こせない.
聴力というか,聴感というか,衰えるんだねぇ.参ったなぁ…

AjaXplorerでファイルをダウンロードするときの文字化け修正

AjaXplorerというWebベースのファイルマネージャを弄る機会が有ったので,またしても備忘録.

AjaXplorerは基本的に日本語をサポートしているが,完璧ではない.
例えば,ファイルをダウンロードする際日本語ファイル名が壊れたりする.
まだまだいろいろと問題は有るが,とりあえず,この問題は解決したので記録しておく.

参考サイトは以下
http://d.hatena.ne.jp/t_fujii/20090618/1245329119

参考サイトで紹介しているのはバージョンが古く,ソースコードが一新されている最新バージョンだとclass.fsDriver.phpというファイルが無い.

現バージョンの2.5.5では,以下のファイルを編集する
/server/classes/class.AbstractDriver.php

このファイルの108行目付近
                        }catch (Exception $e){
                               return AJXP_XMLWriter::sendMessage(null, SystemTextEncoding::toUTF8($e->getMessage())." (".basename($e->getFile())." - L.".$e->getLine().")", false);
                        }

ここを,以下のように編集する
                        }catch (Exception $e){
                                $arrBasename = explode('/',$e->getFile());              // add
                                $filename = $arrBasename[count($arrBasename) - 1];      // add
                                return AJXP_XMLWriter::sendMessage(null, SystemTextEncoding::toUTF8($e->getMessage())." (".$filename." - L.".$e->getLine().")", false);
                        }

参考サイトによると,basename関数のバグで,日本語が壊れるらしい.
そのため,basename関数を使わずにファイル名を抜き出し,渡してやる処理を行っている.

PHPでLinuxユーザを作成するには

備忘録も兼ねて,PHPからLinuxユーザを作成するプログラムを記録しておく.

参考にしたサイトはこちら
PHPでLinuxユーザを追加
http://fstyle.ddo.jp/archives/2005/07/php_phplinux.html

ただし,上記サイトで紹介している手順の問題点として,以下の2点が挙げられる.
1.他のユーザでもPHPからsudoコマンドが実行できてしまう
2.環境によってはcrypt関数で32文字にならない
特に1は,他のユーザにサーバを貸し出している場合には深刻な問題だ.
というわけで,もう少しセキュリティに配慮する.

環境
ディストリビューション : CentOS 5.4
HTTPD : Apache 2.2.3
PHP : PHP 5.3.1
FTPD : vsftpd 2.0.5
MySQL 5.1.44

まず,事前準備として,参考サイトと同様,apacheでsudoコマンドを発行できるようにする

[root@cms-e ~] # visudo

Defaults requiretty

#Defaults requiretty ← コメントアウト

Defaults timestamp_timeout = 0 ← 追加.sudo権限のキャッシュを無効化

apache ALL=(ALL) ALL ← 最下行に追加


[root@cms-e ~] # passwd apache
apacheユーザのパスワード設定

上記設定を行うことで,apacheユーザ(つまり,ウェブ上から)でsudoコマンドが発行できるようになる.ただし,発行にはパスワードが必要となりますので,上記で設定したapacheパスワードを知らない一般ユーザはsudoコマンドを発行できなくなる.

また,sudo権限は一度パスワードを受け付けると,その後一定時間ログイン状態がキャッシュされ,パスワード無しでsudoコマンドを発行することができてしまう.
管理者のPHPが実行されてから一定時間は一般ユーザのsudoコマンドも受け付けてしまうため,Defaults timestamp_timeoutの値を0に設定することで,sudoコマンドを発行する度にパスワードを要求するようにする.

次に,ユーザを作成するシェルスクリプトを書く.

[root@cms-e ~] # vi /root/useradd.sh
#!/bin/sh

# 引数は3つ
if [ $# -ne 3 ]; then
 echo "error"
 exit 1
fi

# ユーザの作成とパスワードの設定

/usr/sbin/useradd $1
echo $1":"$2 | chpasswd
echo $1":"$2 | /usr/sbin/chpasswd # 10/03/13修正

# ユーザのホームディレクトリのアクセス権を755に設定(不要ならコメントアウト)
chmod 755 /home/$1

# FTPのchroot_listへユーザを追加(不要ならコメントアウト)
echo $1 >> /etc/vsftpd/chroot_list

# ソートして重複ユーザを削除し,bakファイルとして生成
# (上書きできればそれで良いが,なぜか上書き保存に失敗するため,一度bakファイルを生成し,元ファイルを削除してリネームしている)
sort -u /etc/vsftpd/chroot_list > /etc/vsftpd/chroot_list.bak
rm -rf /etc/vsftpd/chroot_list
mv /etc/vsftpd/chroot_list.bak /etc/vsftpd/chroot_list

# MySQLデータベース及びユーザ作成(不要ならコメントアウト)
if [ $3 -ne 0 ]; then
 mysql --user=root --password=ルートのパスワード <<eof
 create database $1;
 grant all on $1.* to $1@localhost identified by '$2';
eof
 exit 1
fi

# useradd.shここまで

そして,このシェルスクリプトに実行権を持たせる
[root@cms-e ~] # chmod 700 /root/useradd.sh

このシェルスクリプトには3つの引数を渡す必要がある.
「ユーザ名 パスワード データベース(0 or 1)」の作成である.
ローカルで実行する場合
[root@cms-e ~] # /root/useradd.sh username password 1
というコマンドを発行すれば ,ユーザ名がusername,パスワードがpasswordで,データベースを持ったユーザが作成される.
chpasswdでパスワードを変更しているため,渡すパスワードは暗号化する前の平文で良い.
あとは,PHPからシェルスクリプトを起動させればいい.


PHPでシェルスクリプトの起動は簡単だ.
しかし,発行の度にパスワードを指定する必要がある.

<?php
    // apacheユーザに設定したパスワード
    $apachepassword = "ApachePassword";

    // ユーザ名,パスワード,データベース作成の有無
    $user = "testuser";
    $pass = "userpassword";
    $db = 1;    # (1=Yes , 0=No)

    // ユーザIDの重複検査
    $shell_cmd = "echo '{$apachepassword}' | sudo -S cut -d: -f1 /etc/passwd";
    exec($shell_cmd,$users);
    for($i=0; $i<count($users); $i++) {
        if($users[$i] == $user) {
            $user_error = 1;
        }
    }
    if($user_error == 1){
         exit("error");
    }
    // シェルコマンドの生成
    $shell_cmd = "echo {$apachepassword} | sudo -S /root/useradd.sh {$user} {$pass} {$db}";

    // シェルスクリプト実行
    exec($shell_cmd,$output);

    print_r($output);
?>

コマンドを発行する際,apacheユーザのパスワードを渡している.
手作業でsudoの度にパスワードを入力するのは手間でも,PHPで行うのであれば話は別だ.ただ変数にして渡してやればいい.

とりあえず以上だ.
パスワードの使用が必須とは言え,apacheユーザでsudoコマンドが利用できるので,セキュリティの弱みとなるので,やはり注意が必要だ.

基本情報技術者試験

出願した.
秋には応用情報かデータベーススペシャリスト取りたい.
しばらく勉強しないと…
卒業研究終わったのに,学会研究だったり試験勉強だったり,なんでこんなに時間ないんだ…orz

ノートPCがそろそろ限界

約4年前に購入したノートパソコン、そろそろ限界かも知れません。
新しいノートパソコンが欲しいです。

まず、バッテリが持たない。
全然持たない。
5分経つと突然ディスプレイの電源が落ちる。
辛うじてシステムは動いているみたいだけど、ディスプレイが落ちると結局強制終了しかない。
システムの設定ではバッテリ残量が低下したら自動的にスリープに設定しているのだが、スリープを待たずして電源が落ちてしまう。
まぁ、バッテリが死んでるから交換しろ、とOSにも怒られてるんだけどね。

それからタッチパッドの動作がアレで、クリック、ドラッグ、ホイールの操作が途切れたりもたついたり、細かな作業ができない。
と言うか、タッチパッドって感度悪くなる物なの?

そしてやっぱCPU。
さすがにね、重いです。色々と。
ブラウザももたつくし、eclipseの起動に2分位かかるし、メモリを増設していたのが救いか。
それにしても、4年前は2GBメモリなんてオーバースペックとも言えたのに、今や最低4GBは欲しいもんなぁ。
とは言っても、ノートPCを5年近く使ってればこんなものか。
デスクトップだって拡張しないと5年持たないもんね。
PCの進化は早いねぇ。
それからそれから、今気付いたのだけど、なんかHDDからカッコンカッコン音がする。
ヤメテ!HDDの突然死だけはヤメテ!

というわけで、見積もりはタダなので色々メーカーを回って見ました。
感想としては、ノートPCも落ちたねぇ。価格。
メモリ8GBとかSSD256GBとか無茶な構成にしなければ、どんなに拡張しても20万割る。

DELLで構成をカスタマイズしてみた物がこちら

CPU Core i7 820QM 1.73GHz
RAM 4GB
HDD 500GB
DIP 15.6インチ FullHD 1920x1080
バッテリ 9セル

保証プラン 事故、盗難損害対応、4年間出張修理対応
その他もろもろで18.2万円。
重さ2.52kg + α


うーん。
まぁ、今バイト辞めちゃったし、資金は無いしで買えないのだけど、なかなか良い構成かな。
それにしてもノートもついにクアッドコアか。
しかもHT技術で8スレッド処理が可能なんてちょっと信じられないね。
今使ってるノートパソコンが3kg越えているので、それよりも軽いし。
一つ不安なのが、ディスプレイの文字の大きさ。
15.6インチでフルHDって文字小さくなりすぎなんじゃないかな。
開発を行えるマシンにしたいから、解像度高いのは嬉しいけど文字が小さすぎるのも問題。
その他の選択肢は1366x768しか無く、この解像度だと逆に低すぎる。
中間位の1600x900位が有ればベストだったのだけど。

さて,どうしようか…

ユーザー申請時の審査について

さて、Restoの楽曲を管理しているサーバースペースをしばらく前から貸し出している。
www.cms-e.net

実は募集当初は酷かった。
何が酷いのかって、スパム申請だ。
おそらく同一人物だろうが、フォームに片っ端から入力して何度も申請してくる。
入力してくる内容が若干違うものの、名前が全てカタカナで入力されていたことやIPが全てプロキシ経由だったことにより、スパムであることは容易に認知できた。
しかし確証は無い。
故に申請された内容に問題が無ければアカウントを発行した。
全てに。
しかし、スパムにアカウントを発行したとなれば、当然悪用される可能性があるため、監視は強化させてもらった。
その後、以前アカウントを発行した申請内容そのままで別のアカウントの申請があった。
ここで複数アカウントの取得とみなし、すでに発行したアカウントを凍結させた。
その後も次々、申請した内容と全く異なるサイトを展開するアカウントを凍結していき、現在では初期のスパムと思われていたアカウントは残っていない。

また、スパムによる申請を防ぐ目的で、申請フォームにもいくつかの判別にもちいるフィールドを設けている。
詳しくは書けないが、その一つが「私は利用規約に同意しかねます」のチェックボックスだ。
「~しかねる」は否定を表す。
つまり、チェックを入れると「規約には同意しない」となる。
当然審査では落とす。このチェックが入っていれば、全て。
スパムは全てのフィールドに入力する場合が多い。
人間のように、フィールドを認識するのは難しいからだ。
それ故に、チェックが入っていればスパムと疑うことができる。
ところが、このスパム用トラップに引っ掛かってしまう申請者がかなり多い。
申請した内容に問題が無くても、規約に同意できないんじゃアカウントは発行できない。
とは言っても、この程度のトラップに引っ掛かってしまうようでは、利用規約をまともに読んでいるとも思えない。
保険の約款みたいに、解りにくい文章にはしていないはずだ。
審査と言っても基本的にサイト内容で落とすことはあまり無いし、内容をしっかり書いたのに落ちたと言う方は、じっくりあわてずに再度申し込んで見てください。
全利用申請の実に半数以上が、上記のスパム用トラップに引っ掛かっています。
あの罠はニンゲン用じゃ無いからね!

それから、「内容」で落とすほとんどが、雑な記述。というか、何もかもが雑にみえる。

・ゲームのブログ
・マンガの紹介

等と言った一行。というか、ヒトコト。
サイトは完成させてから申し込めって言ってるんだから、もう少し書いてくれよ。
完成してないなら完成させてから申し込んでくれ。
こんなこと、利用規約にいちいち書かなければいけないのか?

そして内容で落とす二つ目の基準が、「おまえ利用規約読んでねーだろ」とか「それ以前に法律守る気あんのか?」とか、色々突っ込みたくなる内容を書いて申請してくる者。

・無〇正アダルトサイトはOKですか?(実写でなく同人です!)
・最新の音楽の着うたサイト作ります
・URLはなんですか?
・メールはCGIはPHPは使えますか?

書いてある。ぜーんぶ書いてある。
書いてあることと常識で判断してくれ。

そして3つめ。
コレは意外と多い落選事項。
まぁ、気持ちは判るんだけどね。
「勉強のため」
「動作テストのため」
「表示を確認したい」
などなど。
気持ちは判るのだけど、残念ながら認められない。
このサーバーはユーザーに実験用として貸し出ししている物ではなくて、コンテンツを公開する場としているためである。
例えばサーバーで動作テストしたプログラムが暴走した場合、ユーザーにそれを止める術は無い。
一般ユーザーのシェルへの干渉は認めていないから、プロセスを殺すことができない。
その結果、サーバーをダウンさせてしまったり、ネットワークに負荷をかけてしまうかも知れない。
サーバーがダウンすれば、全ユーザーが迷惑するし、私はこのサーバーを用いて大学の研究を行っているので、サーバーのダウンなんて正直考えたくない。
まぁ、実験目的での利用が認められない最大の理由は、windowsだろうがlinuxだろうがmacだろうが、サーバーにアップしなくても環境を整えればローカルで実験できるからである。
ローカルで動かなければ、サーバーに置いても動かない。
環境の整え方が判らないなら、なおさらだ。

ちょっと辛口なエントリーになってしまったが、ユーザーの承認、不承認、登録、削除、メンテナンス、ログチェック、監視と言った作業は全て手作業で、時間を割いて行っている。
正直なところ、本気で利用する気が無いのなら申請しないで欲しいと言うのが本音だ。
それは本当に利用したい人の妨げになる。

当サーバーでは複数の申請は認めていないが、落選した場合の再申請は認めている。
落選理由を克服した申請なら承認するので、ぜひチャレンジして頂きたい。

ブログ新規開設とARIA Sound Selectionsの今後

心機一転といいますか,まぁまだしばらく身動きが取れない状況が続きますが,訳あってRestoのブログを新設しました.
前のブログは削除します.

さて,お待たせしてしまっているARIA Sound Selectionsですが,すでにプロジェクトのページで告知しているとおり,一時的に出版を見合わせ,優先的にRestoで公開していく形とさせていただきます.
ある程度公開曲数が増えたところで出版を再企画するということになります.
元々そうでありましたが,楽譜をウェブで先行公開することで,楽譜集自体の需要は激減すると思われますが,楽譜集の完成まで譜面を眠らせては勿体ないため,このような形とさせていただきました.
ただ,冒頭に記したとおり,いつから楽譜製作の活動を再開できるか見通しが取れない状況です.
すでに完成している楽譜から都合を見てRestoで公開していきますので,よろしくお願い致します.
  • ライブドアブログ