Биометрическая авторизация в WebAuthN
Авторизация без пароля подразумевает один очень важный момент — авторизующее устройство должно надежно идентифицировать пользователя. В противном случае им может воспользоваться кто угодно. Разумным вариантом было бы использование биометрической авторизации, например по отпечатку пальца.
Для экспериментов с отпечатками пальцев я заказал на алиэкспресс два модуля
GROW R300:
и FPC1020:
Оба модуля оснащены интерфейсом UART. Цена с учетом доставки — в районе 12€. На плате модулей распаяны микроконтроллеры серий STM32, которые и занимаются получением изображения со сканера и его обработкой.
Интерфейс обоих модулей довольно прост и позволяет с минимальными усилиями добавить биометрическую авторизацию в мой проект.
При этом их использование создает весьма ощутимую дырку в безопасности — не составляет большой проблемы написать скетч на Ардуино, который будет эмулировать такой модуль. Биометрическая авторизация не будет отличаться от обычного нажатия кнопки.
Однако, судя по описанию, модуль R300 позволяет получать отсканированное изображение с сенсора. В этом случае потребуется весьма сложная обработка полученного отпечатка в микроконтроллере, но дыра в безопасности будет не настолько зияющей.
В архитектуру авторизующего устройства тоже нужно внести изменения. Вместо использования готового модуля нужно использовать только сканирующий сенсор и получать с него изображение напрямую. Возникает вопрос, где взять такой сенсор. Возможно, я просто попробую отпаять его с купленных модулей, если найду описание подключения и коммуникационного протокола.
В любом случае, возникшие проблемы весьма нетривиальны.