
WhatsAppの暗号化メディアファイル(画像、動画、音声、ドキュメント)を、iOSのChatStorage.sqliteまたはAndroidのmsgstore.dbデータベースから抽出したメディアキーを使用して復号します。
最近の注目を集めたフォレンジック調査では、「WhatsAppが採用するエンドツーエンド暗号化により、ダウンロードされた[.encファイル]の内容を復号して、配信された動画に加えて悪意のあるコードが含まれているかどうかを判断することは事実上不可能である」と報告されています。
このプロジェクトは、WhatsAppからダウンロードした暗号化メディアファイルを復号する方法を示しています。
$ go get github.com/ddz/whatsapp-media-decrypt
Usage: ./whatsapp-media-decrypt -o FILE -t TYPE ENCFILE HEXMEDIAKEY
Options:
-o FILE
復号した出力をFILEに書き込む
-t TYPE
メディアの種類 (1 = 画像, 2 = 動画, 3 = 音声, 4 = ドキュメント)
メディアキーは、ZMEDIAKEY カラムに16進数エンコードされて保存されている protobuf メッセージ内に格納されています。
$ sqlite ChatStorage.sqlite
SQLite version 3.27.2 2019-03-09 15:45:46
Enter ".help" for usage hints.
sqlite> select ZMEDIAURL,ZVCARDSTRING,hex(ZMEDIAKEY) from ZWAMEDIAITEM where Z_PK = 1795;
https://mmg-fna.whatsapp.net/d/f/Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc|video/mp4|0A2069A349914734B9359DA0CD8923E6DFDE06F1E2BCE23222C738C521570BA8242A1220A1F5AEB2E620F73007FA853200559B2669455BB5818F619397C638042D8F7F2A18B984A5F1052000
sqlite> .quit
メディアキーは、media_key カラムに16進数エンコードされて保存されています。
$ sqlite msgstore.db
SQLite version 3.27.2 2019-03-09 15:45:46
Enter ".help" for usage hints.
sqlite> select message_url,mime_type,hex(media_key) from message_media where message_row_id = 1337;
https://mmg-fna.whatsapp.net/d/f/AnUpYQ390rgUBOQRhuwCyNqo_9KGATdmLUq-ghYEx-D9.enc|video/mp4|14F9C1B3BB5E66D9A593999A5E0ED3D03ABFECA84320D17763C2B44205E91C17
sqlite> .quit
$ curl -O https://mmg-fna.whatsapp.net/d/f/Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 389k 100 389k 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 1956k
$ whatapp-media-decrypt -o Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.mp4 -t 2 ./Atzc5Drr8l7ngis8GmUTMI6vMQNjOU9zGQ2SYRkjwq44.enc 0A2069A349914734B9359DA0CD8923E6DFDE06F1E2BCE23222C738C521570BA8242A1220A1F5AEB2E620F73007FA853200559B2669455BB5818F619397C638042D8F7F2A18B984A5F1052000
いいえ。WhatsAppの暗号化はエンドツーエンドであり、送信者と受信者のみがメッセージを読むことができ、特にその間のサーバー(や攻撃者!)は読めないことが保証されています。このツールは、エンドポイントの一方に保存された暗号鍵を使用して、WhatsAppアプリが画面に表示するのと同じ方法でメディア添付ファイルを復号します。
いいえ。WhatsAppは、iOS Data Protection を使用して、デバイス固有で復元不可能なハードウェアUIDキーと、ユーザーのパスコードから派生したキーの両方を使用して、ユーザーデータファイル(ChatStorage.sqlite を含む)を暗号化しています。そのファイルを作成した特定のiOSデバイスへの物理的なアクセスと、ユーザーのパスコードの知識なしには復号できません。
いいえ。
Engelke, Lucas. go-whatsapp
Graham, Robert. How to decrypt WhatsApp end-to-end media files
Marczak, Bill. "Some Directions for Further Investigation in the Bezos Hack Case"
Sigalor. WhatsApp Web Reverse Engineered
WhatsApp. WhatsApp Encryption Overview