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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




Начало  Назад  Вперед



Книжный магазин