Как «защищаются» персональные данные в одном популярном органайзере

lt_db_encryptionОдним тихим зимним вечером захотелось мне экспортировать данные из одного популярного органайзера, которым я пользовался достаточно долго. Такая необходимость была продиктована желанием конвертировать невыполненные задания в удобный формат для переноса в другой органайзер. Поскольку я догадывался, что все данные лежат в SQLite базе, то я решил взглянуть на ее содержимое непосредственно 🙂

Каково же было мое удивление, когда я добрался до заветной БД и увидел нечто подобное:

Все текстовые поля в БД были зашифрованы.

Пересмотрев все доступные настройки приложения я убедился в том, что никаких паролей на БД у меня не установлено и, по логике вещей БД должна быть в незащищенном виде. Но разработчики данного продукта решили по-другому. И скорее всего тут ключевую роль сыграла не забота о безопасности персональных данных конечных пользователей, а ограничение доступа к данным для приложений сторонних разработчиков.

«… Что же это за хитрый алгоритм шифрования используется ?!» — подумал я, заварил чай и приступил к изучению алгоритма.

Даже смотря на полученный хеш невооруженным взглядом можно заметить, что перед нами бинарные данные закодированные в base64. То есть имеем следующую картину:

step1

Идем дальше. После преобразования base64 -> hex имеем:

№: 0 1 2 3
Plain text: P H P EOL
Encoded: 0x47 0x5F 0x47 0x00

Байты в 0 и 2 в закодированной последовательности совпадают  и их значение не зависит от контекста, следовательно никакой нормальный алгоритм шифрования не используется, а идет посимвольное преобразование исходного текста 🙂

Собственно защита — курам на смех, ведь уже на данном этапе можно реализовать «интерпретатор» закодированной последовательности составив таблицу соответствия, и раскодировать все текстовые данные содержащиеся в БД (Что я успешно и сделал)

Это от части подтверждает мою гипотезу высказанную вначале данной заметки:

Шифрование текстовых полей используется с целью ограничения доступа к БД для приложений сторонних разработчиков.
 

Подводя итог  хочу отметить — не верьте красивым надписям типа «Ваши данные будут надежно защищены», обеспечивайте безопасность ваших личных данных самостоятельно.