Шифрование в NQ Vault оказалось обычным XOR-ом, и это не самое плохое

Тема в разделе "Android", создана пользователем Severnyj, 6 апр 2015.

  1. Severnyj
    Оффлайн

    Severnyj Команда форума Супер-Модератор Ассоциация VN/VIP

    Сообщения:
    7.841
    Симпатии:
    8.599
    NQ Vault — довольно популярное (30 млн. пользователей) Android приложение (есть версия и для iOS), позволяющее зашифровать выбранные SMS, фотографии и видео на устройстве. Просмотреть зашифрованный контент можно через приложение, введя пароль. Приложение получило хорошие отзывы и обзоры в ведущих ИТ изданиях.

    Пользователь GitHub ninjadoge24 решил проверить, насколько хорошо приложение защищает приватные данные.

    Исследователь начал с того, что создал простой PNG файл размером 1х1 пиксель и добавил в конец файла сигнатуру «NINJADOGE24». Далее он загрузил файл на устройство и зашифровал с помощью NQ Vault с простым паролем. В базе данных приложения (в формате SQLite) было найдено расположение зашифрованного файла. Сравнение зашифрованных данных с исходными показало первый fail.

    Исходный файл
    Код (Text):
    0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR
    0000010: 0000 0001 0000 0001 0802 0000 0090 7753 ..............wS
    0000020: de00 0000 0970 4859 7300 0003 b100 0003 .....pHYs.......
    0000030: b101 f583 ed49 0000 0007 7449 4d45 07df .....I....tIME..
    0000040: 0401 0319 3a3d ca0b 0c00 0000 0c69 5458 ....:=.......iTX
    0000050: 7443 6f6d 6d65 6e74 0000 0000 00bc aeb2 tComment........
    0000060: 9900 0000 0f49 4441 5408 1d01 0400 fbff .....IDAT.......
    0000070: 00ff 0000 0301 0100 c706 926f 0000 0000 ...........o....
    0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47 IEND.B`.NINJADOG
    0000090: 4532 340a E24.

    Зашифрованный файл
    Код (Text):
    0000000: 8d54 4a43 090e 1e0e 0404 0409 4d4c 4056 .TJC........ML@V
    0000010: 0404 0405 0404 0405 0c06 0404 0494 7357 ..............sW
    0000020: da04 0404 0d74 4c5d 7704 0407 b504 0407 .....tL]w.......
    0000030: b505 f187 e94d 0404 0403 704d 4941 03db .....M....pMIA..
    0000040: 0005 071d 3e39 ce0f 0804 0404 086d 505c ....>9.......mP\
    0000050: 7047 6b69 6961 6a70 0404 0404 04b8 aab6 pGkiiajp........
    0000060: 9d04 0404 0b4d 4045 500c 1905 0004 fffb .....M@EP.......
    0000070: 04fb 0404 0705 0504 c302 966b 0404 0404 ...........k....
    0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47 IEND.B`.NINJADOG
    0000090: 4532 340a E24.

    Что это? Сигнатура в конце файла осталась нетронутой! А шифрование других участков подозрительно напоминает простую замену. Применив операцию XOR между исходным и шифротекстом, исследователь получил ключ: 0x04. Да, именно так, XOR однобайтовым ключом, то есть простая замена. Напоминает детство, «школьные» шифры со сдвигом на несколько букв по алфавиту, не так ли? И это в приложении, имеющем платную версию за $7.99 в год!

    Оставалось выяснить, почему сигнатура в конце файла осталась неизменной. После написания на скорую руку скрипта для шифровки/дешифровки и еще одного эксперимента с JPEG файлом, открылась еще одна печальная истина: шифруются только первые 128 байт файла, остальное остается нетронутым. А зачем, если первых 128 байт достаточно? Заголовок испорчен, файл не откроется стандартными приложениями, чего еще неискушенному пользователю нужно. Да и по скорости шифрования видео NQ Vault наверное рвет всех конкурентов на тряпки.

    И последний штрих. Как из пароля, введенного пользователем, возможно довольно сложного, получается однобайтовый ключ? Исследователь попытался нащупать алгоритм, перебирая различные пароли, но потом плюнул, сделав разумный вывод: зачем тратить на это время, если можно применить брутфорс и просто перебрать 256 возможных вариантов. Любое, даже самое древнее Android устройство отлично с этим справится.

    Полный отчет о тестировании.

    Заключение

    Таких приложений, наверное, тысячи, как в Google Play, так и в AppStore. Просто его сумели удачно раскрутить, а другие нет. Но вот что примечательно в этой истории. Во-первых, насколько легко пользователи доверяют обещаниям безопасности. В сознании пользователя нет большой разницы между приложением для быстрого выкладывания фоток куда-нибудь и приложением, шифрующим файлы или хранящим данные кредитных карт. Нет понимания, что к приложениям связанным с безопасностью, нужно применять особые критерии выбора. Просто обещаний, хорошего внешнего вида, удобного интерфейса и даже тысяч положительных отзывов тут недостаточно.

    Во-вторых, насколько можно доверять обзорам в специализированных изданиях? Понятно, что большинство из них оплачены, и это само по себе неплохо, приложения нужно продвигать. Главное, чтобы они были более-менее объективными. И солидные издания действительно стараются писать объективные обзоры. Но если дело касается безопасности, простого обзора опять-таки недостаточно. Нужно привлекать экспертов, способных протестировать эту часть.

    Источник
     
    Dragokas, akok, orderman и ещё 1-му нравится это.
  2. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    Крутой лохотрон :Biggrin:
     
  3. Severnyj
    Оффлайн

    Severnyj Команда форума Супер-Модератор Ассоциация VN/VIP

    Сообщения:
    7.841
    Симпатии:
    8.599
    Да для Android бОльшая часть программ - крутой лохотрон))
     
  4. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.856
    Симпатии:
    1.839
    Последнее редактирование: 6 апр 2015

Поделиться этой страницей