2008年10月17日金曜日

任天堂の苦しい言い訳?

WiFiのWEP暗号化が無意味だという話題が世の中を席捲していますが、PCやPDA等の主要なWiFi機器はWPAに既に対応しているので、設定さえ変えれば特に問題無かったりします。

しかし、世の中に大量に普及していて、WiFi機能があり、更にWEPにしか対応していないという機器があるのです。

そう。それが任天堂DSです。

ITmedia: WEPは一瞬で解読 — ニンテンドーDSはどうなる

IT業界人はゲームも大好き、ということで早速槍玉に挙がっています。まぁ、ああいった低価格なゲーム機器で複数の暗号化方法に対応するのは、製造原価の観点から見送らざるを得なかった判断なのかも知れませんが、任天堂広報室の最後のひと言が面白い。

「ただ乗りはマナー違反。家の鍵が壊れていたからといって、侵入していいというものではない。マナーの向上を期待する」

え〜!家の鍵が壊れていたら、泥棒なら喜んで侵入しますよね?
今問題にしているのは、たまたま脇の甘いWiFi電波をただ乗りするという比較的無害なユーザではなく、そこを踏み台にして悪さをする様な犯罪者ユーザの事なんだと思いますが・・・。

ただ乗りされるだけなら一時的に自分がお金を払っている回線の帯域をタダで使われてしまうだけで、まぁ悔しいという程度で済んでしまう話ですが、仮に犯罪を起こされた場合、侵入されたWiFiを持っている方にISPが割り当てたグローバルIPでインターネットに接続して犯罪を犯すわけで、下手するとWiFiに侵入されてしまった方は無実の罪で捕まってしまうことにもなりかねません。問題にすべきはこういったシチュエーションで、マナーとかそういう次元では無いと思うんですが・・・。

まぁ、広報担当者はITの専門家でもなく、ましてやセキュリティの専門家でも無いんでしょうけれど、ちょっとこのコメントは的外れ過ぎるかなぁ、という気がしました。

2008年10月15日水曜日

WEP暗号化はもはや用を為さず?

あまりに衝撃的な記事を見てしまったので、慌てて自宅と職場の無線LANの暗号化方式をWEPからWPA2に変更しました。

ITmedia - 「WEPを一瞬で解読する方法」を研究者グループ発表 プログラムも公開予定


プログラムが公開されるまでの期間が言わば「執行猶予」だったわけだけれど、もしそんなプログラムが公開されてWEPキーのクラッキングがカジュアルに行えるようになってしまったら、もはやWEP暗号化なんて何の意味も無くなってしまう。

というわけで、この記事を読まれた方は一刻も早くWEPを捨ててWPAもしくはWPA2 (AES暗号)へ!

2008年10月12日日曜日

C言語プリプロセッサ

現在、仕事で組込向けプログラムをC言語で実装しているのですが、ネットで調べても載っていなかったことを備忘録代わりに書いておきます。

C言語のプリプロセッサ命令に文字列結合の”##”という命令があるのですが、ネットのどこを調べても載っていません。私が以前Cを勉強したとき(もうかれこれ10年以上前ですが・・・)には確かに習った記憶があるのですが、最近は教えないんでしょうか??

ともあれ、手元のコンパイラ(gcc v4.0.1 for MacOS X)ではちゃんと機能しますので、私の記憶違いでは無さそうです。

そういえば、私がCを勉強していたときも、関数ポインタについて記述している書籍は殆ど皆無でしたので、ある意味プロフェッショナル向けの隠し機能みたいな考えられ方をしてるんでしょうかね。

2008年10月4日土曜日

Cプログラミング雑記

すっかりこちらの更新が滞っていました。

最近、C言語でのプログラミングを仕事でやっているんですが、組込向けなので自前でライブラリ関数レベルの機能を実装しなければいけなくて、結構ハマる事もしばしば。

最近ではBASE64エンコード/デコードのコードを書いたのですが、細かなビットシフト演算の部分でミスがあったりして、1週間くらい格闘する羽目に陥りました。結局は全て解決して、やっとちゃんとしたコードになりました。

あともう一つハマったのは、CでBASE64エンコードしたデータを受け取る側のPHPスクリプトの問題です。Content-Typeをapplication/x-www-form-urlencodedで送ると、URLエンコード特有の処理をPHPが裏でやってくれてしまうんですよね。いわゆる、空白文字をプラス文字(+)に置き換えている処理を、PHPスクリプトでは自動デコードしてくれてしまうのです。

BASE64は、アルファベット(A-Za-z)と数字(0-9)と記号(+/)にデータを変換するのですが、URLエンコードの自動でコード処理をされてしまうと、+にエンコードされていたデータが空白に戻されてしまっておかしな事になります。

これもだいぶハマりました。。。

まぁ、うまく行った時の達成感は得がたい物がありますが、C言語は本当に全てがプログラマ任せで大変です。Javaがメインだった頃が懐かしい・・・