個人情報流出?で作られた現代の(電波)灯台 その2

WiFiのMACアドレスと位置情報をもとにしたWiFiベースのGPSの件です。GoogleにMACアドレスが登録されているかどうか、登録されているとすると具体的にどの場所にあると登録されているのかを調べてみました。
 まず、確認するサイトについて書かれているページがありました。 このページにMACアドレスと3つないし2つ入力することで、位置情報を確認できます

”空の状態”、「 00:00:00:00:00:00」で、確認できる位置は、アクセスしている自分の位置がどこなのかをプロバイダ経由で所得された場所と思われます。ここにMACアドレスを色々入れて確認してみました。
まず、あるアクセスポイントで取得した干渉候補の無線LANの情報一覧を利用してみます。この情報には一覧には36個のMACアドレスがありました。このうち6個は自分のAPのものでした。そのほかの30個の中にはMACアドレスとSSID名から同一APのMACアドレスと判断できるものが、4セットありました。このセットをそれぞれ入力するとばっちりどの場所にあるのかを特定できてしまいます。
 

それぞれ入力すると最も遠いところは500mほど離れていました。かなり強力な電波を発しているAPもあるようです。それから、2個入力しても、”空の状態”と同じ位置を示す組み合わせが出てきます。これは位置情報をMACアドレスから取れていないこと、つまりこの組み合わせのどっちかのMACアドレスの位置情報が登録されていないことを示します。これもMACアドレスがどのように登録されているのかの検証に利用できます。
 このような検証を通して、確認できたことは次の通りです。
・「_optout_nomap」をSSIDに付加しても、すぐにはMACアドレスと位置の情報は無効にならない。
・ MACアドレス と紐づいている位置はだれでも簡単に参照することが可能である。つまりMACアドレスは住所と同じ個人情報に相当する。
・MACアドレスが1個しかわかっていなくても、ある程度近い位置にある位置を特定済みのMACアドレスと組み合わせることで、位置を特定することができる。500mくらいの精度で場所が分かればと特定はできそう。
・マルチSSIDや、2.4GHzと5GHzの複数チャンネル利用などを利用しているAPが3割程度ある。その情報から位置を特定できるMACアドレスが多数ある。

代替仕組みはわかりました。そこで、無線LANメーカへのコメントです。 個人情報流出につながるおそれがあるので、マルチSSIDやマルチチャンネルで使用するMACアドレスは連番ではなく容易に想定できないものにするべきです。


個人情報流出?で作られた現代の(電波)灯台

私のiPadはGPSを内蔵していないにもかかわらず、位置をかなり正確に認識している。ただ、PocketWiFiを使って遠くにお出かけするとGPSを見失ってしまうことがあります。どんな仕組みで認識しているか、任意の位置を(誤)認識させることができるか実験してみましょう。

まず、どのような仕組みでiPadが位置情報を取得しているのかを調べてみました。マイナビサイトに情報「 iPod touchやiPad、GPSなしでも正確な位置情報がわかるのはなぜ? 精度は? 」がありました。GPSがある端末で位置情報を特定し、その場所で受信可能なWiFiの情報をセットで取得して、マップ化しているそうです。パスワード無で取得可能なWiFiの情報を利用することで、それなりにWiFiが使われている場所なら位置が特定できるというわけです。ただ、元の情報を収集する際にパスワードを使って繋げたWiFiの情報を収集されているような不安を覚えます。
 

 それでは、どれだけの情報を使って位置情報を取得しているのか見てみましょう。
 iPad WiFi設定で見えるWiFiは8個ありました。10個になるときもあります。これだけの数が見つかればかなり精度よく位置情報を特定できるのも納得できます。” 遠くにお出かけするとGPSを見失ってしまう ”は、民家が存在しない、つまりWiFiを利用されていない場所で発生していて。上で紹介されている仕組みで説明がつきます。
 また、もう少し詳しくパスワード無で取得できる情報を見てみましょう。

iPadでは、SSIDの名称しか見えていませんが、WiFi Analyzerを使うと、productor(機器のメーカ名)、MACアドレス、セキュリティ方式、周波数、受信強度を参照できます。SSID名以外の情報をどこまで使っているのか気になることころですが、それにしても、こんなに沢山の電波が飛び交っているとは、情報はダダ洩れ状態ですね。自分が管理している無線LAN以外に思わぬものがWiFiのSSIDを送信していることが分かりました。 それはプロジェクタと家電リモコンです。どちらも、WiFiは起動来ていなくても問題ないのでWiFiをオフにしておきます。プロジェクタのWiFiをオンにしたままにしていたのは今回 WiFi Analyzerを使って探索するまで完全に忘れていて、強い電波が外からきているのかと家の中、外をうろうろしてしまいました。そして、電波の強い場所(部屋)とメーカー名から目的のプロジェクタにたどりつきWiFiの設定をオフにしました。

ここまでで、受信しているWiFiは5個か6個です。見えているのは、いずれも自分で管理している無線LANのSSIDです。マイナビサイトに「位置情報を取得されたくない場合は?」の記事によると、 アクセスポイント名の最後に「_nomap」 とか 「_optout」を書くことで、 Wi-Fi位置情報収集をやめるそうです。iPadで検証するのでアップルの動作を優先して 「_optout_nomap」 という文字列をSSIDの後ろに追加してみます。影響がある端末がため 大変です。

まず1台目を変更します。手元のPCから無線LANのSSID名設定変更は成功し、iPadのWiFi設定の変更も完了しました。つぎに排水ポンプを接続しているスマートコンセントのところまで行ってリセットとWiFi設定のやり直し、設定名も変わってしまったのでスケジュール設定もやり直しです。それからIFTTT設定も再確認します。とりあえず、利用頻度の低い1台の設定変更のみ完了です。この設定変更の効果を検証してみます。問題の無線LANのアクセスポイントの方向にアクセスポイントを通り過ぎて突き進んでみました。 SSID名に 「_optout_nomap」 を付加したアクセスポイントは見えるがこれまで見えていたアクセスポイントは見えなくなる位置まで移動しました。これまで見えていなかった他の家のSSIDが見えている状態になりましたが、ほとんど位置は移動していません。よく見ると 「_optout_nomap」 を付加したID以外にもう一つSSIDがあり、それが効いているようです。それは使用していないマルチSSIDの一つでした。

 そこで、不要なマルチSSIDは停止して、端末側のパスワード設定変更をあまり行わなくてもよい無線LANのSSIDには 「_optout_nomap」 を 付加することにしました。 これにより、位置特定に使用するSSIDはかなり少なくなっているはずです。
最初8個見えていたSSIDは、2個は機能停止、2個はマルチSSIDの停止、2個は 「_optout_nomap」 の付加で見えない状態となり、現状1台の無線LANの2.4Gと5Gの2つのSSIDだけが見えている状態となりました。
さてここで、残った1台の無線LANを停止してどうなるか検証してみます。電源を切ると、この無線LANに接続していたgoogle homeと家電リモコンのSSIDが見える状態になりました。そして、認識している位置は変わりません。 Google homeと家電リモコンのSSIDが 効いているのかと思いそれぞれの電源を切りましたが効果はありません。WiFi AnalyzerでみるとiPadでは見えていなかった微弱な電波が5つ拾えています。2つは別の階の機器で、3つは隣家のものと思われる電波です。ただ、この情報だけでビッチっとほぼ誤差なく位置特定しているとするのは無理があるように思います。

再度、位置情報を特定する仕組みと元情報を再検討します。 「_optout_nomap」 を付加したID の情報をリポジトリに登録していないというのは事実としても、それは登録しないだけで、すでに登録している情報は何かを再考します。位置特定精度が変わっていないことを考慮すると、今回の設定変更で変更されていない情報を利用していると考えるのが妥当でしょう。SSID名はリポジトリに登録するかどうかの条件に利用しているだけでリポジトリには登録しておらず、MACアドレスと位置の情報を登録していると仮定してみます。すると、今まで観測した挙動と一致します。またこの方法だとリポジトリに登録するデータ量を抑制することにも効果がありそうです。では、検証に移りましょう。

現状、iPadのWiFiには 「_optout_nomap」 が付加されたSSIDが4個しか見えていません。それぞれの SSIDに紐づくMACアドレスをWiFi Analyzerで確認します。以下、説明するために符号化した名称と下3バイトのMACアドレスを使用します。 WiFi Analyzerで確認したMACアドレスはそれぞれ、つぎのとおりでした。
P2: c5 7f 2a
TM: c5 69 64
2G: fe c9 92
OL: 8e 18 95
これを変更できるか調べてみました。無線LANの設定画面でこのMACアドレスを参照できましたが、変更する方法は見当たりませんでした。無線LANのWAN側のMACアドレスを指定する機能がある機種はあるようですが、無線LAN側はなさそう。MACアドレスを設定変更できれば、リポジトリに登録された情報から解放されるのですが。 また、マルチSSIDを使用すると最後の1バイト分が変わったMACアドレスが付加されていました。オリジナルのMACアドレスを無効化できればよかったのですがこの機種ではできませんでした
 SSIDのステルス化の機能もあります、これを使えば他人の端末が勝手にリポジトリ登録してしまうことはなさそうです。しかし設定するとその無線LANに接続する設定が少し面倒になります。最初の1回は手作業でSSIDを入力しなければなりません。そのSSIDを入力した端末が位置情報のリポジトリ登録に行くので、ステルス機能だけではリポジトリ登録の無効化には効果がないでしょう。
 それから、アップルの場合はSSID,MACアドレスと位置情報を登録されないようにする方法はないそうです。よってiPadについては、無線LANの電源を落として検証してみました。自前の無線LANが見つからなくなると、これまで、しっかり維持情報を把握していたものが、”GPSが見つかりません”を連発するようになりました。ときどき隣家のWiFiの電波が入るので、その瞬間は位置情報を把握できます。ここまでの確認結果から、位置情報を確認する際は、MACアドレスだけを使用していると推測されます。
 また、Google homeについては、現時点 リポジトリ登録されている情報が古くなって無効化されるまで検証待ちとします。そういえばGoogle homeが以前400km以上離れた別の県を所在地と誤認識していたことがありました。
アップル、Googleともに一度別の場所で位置情報を登録した無線LANを置くことで、位置を誤認識させることができそうです。


大雨で自動での排水起動頻度が不十分なので音声起動を追加

雨が降り出したら自動排水するようにIFTTTのAplletを追加しましたが、その対処では不十分なくらいに大雨になっています。これまで頻度がそれほどでもなかったので手動で起動していましたが、そうもいっていられないくらいの雨になってきたので、音声で起動で指定するAppletを追加します。

IFTTTのサービスを使って、雨が降り出したら排水ポンプを動かすAppletをGoogle homeとEchoそれぞれについて設定します。まずIFTTTで「New Applet」すると次が表示されます。

「+this」をクリックして実行する条件”トリガー”を設定します。ここでは「Google Assistant」もしくは「Alexa」を使っています。検索枠にサービスの名称の頭から数文字”As”や”Al”を入れると選択肢が表示されます。
” Google Assistant”や”Amazone Alexa” をクリックします。

次に起動ワードを指定します。起動したいだけなので、”Say simple phrase”を選択します。

起動ワードに は「排水」を、指定します。「Create trigger」をクリックします。

「+that」をクリックして、何を実行するかを指定します。

実行する処理をサービスの中から選択します。ここでは、利用するスマートコンセント”Meross”を指定します。

”Turn on”(電源オン)を選択します。

登録した”排水ポンプ”のスマートコンセントを選択し、「Create action」をクリックします。

設定した内容を任意の名前を指定します。 「Finish」をクリックしIFTTT設定を完了し保存します

以上で、「雨が降りだしたら自動で排水」することができます。排水ポンプを止めるほうはスマートコンセントのスケジュール設定で「1分後にオフ」を登録しているので、1分後に自動的に排水ポンプは停止します。

いいね 家電リモコンのセンサー機能

ちょっと前に試しに設定していて忘れていた機能が動作して、やっぱりいいねと思いました。
それは、センサーで取得した明るさの情報をもとに家電を操作する設定です。次のように設定しました。

1)IFTTT連携の設定を行う。

2)IFTTTでつぎのようにAppletを作成する。

 2-1)then に RATOC remoconを選択する
2-2) リモコン明暗 (照度) を指定する
2-3) 基準値1(100Lx)より低いを選択する
2-4) Create Triggerを押す
2-5) that に RATOC remoconを選択する
2-6) エアコンの操作を設定する
2-7)エアコンの操作で 停止 を指定する。
2-8)Create Actionを押す

以上で設定は終わりです。

この設定で、電灯を消して部屋が暗くなれば自動的にエアコンが切れるので、エアコンの切り忘れを防げます。 逆にエアコンをつけたままにしておきたければ電灯を点灯したままにしておく必要があります。その場合でも離れたところからオンになっていることを気が付けます。エアコンの消費電力に比べれば電灯のほうはそれほど多くないので、消費電力的にも無視できるでしょう。
 RATOCの仕掛けに改善してほしい点を言うとすると、「 基準値よりxx 」という条件だけでなく、「xxx以上からxxx以下に変わった」など、条件をきめ細かくしてほしいところです。 現状の「 基準値1(100Lx)より低い 」の条件だと、電気を消した時点だけでなく、暗い時間帯に複数回”エアコン停止”の操作が行われることになります。エアコンの動作的には何も起こりませんが、リモコン操作がおこなれたのと同じで”ぴっ”という音がします。

そんな感じで、現在の状況に合わせて動作する仕掛けは、うまく使えばなかなか便利です。その点は、Amazon EchoとGoogle homeの音声アシスタントにも当てはまります。今の状態を認識したうえでそれに合わせてより期待に近い動作をさせるというものです。今の時刻、現在の場所、などです。「今日の天気は?」と聞くだけで、現在地の天気を教えてくらますよね。現状はGoogleのほうが状態認識しているものの情報量が多く、的確な動作をしていると感じます。

たとえば、つぎのようなものです。

・テレビがついているかどうか
  → リモコンボタンの電源操作は、ON/OFFどちらも同じ信号が送信されます。このため、テレビの状態を認識できていないと「テレビをつけて」の操作の結果として”テレビを消して”しまうことがあります。
Google home(Chromchast)の場合はリモコン操作でないので機能するのですが…

・誰が操作したか
  → 誰が操作したのかを認識してその人の設定で動作する。
   カレンダーなど個人アカウントと紐づいている情報にアクセスして動作します。

・今、何をしているか

ということ、スマートスピーカーは、その機器で認識した5W1H?を条件にして、それについて前置きする音声入力することなく機能するので違和感なく使えます。このレベルまではふた昔前のAIのレベルです。今どきのディプラーニング技術をこの5W1Hの管理に組み込めば、スマート何とかはさらに進化できるはずです。

いくつかの電気製品は更新のタイミング?

いろんなところで2020年問題とか、時限式ネーミングで売り込みしようとしています。どんなものなのか検証してみましょう。

今回は、「照明の2020年問題」についてみてみます

実質完全LED化する2020年問題の現状とは?」この辺の記事では、全ての蛍光灯の生産がゼロになるというわけではなそうです。

パナソニックはWeb上では、まだ健在です。切り替えの記述も特に無いようです。それよりも「 LINK STYLE LED 」を押している感じです。

東芝ライテック株式会社は、一部生産終了しているように見せています。E26金口タイプは終了しています。これは普通にE26のLED電球に置き換えるだけなので球が切れたら順次切り替えればよいでしょう。一般的な蛍光灯は普通に存在しています。

株式会社ホタルクス(旧 NECライティング株式会社)も、普通に蛍光灯はあります。このサイトに「水銀関連のお知らせ等」の情報がありました。すでに規制にひっかかる製品は製造や輸入されていないとあります。すでに基準を満たしているので、 すでに2020年問題はクリアされていることになるといってよいのではないでしょうか? 

各サイトの書きっぷりは3つほどのレベルに分類できそうです。「キャッチーなタイトルであおりを入れつつ、ぎりぎりアウトな嘘の記載で物を売ろうとしているサイト」、「真面目に現状について正しい情報を提供しようとしているサイト」、「後者をベースに将来も見据えた方向性を紹介しているサイト」の3つです。

 ということで、昔あったフロン規制と同じようにだんだんと基準が厳しくなることも想定されます。つまり、現状の代替製品も基準を満たさなくなるということが考えられます。そうであれば、機器故障とか、買い替えのタイミングで製品を切り替えるのが良いでしょう。ということで、今使っている機器についてじっくりとどんな製品に切り替えるのが良いか検討してみましょう。

スマートコンセント、スマートプラグ

日本語では名称が”ふわっ”としていることがある。コンセントとプラグ、どっちがどっちか良くわからず使われていることはないですか?刺される方と刺すほう、どっちがどっちなのかという点です。プラグは刺すほうです。コトバンクの記載では”差込プラグ”とまで書かれています。冗長な表現なのですがこういう言葉が出てくること自体が、日本語では意味をちゃんと定義せずに使われていることを感じさせます。

英語(米)では、プラグはPlugですが、コンセントはoutletです。outletのほうが直接的な表現のように思います。

それはさておき、スマートコンセント、スマートプラグの名前の商品はどういうものでしょう。刺すほうなのか、刺されるほうなのか、どっちに着目したのかで命名されている感じがします。形状にあう名称にするなら”電源タップ”が妥当かも知れません。

雨が降りだしたら自動で排水 

消費電力ほぼゼロのはずの電気代が1か月で5500円とか、9500円に増えていることに気がつきました。調べると排水ポンプが稼働しっぱなしになっており、常に「ジョロジョロ」と排水されていることが原因と判明しました。普通は、「ドバー」っと一気に排水されて水がなくなると自動で止まります。これは排水ポンプのフロースイッチが効かなくなっていることが問題原因なので、本来は排水ポンプを修理もしくは交換するところです。しかし、費用も抑えたいし、コンセント側で電源をON/OFFしてやれば同じ動作ということで、余っていたスマートコンセントを付けてみました。そして指定した時刻に定期的に排水するように設定しました。この変更で、電気代は1か月で390円に激減しました。これは意図した通りなのですが、故障する前の電気代は1か月あたり1100円程度だったので、期待以上の削減です。ポンプの待機電力より、スマートコンセントの消費電力のほうが小さいとは思えないので、以前は現状のポンプの稼働頻度よりも高頻度でポンプが稼働していたと推測されます。

短時間に多量の雨が降った場合、自動では排水されず、水が溢れるかも知れないので、少し工夫してみます。
IFTTTのサービスを使って、雨が降り出したら排水ポンプを動かすAppletの設定をします。まずIFTTTで「New Applet」すると次が表示されます。

「+this」をクリックして実行する条件”トリガー”を設定します。ここでは「Weather Underground」を使っています。検索枠にサービスの名称” Weather Underground ”の頭から数文字を入れると選択肢が表示されます。
” Weather Underground ” をクリックします。

次に実行条件を選択します。雨が降ったら起動したいので、”Current condition change to ….”(現在の天候がxxxに変わったら)を選択します。

”Current condition” は「Rain」(雨)を、Locationをマップで指定します。「Create trigger」をクリックします。

「+that」をクリックして、何を実行するかを指定します。

”実行条件”と同様に、実行する処理をサービスの中から選択します。ここでは、利用するスマートコンセント”Meross”を指定します。

”Turn on”(電源オン)を選択します。

登録した”排水ポンプ”のスマートコンセントを選択し、「Create action」をクリックします。

設定した内容を任意の名前を指定します。 「Finish」をクリックしIFTTT設定を完了し保存します

以上で、「雨が降りだしたら自動で排水」することができます。排水ポンプを止めるほうはスマートコンセントのスケジュール設定で「1分後にオフ」を登録しているので、1分後に自動的に排水ポンプは停止します。

他のサービスやWebRequest、Webhook、独自実装を組み合わせて排水量制御とか、排水の代わりに灌水の制御をするようにして、雨の状況を予測して灌水するかどうかを制御するとかいろいろできますね。