月: 2005年7月

悪魔の双子

「悪魔の双子」という攻撃はセキュリティに詳しい方ならご存知と思いますが、あまり一般的に認知されていないような気がしてきたので簡単に書いておきます。日本語版Wikipedia、はてなにも「悪魔の双子」は登録されていないようです。さすがに英語版Wikipediaには載っていました

日本語のニュースでは、少なくとも、WIRED NEWSに米国イベント会場で「悪魔の双子」のアクセスポイントは頻繁に発見される、と言う趣旨のニュースは出ていたような気がします。(記憶が曖昧。自信なし)

英語版Wikipediaの定義によると、悪魔の双子(Evil Twin)とは

An evil twin is the concept in fiction (especially science fiction and fantasy) of someone equal to a character in all respects, except for a radically inverted morality.

とされています。日本語に訳すと次のような感じになります。

悪魔の双子とは架空の物語(特にSFやファンタジー)の登場人物で、正反対の道徳性を持つこと意外は全く同じ特徴をもつ登場人物のことです。

「悪魔の双子」による攻撃とは、イベント会場などで利用者の利便性の為に無料で提供される無線LANのアクセスポイントを装い、「悪魔の双子」のアクセスポイントを経由したパケットからユーザ名やパスワード等の情報を盗み取る攻撃の事です。アクセスポイントはイベント会場だけでなく、会社や学校、公衆無線LAN、誤った設定のアクセスポイントなどに偽装している場合もあります。「悪魔の双子」による攻撃は無線LANのアクセスポイント以外でも応用可能ですが、無線LANのアクセスポイントを偽装した攻撃を「悪魔の双子」と呼ぶ事が普通のようです。

ネットワークのパケットを盗み見ても価値のある情報はそう簡単に盗み取れない、と思うのは間違いです。今でも暗号化が全くないPOPやIMAPアクセスは普通に利用されています。多くのユーザがメールのアカウントのアカウント名とパスワードは他のアカウントのIDとして利用しています。

登録済みのアクセスポイントに自動接続する仕組みは非常に便利ですが、メールクライアントを立ち上げたまま「悪魔の双子」のアクセスポイントに接続してしまうとメールアカウントのユーザ名とパスワードが盗まれる可能性があります。

アメリカのイベント会場では「悪魔の双子」が見つかっても珍しくない状態になっているようです。日本の状況をレポートした資料は見た事がないですが、用心するにこした事はありません。

イベント会場など他の場所では無線LANを使わないから大丈夫、ともいえません。例えば、社員が職場に「悪魔の双子」を設置した場合はどうでしょう? 大丈夫でしょうか?

蛇足:
時々、無線LANへのアクセスをMACアドレスベースで制限しているので大丈夫、と勘違いされている方を見かけます。WEPで暗号化していても(当たり前ですが)MACアドレスは暗号化できません。最近のNICはMACアドレスを自由に変更できます。したがってMACアドレスでアクセス制限をしてもセキュリティ対策として意味がありません。

ところで「悪魔の双子」による攻撃は無線LANがはやる前から懸念されていた攻撃方法です。「悪魔の双子」という注目を集めやすい名前から急速に認知されるかもしれませんね。(何年も前からEvil Twinは無線LANのアクセスポイント偽装をあらわす用語として使われていたように思えます。どうだったかな?)

画像のみのフィッシングメール

受け取っている人はすでに同じようなメールを受け取っていると思いますが、画像のみのフィッシングメールがアンテナ用メールアドレスにまた来ました。
# Citiバンクのフィッシングメールは有名なので受け取っている方
# も多いと思います。

一見、普通のテキストメールのように見えるのがポイントです。うっかりテキスト部分だと思ってクリックするとサイトに接続してしまいます。

Phshing
(これをクリックしてもフィッシングサイトには接続されません)

画像を添付したSPAMメールの増加は非常に気になります。画像を添付したメールは全てSPAM扱いにする方が良いですね。

ちなみにこのフィッシングサイト、これを書いている時点では稼動中でした。:(

追記:たまたま@ITにCitiBankのフィッシングメールのイメージを載せているページを見つけたので、URLを貼り付けておきます。
http://www.atmarkit.co.jp/fsecurity/rensai/mailauth01/mailauth01.html

禁煙1周年

ふと気が付くと禁煙1周年を超えていました。確か去年の6月半ばから禁煙しています。日付を覚えていないのは「禁煙しよう」と思って止めたのではないからです。自己暗示をかけているうちに吸わなくなってしまいました。「禁煙しなければ!」と言う意識が無かったためか、吸いたくなる事もあまりありませんでした。そんな簡単に禁煙できるはずが無い、と思われる方もいらっしゃるかもしれません。しかし、以前勤めていた会社の同僚で同じようになんとなく禁煙して成功した方がいます。その時は私も「ほんとに?」と思いましたが、自分も同じように禁煙に成功しました。タイミング、心理状態が要なのかも知れません。

ところで喫煙している方に面白い製品があります。ビタクールはニコチンを分子構造が似ているビタミンB3に変えてしまうそうです。眉唾製品っぽく聞こえますが、日本、中国、韓国、米国で特許を取得しているそうです。

私はもう吸っていないので喫煙者の方、いかがでしょう?

Googleの広告位置を変えてみる

今まで右側のサイドバー下にGoogleの広告を入れていましたが、場所を変えてみました。

最初から非効果的な場所とは分かっていたのですが、本当に非効果的でした(笑

# 2ヶ月で700円くらいになりました :)
#
# adsenseで儲けよう、というのではなくadsenseを
# 使ってみてコンテンツの内容と表示される広告を
# 見る事が目的だったので十分と言えます。

ごく一部の方はアフィリエイトで儲けているようですが、クリック単価からするとトラフィックがあり、クリックしやすい場所に広告を載せると言われている程度の広告収入は期待できるかもしれません。その為にはコンテンツが重要ですが、このコンテンツつくりが難しいと思います。私を含め、普通の人には難しいでしょうね。

ところで場所をかえたおかげで本来の目的のコンテンツに対応して表示される広告が見やすくなって個人的には便利になりました。

入門書の書き方

ほとんどの文章、セミナーでは対象とする読み手、聞き手を設定してから書き始めると思います。

極論すると、コンピュータを全く触った事がない人には今出版されているプログラミング入門書全ては難しすぎる入門書、になるでしょう。どのあたりに読み手を設定するべきか、コンピュータは知っているがプログラミングは初めて、からC/Java/etcのエキスパートでプログラミング言語はよく知っていて新しく言語を習得する方までいろいろあると思います。

私の書き方はあまり一般的ではない(笑)ため賛否両論になってしまうようですが、最も基本的な方針は「自分が買って読みたく、聞きたくなるなる本やセミナー」を目標としています。自分が読みたいとか聞きたいと思えない物を作ることに大きな抵抗感を持ってしまうからです。この方針のため癖のある文章やセミナーになってしまうと思います。もちろんこれだけでは自分以外には役立たない物になってしまうので、対象とする読み手や聞き手への配慮を入れるようにしています。

ちょうどWebサイトセキュリティの本を書いているところなのですが、この本も自分が読みたくなる本、となるように書いています。概念編と実践編の2部構成で、概念編は開発者以外の読者も読める内容、実践編は開発者向けの内容になります。書店で普通に販売されているコンピュータ関連の技術書の9割は入門書ですが、このWebサイトセキュリティの本も入門書です。

アマゾンのコメントはサンプル数が少なすぎで参考にするのは難しいですが、入門書は

・筆者自身の購買意欲をそそる細かな情報は無くても良いから、その分野の知識が無い人を対象にするべき(つまり、細かいことは置いておき、読みやすさを重視し詳細は省く)
・「PHPポケットリファレンス」も「はじめてのPHP言語プログラミング」もそれなりに売れているので、自分流で書いてしまうべき

のどちらにするかで迷っています。
一般受けして売れるのは前者なのでしょうね。
これはPHPポケットリファレンスを書いている時にも思った事ですが…

文章を書くのが上手な人はきっと簡単に両立できるのだと思いますが、私には難しい… (苦笑 

HTTP Response Splitting攻撃はこう行われる、IDSを潜り抜けるSQLインジェクション攻撃とか、具体的なことを書いても「難しすぎる」「説明が詳細すぎで初心者向けでない」「詳細が多すぎで対策の記述が不十分」と言うコメントが予想されます。硬派な技術系の方には「概念編は具体的な事がかいてないので無駄」「抽象的なことを説明するくらいなら、実践編にページを使った方がよい」などの感想になると予想できます。

要するに、このままではこれまで書いた本と同様、ツッコミどころの多い本になるという事です。
「○○入門」というタイトルになって★一つでも困りますしね…

さぁ、どうしましょう。今なら方針転換がぎりぎり間に合います。

不必要なIT化?!

裁判で電子投票の無効が確定したそうです。

前から思っていたのですがタッチパネルだけで投票する事がそんなに便利なのでしょうか?自宅にいながらインターネット経由で投票できるならまだしも、投票所に行かなければならないのにタッチパネルで投票する事の意義は無いと考えています。物理的に投票者が投票所に行くのですからもっとセキュアな仕組み(検証可能であることも含む)にするべきだと思います。
# 私が知っている電子投票システムはタッチパネルの物ですが
# 岐阜県可児市議選のシステムも同じかどうかは知りません。

私がシステムを設計するのであれば、マークシートとシートリーダを用意して投票と同時にマークシートを読み取らせる様にします。集計結果は投票時間が終了するまで誰も見れない仕組みにすればよいでしょう。万が一、集計データがなくなったり、今回の裁判の様に機器が使えなくなってもも後でマークシートを読めばよいだけです。選挙結果に異議がある場合もマークシートを読み直せばよいだけです。最悪の場合、アメリカの大統領選の様に人間がマークシートを一枚一枚確認する事態になるかも知れませんが、それでもタッチパネルだけの投票より遥かに容易に結果を再検証可能です。完全な電子投票では結果の検証手段が無いという致命的な欠陥があります。

利便性向上も目的の一つですが、電子投票にしたために投票をやり直すようでは経費もそうですが、利便性は低下するばかりです。

将来はネットワーク経由で投票を行えるようにするための実験として紙などを利用しない投票形式にしているのかも知れませんが、個人的には10年後でもネットワーク経由での電子投票には反対すると思います。安全性への疑問が拭いきれないからです。投票所に行かずに投票を行うことは不可能である事を前提とすると、今の電子投票システムは無用の長物としか思えません。電子投票システムの実験をしたいなら別途行って欲しい物です。

経費節減が電子投票推進の理由の一つになっていますが、投票用紙をマークシートにするだけも十分費用削減効果があるのではないでしょうか?そしてマークシート式投票用紙を使用した方が安全性など含め優れた点が多いのではないでしょうか?

さらに各自治体がいろいろな電子投票システムを作っていると思いますが、この状況は改善したのでしょうか?ばらばらに作っていたのでは税金の無駄遣いです。かと言ってシステムを統一すると不正が発生するリスクが大きくなってしまいます。

今の電子投票システムは不必要なIT化の代表例でしょう。

# 子供の安全性確保のためにRFIDを持たせる、というアイデア
# と同じくらい不必要かつ無駄なことだと思います。

HTTP Request Smuggling Attack

HTTP Request Smuggling攻撃はクライアントからのリクエストをこっそり持ち出す攻撃です。HTTP Response Splitting攻撃の様にWebアプリケーションの脆弱性はHTTP Request Smuggling攻撃に必要ありません。キャッシュシステムの脆弱性が攻撃に利用されます。

攻撃例として

1. Webキャッシュ汚染
2.Webファイアーウォール回避
3.後方・前方のリクエスト持ち出し
4.リクエストの乗っ取り
5.クレデンシャルの乗っ取り(HTTP認証の強奪)

があげられています。

メジャーなWebキャッシュ製品が脆弱である事が検証されているようです。
各製品のアップデートがリリースされています。バージョンアップが必要な方はお早めに。

キャッシュシステムのバージョンアップ以外にも

1.SSLを使用する(キャッシュを利用できないようにしても同じ効果)
2.Webアプリケーションファイアーウォールを使用する(脆弱な製品もあるのでベンダーに確認要)
3.Apacheを使う

が対策として解説されています。
詳しくはリンク先PDFを参照してください。

D.J.Bernstein氏のセキュリティホールコースのfinal exam.

qmail, djbdnsで有名なD.J.Bernstein氏の昨年末のセキュリティホールコースのfinal exam.がPDFで公開されています。

UNIX/Cプログラマ向けの試験です。結構難しいです。
UNIX/Cプログラマの方は一度試してみる価値があるテストです。

さらにこのコースの説明(最初のPDF)を見てみると成績の60%は新しいセキュリティホールを10個見付けることによって決まる、と書いてあります。さすがDJB :)

中国に行けば利用できるようになるのかも?!

クローン幹細胞で牛の若返り実験に成功したそうです。

実は中国は再生医療で最先端を行く国です。脊椎を損傷し体の自由が利かなくなる場合、従来の医療で治療することは不可能とされてきました。しかし、胎児の細胞を使用し神経細胞の再生させる治療が中国では行われています。中絶された胎児の細胞がこの治療に利用されています。日本や欧米から治療を受けにやってくる患者も多いそうです。

このような治療は倫理上問題があるため日本や欧米では研究を行うのも難しい状況ですが、中国では規制が無いため比較的自由に研究が行われ、神経細胞の再生医療にいたっては実用化されるレベルになっています。

実験では牛の胎児が利用されたようですが、人口受精に使用されなかった卵子から培養皿でクローン胚を培養したES細胞でも同じ効果があるらしいです。個人的にはそこまでして長生きしたいとは思いませんが、たとえ高額でもニーズは十分あるように思えます。中国に行けばクローン技術を応用した若返り治療を受けられるようになる日もそう遠くないように思えます。

ところで、つい先日シンガポールは医療サービスに力を入れていることを知りました。海外から高度な医療を受けるためにシンガポールを訪れる人を年間100万人まで増やし、観光と同じように経済の柱の一つになる産業に育てる計画だそうです。シンガポールの医師は2年毎に医師免許を更新し、最新の医療知識を身に付けている事が義務付けられているそうです。2年毎に試験されるとは医師も大変だと思いますが、シンガポールが本気であることは分かりました。確かアメリカは9年毎に更新だったと思います。日本の場合、医師免許に更新はありません。日本では良い医療が受けられないのでシンガポールに行くなどという状況にならない事を願います。

ウィルコム、PHS無線部分をモジュール化、情報機器への組み込みを可能に

以前からPHSは組み込み用にモジュール化すれば結構売れるのではないか、と思っていたのですが遂にモジュール化するそうです。多くの企業が協賛するようです。WILLCOMになってしがらみが無くなった分ビジネスが広がった、という事なのでしょうか?

/.Jにタレこみがあるかも、と思い覘いて見るとやはりありました。

http://slashdot.jp/mobile/05/07/07/1118221.shtml?topic=97

CNet Japanはこれ

http://japan.cnet.com/news/com/story/0,2000047668,20085134,00.htm

QRコードを短冊に

メモ。QRコードに関するblog。本文もQRコードならコメントもQRコードです(気付くのが遅すぎ?

とろこでトップページの「QRコード読み取りのコツ」に

■QRコードの真正面から撮影

とありますが、真正面から読まないとQRコードが読み取れないリーダ(携帯)があるのですね。と、書いている自分も正面から読み取るようにしていますが、QRコードは印刷面が平たければ、ななめから読み取っても読み取れる設計になっています。QRコードの仕様を知らない方も多いと思うので簡単な説明を付けておきます。隅の大きめの■が斜めからも読み取れるようにするための役割を持っています。全ての隅に大きめの■が無いのは読み取り開始位置を判別できるようにするためです。カメラの解像度やQRコードが写されている領域の影響もあるので正面から撮らないと読み取りに失敗する確立は高くはなると思います。エラー補正情報をQRコード内にたくさん入れていれば読み取りに成功する確立は高くなりますが、QRコードが大きくなります。微妙ですね。

折角の有用な情報が台無しです…

7/1から経済産業省が悪徳リフォーム業者のリストを公開したそうです。(タイトルが経済産業省のページにリンクしています。念のため。)

まず最初に目に付いたのが、blinkタグの使用です。HTMLソースを見ると読み上げソフトへの配慮も行われているのですが…

その次は悪徳業者リストがPDFのみで公開されている事です。これでは悪徳業者名が検索エンジンで検索できません…

予想どおりのコメント

Amazonの「はじめてのPHP言語プログラミング入門」にやっと予想どおりのコメントが出てきました。

はじめての、というタイトルに惹かれ購入したのですが、ちょっと難しすぎるというのが正直な感想です。サンプルプログラムに説明のない単語があったり、解説文に聞きなれない専門用語があったり。他の言語や、別の本でPHPを学んでいれば問題ないのでしょうが、それだったら「はじめての」とか「入門」という言葉をタイトルに入れないほうがいいんじゃないかな、と思います。

著者が、博学なのはよく分かるのですが、書き手としては癖があります。掲載されているプログラム自体は簡単なのですが、解説が細かい事まで書きすぎてあり、読んでいて辛くなります。難しげな専門用語もサラリと出てきたりします。結果的に、初心者が読むには向いてないような気がします。PHP初心者には、細かい事を気にせず、ガンガン書いていくタイプの本をお薦めします。

ここで言い訳しておきます :)

この本を書いている時点で「基本は説明したので、とにかく書いてみよう、作ってみよう」と言うPHP入門書(ほとんどはWebサイト構築入門書の体裁)はいくらでもありました。多くのPHP入門書籍はWebサイトを構築する為のツールのような位置づけとしてPHPを説明していました。同じような本を書いてもつまらないので、あらたにPHPを言語として習得されたいプログラマ向け、というコンセプトで書いています。

「はじめての」を付けない方が良いのでは? と指摘されていますが、その通りかも知れません。「はじめての」と付いているのは、この本は当初、技術評論社の「はじめての」シリーズ用に書きはじめた為、「はじめての」と付いています。ページ数等の関係でシリーズ本としなかったのですが名前に残ったという経緯があります。言われてみると「PHP言語プログラミング入門」の方が良かったかもしれませんね。供給側の考えとしては「はじめて」PHPを「言語」としてとらえた入門書、という意図があったので「はじめて」と付いています。

まえがきでも多少ふれていますが、PHPをプログラミング言語としてある程度体系的に習得したい方向けに、プログラミング入門書ではなく言語の入門書として書いたつもりです。このため、本当に初めてプログラミングをPHPで習得したい方、とにかくPHPを使ってWebサイトを作ってみたい方、には不向きな書籍であるという評価は正しい評価です。ターゲットとしている読者は「他の言語は知っているから、PHPでプログラミングする場合に必要な知識や注意点を知りたい方」「とにかく作ってみようタイプの書籍でPHPを習得したが、PHPを言語としてある程度体系的に知りたい」方を想定しています。

出版社/著者からの内容紹介
 Webアプリケーション構築ツールとしてPHPを取り上げた書籍は数多くありますが、言語の解説・入門書としての書籍はあまりありません。
 本書は、プログラミング言語としてのPHPを解説することに最も重点を置いた入門書です。本書を通じて本格的なアプリケーション構築に必要な基礎知識を習得することができます。

出版社からのコメント
■こんな方におすすめ
・PHPプログラミングに興味のある方
・PHPをきちんと学びなおしたい方

と購入者の方に配慮しているつもりですが、Amazonで購入する場合は立ち読みをしてから買う事ができないのでタイトルのみで購入すると期待外れになってしまう場合があります。しかし、amazon.co.jpでもスキャナでスキャンしOCRでテキスト化したデータを検索できる「サーチ・インサイド・ブック」サービスがはじまるようです。「はじめてのPHP言語プログラミング」もこのサービスで立ち読みできるようデータベース化を許諾しています。しばらくすると立ち読みできるようになるのでタイトルから期待していた内容と違った、と言うことは少なくなるのではないかと期待しています。

ところで、書き手としては言語要素をさらっと解説してアプリの作り方を説明する方がかなり楽です。このような書き方の本の方が売れるようですが中身がある本の方が価値が高くなると信じてこのような内容になっています。Webシステム構築入門書としては適していないかも知れませんが、業務としてPHPを使う方には役に立つ内容と思っています。(と言うより業務でPHPを使う方には知っておいて欲しい知識を記載しています)ご意見/感想などはAmazonのコメント、Wikiメール、お好みの方法でお願いします!