2016-04-07 3 views
0

Уже существует терминал на основе малины Pi, задачей которого является отображение веб-сайта. Это отлично работает. У конечного пользователя есть только сенсорный экран, чтобы сделать все, и на экране есть только одна веб-страница.Веб-аутентификация: используйте сканер отпечатков пальцев

Аутентификация пользователя выполняется с использованием имени пользователя и пароля. Оба являются короткими, поскольку терминал использует сенсорный интерфейс, и безопасность не является чрезвычайно важной для использования.

Поскольку для ввода имени пользователя и пароля по-прежнему требуется относительное время, мне нравится использовать сканер отпечатков пальцев на терминале. Аутентификация пользователя должна выполняться на стороне сервера. На первом этапе связь между клиентом и сервером не очень важна (клиент и сервер всегда находятся в одной локальной сети).

Моя идея сейчас:

  1. Futronic F88 добавляется к терминалу. (It works with the RaspberryPi)
  2. API futronic используется для написания небольшой программы, которая просто считывает сканер и сохраняет изображение где-то локально.
  3. Целевой сайт, отображаемый терминалом, содержит скрытый Java-апплет, который подписан и имеет все локальные привилегии.
  4. Если пользователь подключается к веб-сайту, Applet запускается и запускает локальную программу для считывания изображения пальца. Затем это изображение отправляется на сервер, где он сопоставляется с некоторыми локальными хранимыми изображениями.
  5. Сервер использует программное обеспечение, такое как SourceAFIS для соответствия отпечатку пальца.
  6. Конечно, веб-сайт всегда знает текущее состояние приложения и дает пользователю подсказки, что делать (например, «сканировать пальцем»).

Это работает? Я считаю, что самый сложный момент - это сделать вещи Applet. Можно ли сделать это? Особенно без предупреждений. Пользователь не должен даже знать, что он использует веб-сайт, а не локальное приложение.

Или есть альтернативная «чистая» идея, чем использование Java-апплета для доступа к локальному сканеру отпечатка пальца, подключенному к USB? Например. настраиваемый плагин для браузера?

Большое спасибо

ответ

2

я вопрос в пользу пользователя, не зная, что они используют автономное приложение Java. Java-апплеты - это боль. Если вы просто использовали автономную программу Java, вы можете сделать это:

  1. Java-программа ждет сканирования отпечатков пальцев.
  2. Отсканированный отпечаток отсканирован, Java загружает изображение на сервер через https, возвращает одноразовый ключ (для проверки подлинности) или сообщение, указывающее на недействительное сканирование.
  3. Java либо сообщает пользователю о недействительном сканировании и возвращается к шагу 1, либо для действительного сканирования переходит к этапу 4.
  4. Java пишет локальный HTML-страницу, содержащую:
    • одноразовый маркер
    • форма, которая представляет одноразовый маркер
    • JavaScript отправки формы на входе в систему.
  5. Java открывает браузер для этой временной страницы.
  6. Java удаляет страницу при закрытии браузера.

Апплеты не будут поддерживаться навсегда, и им будет больно настроиться. Каждый раз, когда вы обновляете браузер или JRE, вам придется повторно разрешить все разрешения, которые позволят вам сделать это. Апплеты также труднее тестировать.

Отдельное решение, которое я изложил выше, не требует, чтобы JRE и браузер координировали, а обновление либо вряд ли может его сломать. Фактически, он может быть сделан полностью агронизирующим браузером, вызывая предпочтительную программу ОС для обработки .html-файлов вместо запуска определенного браузера.

+0

* «Аплеты не будут поддерживаться навсегда ..» * Это время без поддержки *** теперь *** для подавляющего большинства пользователей Интернета. См. [Устаревшая поддержка плагинов Java] (http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/) и [Переход в плагин-бесплатно] (https: //blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free). –

+0

Ваше предложение звучит хорошо :) У меня есть только один вопрос: веб-приложение делает автоматический выход из системы через несколько минут, если пользователь не нажимает ни одной кнопки. Как сервер может сообщать клиентскому java-приложению, что он должен начать сканирование? Или клиент должен делать опрос? –

+0

Приложение Java может запустить браузер в отдельном потоке, а затем вернуться к опросу для отпечатка пальца. Когда следующее сканирование отпечатка пальца завершится успешно, убейте все существующие сеансы (сеансы) браузера. ** ИЛИ ** получить идентификатор процесса порожденного потока, затем запросить netstat для открытых TCP-портов, принадлежащих браузеру. В конце концов, это тоже время, и когда они это делают, вы знаете, что время от времени не было никакой активности, и вы можете закрыть браузер. ** ИЛИ ** вы могли бы заставить Java действовать как прокси-сервер между браузером и сервером. Тогда он мог видеть отсутствие трафика напрямую. Я уверен, что их больше, но я не в космосе. – LinuxDisciple

Смежные вопросы