Компонента аутентификации и шифрования с помощью биометрической информации для Андроид
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В мобильных приложениях часто бывает необходимо хранить секретную информацию, например пароли. Если записывать ее в базу данных, всегда нужно учитывать риск утери устройства и, соответственно, возможность доступа к ней посторонних лиц. В мобильных операционных системах существуют механизмы защиты ключей шифрования паролями, порождаемыми биометрическими сканерами. Если подробнее, информация шифруется ключом с паролем из хеша, полученного из сканера. Для расшифровки извлеченный из хранилища ключ должен быть "подписан" тем же отпечатком. Данная компонента позволяет воспользоваться такими механизмами ОС Андроид.
Стандартный диалог запроса биометрии введен в 28-ю версию Андроид, именно для этой или более высокой версии предназначена компонента. В меньших версиях она загружается, но метод Подключить возвращает Ложь. Использование стандартного диалога гарантирует поддержку других средств аутентификации (например сканера сетчатки или лица), которые появятся в Андроид позже.
Примечание: Начиная с 23й версии, Андроид имеет другой набор классов для использования сканера отпечатка - fingerprint. Он не содержит визуальных элементов, чтобы им воспользоваться, необходимо самостоятельно делать активность (или форму 1С). Автор этой статьи, его клиенты и коллеги уже два года успешно используют компоненту, выполненную на основе этого, ныне устаревшего, механизма.
Примечание: В 15-й версии платформы 1С объявила о внедрении биометрии в мобильной платформе, но мне не удалось найти способы ее использования и узнать "идеологию" работы ни в справочной информации, ни на сайте ИТС. Возможно, я не проявил необходимой настойчивости в поиске.
Компонента реализована как устройство ввода из данного стандарта. Имя объекта - BiometricDialog:
ПодключитьВнешнююКомпоненту("ОбщийМакет.Компонента", "IKSoftWare", ТипВнешнейКомпоненты.Native);
Компонента = Новый("AddIn.IKSoftWare.BiometricDialog");
Она имеет следующие параметры:
- KeyName - строка без пробелов. Должен быть обязательно установлен. Он определяет имя контейнера ключа. Если Вы зашифровали информацию с определенным именем ключа, для ее расшифровки необходимо использовать точно такое же имя. Конечно же, вы можете использовать сколько угодно ключей.
- Action - целое число равное 0 для шифрования или 1 для расшифровки
- Data - данные для шифрования (строка) или для расшифровки
- DecodeKey - открытый ключ для расшифровки. Параметр необходимо задать, если Action = 1. Он возвращается во внешнем событии после успешного шифрования (см. ниже)
- DialogTitle - строка-заголовок диалога, необходимо обязательно установить
- CancelText - текст на кнопке отмены, необходимо обязательно установить
- DialogSubtitle - строка-подзаголовок диалога
- DialogDescription - строка описания, отображаемая на диалоге
После подключения и инициализации параметров, необходимо вызвать метод Подключить. Если все условия вывода диалога выполнены (кроме соответствующего релиза ОС необходима регистрация в системе хотя бы одного отпечатка), он вернет Истину и отобразит всплывающий диалог:

Его закрытие вызывает в платформе такие внешние события:
- DriverError - ошибка драйвера, аргумент события "Данные" содержит текст описания ошибки
- AuthenticationFailed - ошибка проверки (приложен чужой или другой палец). Данные пустые.
- AuthenticationHelp - прочие ошибки распознавания, "Данные" содержит текст
- AuthenticationCanceled - отмена
- BiometricData - успешное распознавание. Данные содержат строку xml следующей структуры:
<BiometricTouch>
<Data>...</Data>
<DecodeKey>...</DecodeKey>
</BiometricTouch>
Тэг Data содержит зашифрованную строку при шифровании или результат расшифровки, а DecodeKey - открытый ключ в кодировке base64.
Компонента предназначена для релиза мобильной платформы 8.3.15.62.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
3050 руб.
22.04.2019 125082 739 207
18300 руб.
30.05.2017 57943 12 71
2196 руб.
18.01.2017 152771 235 237
5084 руб.
12.05.2020 34992 147 100
19000 руб.
24.06.2025 4156 26 0