Вопрос защиты корпоративных данных и контроля доступа к информационным базам всегда остается актуальным. Классическая пара "логин-пароль" имеет свои уязвимости: пароли забывают, записывают на стикерах, передают коллегам или они могут быть перехвачены злоумышленниками. Чтобы наглядно убедиться в слабости простых защитных комбинаций, можно использовать специальный инструмент для анализа паролей пользователей в 1С, который показывает уязвимость коротких цифровых кодов. В связи с этим возникает интерес к биометрической идентификации (отпечаток пальца, сканирование лица, рисунок вен ладони). Однако, как мы выяснили, прямая реализация такой системы в 1С сопряжена с рядом технических и юридических сложностей.
В этой статье мы подробно разберем, как можно организовать вход в 1С по биометрии, рассмотрим юридические ограничения (включая 572-ФЗ), проанализируем технические варианты реализации (от Windows Hello до Native API) и обсудим альтернативные методы защиты.
Прежде чем переходить к технической реализации, мы обязаны рассмотреть правовую сторону вопроса. Это критически важно, так как нарушение законодательства в этой сфере влечет за собой огромные штрафы.
Согласно Федеральному закону № 572-ФЗ, регулирующему идентификацию и аутентификацию физических лиц с использованием биометрических персональных данных, ситуация для коммерческих компаний существенно ужесточилась.
Разберем основные риски и правила:
Вывод: Хранить отпечатки пальцев или сканы сетчатки непосредственно в справочниках или регистрах 1С (например, в ХранилищеЗначения) — это прямой путь к нарушению закона. Решение должно быть архитектурно построено так, чтобы 1С не касалась биометрических данных.
Наиболее безопасный, юридически чистый и технически грамотный способ — делегировать задачу аутентификации операционной системе. 1С:Предприятие отлично умеет работать с аутентификацией операционной системы (SSO).
Рассмотрим, как это работает на практике:
Шаг 1. Настройка Windows Hello for Business.
Современные версии Windows (10/11) имеют встроенный механизм Windows Hello. Он позволяет пользователю входить в систему, используя:
Биометрические данные при этом хранятся локально на устройстве пользователя в зашифрованном модуле TPM (Trusted Platform Module) и никуда не передаются. Это снимает большинство вопросов по ФЗ-572, так как компания не хранит базу биометрии.
Шаг 2. Настройка 1С.
В конфигураторе 1С для каждого пользователя мы настраиваем сопоставление с пользователем домена или локального компьютера. Для более сложных сценариев, например, когда требуется запуск тонкого клиента через веб-публикацию с устройств вне домена, можно применить лаунчер для 1C с проверкой доменной авторизации.
Посмотрим на настройки пользователя в конфигураторе:
DOMAIN\IvanovII.Результат:
Сценарий работы выглядит так:
DOMAIN\IvanovII пользователю ИБ и пускает в систему без лишних вопросов.Это самое надежное и "бесшовное" решение. 1С не знает про палец, она доверяет Windows, который проверил палец.
Если ваши сотрудники работают не за стационарными ПК, а используют мобильные устройства (планшеты, смартфоны), платформа 1С предоставляет нативные возможности биометрии. При разработке таких решений полезно изучить аутентификацию стандартными средствами 1С по JWT-токенам, что обеспечит безопасный обмен данными между мобильным устройством и сервером.
В мобильной платформе 1С реализована поддержка биометрических сканеров, встроенных в телефоны (Touch ID, Face ID и их аналоги на Android). Это удобно, так как вся сложная работа по распознаванию выполняется операционной системой телефона.
Рассмотрим алгоритм реализации:
Примерная логика кода при запуске мобильного приложения:
// Проверяем, поддерживается ли биометрия на устройстве
Если СредстваБиометрическойАутентификации.Поддерживается() Тогда
// Пытаемся аутентифицировать пользователя
Описание = Новый ОписаниеОповещения("ОбработкаРезультатаБиометрии", ЭтотОбъект);
СредстваБиометрическойАутентификации.НачатьАутентификацию(Описание, "Приложите палец для входа в 1С");
КонецЕсли;
В процедуре обработки результата мы анализируем ответ:
Процедура ОбработкаРезультатаБиометрии(Результат, Параметры) Экспорт
Если Результат = Истина Тогда
// Биометрия прошла успешно, выполняем вход в систему
ВыполнитьВходВСистемуБезПароля();
Иначе
// Биометрия не прошла, просим ввести пароль вручную
ПоказатьФормуВводаПароля();
КонецЕсли;
КонецПроцедуры;
Это штатный, безопасный и удобный метод, но он применим только для мобильных приложений.
Если требуется именно сканирование пальца на стационарном ПК непосредственно в окне 1С (например, для подтверждения конкретной операции, а не только входа), потребуется использование внешнего оборудования и драйверов. Существует проверенная биометрия ANVIZ для отпечатков пальцев в 1с8, где на примере SDK показано, как подружить сканер с платформой.
Обычно используются USB-сканеры (например, ZKTeco, BioLink, Digital Persona). Для интеграции с 1С необходимо:
Важно: Как мы упоминали в разделе про юридические аспекты, хранение базы хэшей отпечатков в базе 1С несет огромные риски. Поэтому часто используют промежуточное ПО (Middleware).
Схема с Middleware (например, BioLink IDenium):
Такой подход (Single Sign-On на уровне перехвата форм) позволяет внедрить биометрию в любое приложение, не изменяя код конфигурации 1С.
Современной альтернативой "чистой" биометрии является использование аппаратных токенов (Rutoken, YubiKey) с поддержкой стандартов FIDO2.
Некоторые модели таких ключей имеют встроенный сканер отпечатка пальца прямо на корпусе USB-токена. Сверка отпечатка происходит внутри ключа ("Match-on-Card").
Преимущества:
Если цель внедрения биометрии — защита от кражи пароля, то гораздо проще и дешевле внедрить двухфакторную аутентификацию (2FA). Это решает задачу безопасности без покупки сканеров и проблем с законом.
Для повышения общего уровня безопасности рекомендуется организовать хранение секретов в Hashicorp Vault для 1С, чтобы исключить хранение паролей в открытом виде или в базе.
Как это реализовать в 1С:
Пример проверки TOTP кода можно реализовать, используя внешние библиотеки шифрования или встроенные средства платформы для работы с хэшированием.
Псевдокод логики входа:
Процедура ПриНачалеРаботыСистемы()
Если НЕ ПользовательПрошелВторойФактор() Тогда
Отказ = Истина;
ОткрытьФорму("Обработка.ДвухфакторнаяАвторизация.Форма");
// Основной запуск прерывается до ввода кода
КонецЕсли;
КонецПроцедуры
Подводя итог обсуждению и анализу доступных технологий, сформулируем рекомендации для защиты доступа к 1С:
Active Directory + Windows Hello for Business + Аутентификация ОС в 1С. Это бесплатно (если уже есть домен), надежно и перекладывает ответственность за биометрию на Microsoft.