KoderLine
KoderLine
Обслуговування i продаж
програмного забезпечення

Статті експертів

Корисна інформація

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

0
260
06.04.2018 Сергей Тимофеев

Содержание:

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


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


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


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

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

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


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


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


В режиме веб-клиента невозможен запуск «Конфигуратора», а, следовательно, у пользователя и нет возможности получить конфигурацию через браузер или веб-сервер, если не используется режим обновления 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С:Підприємство» компании “Кодерлайн”



Добавить комментарий
Message Text*
Spam bot protection (CAPTCHA)
Load image