Добрый день!
Есть программа (Win x32 MFC) которая отсылает публичным способом зашифрованные данные своей работы на сайт. Планируется использовать протектор для скрытия нешифрованных данных и самого алгоритма их шифрования/дешифрования. В том числе этот же алгоритм используется при сохранении/открытии проекта.
Процесс такой: данные пишутся в CMemFile, после записи всех данных результат шифруется и сохраняется на диск/отправляется на сайт.
Вопрос: достаточно ли с точки зрения надежной защиты поставить ультра-защиту на процедуры записи данных в CMemFile и процедуры шифрования? Опасаюсь того, что остается возможность как-то забрать данные из памяти (CMemFile) после того как они туда уже записаны но еще не зашифрованы. На сколько такие опасения актуальны? Стоит ли тратить приличный кусок времени на то, чтобы шифровать данные прямо по ходу их записи в память мелкими фрагментами?
Еще просьба от новичка: где можно вкратце прочитать про то, для каких целей лучше использовать мутацию, для каких - виртуализацию, а для каких - ультра-защиту? Понятно что лучше везде ультра - но приложение и без того ресурсоемкое и не быстрое, и хотелось бы избежать нецелесообразного ухудшения производительности.
P.S. Да и вообще если укажете на какие-то возможные подводные камни - буду очень признателен.
Вопрос по защите
Re: Вопрос по защите
Я бы порекомендовал шифровать данные на лету при записи в CMemFile. Сам алгоритм шифрования можно накрыть мутацией чтобы его нельзя было идентифицировать по сигнатуре, либо виртуализацией если объем конечных данных мал или алгоритм шифрования очень простой (например побайтовый XOR). Какой алгоритм шифрования у вас сейчас используется?
-
- Posts: 2
- Joined: Wed Jan 08, 2014 6:15 pm
- Location: Minsk
Re: Вопрос по защите
Побайтовый XOR.
Т.е. все остальные методы (сохранение/загрузка) шифровать нет смысла? Только саму процедуру шифрования?
Т.е. все остальные методы (сохранение/загрузка) шифровать нет смысла? Только саму процедуру шифрования?
Re: Вопрос по защите
Невозможно ответить что именно нужно защищать в вашем конкретном случае, т.к. я не знаком со спецификой вашего приложения. Общие рекомендации такие - нужно виртуализировать все функции, которые критичны в плане анализа/взлома.