通信路上におけるFlume水モニターデータの傍受
原題: Snooping Flume Water Monitor Data On The Wire
日本語訳
# 通信路上のFlume水モニターデータの傍受
[Stephen]は自宅に、Flumeの水モニターという興味深いハードウェアを持っていました。これは、使用データをFlumeのサーバーに報告し、それを受けて水道会社に伝えるスマートデバイスです。彼は以前、水流を監視するためのデバイスの機械的な仕組みを解明していましたが、より大きな目標がありました。それは、Flumeのサーバーへ向かう途中で、自身のネットワークを通過する報告データをどのようにスニッフィング(傍受)するかを突き止めることでした。
Flumeのシステムでは、水道管にセンサーが設置されており、それがブリッジデバイスと通信し、そのブリッジがインターネットに接続されます。[Stephen]はまず、Flume水センサーのブリッジユニットを騙してデータを平文で送信させることに成功するという、初期の成果を上げました。これは、デバイスのフラッシュメモリ内にある公開鍵を破損させるという単純なものでした。しかし、これは完璧な解決策ではありませんでした。鍵が破損していると、デバイスがFlumeのサーバーとの認証を行えなくなるからです。しかし、LibHydrogenの暗号実装をさらに深く調査したところ、このデバイスはセッション鍵を使用せずに認証を行っており、オンボードのフラッシュメモリから抽出可能な静的なデバイス秘密鍵のみに依存していることが判明しました。これにより、[Stephen]はブリッジとFlumeサーバーの間に介在し、トラフィックをシームレスに転送しながら、同時に復号してローカルに保存するツールを構築することができました。
このセットアップにより、[Stephen]はセンサーからの水流およびステータスデータをローカルにログとして記録できるようになりました。ただし、注意点もあります。この中間者(man-in-the-middle)構成によって、将来的にハードウェアがファームウェアのアップデートを受け取れなくなる可能性があります。また、Flumeのハードウェアの仕組みを解明した[Stephen]の以前の活動もチェックしてみる価値があります。興味がある方のために、リレーツールはGitHubで公開されています。
私たちは、ハッカーが(もちろん、法的かつ適切な方法で)水道メーターなどのデバイスとインターフェースをとる方法を解明するのを見るのが大好きです。もしあなたがこの分野で試行錯誤しているなら、ぜひ情報提供ラインまでお知らせください!
原文(英語)を表示
[Stephen] had an interesting piece of hardware at home—namely, a Flume water monitor. It’s a smart device which reports usage data to Flume’s servers, and the water utility in turn. He’d previously determined how the device worked mechanically to monitor water flow, but he had a greater goal—figuring out how to sniff the reported data as it passed through his network on its way to Flume servers.
The Flume rig has a sensor installed in the water line, which communicates to a bridge device that then hooks up to the Internet. [Stephen] had an early win, figuring out how to trick the bridge unit of the Flume water sensor into sending data in plaintext. This was as simple as corrupting the public key in the device’s flash. However, this wasn’t a perfect solution—as the corrupt key stopped the device from authenticating with Flume’s servers. Further diving into the LibHydrogen encryption implementation, however, revealed that the device was apparently authenticating without using session keys, relying only on a static device secret key which can be harvested from the onboard flash. This allowed [Stephen] to build a tool to sit in between the bridge and the Flume servers, forwarding traffic seamlessly while decrypting and saving it locally at the same time.
With this setup, [Stephen] was able to locally log water flow and status data from the sensor. It does come with a caveat, that the man-in-the-middle setup could block the hardware from receiving firmware updates in future. It’s also worth checking out [Stephen’s] earlier work on demystifying the Flume hardware, too. The relay tool is available on GitHub for the curious.
We love seeing hackers figure out how to interface utility meters and similar devices, in legal and appropriate manners, of course. If you’re tinkering in this realm yourself, feel free to let us know on the tipsline!