Содержание:
2. 1С хранилище конфигурации и база пользователя – установка пароля 1С
3. Публикация базы 1С на веб сервере
4. Пароль на модуль 1С
5. Нестандартные способы защиты: обфускация кода 1С, установка внешней компоненты, решения сторонних разработчиков
1. Способы защиты 1С
Открытость кода в 1С – это одно из важнейших ее достоинств. Однако бывают ситуации, когда потенциальный заказчик хочет опробовать сначала продукт, а уже потом принять решение о его покупке. Какой выход? Предоставить ему демо-версию продукта. Однако недобросовестный человек может просто присвоить ваш труд, не заплатив за него ни копейки. А наняв студента-программиста, попробовать снять с 1с ограничение пользователей, установленные в демо-версии. Как этого избежать? Использовать механизмы защиты 1С.
· Разрешить работу только определенному заказчику, купившему наш продукт.
· Ограничить количество одновременно работающих пользователей в базе.
· Скрыть «уникальные» алгоритмы или механизмы от потребителей или конкурентов.
· Закрыть модули от заказчика до оплаты им разработанного модуля (конфигурации, подсистемы).
· Скрыть методы обмена с каким-то сервисом (веб-сервисом, сайтом и т.п.).
· Не допустить утечки разрабатываемой совместно конфигурации недобросовестными программистами-фрилансерами.
Рассмотрим способы защиты, которые 1С предоставляет стандартно:
2. 1С хранилище конфигурации и база пользователя – установка пароля 1С
Здесь мы просто ограничиваем пользователю доступ к содержимому конфигурации путем настройки соответствующих прав и установкой пароля на пользователя с административными правами.
Не знаю, как сейчас обстоит дело со стойкостью данной защиты и сложно ли взломать пароль пользователя 1с 8.3, но в ранних версиях 1С 8, помню, такая защита базы легко ломалась, если «взломщик» имел к ней физический доступ.
3. Публикация базы 1С на веб сервере
В режиме веб-клиента невозможен запуск «Конфигуратора», а, следовательно, у пользователя и нет возможности получить конфигурацию через браузер или веб-сервер, если не используется режим обновления 1с через веб. Однако этот способ подходит не для всех режимов работы. Например, для конфигураций на обычных формах работа в таком режиме невозможна.
4. Пароль на модуль 1С
Устанавливается в «Конфигураторе». Выбираем пункт «Текст», опцию Установить пароль 1С.
Таким образом, можно обезопасить исходный код: он будет находиться в скомпилированном виде.
Как сделать:
· Открыть конфигуратор.
· Выбрать в «Конфигурации» пункт «Поставка конфигурации», далее: «Настройка поставки». Отметить - текст каких модулей необходимо исключить из поставки. Подтвердить опцию «Файл поставки может использоваться для обновления».
· В пункте «Поставка конфигурации» - «Комплект поставки» создать файл конфигурации CF.
В клиентской версии загружается CF файл, в котором нужные модули защищены от просмотра. Минус такого решения в том, что настройки поставки нельзя будет изменить через сравнение конфигураций, придется полностью загружать CF-файл.
Все эти методы способствуют преобразованию кода модуля в байт-код, который, при желании можно декомпилировать. Некоторые инструменты для этого уже есть в свободном доступе. В результате их работы получаются тексты, в которых отсутствуют комментарии, изначальное форматирование, но этого часто достаточно, чтобы понять алгоритм и логику закрытого модуля.
Стоит учитывать, что все перечисленные методы не позволяют спрятать код модуля формы, можно лишь спрятать код модуля объекта.
5. Нестандартные способы защиты: обфускация кода 1С, установка внешней компоненты, решения сторонних разработчиков
1. Обфускация кода
При помощи этого способа вы можете привести код в нечитаемый вид. Добиться результата можно как при помощи специальных обработок, так и при помощи специальных сервисов.
Преимуществами данного способа является простота и возможность зашифровать любой код.
Недостатки: низкая степень защиты. На любой обфускатор, понимая механизм его работы, можно создать деобфускатор.
2. Использование внешних компонент
Этот метод стоит использовать, если ценность представляет сам код, а не коды 1с конфигураций. К его преимуществам следует отнести высокую надежность скрытия кода: восстановить 1С код из скомпилированной DLL-ки, написанной на другом языке программирования — задача не из легких. К недостаткам - необходимость переписать код 1С на другом языке (что, используя другую объектную модель, может быть непростой задачей), трудности с отладкой, зависимость от платформы, необходимость в регистрации библиотеки.
3. Решения сторонних разработчиков
Существуют компании, которые профессионально занимаются вопросом защиты интеллектуальной собственности разработчиков на 1С. Как правило, они выносят часть кода в отдельную обработку, ее помещают после этого в какое-либо зашифрованное хранилище. Специальная внешняя компонента открывает доступ к зашифрованным данным.
Используя такой подход, вы добиваетесь высокой надежности защиты кода, также избавляете себя от необходимости переводить код 1С в код другого языка программирования.
Правда, остается необходимость выносить код в 1с дополнительные внешние обработки и другие сложности, возникающие при использовании таких систем.
Абсолютно надежного и единого способа защитить свою конфигурацию не существует. В то же время для защиты частей кода от просмотра/копирования есть немало надежных решений. Если себестоимость взлома кода превышает себестоимость покупки - взлом пароля 1с невыгоден. Комбинируя указанные способы, мы можем увеличить стойкость модулей к взлому, следовательно, и уменьшить шансы недобросовестного заказчика на кражу нашего интеллектуального труда.
Сергей Тимофеев,
разработчик 1С компании “Кодерлайн”