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

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно разберем, как можно организовать вход в 1С по биометрии, рассмотрим юридические ограничения (включая 572-ФЗ), проанализируем технические варианты реализации (от Windows Hello до Native API) и обсудим альтернативные методы защиты.

Юридический аспект: можно ли собирать биометрию?

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

Согласно Федеральному закону № 572-ФЗ, регулирующему идентификацию и аутентификацию физических лиц с использованием биометрических персональных данных, ситуация для коммерческих компаний существенно ужесточилась.

Разберем основные риски и правила:

  1. Запрет на локальное хранение. Коммерческим организациям (за редким исключением аккредитованных государством) фактически запрещено самостоятельно собирать и хранить "сырые" биометрические данные (фотографии лица для распознавания, математические модели отпечатков) в своих локальных базах данных, включая базы 1С.
  2. Единая биометрическая система (ЕБС). Легальный путь использования биометрии для идентификации подразумевает взаимодействие с государственной системой ЕБС. Это сложный и дорогостоящий процесс интеграции, который вряд ли оправдан для задачи "вход 4 бухгалтеров в 1С".
  3. Исключения для СКУД. Существует нюанс касательно систем контроля и управления доступом (СКУД) на территорию. Если биометрия используется исключительно для прохода через турникет и данные хранятся локально на контроллерах без передачи в информационные системы, это регулируется иначе. Однако авторизация в программном обеспечении (1С) уже трактуется как идентификация в информационной системе.
  4. Позиция Роструда. Работодатель не вправе принуждать сотрудника сдавать биометрию. Если сотрудник откажется прикладывать палец, вы обязаны обеспечить ему альтернативный способ входа (пароль).

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

Способ 1: Интеграция через операционную систему (Windows Hello и AD)

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

Рассмотрим, как это работает на практике:

Шаг 1. Настройка Windows Hello for Business.

Современные версии Windows (10/11) имеют встроенный механизм Windows Hello. Он позволяет пользователю входить в систему, используя:

Биометрические данные при этом хранятся локально на устройстве пользователя в зашифрованном модуле TPM (Trusted Platform Module) и никуда не передаются. Это снимает большинство вопросов по ФЗ-572, так как компания не хранит базу биометрии.

Шаг 2. Настройка 1С.

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

Посмотрим на настройки пользователя в конфигураторе:

  1. Открываем список Пользователи.
  2. Находим нужного сотрудника.
  3. Устанавливаем флаг Аутентификация операционной системы.
  4. Выбираем пользователя домена, например: DOMAIN\IvanovII.

Результат:

Сценарий работы выглядит так:

  1. Бухгалтер подходит к компьютеру.
  2. Windows просит приложить палец или посмотреть в камеру.
  3. Происходит вход в Windows.
  4. Бухгалтер запускает ярлык 1С.
  5. Платформа 1С видит, что пользователь уже аутентифицирован в ОС, проверяет соответствие DOMAIN\IvanovII пользователю ИБ и пускает в систему без лишних вопросов.

Это самое надежное и "бесшовное" решение. 1С не знает про палец, она доверяет Windows, который проверил палец.

Способ 2: Использование мобильного клиента 1С

Если ваши сотрудники работают не за стационарными ПК, а используют мобильные устройства (планшеты, смартфоны), платформа 1С предоставляет нативные возможности биометрии. При разработке таких решений полезно изучить аутентификацию стандартными средствами 1С по JWT-токенам, что обеспечит безопасный обмен данными между мобильным устройством и сервером.

В мобильной платформе 1С реализована поддержка биометрических сканеров, встроенных в телефоны (Touch ID, Face ID и их аналоги на Android). Это удобно, так как вся сложная работа по распознаванию выполняется операционной системой телефона.

Рассмотрим алгоритм реализации:

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

Примерная логика кода при запуске мобильного приложения:


// Проверяем, поддерживается ли биометрия на устройстве
Если СредстваБиометрическойАутентификации.Поддерживается() Тогда
    // Пытаемся аутентифицировать пользователя
    Описание = Новый ОписаниеОповещения("ОбработкаРезультатаБиометрии", ЭтотОбъект);
    СредстваБиометрическойАутентификации.НачатьАутентификацию(Описание, "Приложите палец для входа в 1С");
КонецЕсли;

В процедуре обработки результата мы анализируем ответ:


Процедура ОбработкаРезультатаБиометрии(Результат, Параметры) Экспорт
    Если Результат = Истина Тогда
        // Биометрия прошла успешно, выполняем вход в систему
        ВыполнитьВходВСистемуБезПароля();
    Иначе
        // Биометрия не прошла, просим ввести пароль вручную
        ПоказатьФормуВводаПароля();
    КонецЕсли;
КонецПроцедуры;

Это штатный, безопасный и удобный метод, но он применим только для мобильных приложений.

Способ 3: Внешние компоненты и Native API (Сложный путь)

Если требуется именно сканирование пальца на стационарном ПК непосредственно в окне 1С (например, для подтверждения конкретной операции, а не только входа), потребуется использование внешнего оборудования и драйверов. Существует проверенная биометрия ANVIZ для отпечатков пальцев в 1с8, где на примере SDK показано, как подружить сканер с платформой.

Обычно используются USB-сканеры (например, ZKTeco, BioLink, Digital Persona). Для интеграции с 1С необходимо:

  1. Драйвер (Внешняя компонента). Производители оборудования часто предоставляют SDK. На основе SDK пишется внешняя компонента (Native API) для 1С (обычно на C++ или C#).
  2. Логика работы. Компонента подписывается на события устройства. Когда пользователь прикладывает палец, устройство генерирует хэш-код (математическую модель).
  3. Сравнение. 1С получает этот хэш и ищет его в регистре сведений.

Важно: Как мы упоминали в разделе про юридические аспекты, хранение базы хэшей отпечатков в базе 1С несет огромные риски. Поэтому часто используют промежуточное ПО (Middleware).

Схема с Middleware (например, BioLink IDenium):

  1. Устанавливается сервер биометрической идентификации.
  2. В 1С пароли пользователей заменяются на очень сложные и длинные.
  3. На клиентских ПК устанавливается специальное ПО, которое перехватывает окна ввода пароля.
  4. Когда появляется окно авторизации 1С, ПО просит приложить палец.
  5. Если палец верный, ПО само "впечатывает" сложный пароль в поле 1С и нажимает Enter.

Такой подход (Single Sign-On на уровне перехвата форм) позволяет внедрить биометрию в любое приложение, не изменяя код конфигурации 1С.

Способ 4: Аппаратные ключи (FIDO2 / WebAuthn)

Современной альтернативой "чистой" биометрии является использование аппаратных токенов (Rutoken, YubiKey) с поддержкой стандартов FIDO2.

Некоторые модели таких ключей имеют встроенный сканер отпечатка пальца прямо на корпусе USB-токена. Сверка отпечатка происходит внутри ключа ("Match-on-Card").

Преимущества:

Способ 5: Двухфакторная аутентификация (2FA) как альтернатива

Если цель внедрения биометрии — защита от кражи пароля, то гораздо проще и дешевле внедрить двухфакторную аутентификацию (2FA). Это решает задачу безопасности без покупки сканеров и проблем с законом.

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

Как это реализовать в 1С:

  1. При запуске 1С пользователь вводит логин и пароль.
  2. Система проверяет их корректность, но не открывает основной интерфейс.
  3. Вместо этого открывается маленькая форма с полем "Введите код".
  4. 1С генерирует случайный код и отправляет его пользователю (через Telegram-бота, SMS или на корпоративную почту).
  5. Либо используется алгоритм TOTP (Google Authenticator), где 1С сверяет код с алгоритмом генерации по времени.

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

Псевдокод логики входа:


Процедура ПриНачалеРаботыСистемы()
    Если НЕ ПользовательПрошелВторойФактор() Тогда
        Отказ = Истина;
        ОткрытьФорму("Обработка.ДвухфакторнаяАвторизация.Форма");
        // Основной запуск прерывается до ввода кода
    КонецЕсли;
КонецПроцедуры

Резюме и рекомендации

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

  1. Не изобретайте велосипед. Пытаться писать свои драйверы для сканеров и хранить отпечатки в базе 1С — это дорого, сложно и юридически опасно.
  2. Используйте средства ОС. Самый правильный путь — связка Active Directory + Windows Hello for Business + Аутентификация ОС в 1С. Это бесплатно (если уже есть домен), надежно и перекладывает ответственность за биометрию на Microsoft.
  3. Рассмотрите 2FA. Двухфакторная аутентификация через Telegram или приложение-аутентификатор закрывает проблему "подсмотренных паролей" так же эффективно, как и биометрия. При необходимости можно провести профилактику безопасности.
  4. Физическая безопасность. Как верно отметили участники обсуждения, никакая биометрия не поможет, если к серверу с базой данных есть физический доступ посторонних. Начните защиту с ограничения доступа в серверную и шифрования дисков.
← На главную