Защита программ



Процедура разработки систем программно-технической защиты программного обеспечения - часть 3


По проблемам программно-технической защиты программного обеспечения от несанкционированного введения в хозяйственный оборот было опубликовано очень значительное число работ []. В то же время, в многочисленных публикациях описывается техника, приёмы, но не технология (методология) защиты программных продуктов. Автору до настоящего времени не удалось найти публикации, которые были бы посвящены описанию обобщённой процедуры проектирования и реализации систем защиты программного обеспечения (СЗПО), как это делается, например, в области разработки программного обеспечения или проектирования подсистем защиты информации в системах обработки данных. По нашему мнению, отсутствие подобного описания в значительной мере затрудняет разработку СЗПО отдельными производителями, не имеющими соответствующего опыта, ведёт к многократному дублированию проводимых НИОКР, а также может быть причиной низкой стойкости разрабатываемых систем защиты.

Настоящий материал призван ликвидировать существующее «белое пятно» в исследованиях, посвящённых программно-технической защите программных продуктов.

По нашему мнению, процесс проектирования и разработки СЗПО можно логически разбить на следующие этапы:

  • Выявление целей и задач, стоящих перед производителем ПО.

  • Согласование допустимого процента потерь от "пиратства".

  • Определение соответствующего требованиям уровня защиты.

  • Выявление функциональной направленности защищаемого продукта.

  • Анализ предполагаемого протокола передачи ПО пользователю.

  • Анализ возможных и вероятных угроз безопасности ПО.

  • Определение стратегии защиты программного продукта (меры и средства).

  • Анализ исходных текстов продукта.

  • Выбор оптимального типа СЗПО (внешняя, встраиваемая, комбинированная).

  • Выбор оптимального вида СЗПО (парольная, шифрующая, с электронным ключом, и т.п.).

  • Выработка рекомендаций по модификации исходных кодов для соответствия требованиям безопасности.

  • Первичное тестирование программного продукта.

  • Оценка общих планируемых затрат на разработку и внедрение СЗПО с учётом влияния защиты на потребительские свойства ПО.

  • Оценка планируемого снижения потерь от "пиратства".

  • Принятие решения о целесообразности применения проектируемой СЗПО.

  • Доработка спецификаций СЗПО с возвратом к п.15 либо приобретение сторонней разработки, удовлетворяющей спецификации, с переходом к п.20.

  • Разработка и оптимизация алгоритма СЗПО.

  • Выбор (с обоснованием) языка программирования для реализации СЗПО.

  • Программная реализация СЗПО и её тестирование.

  • Применение СЗПО к продукту и проверка влияния защиты на показатели функциональности защищаемого ПО.

  • Доработка СЗПО с возвратом к п.20.

  • Тестирование фактического уровня защиты, обеспечиваемого СЗПО.

  • Доработка СЗПО с возвратом к п.20.

  • Документирование и сопровождение СЗПО.

    Опишем указанные этапы более подробно.




    Содержание  Назад  Вперед