К статье
Практический материал

Администрирование · 10 мин

Как хранить пароли в 1С: практическое руководство

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

Пароли в 1С встречаются в двух разных ситуациях. Первая — пароли пользователей самой информационной базы, которыми сотрудники входят в программу. Вторая — пароли от внешних сервисов (почта, FTP, обмен с банками, веб-сервисы), которые конфигурации сохраняют, чтобы выполнять обмены без участия человека. Подход к хранению в этих случаях принципиально различается, и смешивать их нельзя.

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

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

Как 1С хранит пароли пользователей информационной базы

Когда администратор задаёт пользователю пароль в конфигураторе или в режиме предприятия, платформа не сохраняет сам пароль. В базе остаётся только результат криптографического хеширования. При входе система вычисляет хеш введённого пароля и сравнивает его с сохранённым. Это означает, что даже администратор с полным доступом к файлу базы не может «посмотреть» чужой пароль — можно только сбросить его и задать новый.

Практическое следствие: если пользователь забыл пароль, не ищите способы его «восстановить». Единственный корректный путь — администратор задаёт новый пароль и передаёт его пользователю по защищённому каналу, а пользователь меняет его при первом входе, если это предусмотрено политикой.

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

Где конфигурации хранят пароли внешних сервисов

Обмен с банком, отправка почты, синхронизация с сайтом, подключение к FTP — всё это требует логинов и паролей, которые 1С должна где-то хранить, чтобы подключаться автоматически. Здесь хеширование не подходит: пароль нужен в исходном виде, чтобы передать его внешнему сервису. Поэтому применяется обратимое защищённое хранение.

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

Для почты в типовых конфигурациях пароль учётной записи хранится именно так. Аналогично — настройки обмена с банками и сервисами ЭДО. Если вы добавляете собственную интеграцию, правильный путь — использовать ту же подсистему, а не изобретать своё хранилище.

Как организовать хранение паролей в собственной разработке

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

Для защиты данных на уровне платформы можно использовать встроенные средства криптографии: менеджер криптографии и функции работы с защищёнными строками. В простейшем сценарии пароль шифруется ключом, который хранится отдельно от базы — например, в файле на сервере с ограниченными правами доступа или в переменных окружения сервера. Тогда даже копия базы, попавшая к постороннему, не даст доступа к внешним сервисам.

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

Порядок настройки хранения пароля внешнего сервиса
  1. 1
    Определите, поддерживает ли конфигурация безопасное хранилище (типовые на БСП — поддерживают)
  2. 2
    Введите логин и пароль в предназначенные поля настройки обмена, а не в произвольные реквизиты
  3. 3
    Проверьте, что пароль отображается маской и не виден в форме элемента
  4. 4
    Ограничьте права на настройку обмена только ответственным пользователям
  5. 5
    Выполните тестовое подключение и убедитесь, что обмен проходит без запроса пароля

Права доступа и разграничение

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

В клиент-серверном варианте дополнительный уровень защиты — размещение секретов на стороне сервера. Код, читающий пароль и подключающийся к внешнему сервису, должен выполняться в серверной процедуре. Тогда пароль не передаётся на клиентский компьютер и не может быть перехвачен через отладку на рабочем месте пользователя.

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

Типичные ошибки и их последствия

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

Вторая ошибка — хранение паролей в открытых реквизитах справочников. Даже если поле скрыто на форме, значение читается запросом, выгружается в Excel и видно в отчётах. Третья — передача базы подрядчику «на доработку» вместе с реальными паролями продуктивных сервисов. Перед передачей копии базы пароли внешних сервисов следует удалить или заменить на тестовые.

Типичные ошибки
01
Пароль в коде модуля — виден всем с доступом к конфигурации и попадает в копии и репозитории
02
Пароль в реквизите справочника — читается запросом и выгружается в отчёты
03
Передача копии базы подрядчику с реальными паролями — компрометация внешних сервисов
04
Запись пароля в журнал регистрации при отладке — секрет остаётся в логах надолго
05
Одинаковый пароль на всех базах и сервисах — утечка одного открывает доступ ко всем

Альтернативы хранению паролей в базе

Не всегда пароль вообще нужно хранить в 1С. Для части сценариев есть более безопасные варианты. Для почты и веб-сервисов многие поставщики поддерживают отдельные «пароли приложений» или токены с ограниченными правами — их утечка менее опасна, а отозвать их можно без смены основного пароля.

Для обмена с банками и ЭДО нередко применяется аутентификация по сертификату вместо пароля. Для серверных интеграций секреты можно держать во внешнем хранилище — в защищённом файле на сервере 1С или в специализированном менеджере секретов, а в базе хранить только идентификатор подключения.

Сравнение вариантов

Безопасное хранилище конфигурации (БСП)

Подходит для типовых конфигураций и большинства интеграций; ограничение — секрет живёт внутри базы

Сертификат вместо пароля

Подходит для банков и ЭДО; требует настройки на стороне сервиса

Токены и пароли приложений

Подходит для почты и веб-API; ограничение — зависит от поддержки поставщиком

Внешнее хранилище секретов

Подходит для серверных интеграций с высокими требованиями; сложнее во внедрении

Как проверить, что пароли хранятся безопасно

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

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

Контрольные точки

Как проверить результат

Отображение пароля в настройках обмена
Норма

Поле показывает маску, значение не читается из формы

Тревожный признак

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

Поиск паролей в коде конфигурации
Норма

Совпадений нет, подключения читают секреты из хранилища

Тревожный признак

Пароли найдены в модулях и комментариях

Права на настройки обменов
Норма

Доступ только у администраторов и ответственных

Тревожный признак

Настройки доступны широкому кругу пользователей

Копия базы для подрядчика
Норма

Пароли удалены или заменены тестовыми

Тревожный признак

Копия содержит реальные секреты

Итог

Что важно запомнить

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

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

Можно ли узнать забытый пароль пользователя 1С?

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

Где в типовой 1С:Бухгалтерии хранится пароль от почты?

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

Безопасно ли хранить пароль в константе или параметре?

Нет, если значение хранится открытым текстом. Константы читаются запросами и попадают в копии базы. Используйте безопасное хранилище или шифрование с внешним ключом.

Что делать, если пароль случайно попал в код конфигурации?

Сначала смените пароль на стороне внешнего сервиса — считайте его скомпрометированным. Затем удалите значение из кода, перенесите секрет в безопасное хранилище и проверьте, не осталось ли пароля в старых выгрузках и копиях базы.

Нужно ли шифровать всю базу 1С?

Штатного полного шифрования базы платформа не предоставляет. Защиту обеспечивают разграничение прав, безопасное хранение секретов и шифрование на уровне операционной системы или СУБД в клиент-серверном варианте.

Как передать базу подрядчику, не раскрывая пароли?

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