Как уберечь конструкторскую документацию от воровства конкурентами?

09.03.22

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

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

Скачать файлы

Наименование Файл Версия Размер
Как уберечь конструкторскую документацию от воровства конкурентами?:
.rar 11,15Mb
3
.rar 11,15Mb 3 Скачать

    Ситуация:

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

2. Старт экспериментального производства нового изделия определяется созданием документа «План».

3. После принятия «Плана» к исполнению, документация по изделию, включенному в «План», помещается в общедоступный для исполнителей каталог на сервере предприятия.

4. Одновременно в составе месячного запуска к производству могут быть от 20 до 60 «Планов». Соответственно на каждый план могут быть сформированы комплекты конструкторской документации в PDF формате на изделие в целом или в целом и на сборочные единицы.

5. Один файл комплекта документации может содержать до 200 страниц PDF чертежей и спецификаций различного формата.

6. На этом этапе конструкторская документация с помощью общедоступных средств просмотра файлов PDF формата может быть украдена любым доступным способом (скопирована, сохранена как, распечатана, украдена через снимок экрана, отправлена на… и т.д.).

Какая задача поставлена:

1. Каждый лист документации должен быть маркирован водяным знаком.

2. Водяной знак должен содержать информацию об идентификации предприятия разработчика.

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

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

5. Водяной знак должен предполагать размещения в качестве маркера, логотип из внешнего графического файла, с определением степени прозрачности.

6. Водяной знак должен наноситься автоматически на каждый лист документации в PDF формате.

7. Программа просмотра файлов PDF формата должна запускаться в командном режиме.

8. Программа просмотра файлов PDF формата должна иметь средства масштабирования изображения или авто масштабирования.

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

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

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

Заказчику было предложено двухкомпонентное решение поставленной задачи.

Первый компонент WaterMark.exe обеспечивает нанесение водяных знаков на каждый лист PDF файла конструкторской документации.

Основные комментарии будут относиться к методологии решения данной задачи в версии 7.7. программных продуктов 1С, т.к. ничего существенного, рабочего, я не нашел… Применить аналогичные технологии в версии 8.3, думаю, сможет каждый, возможно с некоторыми различиями по интерфейсу.

Итак:

WaterMark.exe можно запускать на исполнение двойным кликом мышки по приложению, или из командной строки. Непосредственный запуск

WaterMark.exe позволяет произвести настройку приложения, которая будет повторяться автоматически при всех последующих запусках уже из командной строки.

Запустим приложение:

 

 

Интуитивно понятно, что мы хотим получить в качестве водяного знака.

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

 

 

В каталог с PDF файлами поместил тестовые файлы документации.

 

 

Число до нижнего прочерка, это номер «Плана» производства.

Дальше наименование изделия или сборочной единицы по «Плану».

Запускаем «Выполнить».

Временные параметры выполнения операций по преобразованию PDF файлов зависят от количества страниц в обрабатываем файле.

8506_ЧИ-Изделие рабочее.pdf – 166 страниц.

8655_ЧИ -Труба.pdf – 34 страницы.

8655_ЧК -Труба.pdf – 1 страница.

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

 

 

Это, по прежнему PDF файлы, но немного переименованные.

Переименовали их для исключения повторной обработки.

Файл без водяных знаков получил расширение *.bak, а файл персонализации по рабочему месту, *.(номер рабочего места).

 

 

Для увеличения степени защиты PDF файлов можно провести повторную обработку файлов изменив размер шрифта и угол поворота надписи водяного знака.

Понятно, что в этой ситуации нужно вернуть обработанным файлам расширение *.pdf и убрать все версии для рабочих мест.

Что содержит одна из страниц нумерованного файла 4?

 

 

Что выдаст WaterMark.exe при повторном ручном запуске?

 

 

Программа сохранила настройки и завершила работу, т.к. в каталоге PDF файлов не нашла ни одного файла с расширением *.pdf.

Запуск приложения в командном режиме:

1) D:\1CDB\ish\WaterMark\watermark "ROGAi KOPYTA" D:\1CDB\ish\WaterMark\5

(Путь и имя приложения) _ (Содержание водяного знека)_(Путь к каталогу PDF файлов)(Количество рабочих мест).

2) D:\1CDB\ish\WaterMark\watermark – auto.

В первом варианте управление обработкой определяется полностью по настройкам, передаваемым в командной строке.

Во втором случае приложение работает по сохраненным настройкам описанным выше.

Для 1С 7.7 задача сводится к требованию:

отследить появление в предопределенном каталоге файла с расширением *.pdf. Как только WaterMark.exe обнаруживает файл с таким расширением, по сохраненной настройке, он будет снабжен водяными знаками и переименован в версии для планируемых рабочих мест.

Помещаем в предопределенную процедуру (1С 7.7 ...7.70.027) ПриНачалеРаботыСистемы() строку:

ОбработкаОжидания("ДиспетчерЗадач", 600);

В процедуру ДиспетчерЗадач() добавляем строку запуска нашего приложения типа:

ЗапуститьПриложение(КаталогИБ()+"\ish\WaterMark\WaterMark.exe "+"""ROGAi KOPYTA"""+" D:\1CDB\ish\WaterMark\ 5");

или

ЗапуститьПриложение(КаталогИБ()+"\ish\WaterMark\WaterMark.exe -auto");

Один раз в 10 минут будет запускаться WaterMark.exe и искать не обработанные PDF файлы, снабжая их водяными знаками.

Чтобы не терроризировать пользователей регулярным запуском приложения, его можно замкнуть на виртуального пользователя.

Создайте пользователя в 1С с административными правами и любым интерфейсом (он ему не понадобится), например («Помощник») «Pom».

Создайте на сервере командный файл Pom.bat, следующего содержания:

@echo off

d: cd D:\1Cdb\ish\

wscript Pom.vbs /b /h:wscript

(это обычный текстовый файл, просто измените его расширение на *.bat).

Поместите в свой каталог на подобии «D:\1Cdb\ish».

В этот же каталог поместите файл скрипта.

Обычный текстовый файл с заменой расширения на Pom.vbs.

dim err_code
sub my()
    Dim v7
    Dim s_path
    Dim s_user
    Dim s_pass
    Dim s_report
    Dim s_context
	   s_path = "D:\1Cdb\"
 	   s_user = "Pom"
 	   s_pass = "1234"
 	   s_report="D:\1Cdb\ExtForms\Pom.ert"
 	   s_context = "Run"
 		Set v7 = CreateObject("V77.Application")
    		result = v7.Initialize(v7.RMTrade, "/D" & s_path & " /N" & s_user & " /P" & s_pass, "NO_SPLASH_SHOW")
    		if  not result then
        		msgbox ="1C no start!"
        		exit sub
    		end if
    	err_code = 0
end sub
err_code = 255
my()
wscript.Quit(err_code)

Этим скриптом мы запускаем внешнюю обработку, созданную в 1С 7.7, Pom.ert.

В форме обработки одна кнопка «Закрыть».

Текст обработки (1С 7.7 .... 7.70.027):

//................................................................Е.И.
Процедура Сформировать()
	ЗапуститьПриложение(КаталогИБ()+"\ish\WaterMark\WaterMark.exe -auto");
	НайденФайл=ФС.НайтиПервыйФайл(КаталогИБ()+"\ish\WaterMark\*.pdf");
	Пока ПустаяСтрока(НайденФайл) = 0 Цикл
		
		НайденФайл=ФС.НайтиСледующийФайл(); 
	КонецЦикла; 
	Если ПустаяСтрока(НайденФайл) = 1 Тогда
		Тик = 0; // количество минут до завершения работы системы
		ЗавершитьРаботуСистемы(0);
	КонецЕсли;
КонецПроцедуры
//................................................................Е.И.
Процедура ПриОткрытии()
	Сформировать();
	Форма.Закрыть();	
КонецПроцедуры
//................................................................Е.И.

Просим системного администратора запланировать запуск на сервере 4 – 6 – 8 -10… заданий по командному файлу Pom.bat с временным перерывом на завершение работы WaterMark.exe.

Следует понимать, что сеансы работы пользователя «Pom», пароль «1234», не должны перекрываться по времени обработки всех PDF файлов, для всех рабочих мест.

PDF файлы не должны содержать больше, приблизительно 200 страниц.

В противном случае, для терминальной сессии, можно получить сообщение о недостатке памяти.

Чтобы произвести обработку в 2 этапа, с водяным знаком, в разных цветах, и с разной степенью прозрачности, переименовываем уже обработанный файл для рабочего места 1 из «8655_ЧК -Труба.pdf.1» в «8655_ЧК -Труба.pdf».

Теперь он подлежит повторной обработке.

Результат двухэтапной обработки PDF файла.

 

 

Попытаемся добавить логотип некоей компании. Это могут быть файлы с расширением *.bmp, *.png, *.jpg.

 

 

Диалоговая форма приложения:

 

 

Результат добавления логотипа:

 

 

Сделано всё (ну почти всё) для обозначения своего авторского права на документацию.

 

Перейдем ко второму приложению.

Оно необходимо для просмотра PDF изображений деталей и сборочных единиц на экране монитора и ВСЁ.

Приложение PDFView.exe.

 

 

Инструментарий приложения интуитивно понятен.

Сохранять, сохранять как, выделить и копировать, экранные ножницы, Prt.Scr (снимок экрана), печатьнедоступны.

Фотографирование с помощью внешних устройств будет содержать водяной знак на изображении.

Требования…

- 1С 7.7 должна обеспечить правильную выборку документации в привязке к конкретному рабочему месту и конкретному «Плану».

- PDFView.exe должен читать файлы с именем типа «8655_ЧК -Труба.pdf.1».

- Если документация некоего изделия состоит из множества PDF файлов, то у пользователя должен быть инструмент выбора конкретного файла.

- Пользователю должны быть недоступны любые разделы интерфейса 1С, кроме меню обработки запуска просмотра PDF файлов.

Идем по ранее описанному пути:

1. Создаём 5 пользователей 1С с административными правами и именем «Post1», «Post2», «Post3», «Post4», «Post5», и паролями, которые сложно забыть, типа «1111», «2222» и т.д. Пользователю они не доступны и используются только в файле скрипта.

2. Соответственно в терминальной сессии пользователей оставляем на экране пиктограмму запуска командного файла типа «Post1.bat». Доступа к непосредственному запуску 1С у него НЕТ.

@echo off

d: cd D:\1Cdb\ish\

wscript Post1.vbs /b /h:wscript

3. Создаём скрипт Post1.vbs со следующим содержанием:

dim err_code
sub my()
    Dim v7
    Dim s_path
    Dim s_user
    Dim s_pass
    Dim s_report
    Dim s_context
	   s_path = "D:\1Cdb\"
 	   s_user = "Post1"
 	   s_pass = "1111"
 	   s_report="D:\1Cdb\ExtForms\Prosmotr.ert"
 	   s_context = "Run"
		Set v7 = CreateObject("V77.Application")
    		result = v7.Initialize(v7.RMTrade, "/D" & s_path & " /N" & s_user & " /P" & s_pass, "NO_SPLASH_SHOW")
    		if  not result then
        		msgbox ="1C no start!"
        		exit sub
    		end if
    	err_code = 0
end sub
err_code = 255
my()
wscript.Quit(err_code)

4. Разрабатываем внешнюю обработку, которая обеспечивает интерфейс выбора «Плана» и позиционирование к рабочему месту оператора. В скрипте она имеет имя «Prosmotr.ert».

Внешний вид обработки:

 

 

Это единственное, что появится на экране.

Никаких меню, никаких окон 1С кроме этого.

Двойной клик по строке таблицы документации и она откроется для просмотра.

Текст обработки (1С 7.7 .... 7.70.027):

Перем КаталогФайл;
//.................................................................Е.И.
Функция ПолучитьНомерПоста()
	Пользователь = ИмяПользователя();
	НомерПоста = Прав(Пользователь,1);
	Возврат Число(НомерПоста); 
КонецФункции // ПолучитьНомерПоста
//.................................................................Е.И.
Процедура Документация()
	Если СокрЛП(НомерПлана) = "" Тогда
		Предупреждение("Введите номер Плана!",5);
		СтатусВозврата(0);
		Возврат;
	КонецЕсли;
	ТДок.УдалитьСтроки();
	КаталогФайл = "D:\1CDB\ish\WaterMark\";
	ФГ=СоздатьОбъект("ФС");
	ФГ.УстТекКаталог(КаталогФайл);
	НомерПоста = ПолучитьНомерПоста();
	Файл=ФГ.НайтиПервыйФайл(СокрЛП(НомерПлана)+"*.pdf."+Строка(НомерПоста));
	Пока ПустаяСтрока(Файл)=0 Цикл
		ТДок.НоваяСтрока();
        		ТДок.План = СокрЛП(НомерПлана);
		Ключ = Найти(Файл,"_");
		Имя = Сред(Файл,Ключ+1);
		Имя = СтрЗаменить(Имя,"_"," ");
		Имя = СтрЗаменить(Имя,".pdf."+Строка(НомерПоста),"");
		ТДок.Документация = Имя;
		ТДок.Файл = СокрЛП(Файл);
		Файл=ФГ.НайтиСледующийФайл();
	КонецЦикла;
фирма");
КонецПроцедуры
//.................................................................Е.И
Процедура ПриОткрытии()
	ТДок.НоваяКолонка("План","Строка",10,,"План");
	ТДок.НоваяКолонка("Документация","Строка",100,,"Документация");
	ТДок.НоваяКолонка("Файл","Строка",200,,"Файл");
	ТДок.ВидимостьКолонки("Файл",0);
КонецПроцедуры
//................................................................Е.И.
Процедура УправлениеТаблицейЗначений()
	Если ТДок.КоличествоСтрок()>0 Тогда
		С=ТДок.ТекущаяСтрока();
		ВыбЗнач=ТДок.ПолучитьЗначение(С,"Файл");
     	ЗапуститьПриложение(КаталогФайл+"PDFView.exe " + Симв(34)+КаталогФайл+СокрЛП(ВыбЗнач)+Симв(34));
	КонецЕсли;
КонецПроцедуры // УправлениеТаблицейЗначений
//................................................................Е.И.

 Если системный администратор не заморочился на установку Вам нужных прав доступа, добавьте в процедуру глобального модуля… (1С 7.7 .... 7.70.027)

Процедура ПриНачалеРаботыСистемы()
…
Если (СокрЛП( ИмяПользователя()) = "Post1")
	ИЛИ (СокрЛП( ИмяПользователя()) = "Post2")
	ИЛИ (СокрЛП( ИмяПользователя()) = "Post3")
	ИЛИ (СокрЛП( ИмяПользователя()) = "Post4")
	ИЛИ (СокрЛП( ИмяПользователя()) = "Post5")
	Тогда
		ОткрытьФормуМодально("Отчет",,КаталогИБ()+"ExtForms\Prosmotr.ert");	
	КонецЕсли;
КонецПроцедуры // ПриНачалеРаботыСистемы()

После двойного клика по строке таблицы документации откроется окно PDFView.exe.

При попытке Print Screen будет выдано сообщение…

 

 

В рабочем режиме и сам не могу сделать снимок экрана, кроме как на внешнее устройство.

Приятной работы!

Обработка защита документации кража PDF водяные знаки

См. также

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9051    27    mdbruyfn    10    

9

1С7 + MD5

Защита ПО и шифрование Платформа 1С v7.7 Оперативный учет 7.7 Конфигурации 1cv7 Абонемент ($m)

Шифрование MD5 появилось в 1991 году (опубликовано в 1992), но и в XXI-м веке в 1С7 функция шифрования так и не появилась...

1 стартмани

11.01.2019    8679    10    vakham    2    

3

Злоумышленник зашифровал базы 1С и другие файлы

Информационная безопасность Защита ПО и шифрование Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Звонит пользователь, на экране сообщение ваши данные зашифрованы, введите пароль, пишите письма и т.д.

1 стартмани

08.11.2014    40161    44    aleksch21    85    

47

Пример кодирования строки средствами 1С в BASE64

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

Вспомнил свою старую обработку. Кодирование строки в base 64. Может пригодится для обмена с сайтами из 1с, где это требуется протоколом.

1 стартмани

02.09.2013    24286    9    _Vovik    2    

4

Внешняя обработка «Кинт: Обезличиватель 1.0»

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

Обезличивание текстовых данных любых информационных баз на платформе «1С:Предприятие 7.7».

1 стартмани

31.12.2010    18379    111    kint    7    

17

Скрыть персональные данные сотрудников (ЗиК)

Защита ПО и шифрование Кадровый учет Расчет 7.7 1С:Зарплата и кадры 7.7 Россия Абонемент ($m)

Обработка очищает или заменяет личную информацию сотрудника (Зарплата и Кадры)

1 стартмани

02.09.2010    18567    103    gucci76    15    

18

Сохранение файлов в конфигурации и обработках 1С: Предприятие 7.х

Защита ПО и шифрование Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Дальнейшее решение проблемы с сохранение файлов в конфигурации и обработках 1С: Предприятие 7.х

1 стартмани

17.05.2010    21434    152    VRP    10    

10

В помощь пользователям КЗК 2

Защита ПО и шифрование Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Задача: Защитить внеш. обработку или отчет с помощью КЗК 2 - передать клиенту с тем что бы он мог ее запустить, но без копирования файла precomp.dll в каталог ИБ. Так же может применяться и для блоков конфигурации.

28.01.2010    31030    script    42    

19
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 226 09.03.22 18:32 Сейчас в теме
Не понял, а как это вот всё помешает на телефон пофоткать? Хм, ну или перерисовать, пусть даже по памяти что-то (если фотик спалят).
2. ge_ni 306 09.03.22 23:52 Сейчас в теме
Стоит попробовать хотя бы один чертеж перерисовать по памяти :) Особенно если в сборочную единицу входит до 60-70 деталей. Что либо, по памяти, да не совпадет по присоединительным размерам. Кроме того, слесарь, станочник, оператор - это не конструктор. Этому учиться нужно. По поводу фоток, ну минимум увольнение... Для начала бумагу подписывают об ответственности, судебной ответственности... Как то так
3. 1Cergey 15 10.03.22 04:59 Сейчас в теме
не понял как осуществляется защита от PrintScreen ?
4. ge_ni 306 10.03.22 11:27 Сейчас в теме
(3) В PDFView.exe встроен алгоритм перехвата комбинации КЛАВИШ...
5. kosmo0 108 24.03.22 19:54 Сейчас в теме
(4) Возможно скажу глупость, так как просмотрел тему очень быстро "наискось".

По поводу " В PDFView.exe встроен алгоритм перехвата комбинации КЛАВИШ..."
А если открыть два приложения, одно почти на весь экран (с картинкой) и очень маленькое в уголке (ну например Калькулятор). Естественно активным сделать калькулятор. Перехват комбинации клавиш PDFView.exe будет работать?
7. ge_ni 306 26.03.22 10:30 Сейчас в теме
(5) И ещё, настоящий IT профи не пойдет работать слесарем, сварщиком, токарем... При объеме производства 20-60 различных изделий в месяц, украсть можно 2-3 и тебя обнаружили... Стоимость "внедрения" такого IT спеца в рабочие специальности весьма сомнительна по "конечному результату"... Даже в конструкторском отделе можно украсть только то, к чему сам имеешь доступ, как разработчик... Так что "распальцовка в сети" типа: "... украсть можно всё!", МОЖНО но не долго. Следы остаются всегда...
6. ge_ni 306 26.03.22 09:54 Сейчас в теме
(5)Т.к. это вполне рабочая модель, которая уже давно используется на предприятии, то заботу о перехвате PrintScreen в рамках работы сеанса пользователя (терминальный режим), взял на себя системный администратор. Рабочая станция для просмотра документации поддерживает запрет на запуск сторонних приложений. Дополнительно запущен скрипт по блокировке PrintScreeп из любого состояния. По поводу скрипта, есть публикации в сети... Условно, задание блокировать PrintScreeп в режиме работы с приложением PDFView.exe было выполнено :)
8. kosmo0 108 12.05.22 13:32 Сейчас в теме
(6) А зачем мне отвечать в стиле бюрократов. Есть четкий вопрос - ответа не последовало. Все остальное какая-то вода которая мне не интересна от слова совсем.

Был бы интерес у разработчика - сходил бы да проверил. Либо жесткая лень либо лазейка действительно есть и признаваться в этом очень неохота.

зы. если не будет ответа на конкретно поставленный вопрос - можете не отвечать (рассказы про то "как космические корабли бороздят просторы большого театра" мне не интересно совсем, это рассказывайте заказчикам которые не знают нюансов).
9. ge_ni 306 14.05.22 12:44 Сейчас в теме
(8) Извините, если чем-то обидел. 100% решений нет ни у кого. Описанный Вами вариант был выявлен ранее на этапе тестирования. Вы хотите утвердиться в том, что такая уязвимость есть? Так она есть. Спасибо! Типа не работает? Так ведь работает! Нет у пользователя "Калькулятора" в сеансе... и других приложений у него нет, кроме PDFView.exe и 1С. Реальное описание: как пытаться на практике решить подобную задачу... и главный тут администратор... Хотя можно было загрузить в память блокировку PrintScreen для сеанса вообще, при запуске 1С или
Оставьте свое сообщение