Перейти к содержанию
Fire Monkey от А до Я
  • 0

Логика авторизации по отпечатку пальца


Сергей Сергеев

Вопрос

С наступающем 2020 всех! 

Есть приложение, которое авторизуется на датаснап сервере по логин/паролю, и далее поддерживается встроенный механизм сессии на сервере.

Но пользоаватели требуют авторизации по пальцу. Есть компоненты - для ИОС - ТМС, а для Андроид ВинСофт.

Но оба они только дают событие "успешно" при прикладывании "правильного" пальца или ввода правильного кода ( графического ключа).

Далее никак не придумаю,  например - "успешно" - как сервер поймет кто это авторизуется? храннить в файле пару логин - пароль, даже зашифровав ее - плохо тем, что скопировав этот файл на другой телефон и приложив "местный" палец - также можно зайти, никакой защиты.

Покопавшись понял, вроде в кейстор Андроид можно хранить пары - приложение - пароль, в ИОС - не нашел..

Но ведь эти компоненты Дельфи, не работают  с паролями приложений, кейстором.. а только дают ответ - успешно или нет авторизовался на телефоне..

уже всю. голову сломал, как организовать авторизацию, не допиливая существующие ( платные) компоненты.

Спасибо за советы, мысли и еще раз с наступающим!

 

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

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

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

Ссылка на комментарий
  • 0

Почитал ваши сообщения по этой теме, вот ключевое (с отзывом пользователя) 

Повторюсь - отпечаток пальца, не то что вам нужно. Он есть у небольшой части устройств. Возьмите на вооружение банковские клиенты - один раз ввел логин/пароль, если успешно, то придумал ПИН-код, и в дальнейшем входишь по нему. 

Ссылка на комментарий
  • 0

 

1 час назад, Евгений Корепов сказал:

запустить приложение - значит это легальный пользователь,

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

1 час назад, Евгений Корепов сказал:

Возьмите на вооружение банковские клиенты - один раз ввел логин/пароль, если успешно, то придумал ПИН-код, и в дальнейшем входишь по нему.

неоднократно посмотрел, т.е. вместо пары  логин / пароль  - пин код? который лежит в файле на телефоне? и который вполне возможно перенести на другой телефон и - получить доступ к различным диагнозам. Да и пин-код в сбере 5 цифр, в некоторых приложениях - 4, я не смогу по пин-коду определить однозначно пользователя на сервере изза неуникальности и нехватки комбинаций.

И к тому , во всех приложениях с пин-кодом, при включении в настройках защиты "по пальцу" - можно вместо кода - приложить палец.

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

Но я не претендую на " большую серьезность" , Мне видится такой путь -   если я сложу пару логин- хеш пароля в файл ( или уникальный GUID), например в тот же  TPath.GetDocumentsPath   ( /data/data/<application ID>/files ) нашел такой путь, и меня действительно туда не пускает ТоталКомандером. И по разблокировке ( пин или палец) пошлю эту пару или Guid на сервер и там уже по нему определю пользователя и открою Его кабинет. Понятно, что скопировав файл с устройства на другое - можно получить доступ ( поэтому и хотел как то привязать этот  Guid к параметрам устройства - ИМЕИ, МАС ( осознавая что это не абсолютно - но затруднит 99,99% пользователям возможность украсть информацию), но это уже хакерство какое то.

Если есть другие предложения - с удовольствием выслушаю.

Изменено пользователем Сергей Сергеев
Ссылка на комментарий
  • 0

В телефоне нет никаких гарантированных аппаратных данных - или по причине китайщины, или по тому что их можно изменить. Если уже вам так хочется "привязаться" к чему то неизменному, то привязывайтесь к телефонному номеру. Хотя и его может не быть. 

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

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

И пинкод никак не позволит войти на другом устройстве - пин код сохраняется локально на устройстве, в папке приложения. И если пользователь ввел его верно, то запросы на сервер авторизуются с заранее сохраненного на устройстве токена (guid, куки или что вам больше нравится). 

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

Ссылка на комментарий
  • 0

Спасибо Евгений, примерно так я и думал. Вы систематизировали и разложили по полкам.. скажу руководству обратить большее внимание на юр вопрос пд.

Ссылка на комментарий
  • 0

На форуме была тема про кейстор, с скидывал пример работы с ним (плохенький, но работает)

Для входа по пин коду:

Генерируйте ключ, ставьте пин на него, храните в кейсторе, гугл вроде как гарантирует неизвлекаемость ключа. Шифруйте данные авторизации и храните их да хоть в загрузках. Без ключа они бесполезны. Далее пытайтесь расшифровать и работать с ними. Не расшифровались-не тот ключ. Нет доступа к ключу-не тот пин.

Если следовать закону, то не удивлюсь, что шифрование должно быть ГОСТ..

Ссылка на комментарий
  • 0
В 11.01.2020 в 08:20, mazayhin сказал:

форуме была тема про кейстор

вроде бы читал в ИОС нет кейстор ( вернее маленький в процессоре).. ваш пример только под Андроид?

Ссылка на комментарий
  • 0
5 часов назад, Сергей Сергеев сказал:

вроде бы читал в ИОС нет кейстор ( вернее маленький в процессоре).. ваш пример только под Андроид?

Про IOS не скажу ничего.

Это только для андроида. Без сторонних библиотек, просто обертки к api. Генерация ключей, шифрование и прочее то же все родное

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...