Периодическая смена паролей пользователей базы 1С
В Windows существует механизм периодической принудительной смены паролей пользователями с возможностью установки минимально допустимой длины и требований по сложности. В статье рассказывается, как реализовать аналогичный механизм для пользователй базы 1С.
В доменных политиках Windows есть такая удобная штука, как принудительная периодическая смена пароля учетной записи пользователя. Давно хотелось сделать что-то подобное и для 1С-ки.
Реализация выполнена на конфигурации «Альфа-Авто» от «Рарус», но в принципе, с минимальными доработками, портируема и на другие конфигурации.
Всего необходимо внести четыре изменения:
Изменение первое: в раздел «Константы» добавляются две константы (см. пример 1):
1.ПериодическаяСменаПароля — булева типа, по этой константе будет включаться, отключаться периодическая смена пароля.
2. ПериодичностьСменыПароля — Число(3,0) — здесь указывается период в днях, через который потребуется смена пароля.
Эти константы необходимо добавить в экранную форму редактирования констант (см. пример 2). Для удобства администрирования я повесил на событие «ПериодичностьСменыПароляПриИзменении» простую процедуру:
Данная процедура при изменении значения константы «ПериодическаяСменаПароля» предлагает , и при согласии пользователя, изменяет аналогичный реквизит для всех элементов справочника «Пользователи».
Второе изменение, которое необходимо внести, это дополнительные реквизиты справочника «Пользователи»(см. примеры 3,4):
1. Реквизит «ПериодическаяСменаПароля» — булева типа
2. Реквизит «ДатаПоследнейСменыПароля» — типа «Дата», состав «Дата»
Реквизит «ПериодическаяСменаПароля» в справочнике «Пользователи» необходим для того, чтобы можно было отключать смену пароля у части пользователей. Как пример, служебные учетные записи, используемые для автоматического запуска обработок («Robot», «BackUp» и т.д.).
Третье изменение: в какой-либо из существующих или вновь созданный глобальный модуль добавляются несколько процедур:
И, наконец, четвертое изменение:
В процедуру «ПриНачалеРаботы» модуля приложения добавляется вызов процедуры «раПроверитьСрокПароля(ПараметрыСеанса.Пользователь)».
После внесения изменений в конфигурацию, при первом заходе в базу данных необходимо будет установить значение константы «ПериодическаяСменаПароля» в «истина». После этого будет выведено диалоговое окно, предлагающее изменить значение реквизита «ПериодическаяСменаПароля» для всех элементов справочника «Пользователи», что и будет сделано при положительном ответе. Далее, необходимо будет выставить значение константы «Периодичность смены пароля», например — 60. Это значит, что система будет запрашивать смену пароля каждые 60 дней.
Далее, если есть пользователи, у которых не должен периодически меняться пароль, необходимо снять у данных элементов справочника «Пользователи» соответствующую галочку реквизита «Периодическая смена пароля».
Собственно, и вся настройка.
Теперь, при первом последующем заходе пользователя в базу данных у него выйдет диалоговое окно, оповещающее о необходимости смены пароля (см. пример 5).
После этого пользователю будет предложено ввести старый пароль.
Тут позволю себе небольшое отступление:
Понятно, что вновь устанавливаемый пароль пользователя не должен совпадать со старым. Иначе, вся идея смены пароля сливается в никуда. Старый пароль пользователя необходим нам, чтобы сравнить его с новым. К сожалению, пароль пользователя хранится в базе в хэшированном виде и я не нашел способов выдернуть его в пригодном для сравнения с новым паролем виде. Поэтому, мы вынуждены требовать от пользователя ввести старый пароль в открытом виде и проверять, действительно ли введен актуальный пароль от базы.
Для этого мы создаем объект «V82.COMConnector», прописываем в его параметрах путь к базе, имя пользователя и введенный им пароль. После этого пробуем соединиться с базой данных . Если соединение прошло успешно — пароль верный. Если была возвращена ошибка «Неправильное имя или пароль пользователя», то значит, пользователь пытается нас обмануть. Еще возможна ошибка «Данному пользователю не разрешены внешние соединения», но она возникает уже после успешной авторизации. Нас и такой вариант устроит. Пароль ведь верный, а это все, что нам сейчас надо знать.
Далее пользователю предлагается ввести и подтвердить новый пароль (см . пример 6).
Если пароль не удовлетворяет требованиям по сложности, то пользователю будет выведено об этом сообщение (см. пример 7) и будет предложено ввести новый пароль еще раз.
Еще одно отступление:
Параметры сложности паролей пользователей настраиваются в режиме «Конфигуратор», в меню «Администрирование» — «Параметры информационной базы» (см. пример 8). Здесь можно выставить минимально допустимую длину пароля, а проверку сложности пароля пользователя. Пароль в таком случае будет проверяться по наличию как минимум, трех различных групп символов: цифры, большие и маленькие буквы, а также различные раскладки клавиатуры.
Если пользователь не захочет вводить старый или новый пароли, то работы системы будет завершена.
Итак, пользователь успешно ввел новый пароль, отвечающий требованиям безопасности. Теперь, в течение прописанного в константе «ПериодичностьСменыПароля» (например, 60 дней) система оставит пользователя в покое. А по истечении этого срока, вновь потребует сменить пароль.
К сожалению, ничего не мешает пользователю поменять пароль на новый, а затем в пользовательском режиме зайти в «Сервис» — «Параметры пользователя» и там поменять пароль опять на старый. Но для этого необходимо, чтобы пользователь знал об этой возможности, а о ней, как показывает практика знают очень мало пользователей. Для того, чтобы отсечь эту возможность, пришлось бы хранить пароли пользователей в базе в открытом виде, а это, по моему мнению, излишний в данном случае, риск.
Как добавить пользователя в 1С: пошаговая инструкция по созданию новой учетной записи в программе

Системы учета, используемые на предприятиях, как правило, обеспечивают возможность одновременной или последовательной работы сразу нескольких сотрудников. Ввиду того что каждый из них выполняет собственные функциональные задачи и вносит определенные изменения в существующую базу, одним из обязательных требований становится персональная идентификация. С этой целью для всех лиц, имеющих допуск к программному обеспечению, создается личный профиль, защищенный от стороннего использования логином и паролем. Пользователи 1С наделяются перечнем прав, соответствующих статусу их учетной записи, а также получают доступ к отдельной форме интерфейса, ограниченной только необходимыми им функциями. При этом первый аккаунт, зарегистрированный в системе, по умолчанию обладает полномочиями на администрирование.
В ситуациях, когда штат организации пополняется новым сотрудником, возникает необходимость внесения его в список субъектов, которые могут пользоваться программой. Как именно это сделать, чтобы не допустить ошибок и применить корректные настройки? Давайте разбираться.
Как добавлять пользователей в 1С
Рассматриваемая учетная платформа предлагает два способа решения поставленной задачи — в пользовательском режиме, а также через функции Конфигуратора. В первом случае используются базовый перечень предопределенных ролей, изначально определяющих возможности и интерфейс для каждого статуса, что заметно упрощает процесс. Второй вариант отличается более гибкими инструментами для настройки полномочий. При этом выбор между указанными методиками, как правило, зависит от двух факторов: навыков администратора и распоряжений руководящего состава.
Как завести нового пользователя в «1С: Предприятие»
Алгоритм, реализованный в рамках базового функционала системы, позволяет вносить необходимые корректировки в онлайн-режиме, без выхода из программы. Порядок действий выглядит следующим образом:
- Откройте раздел «Администрирование» и выберите вкладку «Настройки прав».
- Перейдите к пользовательскому подразделу и воспользуйтесь одноименной ссылкой.
- На экране появится справочник — через него вы можете добавить сотрудника либо на основе уже имеющегося, либо оформив карточку (нажмите «Копировать» или «Создать»).
- Заполните нужные поля формы, указав полное имя, а также сведения для будущей авторизации. При желании можно обратиться к справочникам «Физические лица» и «Подразделение». Если же вам требуется перевести в инактив ранее действительного пользователя в 1С — смена статуса осуществляется простой отметкой пункта «Недействителен».
- В разделе настроек предусмотрены три варианта аутентификации — через программу, OpenID или операционную систему. В первом случае при попытке входа будет запрошено регистрационное пользовательское имя. Второй протокол предназначен для работы через онлайн-клиент, с дополнительной программной авторизацией. Выбор третьего варианта означает, что доступ к базе будет предоставляться вместе с загрузкой ОС Windows на конкретном компьютере или рабочем месте.
Завершающий этап — определение профиля, от которого зависит перечень функциональных возможностей, доступных новому сотруднику. Отметьте соответствующий должностной роли пункт и сохраните карточку.
Добавление с помощью Конфигуратора
Учетные записи пользователей 1С также можно создавать и редактировать через вспомогательный режим, предусмотренный для специалистов технической группы или IT-отдела. В данном случае речь идет о более точных и тонких настройках, расширяющих или сужающих спектр полномочий и степень доступа к системе. Алгоритм выполнения задачи предусматривает следующую цепочку действий, позволяющих оперативно внести необходимые корректировки:
- Откройте раздел «Администрирование» в соответствующем управленческом режиме.
- Выберите пользовательскую вкладку, после чего на экране появится окно со списком всех когда-либо внесенных в программу сотрудников организации.
- Используйте опцию «Скопировать», либо установленное по умолчанию сочетание функциональных клавиш Ins и F9.
Перед тем как изменить или добавить нового пользователя в 1C 8 («1С: Предприятие», «Управление торговлей» и т.д.), нужно установить в Конфигураторе его личные данные — как и в предыдущем случае, указываются входное и полное имя, метод аутентификации, а также пароль для авторизации.
Отдельного внимания заслуживает профильная настройка. Перейдите к разделу «Прочие», где отражается перечень базовых ролей, которые можно присвоить. В ситуациях, когда точечная активация или отключение отдельных опций не требуются, достаточно ограничиться установкой Полных, а также в случае необходимости, Администраторских прав.
В целом, весь функционал при работе с базой определяется на усмотрение руководства, определяющего перечень требований и критериев. Важно учесть, что, при недостаточности тех или иных полномочий, субъект будет вынужден сталкиваться с периодическими уведомлениями об ошибках. В связи с этим рекомендуется уделить внимание изучению статуса нового сотрудника и положенных ему по умолчанию (и по распоряжению ответственного руководителя) прав, чтобы не замедлять цикл реализации рабочих бизнес-процессов.
Как оформляются дополнительные пользователи в 1С Бухгалтерия 8.3
Настройка пользовательских возможностей исключает вероятность несанкционированной корректировки учетной информации, а также позволяет сосредоточить внимание абонента на конкретных задачах, реализуемых через доступные ему функции интерфейса. Однако перед тем, как раздать полномочия, нужно включить в базу всех активных участников.
Процесс добавления в программу
В теории функционал системы допускает работу без назначения определенного клиента. Однако есть ряд регламентированных операций, реализация которых возможна только при наличии у исполнителя полных правомочий.
Перед началом процедуры следует понять, кто из субъектов, присутствующих в БД, и каким именно статусом должен быть наделен, поскольку перечень варьируется от администрирования до точечных ограничений. Как правило, настройка прав доступа пользователей в 1С начинается с сотрудников, которым планируется предоставление самого широкого спектра функций.
Хранение и изменение информации
Пользовательские данные о каждом действующем абоненте находятся в соответствующем разделе. Встроенные фильтры позволяют также включить в реестр весь бывший персонал, имеющий на момент просмотра «Недействительный» статус. Для корректировки информационной карточки достаточно дважды кликнуть по имени. Чтобы ограничить возможность использования программы на неопределенный срок, следует убрать маркер с пункта, подтверждающего разрешение.
Изменение полномочий не требует обязательного раскрытия полных данных работника. Выделите нужную позицию и используйте кнопку «Права доступа».
Создание учетной записи и добавление к базе 1C нового пользователя в Конфигураторе «1С: Предприятие» предусматривает опцию дублирования на основе уже существующего субъекта. При копировании можно обойтись изменением ключевых значений формы, то есть имени, логина и пароля, тогда как остальные позиции не требуют обязательного обновления.
Зачем нужна профильная настройка
Конечно, в теории намного проще использовать единый аккаунт, обладающий полным функциональным спектром и свободным доступом к интерфейсу. Однако практика показывает, что подобный подход, как правило, оборачивается проблемами, разобраться с которыми организации бывает не так просто.
Так, к примеру, неосторожное обращение с базой может стать причиной повреждения системных данных, восстановление которых требует времени и денег. Однако определить ответственного в ситуации, когда фактическая возможность была у всех, крайне проблематично. Концепция разделения полномочий не только позволяет отслеживать, кто и когда конкретно вносил те или иные изменения, но и предотвращает нежелательное взаимодействие между персоналом, не имеющим достаточную подготовку, и областями учета, требующими особого внимания и аккуратности.
Роли и права доступа
Как уже было сказано, перед тем, как создать учетную запись пользователя и добавить в 1с 8 3 («1C:Бухгалтерия», «УТ», «Розница» и т.д.), нужно определиться с тем, каким статусом наделяется новый сотрудник. В рассматриваемой системе имеется несколько шаблонных вариантов, заметно облегчающих настройку работы в организациях с расширенным штатом:
- Администратор — отличается наличием полного и всестороннего доступа. Этот формат предназначен для специалистов, ответственных за ведение и обслуживание программы.
- Главбух — также обладает максимальным набором прав, однако отделяется от администратора для более корректного контроля за изменениями.
- Бухгалтер (помощник) — первый уровень ограничений, определяющих невозможность корректировки учетной политики, счетов и номенклатур.
- Проверяющий — роль, не предусматривающая возможности редактирования, но в то же время позволяющая просматривать всю информацию базы.
Отчет по имеющимся локальным ограничениям доступа формируется в разделе настройки, и отражает сведения по выбранному абоненту.
Группа пользователей
Еще одна опция, предусматриваемая функционалом платформы — групповое распределение прав и применение ограничений. В данном случае следует проанализировать перечень критериев, на основе которых сотрудники могут быть объединены в отдельные категории (бухгалтера, маркетологи, категорийные менеджеры и т.д.).
После этого достаточно перейти в меню «Администрирование» и отметить маркером пункт о запрете доступа на уровне записей. С помощью надстройки вы можете гибко изменять возможности получения данных из справочников, а также взаимодействия с иными программными элементами.
Профили групп настраиваются с помощью соответствующей гиперссылки. При этом один абонент может принадлежать сразу к нескольким категориям, и, как следствие, получать максимум полномочий от каждой из них. Перечень прав указывается на вкладке с описанием, и может включать в себя как чтение и просмотр, так и редактирование отдельных видов документов в учетной системе.
После создания нужного кластера выберите опцию «Записать и закрыть», чтобы подтвердить операцию.
Ограничения на уровне записей
Эта надстройка, уже упомянутая в предыдущем пункте, позволяет оперативно управлять групповыми и персональными полномочиями. Разберем ее более подробно.
К примеру, у вас возник производственный вопрос — как в 1С поменять статус пользователя, относящегося к кластеру «Менеджеры по закупкам», выставив ему определенные запреты на взаимодействие с программой. В данном случае алгоритм будет следующим:
Технология восстановления пароля 1С v8
Все мы знаем, что сами пароли пользователей в базе 1С не хранятся. Хранятся только некие «значения» этих паролей. Например, хранимое значение пароля «password» имеет вид «W6ph5Mm5Pz8GgiULbPgzG37mj9g=,ESu3kTBHkd3PaS4p/VzxSbNf6jc 3» data-rubrics=»43″>
Хэш = СтрЗаменить(Base64Значение(Лев(СохраняемоеЗначение, Найти(СохраняемоеЗначение, «,») — 1)), » «, «»);
Следует отметить, что СохраняемоеЗначение — это строка, которая хранит в себе два значения: для пароля и для пароля в верхнем регистре, разделенные запятой. Поэтому для получения хэша нужно взять первую (левую) часть сохраняемого значения.
Всё хорошо, но откуда нам взять это сохраняемое значение ? Если права есть, то мы можем зайти в базу и получить его описанным выше способом. Если прав нет и доступа в базу вообще нет — есть замечательная утилита Tool_1CD http://infostart.ru/public/19633. С её помощью можно открыть файл *.1cd, затем открыть таблицу V8USERS, выбрать пользователя и посмотреть, что хранится в поле DATA. Помимо всего прочего в DATA хранится сохраняемое значение пароля. Оно то нам и нужно. Этот способ актуален для файлового варианта работы с базой.
Для клиент-серверного варианта вопрос получения содержимого поля DATA таблицы V8USERS остается пока открытым. Может кто-то подскажет, как извлечь оттуда данные ? В частности, можно воспользоваться выгрузкой базы в формате *.dt (архивная копия наверняка где-то завалялась, необязательно актуальная), чтобы получить *.1cd, а дальше действовать через утилиту Tool_1CD.
3. А что дальше ? Хэш — не пароль
Итак, мы имеем хэш пароля, сформированный по алгоритму SHA-1. А это уже что-то.
Известно, что в «обратную сторону» по хэшу SHA-1 получить пароль практически невозможно. Поэтому все (т.е. единственный на сейчас) методы восстановления пароля по хэшу сводятся к банальному брутфорсу (перебору). Суть перебора проста — формируем строку, получаем для неё хеш по нужному алгоритму, сравниваем полученный хэш с нашим искомым хэшем. Если хэши совпали — ура, пароль найден. Если нет — формируем следующую строку и ищем дальше. В общем случае мы перебираем все возможные комбинации символов, получаем для них хэши и сравниваем с нашим, пока нам не повезёт.
Скептики скажут, что для восстановления сложного пароля понадобится не одна сотня лет. Это так в общем случае, но есть несколько НО:
- 1. Львиная доля пользователей баз 1С не заботится о сложности пароля и зачастую ограничивается только цифрами или несколькими буквами.
- 2. Часто пароли всех пользователей, в том числе и админов, в базе имеют один и тот же вид. Например, только 5 цифр.
- 3. Всегда можно узнать у какого-либо пользователя ИБ какого примерно вида были пароли. А это информация для маски перебора.
- 4. Существует масса словарей и сервисов (сайтов) с уже готовыми комбинациями пароль = хэш. Т.е. достаточно ввести хэш и система по своей базе найдет соответствующий ему пароль.
В интернете существует множество утилит, позволяющих сформировать хэш SHA-1 по переданной строке. Также существуют утилиты по восстановлению пароля по хэшу методом перебора или по словарю, по различным маскам. Например, есть интернет-сервис, на котором хранится довольно большой словарь уже подобранных хэшей. Им можно воспользоваться здесь: http://www.md5decrypter.co.uk/sha1-decrypt.aspx.
Итак, что имеем в итоге 3-х пунктов:
- 1. Узнаем сохранённое значение пароля для выбранного пользователя: либо из самой базы (если есть права), либо используя утилиту Tool_1CD (файловая база), либо вытягиваем данные из поля DATA таблицы V8USERS (клиент-сервер).
- 2. Получаем хэш SHA-1 пароля из левой части сохранённого значения: обработка прилагается.
- 3. Ищем пароль: формируем хэш строки, сравниваем с полученным хэшем (утилиты перебора по маске), либо интернет-сервисы с базами готовых словарей.
4.1. Получаем сохранённое значение пароля нужного пользователя. Берем базу *.1cd (предварительно можно скопировать файл базы, чтобы не блокировать для работы других пользователей), открываем ее в Tool_1CD, выбираем нужного пользователя в таблице V8USERS и смотрим содержимое поля DATA. Копируем в буфер обмена нужный кусок строки.

4.2. Запускаем обработку получения хэша в любой базе на платформе 8.2 (я создал пустую базу). Обработка элементарная, поэтому ее легко можно сконвертировать под любую другую платформу при необходимости. Копипастим сюда сохранённое значение пароля (из п. 4.1), вводим нужную маску (рекомендуется, иначе состариться успеем) и нажимаем «Восстановить пароль».

При восстановлении пароля используется консольная утилита sha1.exe http://www.egoroff.spb.ru/opinions/26.html. Она позволяет как сформировать хэш SHA-1 по переданной строке, так и восстановить строку по словарю (маске). Обработка формирует хэш SHA-1 по переданному значению сохраненного пароля, затем формирует строку запуска утилиты sha1.exe и запускает её. Вобщем, кому интересно, код открыт, там всё просто. Файл sha1.exe должен лежать в одном каталоге с обработкой.

Видно, что для пароля от 0 до 6 символов и содержащий буквы и цифры перебор занимает ВСЕГО 12 минут. Сходил, кофе сделал, вернулся — пароль уже подобран !

К слову сказать, мой супер пароль был подобран за 3.5 минуты (6 символов, буквы и цифры). Даже кофе не успел сделать. Вот такие результаты !
Параллельно решил проверить хэш на сайте: результат — мгновенное восстановление пароля ! Кстати на этом сайте хэши можно задать списком, т.е. восстановить пароли сразу всех пользователей базы.

5. Джентельменский набор
- 1. Tool_1CD — http://infostart.ru/public/19633
- 2. Обработка ВосстановлениеПароля1С — прилагается
- 3. sha1.exe — http://www.egoroff.spb.ru/opinions/26.html
- 4. Интернет-сервис — http://www.md5decrypter.co.uk/sha1-decrypt.aspx
- 5. Обработка АудитПаролейПользователей — прилагается
6. Подведем итоги
Как выяснилось, в большинстве случаев перебор паролей может дать быстрый результат. В наших реалиях при наличии различных дополнительных условий восстановление пароля пользователя 1С становится простой и решаемой задачей. Как показывает практика и мой личный опыт работы с клиентами, практически всегда пользователи ставят элементарные пароли на доступ в 1С. Бывает, конечно, когда сами админы ставят себе сложный пароль, но какой-нибудь главбух с полными правами при этом влепит себе дату рождения в качестве пароля и всё. Имеем сначала один пароль, потом все остальные. Вариантов использования масса. Причем представленный способ восстановления паролей гарантирует целостность и неизменность базы, т.е. нет изменений на физическом уровне.
Например, пароль, состоящий из:
- 1. Только из цифр 0..9, длиной максимум 9 символов восстанавливается за максимум 6.5 минут.
- 2. Только английских букв, длиной 7 символов — за максимум 44 минуты.
- 3. Буквы и цифры, длиной 6 символов — максимум 12 минут.
Выводы делайте сами )
7. Причина публикации статьи
Во многих организациях халатно относятся к безопасности и правам доступа к данным, в связи с чем практически любой желающий (внутри компании) может в той или иной степени способствовать утечке информации. Поэтому статья призывает обратить внимание разработчиков систем хранения данных к безопасности доступа к данным и устойчивости этих систем к утечкам информации. А также призывает обратить внимание администраторов баз данных на сложность паролей пользователей и способы их авторизации в системе.