• м. Львів, Україна
  • (044) 222-73-76
  • info@spilka-it.com.ua

Статті

Захист конфигурації «Підприємство 8»: захист коду «Підприємство 8»

Содержание:

 

1. Способы защиты «1С:Підприємство»
2. Хранилище конфигурации и база пользователя – установка пароля «1С:Підприємство»
3. Публикация базы «1С:Підприємство» на веб сервере
4. Пароль на модуль «1С:Підприємство»
5. Нестандартные способы защиты: обфускация кода «1С:Підприємство», установка внешней компоненты, решения сторонних разработчиков  


 

  1.     Способы защиты «1С:Підприємство»

 

 

Открытость кода в «1С:Підприємство» – это одно из важнейших ее достоинств. Однако бывают ситуации, когда потенциальный заказчик хочет опробовать сначала продукт, а уже потом принять решение о его покупке. Какой выход? Предоставить ему демо-версию продукта. Однако недобросовестный человек может просто присвоить ваш труд, не заплатив за него ни копейки. А наняв студента-программиста, попробовать снять с «1С:Підприємство» ограничение пользователей, установленные в демо-версии. Как этого избежать? Использовать механизмы защиты «1С:Підприємство». 

 

·        Разрешить работу только определенному заказчику, купившему наш продукт. 
·        Ограничить количество одновременно работающих пользователей в базе. 
·        Скрыть «уникальные» алгоритмы или механизмы от потребителей или конкурентов. 
·        Закрыть модули от заказчика до оплаты им разработанного модуля (конфигурации, подсистемы). 
·        Скрыть методы обмена с каким-то сервисом (веб-сервисом, сайтом и т.п.). 
·        Не допустить утечки разрабатываемой совместно конфигурациинедобросовестными программистами-фрилансерами. 

Рассмотрим способы защиты, которые «1С:Підприємство» предоставляет стандартно: 

2. Хранилище конфигурации и база пользователя – установка пароля «1С:Підприємство»


Здесь мы просто ограничиваем пользователю доступ к содержимому конфигурации путем настройки соответствующих прав и установкой пароля на пользователя с административными правами. 
Не знаю, как сейчас обстоит дело со стойкостью данной защиты и сложно ли взломать пароль пользователя «1С:Підприємство» , но в ранних версиях помню, такая защита базы легко ломалась, если «взломщик» имел к ней физический доступ. 


3. Публикация базы «1С:Підприємство» на веб сервере 


В режиме веб-клиента невозможен запуск «Конфигуратора», а, следовательно, у пользователя и нет возможности получить конфигурацию через браузер или веб-сервер, если не используется режим обновления через веб. Однако этот способ подходит не для всех режимов работы. Например, для конфигураций на обычных формах работа в таком режиме невозможна. 

4. Пароль на модуль «1С:Підприємство»  

 

 

Устанавливается в «Конфигураторе». Выбираем пункт «Текст», опцию Установить пароль «1С:Підприємство». 

1.jpg 

 

Таким образом, можно обезопасить исходный код: он будет находиться в скомпилированном виде. 

 

2.jpg 

 

Как сделать: 

 

·        Открыть конфигуратор. 
·        Выбрать в «Конфигурации» пункт «Поставка конфигурации», далее: «Настройка поставки». Отметить - текст каких модулей необходимо исключить из поставки. Подтвердить опцию «Файл поставки может использоваться для обновления». 
·        В пункте «Поставка конфигурации» - «Комплект поставки» создать файл конфигурации CF. 

 

В клиентской версии загружается CF файл, в котором нужные модули защищены от просмотра. Минус такого решения в том, что настройки поставки нельзя будет изменить через сравнение конфигураций, придется полностью загружать CF-файл. 

 

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

 

Стоит учитывать, что все перечисленные методы не позволяют спрятать код модуля формы, можно лишь спрятать код модуля объекта. 


5. Нестандартные способы защиты: обфускация кода «1С:Підприємство», установка внешней компоненты, решения сторонних разработчиков 


1.     Обфускация кода 

 

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

 

Преимуществами данного способа является простота и возможность зашифровать любой код. 
Недостатки: низкая степень защиты. На любой обфускатор, понимая механизм его работы, можно создать деобфускатор. 

 

2.     Использование внешних компонент 

 

Этот метод стоит использовать, если ценность представляет сам код, а не коды «1С:Підприємство» конфигураций. К его преимуществам следует отнести высокую надежность скрытия кода: восстановить «1С:Підприємство» код из скомпилированной DLL-ки, написанной на другом языке программирования — задача не из легких. К недостаткам - необходимость переписать код «1С:Підприємство» на другом языке (что, используя другую объектную модель, может быть непростой задачей), трудности с отладкой, зависимость от платформы, необходимость в регистрации библиотеки. 

 

3.     Решения сторонних разработчиков 

 

Существуют компании, которые профессионально занимаются вопросом защиты интеллектуальной собственности разработчиков на «1С:Підприємство». Как правило, они выносят часть кода в отдельную обработку, ее помещают после этого в какое-либо зашифрованное хранилище. Специальная внешняя компонента открывает доступ к зашифрованным данным. 

 

Используя такой подход, вы добиваетесь высокой надежности защиты кода, также избавляете себя от необходимости переводить код «1С:Підприємство» в код другого языка программирования. 

 

Правда, остается необходимость выносить код в «1С:Підприємство» дополнительные внешние обработки и другие сложности, возникающие при использовании таких систем. 

 

Абсолютно надежного и единого способа защитить свою конфигурацию не существует. В то же время для защиты частей кода от просмотра/копирования есть немало надежных решений. Если себестоимость взлома кода превышает себестоимость покупки - взлом пароля «1С:Підприємство» невыгоден. Комбинируя указанные способы, мы можем увеличить стойкость модулей к взлому, следовательно, и уменьшить шансы недобросовестного заказчика на кражу нашего интеллектуального труда. 

 

 

 

Сергей Тимофеев, 
разработчик «1С:Підприємство» компании “”

ПРО НАС
Українська Спілка Автоматизаторів Бізнесу. Програми На Базі Підприємство 8, BAS.