1

Эффктивность автозащиты по сравнению с непродуманным API

Какая защита более надежная: автозащита с максимально возможным числом дополнительно выбранных опций или же простенькая непродуманная защита на API (на уровне демонстрационных примеров, + RIP_CODE) ? Интересует, в первую очередь, невозможность обойти защиту при помощи бесплатных (или нелегально бесплатных) табличных эмуляторов.

2

Re: Эффктивность автозащиты по сравнению с непродуманным API

Надежнее совместить автозащиту с хотя бы простенькой защитой на API :) Вообще возможность использования табличных эмуляторов зависит от типа ключей. В Stealth II нет шифрования трафика между ключом и  API, также нет ассиметричной криптографии, и потому там действительно самый простой способ это табличный эмулятор на USB-шине. Главные хитрости с Stealth II заключаются в том, чтобы сделать вызовы к ключу максимально непредсказуемыми по времени и разнообразными, так чтоб даже за месяц прослушивания трафика нельзя было собрать всю инфу для табличного эмулятора. Тут помогает грамотное использование разных режимов шифрования (кроме ECB). В этом плане наша автозащита весьма хитро устроена, и достаточно надежна - чтобы собрать все таблицы обращений к ключу нужны годы.

В Sign благодаря шифрованию трафика и алгоритмку ЭЦП табличные эмуляторы делать гораздо сложнее, и ставить их надо на уровень между приложением и API или откручивать автозащиту. Для наших последних версий автозащиты автоматических снималок не существует, плюс вызовы ЭЦП на произвольных данных исключают табличную эмуляцию.

Очень хороший и несложный механизм - массивное использование алгоритма ЭЦП в произвольные моменты времени на произвольных данных, и проверка подписи внутри вашего кода с помощью функции GrdVerifySign распространяемой в исходных кодах на C++ и Delphi. Ее можно поделить на части, разнести по разным потокам, рассинхронизировать и тогда для отучения программы  от ключа ее придется реверсить практически полностью.

3 (2013-02-20 12:57:40 отредактировано znseday)

Re: Эффктивность автозащиты по сравнению с непродуманным API

Правильно ли я понимаю, что мои вызовы функций API (в частности, функции инициализации ключа и завершения работы с ключем) не помешают нормальной работе внешней (и внутренней) вакцины автозащиты?

Возможна ли ситуация, когда использование автозащиты поможет злоумышленнику взломать хорошо продуманную и организованную защиту на API?

Речь идет о ключах Guardant Sign USB

4

Re: Эффктивность автозащиты по сравнению с непродуманным API

Правильно понимаете, автозащита и API никак не конфликтуют, их совместное использование рекомендуется.

Использование автозащиты в любом случае будет дополнительным препятствием злоумышленнику взломать защиту на API.

5

Re: Эффктивность автозащиты по сравнению с непродуманным API

А насколько надежно защищены коды доступа в автозащите "от подглядывания"? Фигурируют ли где-либо коды Write и Master в автозащите?

6

Re: Эффктивность автозащиты по сравнению с непродуманным API

Write и Master коды не используются автозащитой. Что касается Read - он защищен надежнее чем при простом использовании в API, но при желании найти его можно.

Впрочем, в текущих поколениях ключей знание Read кода (да и всех остальных) все равно почти ничего не дает и угрозы защите не представляет (если защита сколь-нибудь адекватна). Ключевые участки памяти ключа (с алгоритмами и защищенными ячейками) все равно защищены аппаратными запретами на чтение-запись.

7

Re: Эффктивность автозащиты по сравнению с непродуманным API

Спасибо за разъяснения.