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

28.05.26

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

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

Файлы

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

Наименование Скачано Купить файл
Двухфакторная аутентификация (2FA) в 1С
.epf 428,08Kb
5 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С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

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

6000 руб.

15.04.2026    1948    2    0    

20

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

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

180000 руб.

05.09.2025    4778    1    1    

3

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

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

30.05.2024    14955    kamisov    19    

66

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

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

27.02.2024    23323    AlexeyPROSTO_1C    10    

44

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

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

1 стартмани

27.10.2023    5131    platonov.e    1    

23

Информационная безопасность Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Россия Абонемент ($m)

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

5 стартмани

24.04.2023    9306    30    soulner    8    

35

Информационная безопасность Системный администратор Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    11512    77    Silenser    18    

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


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

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

Google Authenticator

Яндекс Ключ

Microsoft Authenticator

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

Эти приложения абсолютно автономны, им даже не нужен интернет после установки.
Для отправки сообщения требуется регистрация/авторизация