Где лежат пароли в базе 1С 8.3 и как закрыть их от подбора

· 10 мин

Содержание

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

Слабое место не в том, как 1С обеспечивает безопасность хеша, а вокруг него: открытый доступ к файлу базы, пароли в ярлыках и скриптах, общий логин к СУБД, отсутствие политики сложности. Механизм общий для платформы и одинаков в Бухгалтерии, ЗУП, УТ и других типовых конфигурациях.

Где лежит список пользователей и что в нём записано

Пользователи информационной базы — это объекты платформы, а не справочник конфигурации. Их видно в Конфигураторе: Администрирование → Пользователи. Справочник «Пользователи» в режиме 1С:Предприятие (в конфигурациях на БСП) лишь связан с ними и хранит дополнительные сведения : ФИО, физлицо, группы доступа.

Физически список хранится внутри базы, в служебной таблице V8Users:

  • 📁 файловая база — внутри файла 1Cv8.1CD, рядом с данными учёта;
  • 🗄️ клиент-серверная база — таблица v8users в базе данных на MS SQL Server или PostgreSQL.

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

Из этого следуют три практических вывода:

  1. Пользователи переезжают вместе с базой. Выгрузка .dt содержит их список и хеши паролей.
  2. Тот, кто скопировал файл 1Cv8.1CD или резервную копию, унёс с собой и хеши всех пользователей.
  3. Файл ibases.v8i со списком баз на рабочем месте паролей не содержит — там только пути и параметры подключения.

Если пользователь видит в окне входа заполненное имя, это не «сохранённый пароль». Платформа запоминает последнее введённое имя на компьютере, а пароль спрашивает каждый раз, если он задан.

Как устроен хеш пароля и почему он не вечен

Хеш — это строка фиксированной длины, из которой нельзя математически получить исходный пароль. Но если пароль простой, его можно подобрать: перебрать миллионы вариантов, захешировать каждый и сравнить с сохранённым значением.

В публичных разборах платформы 8.x описано, что в записи пользователя хранится хеш SHA-1 без соли, причём два значения: от пароля как он есть и от пароля в верхнем регистре. SHA-1 считается быстрым алгоритмом, а отсутствие соли означает, что одинаковые пароли дают одинаковый хеш в любой базе. Для перебора это удобно: пароль из 6 цифр по такому хешу подбирается на обычном компьютере за секунды.

В новых версиях платформы механизм хранения и проверки усиливали. Точную схему для своей сборки смотрите в описании изменений версии платформы. Практический вывод от версии не зависит:

Длина и состав пароляСтойкость к подбору по украденному хешу
6 цифр, дата рождения, «123456»подбирается практически сразу
8 символов, только строчные буквычасы, иногда минуты
10–12 символов: буквы разного регистра, цифры, знакидля перебора уже непрактично
Фраза из 4–5 случайных словнепрактично и легко запоминается

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

Аутентификация в клиент-серверной базе: какие пароли где

В клиент-серверном варианте паролей несколько, и их часто путают. Каждый хранится в своём месте.

Учётная записьДля чегоГде хранится
Пользователь информационной базывход в 1Схеш в таблице v8users базы данных
Пользователь СУБД (например, логин SQL)подключение сервера 1С к базе данныхв настройках кластера, в реестре сервера 1С
Администратор кластерауправление кластером через консоль или racв реестре кластера
Администратор центрального серверауправление агентом серверав реестре кластера

Пользователь 1С никогда не подключается к SQL напрямую. Клиент обращается к агенту сервера 1С (порт 1540), тот передаёт его менеджеру кластера (1541) и рабочим процессам. К СУБД ходит уже рабочий процесс сервера 1С под логином, который указали при создании базы в поле пользователя сервера баз данных.

Реестр кластера — это файл 1CV8Clst.lst в каталоге службы, по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\. В нём лежат параметры баз, включая данные для подключения к СУБД. Доступ к каталогу srvinfo должен быть только у учётной записи службы сервера 1С и администраторов.

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

Если у пользователя включены оба способа (1С:Предприятие и ОС), пароль 1С всё равно работает. Простой пароль при включённой доменной аутентификации — открытая дверь для входа с чужого компьютера.

Политики паролей и блокировка при переборе

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

Параметры платформы

В Конфигураторе откройте Администрирование → Параметры информационной базы. Там задаются:

  • 🔢 минимальная длина пароля пользователей;
  • 🔐 проверка сложности пароля — платформа не примет пароль, похожий на имя пользователя или на простую последовательность, и потребует символы разных групп: строчные и прописные буквы, цифры, знаки;
  • 🚫 в свежих версиях платформы — защита от перебора: число неудачных попыток входа и время блокировки после них.

Набор полей в этом окне зависит от версии платформы: на старых сборках последних пунктов может не быть.

Настройки в конфигурациях на БСП

В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях есть свой набор параметров: Администрирование → Настройки пользователей и прав → Настройки входа. Здесь обычно настраивают отдельно для внутренних и внешних пользователей:

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

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

Минимальная политика паролей для рабочей базы
Выполнено: 0 / 6

Сброс пароля и восстановление доступа

Пароль в 1С нельзя восстановить, его можно только заменить. Порядок зависит от того, кто остался с правами администратора.

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

Сменить пароль сотруднику можно двумя способами:

  1. В режиме 1С:Предприятие: Администрирование → Настройки пользователей и прав → Пользователи, откройте карточку и задайте новый пароль командой установки пароля.
  2. В Конфигураторе: Администрирование → Пользователи, двойной щелчок по пользователю, вкладка «Основные», поля «Пароль» и «Подтверждение пароля».

Хорошая практика — после сброса включить флажок, требующий от пользователя сменить пароль при первом входе (в конфигурациях на БСП такой есть в карточке). Тогда временный пароль, сказанный по телефону, живёт до первого входа.

В конфигурациях на БСП меняйте пароль через карточку в режиме 1С:Предприятие. Так изменения попадут и в учётную запись платформы, и в связанный элемент справочника «Пользователи», а запись отразится в журнале регистрации.

Пароль администратора утерян

Это ситуация, которую нельзя решить кнопкой. Безопасные варианты:

  • 🔁 восстановить базу из резервной копии, где пароль известен, и перенести недостающие данные;
  • 👥 найти другого пользователя с правом «Администрирование» — его прав хватает, чтобы сбросить пароль первому;
  • 🛠️ для клиент-серверной базы — поручить администратору СУБД вмешательство в служебную таблицу пользователей на копии базы.

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

Ручные правки служебных таблиц 1С без резервной копии могут сделать базу неработоспособной. Перед вмешательством сделайте копию средствами СУБД, а все сеансы пользователей будут прерваны — выбирайте нерабочее время.

Кто сейчас может войти в базу с правами администратора?

Пароль администратора кластера

Если забыли пароль администратора кластера сервера 1С, не пересоздавайте кластер. Остановите службу сервера 1С в нерабочее время (все сеансы оборвутся), восстановите файл реестра кластера из резервной копии или обратитесь к администратору сервера, который его настраивал.

Как пароли утекают в обход хеша

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

  • 🖥️ ярлыки и .bat-файлы с параметрами запуска 1cv8.exe ENTERPRISE /S"server\base" /N"Админ" /P"пароль". Пароль после /P лежит открытым текстом;
  • ⏰ планировщик Windows — задачи регламентной выгрузки .dt или пакетного обновления, где пароль прописан в команде;
  • 🔗 внешние системы — сайты, сервисы обмена и скрипты, подключающиеся через COM или строку соединения с Usr= и Pwd=;
  • 🌐 публикация на веб-сервере — в файле default.vrd строка соединения может содержать имя и пароль пользователя, под которым идёт подключение;
  • 💾 резервные копии — файлы .dt и копии 1Cv8.1CD на общем сетевом диске или флешке содержат хеши всех пользователей.

Пример того, как не надо делать в пакетном файле:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Base" /N"Администратор" /P"12345" /DumpIB"D:\Backup\base.dt"

Для таких задач заведите отдельного технического пользователя с минимально нужными правами и сложным паролем. Файл скрипта храните в каталоге, доступном только учётной записи, под которой он запускается.

Как защитить учётные записи от компрометации

Список ниже — то, что реально снижает риск. Пункты расположены от самых простых к требующим администратора.

  1. Уберите администраторов из списка выбора. В свойствах пользователя снимите флажок «Показывать в списке выбора»: злоумышленнику придётся угадывать ещё и имя.
  2. Разделите права. Повседневная работа — под обычной учётной записью, «Полные права» — только для настройки и обновлений.
  3. Включите вход через Windows для сотрудников в домене. Пароль 1С тогда можно не задавать, а сложность и блокировку обеспечит политика домена.
  4. Закройте файл базы. Для файловой базы права на каталог — только у пользователей 1С и администраторов, без «Все: полный доступ». Каталог базы не должен быть доступен из гостевой сети.
  5. Отдельный логин СУБД на каждую базу, а не sa или postgres. Логину хватает прав на свою базу.
  6. Публикуйте базы в интернет только по HTTPS. Без шифрования имя и пароль при входе через тонкий клиент или браузер передаются по сети в доступном для перехвата виде.
  7. Смотрите журнал регистрации. Фильтр по событию входа (Сеанс. Аутентификация, а также ошибки аутентификации) покажет серию неудачных попыток под одним именем.
  8. Отключайте ушедших сотрудников в день увольнения. В конфигурациях на БСП для этого в карточке есть запрет входа в программу. Удалять пользователя не нужно: его имя останется в истории документов.

Не превращайте политику в формальность. Пароль из 12 символов, записанный на стикере у монитора, защищает хуже, чем фраза из четырёх слов, которую сотрудник помнит.

Частые вопросы

Может ли администратор 1С увидеть пароль пользователя?
Нет. В базе хранится только хеш, обратного преобразования нет. Администратор может лишь назначить новый пароль.
Сохраняются ли пароли при выгрузке базы в .dt?
Да. Выгрузка содержит список пользователей с хешами паролей. После загрузки .dt в другую базу пользователи входят со старыми паролями.
Где хранится пароль, если включён вход через Windows?
Пароль домена 1С не хранит вообще. В базе записано только имя доменной учётной записи, а проверку выполняет Windows.
Можно ли запретить сотруднику менять пароль самому?
Да. В свойствах пользователя есть флажок «Пользователю запрещено изменять пароль». Его ставят для технических учётных записей, пароль которых используется в скриптах.
Если пароль пустой, это опасно?
Да, если у пользователя включена аутентификация 1С:Предприятия. Войти сможет любой, кто знает имя и имеет доступ к базе. Задайте пароль или оставьте только вход через Windows.