Можно ли защитить ДанныеИзБезопасногоХранилища от полных прав?

1. fixin 4253 12.02.24 13:22 Сейчас в теме
По сути там регистр сведений, вся "безопасность" которого в том, что он не читается под обычными пользователями.

Т.е. от полных прав его никак не защитить, так?

Я думал, закрыть модуль на пароль, чтобы имя ключа в безопасном хранилище было не известно, но так не получится, потому что полные права могут просмотреть регистр и узнать название ключа.

Так?

ОбщегоНазначения:
Функция ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасногоХранилищаДанных, Ключ)
	
	ТекстЗапроса = 
		"ВЫБРАТЬ
		|	БезопасноеХранилищеДанных.Данные КАК Данные
		|ИЗ
		|	#ИмяБезопасногоХранилищаДанных КАК БезопасноеХранилищеДанных
		|ГДЕ
		|	БезопасноеХранилищеДанных.Владелец = &Владелец";
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяБезопасногоХранилищаДанных", "РегистрСведений." + ИмяБезопасногоХранилищаДанных);
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Владелец", Владелец);
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	
	Результат = Новый Структура(Ключ);
	Если РезультатЗапроса.Следующий() Тогда
		Если ЗначениеЗаполнено(РезультатЗапроса.Данные) Тогда
			СохраненныеДанные = РезультатЗапроса.Данные.Получить();
			Если ЗначениеЗаполнено(СохраненныеДанные) Тогда
				ЗаполнитьЗначенияСвойств(Результат, СохраненныеДанные);
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
	Возврат Результат;
КонецФункции
Показать


Или можно какое другое хранилище использовать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. user-z99999 67 12.02.24 13:59 Сейчас в теме
(1)
Единственный способ защитить данные - это шифрование.
Т.е. шифруем ключом и помещаем в БезопасноеХранилище.
И наоборот, получаем данные и ключом расшифровываем. (на форме пользователь вводит ключ для расшифровки данных).

+ защищенный общий модуль (от программиста)
9. fixin 4253 12.02.24 14:22 Сейчас в теме
(6) я вот вспомнил, что есть встроенное хранилище настроек пользователя, там не перебрать сохраненные данные. Надо туда покопать, кто в теме?
13. Timur.V 78 12.02.24 14:56 Сейчас в теме
(9)
1с Предприятие можно запустить под другим пользователем, если вы админ.
(даже не зная его пароля)

Программист - это бог в среде 1с. От него очень сложно где-то спрятаться.
Разве что, читать какие-то данные из файла на клиенте. (программист может вмешаться в процесс чтения данных)

Может отказаться от использования 1с?
user1880116; +1 Ответить
15. fixin 4253 12.02.24 15:07 Сейчас в теме
(13) вы путаете ПолныеПрава и АдминистраторСистемы.
35. fixin 4253 12.02.24 16:07 Сейчас в теме
(30) да, именно там я кстати и смотрел как называется роль "АдминистраторСистемы"
2. fishca 1255 12.02.24 13:36 Сейчас в теме
от ПолныхПрав никак не защитишься, на то они и полные
3. fixin 4253 12.02.24 13:45 Сейчас в теме
(2) э не скажи. Расширения они снимать не могут, если нет роли АдминистраторСистемы.
А в расширениях можно прописать запреты.
4. fishca 1255 12.02.24 13:47 Сейчас в теме
(3) тогда это не Полные права, а ограниченные
8. fixin 4253 12.02.24 14:21 Сейчас в теме
(4) Да, полные права это АдминистрированиеСистемы, можно считать.
5. TormDV 12.02.24 13:55 Сейчас в теме
Снимите у Полных прав права на этот регистр)
7. fixin 4253 12.02.24 14:21 Сейчас в теме
(5) по-моему через расширение нельзя снять права с типовых ролей, или я ошибаюсь?
Хотя я вот что подумал в свете статьи про динамическую генерацию расширений - можно сделать клон роли Полные права через расширение (без ненужных функций).
10. Sashares 34 12.02.24 14:49 Сейчас в теме
(1)
что он не читается под обычными пользователями.

Это не так работает.
Он читается под любыми пользователями там где это надо. Читать надо в привилегированном режиме.
Пример приведен в комментарии функции ПрочитатьДанныеИзБезопасногоХранилища в этом же модуле.
11. fixin 4253 12.02.24 14:52 Сейчас в теме
(10) я хочу чтобы пользователь с полными правами не знал ключей хранилища.
12. Sashares 34 12.02.24 14:55 Сейчас в теме
(11)Не давайте пользователю полных прав.
Вы занимаетесь ерундой, откровенно говоря.
У пользователя полные права, он может назначить себе любые права. В том числе открытие внешних отчетов и обработок.
Далее может сделать внешнюю обработку, которая в привилегированном режиме выполнит запрос по регистру, и вернет все что угодно.
А вы можете хотеть все что душе угодно.
Fox-trot; user2033930; user1880116; +3 Ответить
14. fixin 4253 12.02.24 15:07 Сейчас в теме
(12)
рефакторинг прав будет стоить клиенту целое состояние.
Я убрал у полных прав администрирование и все - полные права стали не очень полными.
Сделал запрет на изменение пользователей, профилей и групп доступа на уровне неотключаемого под полными правами расширения.
Да, все же думаю, шифрование неплохо, в 1С есть простое шифрование?
Но можно и хранилище настроек пользователя - оно черный ящик.
Обычно если я чего-то хочу, я хочу обоснованно.
17. Sashares 34 12.02.24 15:14 Сейчас в теме
(14)Звучит как куча костылей.
18. fixin 4253 12.02.24 15:16 Сейчас в теме
(17) я понимаю вашу тягу к перфекционизму, но в реальной жизни иногда так удобнее.
20. Sashares 34 12.02.24 15:24 Сейчас в теме
(18)Вы огребете таким способом проблем, и не защитите ничего.
При желании пользователь с полными правами получит все что угодно.
В некоторых конфигурациях консоль запросов встроена.

Это может еще допустимо для краткосрочного этапа, когда выполняется перенастройка прав.
Но не как постоянное решение.
Дать пользователям полные права, а потом писать, что надо у него убрать то что не должен видеть - я даже спорить на эту тему не собираюсь.
Если не пользоваться специально для этого предоставленными инструментами, а потом жаловаться, что работает не так. Ну сами себе злобные буратины.
23. fixin 4253 12.02.24 15:28 Сейчас в теме
(20)
а можно полюбопытствовать, о каких проблемах идет речь. Чисто для расширения кругозора?
А то может я за 20 лет работы в 1С чего-то упустил.
О каком "все угодно" идет речь, если у него нет прав "АдминистраторСистемы"?
Пользователю да, можно смотреть все данные.
Я хочу скрыть ключ двухфакторной авторизации на Plusofon, не более.
31. Sashares 34 12.02.24 15:55 Сейчас в теме
(23) Я не знаю всех деталей того, что именно вы сделали.
Поэтому и спрогнозировать все проблемы не берусь.
Простой пример.
Если вы убрали в предопределенном профиле Администратор роль Администратор системы.
После этого в базе может не остаться ни одного администратора.
Зайти в конфигуратор после этого будет невозможно.
БСП не всегда хорошо отслеживало такую проблему.
32. fixin 4253 12.02.24 16:04 Сейчас в теме
(31) ну вы меня совсем "за миддла" держите. Я сделал отдельный профиль "Полные права", где только роль "Полные права".
Там изначально все users были администраторы. Я не адмнистраторам назначил группу "Полные права" с профилем "Полные права". Стало безопаснее - по крайней мере базу никто не сольет.

Поэтому было бы интересно услышать про реальные возможные проблемы, а не страхи.
Хотя в любом случае безопасность у пользователя улучшилась от такого мелкого изменения, которое я сделал по доброте душевной.
16. homer_ 78 12.02.24 15:08 Сейчас в теме
как вариант сделать свою dll, далее ее вшить в конфигурацию, при обращении к ней сохранять на диск, запускать с ключом который вводит пользователь. получать ответ, записываем обратно в систему.
19. fixin 4253 12.02.24 15:16 Сейчас в теме
36. starik-2005 3039 12.02.24 17:26 Сейчас в теме
(19)
я не умею делать DLL
Не обманывай. Ты ж делал ВК на С++ для какого-то замка, о которой на мисте я устал читать )))
38. fixin 4253 12.02.24 17:31 Сейчас в теме
(36) там слишком мощная DLL для такой задачи. А простые не умею. ;-)
40. starik-2005 3039 12.02.24 17:37 Сейчас в теме
(38)
А простые не умею.
Так я днесь писал про оное, которое методом копипасты делается. А как там внутрях шифровать - не проблема, хоть [данные XOR строка]. Другое дело, что если это дальше куда-то поедет уже из 1С, то отладчик поможет пользователю с полными правами. И если дело в защите решения от нелегального использования, то там вообще внешняя обработка целиком дешифруется, помещается в хранилище значений и оттуда запускается - так сделано в СЛК. И СЛК сначала лицензию смотрит, и если все ок, то дешифрует обработку и запускает ее. А т.к. из обработки текст выпиливается, то даже в отладчике при замере производительности будет что-то типа ГУИД Х мс...
41. fixin 4253 12.02.24 17:41 Сейчас в теме
(40) да, замечание верное. А для отладчика нужно право АдминистрирСистемы?
Проверил - только ПолныеПрава не дают право на открытие конфигурации.
42. starik-2005 3039 12.02.24 17:46 Сейчас в теме
(41)
А для отладчика нужно право АдминистрирСистемы?
Думаю, для отладчика достаточно прав запуска конфигуратора. А какие это конкретно право - не в курсе. Но у полных прав, предположу, оно есть.
44. fixin 4253 12.02.24 17:48 Сейчас в теме
(42) предположение неверное. Пишу же, проверил - ПолныеПрава не дают право на открытие конфигурации. Только АдминистраторСистемы, только хардкор.
45. starik-2005 3039 12.02.24 17:51 Сейчас в теме
(44)
только хардкор
Ну остается только грохнуть табличку юзеров и перезапустить конфигуратор. Кто-то о таком писал. Конфигурация в БД никак не шифруется, поэтому всегда есть возможность получить доступ. Все упирается в стоимость взлома, а заломать такое в принципе не так сложно.
46. fixin 4253 12.02.24 18:49 Сейчас в теме
(45) все это было в семерке. В восьмерке сложнее, а если база SQL - на порядок сложнее, если вообще возможно.
47. Sashares 34 12.02.24 19:08 Сейчас в теме
(46)Вам кажется.
Удаляется таблица пользователей, и пользователь заходит в базу как админ.
Если база на SQL это делается достаточно просто.
48. fixin 4253 12.02.24 19:35 Сейчас в теме
(47)
достаточно просто без знания пароля SA? С обрезанными правами на открытие внешних файлов?
Без доступа к конфигуратору?
И конечно же, он потом вернет сохраненный SQL дамп таблицы пользователей назад, чтобы никто не спохватился?
А мне кажется, что не просто. Переубедите меня.
49. Sashares 34 12.02.24 21:14 Сейчас в теме
(48)
А мне кажется, что не просто.

Ну кажется, креститесь. В чем проблема то?
Переубедите меня.

Зачем бы мне это делать? Не верите, ваши проблемы.
Что-то кому-то доказывать я не собираюсь.
21. SlavaKron 12.02.24 15:26 Сейчас в теме
Если предполагаются только интерактивные запись и чтение защищенных данных, то можно использовать объекты ЧтениеZIPФайла/ЗаписьZIPФайла. В момент записи и чтения пользователь должен будет указывать пароль.
22. fixin 4253 12.02.24 15:26 Сейчас в теме
(21) ну это как-то слишком "через гланды", думаю можно нагуглить какое-нибудь базовое шифрование в 1С.
24. SlavaKron 12.02.24 15:30 Сейчас в теме
(22) Не принципиально какой механизм использовать, просто я предложил нативный объект 1С, с возможность шифрования и защитой паролем. Суть в том, что в 1с лежат только зашифрованные двоичные данные, а пароль в голове пользователя.
25. user2033930 12.02.24 15:41 Сейчас в теме
(24) А стикер с паролем на мониторе как же?
26. SlavaKron 12.02.24 15:44 Сейчас в теме
(25) Тогда уж проще стикер с "ключом двухфакторной авторизации на Plusofon" на мониторе.
28. spacecraft 12.02.24 15:52 Сейчас в теме
(22)
думаю можно нагуглить какое-нибудь базовое шифрование в 1С

чем СервисКриптографии из БСП не устраивает?
33. fixin 4253 12.02.24 16:06 Сейчас в теме
(28) да меня все устраивает. Хотелось бы сесть и поехать.
В идеале две функции

Зашифровать(Чтото, Секрет)
Расшифровать(Чтото, Секрет)

А то я как-то сталкивался с криптографией, там наворочено...
37. starik-2005 3039 12.02.24 17:31 Сейчас в теме
(33)
Зашифровать(Чтото, Секрет)
Расшифровать(Чтото, Секрет)
А на "чтото" и "секрет" - это в отладчике можно поглядеть будет? Ну и, что совсем интересно, на результат выполнения этого?

Вообще, шифрование есть симметричное (один ключ на расшифровать и зашифровать) и ассиметричное (один ключ на зашифровать, другой на расшифровать). У пользователя ключ где-то на токене, у админа его нет. Тогда сработает в принципе любой метод, но админ может точку останова на сервере установить и глянуть, что там в переменных. И чтобы его обвести вокруг пальцев, нужно, чтобы защищенный контент расшифровывался где-то изолировано от 1С и в 1С это все не должно светиться вообще.
39. fixin 4253 12.02.24 17:32 Сейчас в теме
(37) не получится, т.к. внутри закрытого на пароль модуля будет секрет в коде прописан, так что точки останова не проблема.
43. starik-2005 3039 12.02.24 17:48 Сейчас в теме
(39)
внутри закрытого на пароль модуля будет секрет в коде прописан, так что точки останова не проблема
Ну так всю полезную работу стоит делать внутри такого модуля. Только, если я правильно помню, есть декомпиляторы. Но тут, как говорится, стоимость взлома должна превышать стоимость легального использования.
50. user1880116 12.02.24 22:34 Сейчас в теме
(22)
можно нагуглить
Храни на флешке, доступ к которой есть только у администратора. Ты же ведь успешно уже завершил этот проект.
27. vadim1011985 100 12.02.24 15:47 Сейчас в теме
(14) а потом пользователь вошел в конфигуратор и вернул себе права администрирования
29. SlavaKron 12.02.24 15:54 Сейчас в теме
(27) Без права Администрирование не сможет.
34. fixin 4253 12.02.24 16:06 Сейчас в теме
(29) слова не мальчика, но мужа. ;-) Именно, без Администрирования не сможет.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот