概要
- 洗濯機をハッキング してDiscord通知を実現した体験談
- 実用性よりも遊び心と技術練習 が主な動機
- IoT家電のリバースエンジニアリング のプロセス解説
- 暗号化通信の解析とAPI調査 の手順を紹介
- 今後他の家電にも応用予定 のプロジェクト進行中
洗濯機ハッキング体験記:Discord通知までの道のり
- 友人と一緒に洗濯機ハックに挑戦、主に遊びと実用性の両面からの動機
- 「Hoover Wizard」アプリ経由で通知受信 できるが、同時に一人しか接続できない仕様
- スマートプラグ等の簡易手段 もあるが、あえて複雑な方法に挑戦する理由は技術的チャレンジと面白さ
- 賃貸物件の安価なスマート洗濯機、Wi-Fi接続とアプリ制御機能付き
- 家の半分がサイバーセキュリティ専攻の学生、ネットワークに繋げること自体が話題
ドアベル通知システムからの着想
- 433MHzドアベル+安価な受信機 でDiscord通知実装
- 厚い壁や階で音が聞こえない問題 を技術で解決
- 将来的にはセキュリティカメラ連携 も計画中
- この成功体験が洗濯機通知ハックの発端
リバースエンジニアリングの計画
- スマホアプリのAPI通信解析 を目指し、OpenWRTルーターを用意
- 2.4GHzで洗濯機を接続、5GHzでWAN接続、ラップトップでパケットキャプチャ
- tcpdumpで通信内容を監視、IPアドレス特定
- 4つの通信先を発見
- 自己IPアドレス(ループバック?)
- 255.255.255.255へブロードキャスト
- simplyfimgmt.candy-hoover.com(Heroku経由)
- モバイルアプリとの直接HTTP通信(ポート80)
- 最後のモバイルアプリ通信が最も有望 と判断
洗濯機APIの解析
- /http-read.json?encrypted=1 と /http-write.json?encrypted=1 エンドポイント発見
- http-write.jsonはコマンド送信用、今回は未使用
- http-read.jsonは状態取得用、しかも暗号化済み
- 暗号化データは16進数表記でHTML Content-Type
- ?encrypted=0でも暗号化データのまま、または400エラー
暗号化解除への挑戦
- IoT機器の単純な暗号化(XOR等)を想定
- ファームウェア抽出(難)かブルートフォース(易)を検討
- CyberChefでXORブルートフォースを試行も難航
- MelvinGr/CandySimplyFi-toolを発見し、既知文字列を利用して秒で鍵特定
- 取得した鍵でCyberChefを使いデータ復号化に成功
- ofalvai/home-assistant-candyのスキーマも活用、データ内容の解釈も容易に
洗濯機の状態変化の観察
- 洗濯機の各種操作を繰り返し、APIレスポンスの変化を記録
- Wi-Fiチップが30秒ごとにスリープする問題、3秒ごとにリクエストすることで回避
- 主な変化項目
- Pr:プログラム選択ノブや電源オンで変化
- PrPh:洗濯サイクル中に変化、現在のフェーズを示唆
- Temp:プログラム変更や手動設定で変化
- SpinSp:スピン速度設定で変化
今後の展望とまとめ
- この経験でリバースエンジニアリングの実践力向上
- 他の「おバカ家電」への応用計画
- 実用性は限定的でも、技術的挑戦と面白さが主眼
- IoT家電のセキュリティやAPI設計の脆弱性を体感
- 今後もDiscord通知や自動化の幅を拡大予定