#はじめに
プロミスキャスモードを用いたESP8266でのAmazon Dash Buttonのイベント取得 を拝見したことから始まった応用記事です。
「プロミスキャスモード」とは、ざっくりいうと拾えるものは全部拾うモードです。他機器宛のパケットも拾いますし、WPAで認証されてなくても、SSIDが異なっていても受信します。当然、暗号化された中身は解読できませんが、誰が送ったか(送信元MACアドレスがなんなのか)は分かります。
Amazon Dash Button は AmazonのサーバとHTTPSでしゃべるので、それに先立ち以下のような通信をしていると思われます。
①無線ネゴ→②WPA認証→③DHCP(ARP含む)→④DNS→⑤HTTPS
よくある Amazon Dash Button の検出にはARPを使うものが多いです。これは③番目なので数秒の遅延があります。
一方、プロミスキャスモードを使うと、①の段階で検出できます。感覚としては3倍速い感じです。
この速さは注目に値します!
ぜひ、プロミスキャスモードを用いたESP8266でのAmazon Dash Buttonのイベント取得 にいいね!をたくさんして、もっと注目されてほしいと思っています。
#応用例
応用例として、自作電気錠に組み込んで開けてみました。
この自作電気錠は第1回みんなのラズパイコンテストで技術賞をいただいたもの(の後継品)です。
Akerunの中の人(CTO)が作ったモノ http://akerun.hateblo.jp/entry/2016/12/10/094549 と比べると低遅延なことが分かると思います。
尚、このボタンを選んだのは、ローリングストック法、あるいは日常備蓄をちゃんとやるため、正しくAmazon Dash Button を使っていくためにフルグラを選んでいます。
#セキュリティ
低遅延な分、セキュリティがガバガバです。コード上にSSIDやWAPキーがないのです。第三者にMACアドレスを知られると鍵を開けられてしまいます!
日常的にコレを使っていたらMACアドレスを知られてしまうのは時間の問題でしょう。
というわけで、応用例としてはダメな例でした。
しかし、セキュリティが緩くても低遅延であることのほうが重要なケースもあると思います。遅延が気になってた方は再検討してみてください。