"Оцифровка" бизнес-процессов.

   
     +7 (910) 778-05-31, romanb@nxt.ru
Коснитесь для звонка

Повышение уровня защищенности 1С:Предприятие 8. Пример конфигурации.

Внимание! Приведенная информация распространяется исключительно в ознакомительных целях. Перед использованием данных материалов рекомендуется ознакомиться с ФЗ Российской Федерации от 4 мая 2011 г. N 99-ФЗ "О лицензировании отдельных видов деятельности".

 

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

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

В режиме администратора конфигурация поддерживает следующие функции (при правильном вводе пароля):

  • смена пароля администратора (при правильном вводе старого пароля);
  • просмотр списка имен зарегистрированных пользователей и установленных для них параметров (блокировка учетной записи, включение ограничений на выбираемые пароли) – всего списка целиком в одном окне или по одному элементу списка с возможностью перемещения к его началу или концу;
  • добавление уникального имени нового пользователя к списку с пустым паролем (строкой нулевой длины);
  • блокирование возможности работы пользователя с заданным именем;
  • завершение работы с программой.

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

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

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

В конфигурацию встроен механизм защиты от дизассемблирования, который реализуется следующим образом:

  • Фрагмент кода, отвечающий за кодирование/шифрование и проверку паролей реализуется в виде множества функций.
  • Правильный порядок вызова функций сохранен в файле.
  • Неправильный порядок вызова функций должен приводить к ошибке идентификации.
  • Определяемый пользователем пароль должен соответствать определенный требованиям сложности.
  • Длина не меньше минимальной длины, устанавливаемой администратором и сохраняемой в учетной записи пользователя (индивидуально для каждого пользователя).
  • Наличие строчных и прописных букв.
  • Наличие цифр и знаков препинания.
  • Наличие специальных символов.
  • Отсутствие повторяющихся символов.

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

При использовании USB-носителя(дискеты) основные параметры учетной записи(имя и пароль) пользователя хранятся на носителе, в то же время конфигураиця проверяет корректность (легальность) сертификата.

Особенности реализации вышеназванного функционала в 1С:Предприятие.

Функционирование системы 1с делится на два процесса – конфигурирование (описание модели предметной области средствами систем) и исполнение (обработку данных предметной области). Результатом конфигурирования является Конфигурация, которая представляет собой модель предметной области. Конфигурацией в системе 1С:Предприятие называется совокупность трех взаимосвязанных составных частей:

  • Структуры метаданных
  • Исполняемого кода
  • Набора пользовательских интерфейсов
  • Набора прав

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

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

Итак, встроенными механизмами мы должны запретить всем, кроме администратора доступ в конфигуратор. Для этого создадим два типа пользователя программы(«роли») – администратора и пользователя. Администратор будет иметь пароль, задаваемый в конфигураторе. Пользователь на данном уровне пароля иметь не будет.

 

image006 image008

При старте программы выводится окно, в котором выбирается из двух предложенных вариантов – пользователь или администратор.

image010

При выборе – «администратор» нужно ввести пароль, заданный в конфигураторе. Для пользователей же предусмотрена авторизация уже после встроенного механизма авторизации, «внутри» программы. Поэтому при выборе «пользователь» вводить пароль не требуется. Для администратора авторизация «внутри» программы не требуется, так как  достаточно авторизации встроенным механизмом.

Режим администратора

Возможности:

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

 

 

 

image012image014

Назначение определенных свойств группе пользователей реализовано отдельно:

image015

Режим пользователя

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

Если флешка(либо дискета) не подключена выдается соответствующее сообщение.

В режиме пользователя возможно только сменить пароль.

Реализация

Структура хранения данных: информация о зарегистрированных пользователях, их паролях иотсутствии блокировки их работы хранятся в «справочнике»(таблице БД 1с). Пароль хранится в виде хеша.

Сложность пароля. Предлагается установить 1 из 4-х уровней сложности для пароля.  Каждый уровень означает наличие в пароле разнообразных символов – цифр, прописных букв, строчных букв и специальных символов(знаков препинания и т.д.). Допустим пароли «123апр» и «ИМС!.+» принадлежат второму уровню, т.к. содержат символы 2-х групп: в первом случае — цифры и строчные буквы, во втором – прописные буквы и специальные символы. Четвертому и последнему уровню будет соответствовать пароль, содержащий символы из всех групп. Дополнительно задается и проверяется отсутствие повторяющихся символов и длина пароля.

Встроеный механизм защиты от дизассемблирования: в каталоге базы лежит текстовый файл, в котором создается любое произвольное количество строк, каждая из которых содержит число от 1 до 4. Эти цифры соответствуют алгоритму вычисления хеш-функции, которые вызываются в указанной последовательности. Хеши вычисляются с помощью внешней компоненты CAPICOM.

Поиск внешних накопителей: реализован с помощью Windows Management Instrumentation (WMI), в дословном переводе — это инструментарий управления Windows. Если говорить более развернуто, то WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. WMI построен по объектно-ориентированному принципу, все данные операционной системы представлены в виде объектов и их свойств и методов. Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одним из разновидностей SQL. К примеру запрос на получение списка всех подключенных накопителей выглядит так:  

“SELECT * FROM Win32_LogicalDisk WHERE DriveType=2”.

В результате выполнения запроса возвращается класс(структура), содержащая значения различных параметров подключеннх накопителей, в том числе параметр DriveType, использованный в запросе , значение «2» которого означает, что это сменный накопитель типа флешки или дискеты. В параметре «VolumeSerialNumber» будет содержаться имя(буква) усстройства.

Сертификат: представляет из себя текстовый файл, содержащий имя пользователя и хеш пароля. Создается сертификат в режиме администратора в справочнике «пользователи».  Проверка осуществляется сопоставлением имени пользователя и хеша пароля, хранимого в базе данных программы с теми, что находятся в файле.

Внимание! Для работы некоторых методов неоходим компонент CAPICOM.

Скачать конфигурацию.

Скачать CAPICOM(с мануалом по установке)

 

Внимание! Приведенная информация распространяется исключительно в ознакомительных целях. Перед использованием данных материалов рекомендуется ознакомиться с ФЗ Российской Федерации от 4 мая 2011 г. N 99-ФЗ "О лицензировании отдельных видов деятельности".

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *