Защита конфигурации 1С (без внешних компонент, супер легкая и быстрая)

18.12.16

Разработка - Защита ПО и шифрование

Возможность автоматизации легкой и быстрой защиты конфигурации от распространения неблагонадежными клиентами. Работает только в режиме обычного приложения. Защита не полноценная (в случае если не применять обфускатор к спец.модулям), но позволяет снять проблему.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Защита конфигураций
.cf 31,64Kb
168
168 Скачать (3 SM) Купить за 2 450 руб.

Понадобилось сделать быстро блокировку от распространения конфигурации-поставки по "рукам" клиентов. Конфигурация не является конечным продуктом, а только пример работы.

Данные паролей генерируются ввиде ХЭШ-кода и сохраняются в справочник "ПраваДоступаПоЛицензии". Пароль ХЭШ-код формируется из наименования организации и имени компьютера пользователя. 

Как настроить и работать с этим?

1. Перекинуть все объекты метаданных из конфигурации ЗащитаКонфигурации в вашу (кроме Организации, ГенераторЛицензий, ДокументПример)  

2.  В модуле обычного приложения в процедуре ПриНачалеРаботыСистемы() необходимо добавить:

//*Лицензионная политика

//Проверка на доступ 

Если НЕ ЛицензионнаяПолитика.ПроверитьРазрешениеНаДоступКПрограммеТекущегоПользователя() тогда ЛицензионнаяПолитика.ВвестиКодДоступа(); ЛицензионнаяПолитика.ЗафиксироватьКодДоступа(); КонецЕсли;

//*

3. В модуль "важного" объекта  метаданных в процедуре ПриЗаписи() добавить:

//*Лицензионная политика

ЛицензионнаяПолитика.ПроверитьДоступИВыйтиСПредупреждением();

//* 

 4. В модуле ЛицензионнаяПолитика: добавить постоянный пароль для поставки в функции ПолучитьИдентификационныйПарольПрограммы()  и ПолучитьИдентификационныйПарольАдминский(). Это на всякий случай, если требуется отключить быстро всю защиту и войти в программу.

5. При формировании поставки не включать в поставку исходный текст модулей везде где есть  *Лицензионная политика

6. Для генерации паролей-лицензий пользователей используется обработка  ГенераторЛицензий. В ней необходимо указать пароль программы (см. п. 4), наименование организации, наименование компьютера. 

Вот впринципе и все! Никаких внешних компонент и ноль потраченных средств. Подсистему защиты легко перенести на управляемое приложение (при необходимости).

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

Рекомендую применять обфускатор к указанным модулям и  защита будет 100% надежной.

Защита конфигурации безопасность

См. также

Защита ПО и шифрование Программист Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.02.2023    2725    11    aximo    5    

2

Защита ПО и шифрование Программист Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    2143    2    olevlasam    3    

3

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    3584    16    keyn5565`    0    

14

Защита ПО и шифрование Программист Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    4470    9    vit59    2    

6

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка, позволяющая запутывать и шифровать байт-код, поставлять модули без исходных текстов и т.д. Работает только в файловом варианте с версии платформы 8.3.22.1368 из-за конструктора ГенераторСлучайныхЧисел, поскольку алгоритм был изменён.

10 стартмани

16.06.2022    12755    106    ZhokhovM    12    

45

Защита ПО и шифрование Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Как уберечь конструкторскую документацию от воровства конкурентами? Недавно столкнулся с этой проблемой. Заказчик серьёзно обеспокоен утечкой информации о конструкторских разработках в адрес конкурентов, за счет подкупа исполнителей, занимающихся производством по конструкторской документации, операторов технологического оборудования и обрабатывающих центров по изготовлению деталей и сборочных единиц.

2 стартмани

09.03.2022    6145    3    ge_ni    9    

2

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Система построена на веб платформе, все управление происходит на сайте в личном кабинете пользователя.

1 стартмани

27.12.2021    5106    2    idm80    12    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Kabz 78 11.05.12 23:03 Сейчас в теме
Особо важные модули не имеют исходных модулей, а в них скрыта функция проверки на лицензию. - Раскомпилируеться на раз два..
3. Kyrales 145 12.05.12 13:26 Сейчас в теме
(1)(2) Полностью с вами согласен. Как "защита от дурака" себя отрабатывает на отлично
2. WKBAPKA 215 12.05.12 12:33 Сейчас в теме
идея интересная, но к сожалению, то что 1С компилирует, легко разкомпелировать... но как нормальная такая защита от дурака, пойдет
4. AleksSF 226 16.05.12 09:41 Сейчас в теме
Хорошо бы описание подключения включить в файл для скачивания, чтобы потом не искать как этим воспользоваться. А так +.
5. Kamikadze 46 16.05.12 23:14 Сейчас в теме
как мне кажется защитой от дурака может служить и пароль на модули
6. Kyrales 145 17.05.12 08:23 Сейчас в теме
(5) В данном случае вы не правы, т.к. не вчитались в описание. Данная подсистема позволяет защитить от копирования вашей разработки
7. Kamikadze 46 17.05.12 10:36 Сейчас в теме
Я КОНЕЧНО ВНИКНУ, интересно как именно работает защита.

но вопрос по защите модулей остается - как программист открываю модуль и удалаю его. и вся защита ушла спать

В описании прочитал, но не верется, пока не проверю сам :)
8. electronik 17.05.12 15:27 Сейчас в теме
Не совсем то что хотелось бы но на безрибэ и рак рыба. Автору спасибо и конечно респект ну заслуженое 5++
9. MMF 679 17.05.12 17:21 Сейчас в теме
"Защита" ни от чего не защищает. Даже дураку достаточно погуглить 5 минут и найдется декомпилятор.
10. Kyrales 145 17.05.12 18:18 Сейчас в теме
(9) У вас не защищает, у других БОЛЬШИНСТВА прекрасно защищает.
alexis_g; +1 Ответить
11. Kamikadze 46 17.05.12 22:52 Сейчас в теме
(10) тоесть вы отрицаете возможность "открытия" вашего программого кода декомпилятором???
alexis_g; +1 Ответить
12. Kyrales 145 18.05.12 10:39 Сейчас в теме
Господа, я еще раз повторяю, то что декомпиляторы в данной теме не обсуждаются. Предложена разработка и раз вы боитесь декомпиляторов, пожалуйста, не используйте её для своих нужд.
alexis_g; +1 Ответить
13. arjuna 20.05.12 22:08 Сейчас в теме
Если не учитывать декомпиляторы то какая ж это защита?
14. Kyrales 145 21.05.12 15:52 Сейчас в теме
(13)(11)(9) Ладно, господа взломщики-декомпилисты. Попробуйте взломать конфигурацию раскрыв тексты модулей которые вложены в нее.
Прикрепленные файлы:
1Cv8.cf
15. awa 2610 22.05.12 01:07 Сейчас в теме
(14) Ты все-таки не верил? Ну вот, смотри.
Прикрепленные файлы:
1Cv8_U.cf
alexk-is; +1 Ответить
17. Kyrales 145 22.05.12 17:14 Сейчас в теме
(15)
При открытии конфигурации вылазиет ошибка:
Неклассифицированная ошибка документа.
по причине:
Ошибка при выполнении файловой операции 'D:\Downloads\1Cv8_U.cf'
по причине:
Неверный формат хранилища данных 'file://D:/Downloads/1Cv8_U.cf'

(16) Вы раскрыли все модули до единого?
18. ValeriVP 1338 22.05.12 17:20 Сейчас в теме
(17)где один - там и остальные :)
19. Kyrales 145 22.05.12 17:22 Сейчас в теме
(18) Молодец. Тебя такая защита не застопорит, признаю.
21. ValeriVP 1338 22.05.12 17:42 Сейчас в теме
20. awa 2610 22.05.12 17:37 Сейчас в теме
(17) Почему-то при скачивании моего файла из (15) добавляются в начале и в конце какие-то <pre>. Не знаю, кто виноват, движок сайта или хром, но не важно. Давай сделаем проще.
Скачай вот это и попробуй сам.
22. ValeriVP 1338 22.05.12 17:43 Сейчас в теме
(20) а ты нажимай ссылку "Скачать", а не название файла
23. awa 2610 22.05.12 17:50 Сейчас в теме
(22) О! Точно! Спасибо!
(17) ты тоже не туда нажимал, значит))
24. Kyrales 145 22.05.12 17:56 Сейчас в теме
16. ValeriVP 1338 22.05.12 12:21 Сейчас в теме
мой декомпилятор не обрабатывает целиком конфигурации, а только отдельные модули
но тоже не плохо справляется
Прикрепленные файлы:
ЛицензионнаяПолитика.txt
alexk-is; +1 Ответить
25. AleksSF 226 23.05.12 23:17 Сейчас в теме
Не совсем понял. В вашей конфигурации.
Вошел по служебному паролю 123
Создал организацию
Сгенерировал лицензионный ключ
При запуске конфигурации ввожу полученый лицензионный ключ
Выдает:
Введенный код доступа не верен!
Что я не доделал
26. Kyrales 145 25.05.12 15:37 Сейчас в теме
(25) Вы может быть неверный ключ сгенерировали. Генерируется на основе наименования организации и названия компьютера
27. AleksSF 226 29.05.12 16:41 Сейчас в теме
(26)
Это я понял но вроде все правльно делал.
Вот приложил картинки.
И не совсем понятно: при генерации вводишь пароль, а куда его потом вводить
Прикрепленные файлы:
28. AleksSF 226 29.05.12 17:09 Сейчас в теме
(26)
Вроде разобрался:
При генерации пароль программы должен быть такой как описано в функции Функция ПолучитьИдентификационныйПарольПрограммы()
А в описании этот вопрос упустили. Вот и недостаток описания.
29. Kyrales 145 30.05.12 18:53 Сейчас в теме
(28) Спасибо за замечание. В п.4 я указывал, что необходимо указывать пароль программный и пароль админский, но не уточнил, что при генерации использовать программный. Это указано далее в п.6 "Для генерации паролей-лицензий пользователей используется обработка ГенераторЛицензий. В ней необходимо указать пароль программы (см. п. 4), наименование организации, наименование компьютера. "
30. electronik 23.07.12 16:24 Сейчас в теме
ИИнтересно инересно нужно будет поюзать на досуге
31. piton66 2 21.01.13 16:17 Сейчас в теме
Может под управляемое приложение кто нибудь переделывал?
32. zil 23.03.13 20:38 Сейчас в теме
Как будет время посмотрим.
33. Alex1Cnic 150 13.05.13 11:26 Сейчас в теме
Интересно, конечно, но декомпиляция - дело нехитрое....
А так плюсик можно поставить
34. pumbaE 25.07.13 12:38 Сейчас в теме
Декомплияция дело хитрое, а вот пользоваться декомпиляторами любезно предоставленными в инете - дело нехитрое.
vasiliy_b; awa; +2 Ответить
35. piton66 2 29.10.13 15:51 Сейчас в теме
Для управляемого переделывал кто нибудь?
37. Kyrales 145 30.10.13 08:57 Сейчас в теме
(35)(36)Этот пример только для обычного приложения. Возможно в будущем сделаю аналог для управляемого
38. m-kos 17 07.05.16 19:39 Сейчас в теме
(37)
Не появился аналог для управляемого приложения?)
39. vas2005 8 12.08.17 21:51 Сейчас в теме
(37)Да-да, хотелось бы увидеть и для управляемых форм!!!))))
36. piton66 2 29.10.13 15:51 Сейчас в теме
На модуль управляемого приложения пароль не ставится.
40. vas2005 8 01.09.17 17:43 Сейчас в теме
Насколько я разобрался, это вырезанный кусок из рабочей базы.
Тут есть множество моментов не используемых, хотя где-то это применялось)))
Вот к примеру
Процедура СброситьРегистрацию()
или вот еще такой код доступа
КодДоступаПервичный
.
Насколько я понимаю, для первичного доступа в программу(конфигурацию), должен быть первичный код доступа, потом, он меняется на регистрацию.
А тут этот момент видимо вырезан автором, первый запуск системы и сразу регистрируй, даже организацию не успеешь оформить))))

Можно конечно предположить, что
ПарольПрограммы
это и есть
КодДоступаПервичный
, но с ним тогда можно спокойно копировать программу и пользоваться под этим паролем))))

Также есть косяк с записью резервных паролей
Тут обстоят дела так, что при вводе пароля
ПарольПрограммы
или
ПарольАдм
он записывается в открытом, не шыфрованном виде в
Доступ3
.

А так за саму идею решения вопроса с копированием, автору, однозначно 5++
41. Kyrales 145 02.09.17 17:49 Сейчас в теме
(40)
сразу регистрируй, даже организацию не успеешь оформить))))


Да в целом вы правильно разобрались. Я специально описал и оставил в коде рабочий пример, чтобы сразу было все легко и понятно. Сейчас для защиты можно сделать обфусцирование данных модулей и затем закомпилировать 1С средствами. Защита будет 100%
42. vas2005 8 02.09.17 18:46 Сейчас в теме
(41) Возможно ли посмотреть полный вариант вашей защиты...??)))
С количеством лицензий совсем непонятно, для чего и как определить..???
43. UserPro 4 08.09.17 16:00 Сейчас в теме
Тема интересная. Может кто подскажет, есть способ "закрыть" в конфигурации добавленный самописный документ или лучше вынести во внешнюю обработку ???
44. held88 59 08.09.17 16:14 Сейчас в теме
Я дела по другому. Пишу компоненту на C#. Пихаю туда часть логики без которой ничего не работает. Применяю шифрованный xml файл с данными клиента как ключ. Кстати, рецепт нашел кажется тоже тут, в одной из публикаций.
46. d.zhukov 1476 28.09.18 13:47 Сейчас в теме
(44) Любые компоненты - это геморрой. Тем более когда речь идет о шифровании тиражного продукта. Покупает клиент с правами рядового юзера (примерно 70% покупателей имеют такие права на рабочем компе) и все, приплыли. Компонента не регистрируется, админ права не дает при этом еще и покупатель со словами "Зачем мне права админа? я ж готовое решение покупал" оформляет заявку на возврат ден.средств.
45. пользователь 02.04.18 14:52
Сообщение было скрыто модератором.
...
47. Ali_q 1 30.04.22 14:45 Сейчас в теме
А нет решения для управляемых форм?
48. Kyrales 145 01.05.22 15:00 Сейчас в теме
(47) Нет, для управляемых не делалось.
49. Ali_q 1 03.05.22 11:40 Сейчас в теме
Оставьте свое сообщение