メニュー 閉じる

カテゴリー: 雑記

生体認証スマートフォンの脆弱性

生体認証って、もうすでにそこらじゅうで突破されているの、知っていますか?
指紋認証と手のひら静脈認証、あと網膜スキャンなどが有名ですね。
どれも、絶対に変更することのできない唯一のものです。

このうち、もっとも弱いのは指紋認証。
なぜか?

スマートフォンをあなたは指で毎日突っついていませんか?(笑)

そこで、端末の表面で採取した指紋を○×○×っとすればすぐに偽物の指が作れます。
はい完了。

もちろん、ちょっとした「どうぐ」が必要ではありますが、指紋採取はさほど難しい技術ではありません。

iPhoneなんて裏もガラス(または樹脂←new!)なのでいっぱい指紋ついてますね(笑)
オフィスなら、ターゲットの人の席に行って、マウスやキーボードを拝借すれば数十秒で指紋GET。
(もちろん100%ではありませんが)

というわけで、指紋認証を目当てにiPhone5Sに買い換えるのはあまり得策ではないと思います。
たぶん4桁のパスコードより弱いです。

それでも持ちたい人は、端末に指紋がつきにくい指を認証に使いましょう。
…足の指とか(笑)

みくりんちサーバー事情。

DSC_0248a_300px
自宅は半分データセンター、、
ソーラー発電設備も設置して、もう何をやっているのやら(笑)
まあそんなみくりんち。

最近イベントとかにいけていないので、こんなネタ出しをふたたび…(笑)

今のメインサーバーがこのDELL C6100高密度サーバー@2Uラックマウント、になってます。
CPUにはXeon E5530@2.4GHzが全部で8個、メモリ合計96GB。
といっても、実際はCPUは2個づつで4台に分かれていて、普段起動しているのは1/4ぶんだけ。
(まあこれはもうブレードサーバーです…)
わっほいわっほい言いながらフルパワーで動かしたらかなりのリソースになるけど、電気をそれだけ消費してしまうので、今のところ省エネ運転です(/ω\)

これを導入する前は1UのSunサーバー(Xeon E5435 2個積み)だったんだけど。
いわゆるマザーボードにあたる部分が壊れてしまって…なぜか突然落ちるんで、どうしようもなくなり。
まさに\( ・д・) バルス!! /

メモリを抜き差ししたら一時安定したんだけど…
ブレーカーが落ちたり(爆)で再起動するとまた\( ・д・) バルス!! /
だめだこりゃでした。。

で、意を決して導入した中古サーバー(笑)
まあ新品のサーバーでこれを買ったら新車が買えたりしますが(笑)
RAIDコントローラが遅いということで、中古品が破格で売られていました。
うーん、確かにHDDアクセスがちょっとつらい…

でもまあ、消費電力が約300Wも減り、ランニングコストを考えたらとてつもない節約に繋がりました。
まあ悪い買い物ではなかったかなと思ってます。

そんなこんなで、ようやくこのブログも安定したところなのですw
(自宅サーバーなんですw)

#今ちょっとSPAMがひどいのでコメントつけられない状態ですが(^^;
#そっちも対策しなくちゃ…

あとは、古いほうの壊れたSunサーバーの処分が課題。
ラックマウントサーバーなんて本来業務用なので、家庭から捨てるのはなかなか(爆)

あーあ。

まあ気長に考えます…( ̄ω ̄)

Linux & TEMPer1.4で室温測定サーバー

DSC_0334
天下の中国製、USB温度計ドングル。(TEMPerシリーズ最新版?のTEMPer1.4です) 

USB温度計! USB thermometer-528018
(Amazon.co.jp)

ちょうど丸っこい台座がついた延長ケーブルがあったのでこれも購入しました(笑)
 
BUFFALO USB延長ケーブル 2.0対応 スタンド付 2.0m ホワイト BSUC20EDWH
(Amazon.co.jp)

なかなか思ったデバイスIDのものが手に入らないんだけれど、今回はTEMPer1.4という「HIDで認識するタイプ」のものを購入してみました。
Linuxで使うので付属CDはいりませんが、Windows用のsetup.exeとmsiが入ってます。
(そちらの動作はよくわかりません)

とりあえずLinux上では、2013年現在だいたいのディストリビューションでちゃんとTEMPer1.4で認識してくれるみたい。いくつかのLinuxで試したけどdmesgはどれもこんな感じでした。

[71495.072061] usb 3-2: new low-speed USB device number 10 using uhci_hcd
[71495.247636] usb 3-2: New USB device found, idVendor=0c45, idProduct=7401
[71495.247643] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[71495.247648] usb 3-2: Product: TEMPerV1.4
[71495.247652] usb 3-2: Manufacturer: RDing
[71495.266149] input: RDing TEMPerV1.4 as /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input1283
[71495.266458] hid-generic 0003:0C45:7401.09F5: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-0000:00:1d.1-2/input0
[71495.281195] hid-generic 0003:0C45:7401.09F6: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-0000:00:1d.1-2/input1

なかなか感触良かったので、いろんな情報を探してfedoraやUbuntuやらで試したけど、最終的にたどり着いたのは以下のモジュール&Ubuntu12.04でビンゴ。 (上のdmesgもUbuntu12.04です)
※CentOS6.4やfedora19が現状最新。全部は試してないけれど、fedora17ではHIDデバイスとして認識までしていたので、たぶんいけるんじゃないかと思います。
(動いてたマシンをfedora17→Ubuntu12.04に入れ替えた時点で心が折れたので、動作確認はこれだけ^^;)

Setting up TEMPer USB thermometer on CentOS
http://www.omniweb.com/wordpress/?p=915

こちらの参照元(本家&ダウンロードリンク)は下記。
・情報ページ: http://www.penguinsunbound.com/User:goeko/Temp_Sensor
・ダウンロード: http://momtchil.momtchev.com/files/pcsensor-1.0.0-multi.tgz

まずソースをwgetなりでダウンロード。
# wget http://momtchil.momtchev.com/files/pcsensor-1.0.0-multi.tgz
# tar zxvf pcsensor-1.0.0-multi.tgz

tgzを展開すると、udev登録用のサンプルがあるので、/etc/udev/rules.d/に突っ込んでリブートします。
(USBだからドングル差しなおしでもいい?けど、リブート後の動作が保障できないので安全のため。)

# cd pcsensor-1.0.0-multi
# cat 99-tempsensor.rules
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="7401", MODE="666"
# cp -p 99-tempsensor.rules /etc/udev/rules.d/
# shutdown -r 0

デバイスIDがさっき確認したdmesgの出力にあったもの(0c45:7401)と同じじゃないと駄目です。たぶん。
2013/8月現在、市場に出ている「TEMper1.4」はこれになってるはず。

それ以外はHIDで認識するなら、デバイスIDを書き換えてみると動くかもしれないですね。
(中国産なのでお察しください…ですが。でも現状では1.4が最新で、これ以前のものは入手困難っぽい)
※dmesg以外にlsusbの出力も見てみるとヒントになるかも。

リブートが終わって起動したら、

# cd pcsensor-1.0.0-multi
# make clean   ※怪しいのでバイナリは一旦消しましょう。
# make
# ./pcsensor -c

これで、下記のような結果を吐いてくれれば成功。

2013/08/18 01:46:55 Temperature 31.12C

デフォルトの出力結果です。
pcsensor.c のprintfをいじれば数字だけとかも吐けるようになりますね。

ソースをいじったあとは、Perlあたりでラッパーを作り、RDBにINSERTするようなスクリプトを組めば長期間のデータも取れるでしょう。
参考程度ならcronでファイルに吐いてもいいか。
Cacti使う人も同様にちょっと修正すればいけると思います。

ただ、うちではときどき取得に失敗するので、単純にファイルに吐くだけじゃなくて「駄目なときはリトライ」が必要になるかも?と思っているところ…

(エラー出力のとき)
USB interrupt read: Resource temporarily unavailable
Fatal error> USB read failed

でもまあもう一回「pcsensor -c」を叩けばちゃんと結果が取れます。
延長ケーブルが駄目っていう初歩的なケースもあるようなので、一応マシンのUSBポートに直接刺してみるといいかも。(ただし、ドングル自体が金属で包まれているので、直接ぶっさしたらマザーボードと同じ温度になりそうですね…^^;)

とりあえず、上記でなんとか値が取れるのがわかったので、今後は取得した温度をWebサーバに送ってWebからグラフを見れるようにしたいなぁ、なんて画策をしています。
あと、IrDAポートも用意してエアコン自動制御とか…夢が広がりんぐ(笑)

とにかく情報が少ないので、少しでも参考になれば幸いです。
まあ、買ってきても即ゴミ箱行きって事ももありうるので、一応そういう覚悟をしてから買いましょう。
(中国製だけに…)

にゃー。