Двухфакторная аутентификация (2FA) в 1С «из коробки»: полностью автономная реализация TOTP и генерации QR-кодов на чистом встроенном языке

28.05.26

Администрирование - Информационная безопасность

Практическое руководство по внедрению двухфакторной аутентификации (аналог Google Authenticator / Яндекс Ключ) в любую конфигурацию 1С. Алгоритмы генерации секретных ключей Base32, вычисления HMAC-SHA1 и валидации кодов реализованы исключительно на встроенном языке 1С с использованием побитовых операций и потоков. В комплекте стабильный метод генерации QR-кода через стандартную БСП-компоненту, защищенный от падения платформы. Полный готовый код и рабочая логика содержатся в прикрепленной к публикации внешней обработке.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Двухфакторная аутентификация (2FA) в 1С
.epf 428,08Kb
14 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Рано или поздно перед разработчиком встает задача дополнительной защиты учетных записей пользователей (особенно для веб-клиентов или баз, смотрящих наружу). Стандартный подход с отправкой SMS требует постоянных затрат на шлюзы, а отправка кодов на Email не всегда оперативна. Самый надежный и бесплатный мировой стандарт — TOTP (Time-Based One-Time Password), используемый в Google Authenticator.

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

 

Как это устроено: Основные вехи алгоритма

Реализация алгоритма внутри прикрепленной обработки разбита на три логических шага:

  1. Криптостойкая генерация ключей: Создание случайных секретов в формате Base32 средствами встроенного ГенератораСлучайныхЧисел платформы и эффективной побитовой логики (без использования тяжелых строковых манипуляций).

  2. Чистый расчет HMAC-SHA1: Математический расчет хэша на встроенном языке 1С. Для преобразования хэш-строк в байты задействованы объекты ПотокВПамяти и ЗаписьДанных, а сама логика HMAC построена на платформенных функциях ПобитовоеИ(), ПобитовоеИЛИ() и ПобитовоеИсключительноеИЛИ().

  3. Защита от рассинхронизации (Дрейф времени): Мобильный телефон пользователя и сервер 1С могут иметь небольшое расхождение в часах. Метод проверки в обработке учитывает временной дрейф и валидирует не только текущий 30-секундный интервал, но и соседние ($\pm 30$ секунд), сводя ложные отказы к нулю.

  4. Стабильная генерация QR-кода: Метод интеграции со стандартной компонентой 1С QRCodeExtension (из макетов БСП) переписан под безопасный вызов функции GenerateQRCode(...). Это полностью решает проблему критических вылетов сеанса 1С (APPCRASH), которые часто происходят при попытке напрямую установить свойства Ширина или УровеньКоррекцииОшибок у NativeAPI-компонент.

 

Архитектура интеграции в вашу систему

В прикрепленном файле обработки вы найдете готовые экспортные функции, которые можно перенести в любой общий модуль. Интеграция в логику конфигурации выглядит следующим образом:

  • При привязке 2FA в профиле: Вызывается функция генерации ключа Base32, результат сохраняется в карточке пользователя (например, в скрытом реквизите справочника Пользователи). На основании этого ключа генерируется табличный документ с QR-кодом для сканирования смартфоном.

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

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

 

Инструкция по внедрению 2FA (TOTP) в систему

1. Подготовка

Перенесите функции из обработки в отдельный серверный модуль (например, БезопасностьСервер). Убедитесь, что модуль имеет флаг «Сервер» и «ВызовСервера».

2. Хранение секретов

В справочник Пользователи (или ПользователиИнформационнойБазы) добавьте строковый реквизит СекретTOTP (длина 32-64 символа).

Важно: Данные в этом реквизите должны быть доступны только для чтения администраторам или самому пользователю.

3. Настройка профиля пользователя

Создайте форму, в которой пользователь может включить 2FA:

  1. Вызовите функцию СгенерироватьСекретныйКлючBase32().

  2. Сохраните результат в реквизит СекретTOTP пользователя.

  3. Сгенерируйте QR-код через ПолучитьQRКодДляАутентификатора(...) и выведите его на форму в поле «Табличный документ».

4. Интеграция в процесс авторизации

После успешной проверки основного пароля 1С, добавьте проверку кода:

Фрагмент кода
// Проверка кода второго фактора при входе
// Параметры:
//  СекретTOTP - Строка
//  ВведенныйКод - Строка
// Возврат: Булево
Функция ПроверитьКодДоступа(СекретTOTP, ВведенныйКод) Экспорт
     
    Если БезопасностьСервер.ПроверитьКод2FA(Секрет, ВведенныйКод) Тогда
       Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;
КонецФункции

 

Требования к среде

  • Платформа: 1С:Предприятие 8.3 8.3.11.2867 и выше (с поддержкой встроенных побитовых операций). Кроссплатформенно (исправно работает на Windows- и Linux-серверах).

  • Компонента: Внутри обработки уже присутствует двоичный макет КомпонентаПечатиQRКода со стандартной библиотекой печати штрихкодов от 1С.

Вступайте в нашу телеграмм-группу Инфостарт

2FA Двухфакторная аутентификация Google Authenticator TOTP HMAC-SHA1 Base32 QR-код QRCodeExtension Побитовые операции Безопасность 1С Внешняя компонента Защита аккаунта Потоки данных

См. также

Информационная безопасность Чистка данных Системный администратор Разработчик Руководитель проекта 1С 8.3 1С:Бухгалтерия 3.0 Платные (руб)

Обезличивает копию рабочей базы 1С перед передачей наружу и возвращает настоящие данные обратно, когда база вернулась. Это обратимая псевдонимизация: соответствия «исходное - псевдоним» пишутся в отдельный зашифрованный датасет, который остаётся у владельца. Работает на любой конфигурации - обходит метаданные и находит персональные данные сам, без списка реквизитов под конкретную базу. Суммы, количества, даты и номера документов не трогает никогда, оборотно-сальдовая до и после совпадает до копейки. Проверено на трёх конфигурациях: 106 031 объект, 215 642 замены, ноль ошибок, возврат 100 процентов.

42700 руб.

18.08.2026    1550    3    0    

3

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

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

6000 руб.

15.04.2026    4205    12    0    

25

Информационная безопасность Архивирование (backup) Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Утром базы не открылись: ночью хакеры зашифровали серверы, базы 1С, почту, кассы, мобильные приложения и бэкапы в сети. Критичные базы подняли из копий на отключённых дисках и потеряли около 10 часов данных. Рассказываю, как прошли первые сутки, что увидел только человек, что мы закрыли после атаки и какие двери в самой базе 1С программист может проверить у себя уже сегодня.

10.11.2026    10430    nedomolkov.ivan    56    

19

Информационная безопасность Нейросети Разработчик 1С 8.3 Бесплатно (free)

Скрипт, который написал Claude Code и каждый час запускал планировщик, ночью пометил на удаление тысячи документов перемещений в продуктивной базе 1С на 5 ТБ. Остатки уехали на миллиардные суммы, база стояла до обеда, около 500 заказов с маркетплейсов и сайта ушли в отмены. Как это произошло, где была ошибка в определении дублей и что я сделал, чтобы это не повторилось: агентам только чтение, алерты в Telegram на массовую запись, ревизия планировщиков.

06.10.2026    6447    nedomolkov.ivan    164    

48

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

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

180000 руб.

05.09.2025    5957    2    1    

4

Информационная безопасность Пароли 1С:Предприятие 8 Бесплатно (free)

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    17634    kamisov    20    

66

Информационная безопасность Разработчик 1С:Предприятие 8 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    27300    AlexeyPROSTO_1C    10    

46

Информационная безопасность Разработчик 1С:Предприятие 8 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)
Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    6393    platonov.e    1    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Plotnikov 6 29.05.26 10:16 Сейчас в теме
Добрый день! А можно выложить дополнительно инструкцию как внедрять данное решение?
2. Kaliostr0 38 29.05.26 11:42 Сейчас в теме
Добрый день! добавил.
3. PetroD 1 29.05.26 11:48 Сейчас в теме
Доброго времени! что то непонятен алгоритм, вот я телефоном снял куркод, и что дальше происходит? на телефоне должна быть установлена какая то программа?
4. Kaliostr0 38 29.05.26 12:01 Сейчас в теме
(3)
Доброго времени! что то непонятен алгоритм, вот я телефоном снял куркод, и что дальше происходит? на телефоне должна быть установлена какая то программа?


Да, на телефоне обязательно должно быть установлено специальное приложение-аутентификатор. куркод снимаете через эти приложения/

Самые популярные и бесплатные:

Google Authenticator

Яндекс Ключ

Microsoft Authenticator

2FAS (или любое другое с поддержкой TOTP)

Эти приложения абсолютно автономны, им даже не нужен интернет после установки.
5. SerVer1C 1146 01.06.26 11:43 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация