Вопрос защиты интеллектуальной собственности и авторских разработок в 1С встает особенно остро, когда база данных передается на сервер заказчика или публично публикуется через веб-сервер. Разберем основные лазейки, через которые злоумышленники или любопытные пользователи могут выгрузить исходный код конфигурации (.cf файл), а также рассмотрим проверенные способы надежной защиты своей разработки.
Проанализируем базовые сценарии, при которых конфигурация может оказаться под угрозой скомпрометирования:
"C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /F "D:\БазыДанных\НашаБаза" /N "Администратор" /P "Пароль" /DumpCFG "C:\Обмен\ВыгруженнаяКонфа.cf"
.epf / .erf) запрещены, наличие внутри базы любого инструмента с кнопкой «Выполнить произвольный алгоритм» дает злоумышленнику полный контроль. Через обращения к объекту Метаданные или функцию ПолучитьСтруктуруХраненияБазыДанных() можно восстановить состав метаданных, а с помощью платформенных команд — выполнить отчуждение данных или выгрузку конфигурации.Рассмотрим, как ограничить доступ к ключевым алгоритмам и минимизировать риски утечки исходных текстов.
Штатный механизм платформы 1С позволяет создавать комплекты поставок и обновлений с закрытым кодом. При формировании поставки платформа транслирует исходный текст модулей в байт-код.
Важно учитывать особенности платформы: Без исходных текстов можно поставлять только серверные модули (общие модули с галочкой исполнения на сервере, модули объектов и менеджеров). Модули форм, клиентские модули и команды по соображениям архитектуры 1С требуют наличия исходного текста, поэтому их необходимо делать максимально «тонкими», вынося всю логику на сервер.
Выясним наиболее бескомпромиссный вариант с точки зрения защиты интеллектуальной собственности. Самые ценные и уникальные расчетные алгоритмы выносятся на собственный веб-сервер разработчика (HTTP / REST / SOAP сервис).
База заказчика во время выполнения операции отправляет защищенный HTTP-запрос с входными параметрами на ваш сервер и получает готовый результат. При таком подходе файл с исходным кодом алгоритма физически не находится на оборудовании заказчика, что полностью исключает возможность его декомпиляции.
Разберем вариант, когда работа программы должна происходить автономно без постоянного подключения к интернету. Алгоритмы защиты или сложные вычисления реализуются на низкоуровневых языках программирования (C++, Rust или C#) и компилируются в динамические библиотеки (.dll для Windows или .so для Linux).
Компонента подключается в 1С через технологию Native API. Расшифровать или декомпилировать скомпилированную библиотеку C++ несоизмеримо сложнее, чем байт-код 1С.
Для защиты коммерческих решений применяется «1С:СЛК» (Система лицензирования и защиты конфигураций). Данный комплекс использует специализированные внешние компоненты, аппаратные USB-ключи или программные привязки к оборудованию. 1С:СЛК позволяет надежно шифровать исполняемые общие модули и ограничивать количество рабочих мест.
Если заказчик работает исключительно через веб-клиент или тонкий клиент, идеальным решением является размещение базы данных на вашем собственном сервере. В данном сценарии заказчику предоставляются только учетные данные для веб-подключения. Без физического доступа к файлу базы или SQL-серверу выгрузить файл .cf из веб-клиента при отключенных внешних обработках и отчетах технически невозможно.
1С:СЛК для ключевых узлов системы.