Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

DOU Labs: як SoftServe створювала смарт-систему біометричної автентифікації

В рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на [email protected].

У той час як цифрові технології стають невід’ємною частиною нашого життя, проблема автентифікації користувача та захисту власності стає все більш актуальною, особливо в еру інтернету речей. Наразі використовується велика кількість одноразових технологій — від простого введення паролю до карток безпеки чи перевірки відбитку пальця. Щоб забезпечити вищий рівень безпеки, користувач повинен регулярно змінювати стандартні паролі, термін дії яких закінчується, деякі забуваються, що вимагає залучення додаткових сервісів для отримання цієї інформації. Усі ці обставини призводять до додаткових витрат коштів та часу на управління цими технологіями.

R&D підрозділ компанії SoftServe задумався над тим, як зробити автентифікацію користувача надійнішою та водночас легшою у використанні.

Рішення

BioLock — система, що аналізує електрокардіографічні (ЕКГ) сигнали для безперервної автентифікації та моніторингу здоров’я користувачів. Смарт-система забезпечує пряму комунікацію між ЕКГ біосенсорами, вбудованими в кермо автомобіля, та мобільними пристроями для легкого розпізнавання та моніторингу користувачів через простий дотик. Зчитані сигнали обробляються, очищаються від шумів, трансформуються в цифровий формат та передаються на мобільний застосунок за допомогою Bluetooth. Після цього нейронна мережа проводить верифікацію вже на смартфоні та відкриває користувачу доступ до керування автомобілем.

Крім того, що система є легкою у користуванні, вона також не вимагає запам’ятовування чи зміни паролів, унеможливлює крадіжки та обман системи. Час, необхідний для авторизації — менше 30 секунд, точність — понад 70%.

Як ми розробили прототип

Перш за все, ми почали зі створення прототипу записуючого пристрою в формі надрукованої на 3D-принтері обкладинки для телефону чи планшету.

Прототип складався з нашого основного пристрою зчитування показників ЕКГ з Bluetooth інтерфейсом, що дає можливість передавати дані, батареї та зарядного модуля. Після створення прототипу ми розібрали кермо Logitech та почали думати над тим, де розмістити сенсори та сам пристрій, а також над тим, який тип електродів найкраще підходить для автентифікації.

Дослідивши всі можливі комбінації якості передачі сигналу, ми обрали електроди та розмістили їх наступним чином.

Не так просто...

Як зробити так, щоб система розпізнавала конкретного користувача? Відповідь на це запитання — використовуючи нейронні мережі (НМ). Після розпізнавання НМ можуть показати лише два результати: користувач авторизований або ні. Щоб навчити НМ розпізнавати користувачів, нам потрібно було зібрати два набори даних ЕКГ: один для користувача, якого треба авторизувати, інший для неавторизованих людей.

На перший погляд звучить просто — зібрати дані, навчити НМ і система розпізнавання користувачів через ЕКГ готова. Проте, легше сказати ніж зробити. Неможливо просто використати записані дані, оскільки дані ЕКГ місять багато шуму. Тож як отримати чисті дані? Це привело нас до другого етапу — зменшення шумів та нормалізація сигналу. Зменшення шуму — це метод приглушення небажаного сигналу шляхом додавання іншого сигналу, спеціально створеного для відміни першого. На зображенні нижче проілюстровано ідею:

У свою чергу нормалізація передбачає зменшення даних до будь-якої канонічної форми. Уявіть, що в одній кімнаті є два різні термометри: один показує температуру за шкалою Цельсія, а інший — за шкалою Фаренгейта. Кондиціонер починає охолоджувати кімнату за умови, якщо температура сягне позначки вище 23 градусів за Цельсієм. Цей кондиціонер може працювати з обома типами термометрів, які дають два різні значення — за шкалою Цельсія та Фаренгейта, перетворюючи дані з двох різних метричних систем в одну — канонічну.

Цей метод можна застосувати і в нашому випадку: дані ЕКГ можна записувати на різних пристроях за допомогою різних метричних систем, тож нам потрібно отримати канонізовану форму даних ЕКГ для подальшої обробки.

Тепер переходимо до фільтру низьких та високих частот. Дихання, рухи тіла та м’язів спричиняють шуми, з якими нам теж потрібно боротися.

Після того як дані відфільтровано, перед нами постає інше питання — які саме дані ЕКГ потрібні для навчання НМ? Типова ЕКГ, комплекс QRS(T), відрізняється в залежності від людини. Саме це нам потрібно використати для навчання НМ — визначення комплексу QRS з часового ряду ЕКГ.

Нормалізована ЕКГ знаходиться в діапазоні (-1, 1), тож зведення сигналу в квадрат забере негативні частки.

Усереднення сигналу дозволяє визначити довжину комплексу QRS.

З цього етапу досить легко визначити зубці R та показник кожного максимуму, що і є зубцем R. Зубці R будуть початковими точками для визначення зубців Q та S. Щоб знайти зубець Q, нам потрібно визначити мінімальне значення з початку хвилі до зубця R. Так само і з зубцем S — знайти мінімальне значення від зубця R до кінця хвилі.

Кінцевий результат обробки QRS виглядає наступним чином:

Тепер у нас є ЕКГ дані, промарковані комплексом QRS, і вони готові для навчання НМ. Наш наступний крок — нарізати дані, записані з ЕКГ пристрою, помістити їх на декілька графіків і подивитися, що відбуватиметься.

Приклад вище показує, як виявити комплекс QRS в лабораторних умовах. Проблема полягає в тому, що алгоритми визначення QRS не є точними на 100%, особливо коли йдеться про записування даних зі зробленого власноруч записувача ЕКГ. Деякі частинки ЕКГ сприймаються за комплекс QRS, що насправді не так. Найлегший спосіб вирішити це — використати фільтрування на основі середнього квадратичного відхилення. Оскільки більшість комплексів QRS є подібними, ми можемо вирахувати значення середнього квадратичного відхилення по всіх QRS та використати це значення в якості порогового для порівняння кожного середнього квадратичного відхилення QRS до цього значення. Після застосування цієї простої фільтрації, ми отримуємо наступне:

Як бачимо, якість даних є набагато кращою. Навіть візуально можна оцінити, що ЕКГ двох користувачів є різними. Після цього етапу дані можна використати для коректного навчання НМ.

Де можна використовувати BioLock

Ми створили технологію, яка одночасно підвищує рівень безпеки автомобілів та захищає життя водіїв. Такі фактори як втома, стрес та погане самопочуття впливають на користування транспортними засобами. Наприклад, якщо водій почне засипати, система розпізнає це та передасть сповіщення на телефон водія чи центральну станцію. Один з клієнтів SoftServe — Overhaul Group — вже зацікавився системою та планує встановити технологію на свої вантажні автомобілі.

Команда розробників BioLock від SoftServe (зліва направо): Василь Милько, Наталя Дьомова, Олександр Сухолейстер, Ольга Терендій, Оксана Здрок, Андрій Бенч, Марина Ладжун, Остап Пукшин, Зоряна Дошна

Використання смарт-системи не обмежується автомобільною сферою. Її можна підлаштовувати під потреби будь-якого бізнесу чи кінцевого споживача, якому потрібно захистити конфіденційні дані чи власність, будь то обробка платежів, мобільні пристрої, ноутбуки, велосипеди тощо.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Схожі статті




25 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Колеги, R&D директор SoftServe Василь Милько не на зв’язку зараз, однак просив запостити від його імені кілька коментарів нижче.

@Dmitry Dziuba
Ви вірно розумієте, подяка що пояснили іншим, що 12 сенсорів — то минуле століття.
І за поправку до шкали ще одне дякую.

@Dmitry Nezhinsky
Чи ви смішне, чи сумне своє обличчя відправите на Facebook, вас розпізнають як вас.
Так само і з серцем, чи після сну, чи після кави, це те саме ваше серце.
По кількості сенсорів коротко — інновація в меншій кількості і хорошій якості.

@Alexey Sadikov
1) Про 30 секунд і 70%.
Спочатку зробити, щоб працювало. Потім щоб працювало добре. Потім щоб працювало швидко. Потім мініатюризувати. Для кращої якості ми читатимемо і ECG i BIA одночасно. Літак братів Райт теж невисоко і нешвидко літав колись.
2) Про пустелю.
Мобілка це тимчасовий форм-фактор, щоб програма мала на чому працювати. Потім програма буде працювати на шині автомобіля (не путати шину з колесом). Глибока інтеграція з імобілайзером.
3) Про совок.
Все навпаки. Це для найрозвинутіших країн. Де фурами возять сервери високої щільності, де один процесор коштує $4000, а 2U сервер коштує $60-120K. Фурами возять новітні ліки і вакцини. Твори мистецтва. Це називається high-value cargo.

@all
Це все відрізняється від масового написання бізнес логіки на технологіях, створених іншими.
Ми в R&D створюємо нові технології, глобально нові, конкуруючи з найкращими світу цього.
Наш робочий день починається в бібліотеці, з читання свіжих наукових робіт.
Буду радий глибше пояснити, будь ласка, кидайте питання на [email protected]

Как у меня бомбит от биометрической аутентификации. Идентификации — да, аутентификации — нет !

Если честно, когда-то у себя на Jeep GC я отлючил anti-sleep на третий день использования (камера, которая постоянно сканирует зрачки), она настолько раздражала, что ездить было невозможно. Только из-за неё было пару опасных ситуаций, например, когда на хайвее из-за того, что я одним глазом смотрел в зеркало а другим посматривал на дорогу она решила включить аварийку и сбросить скорость на полном ходу, т.к. потеряла контакт с водителем.

Какую именно шапочку? Чтобы сигналы ЭЭГ снимать?

А для чего? :)
Я немного в теме, если пойму какие требования и бюджет — может что и посоветую

$20 — ничего вообще. У нас после очень долгой оптимизации за ~20 по стоимости компонент получилось собрать внятную систему на 4 канала. Чтобы смотреть на мозг нужно хотя бы 8, лучше 16, еще лучше 32 канала. Из того что сейчас продается — приемлемый вариант openBCI (только у них почему-то исчез вариант по $99 за 4 канала, пару месяцев назад еще был).
Ну и с мозгом дело такое, сложно что-то полезное получить — очень много шумов всегда.

Играться, посмотреть на активность своего мозга и попытаться рулить ей сознательно.
Ох ты доиграешься %)
По большому счету только по лицу очень сложно определить спит человек или нет, он просто мог мигнуть, мимика тоже не показатель.
До этого ездила жена, я кресло отодвинул назад, а зеркала отрегулировать забыл, поэтому пришлось немного наклонять голову, чтобы увидеть что-то в зеркале, ну и система решила, что я склонил голову, чтобы поспать. Там очень сложная система, не только зрачки, она моделирует положение головы в 3D пространстве авто и знает, например, когда я делаю shoulder check или когда я смотрю на приборы или GPS. Как я уже сказал спусковым крючком было то, что я склонил и повернул голову к зеркалу (скорая сзади ехала, нужно было свалить с полосы), система ещё пыталась заглянуть в глаза, но не смогла :)

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

т.е. угонщик может просто изначально скрутить проводки и спокойно уехать? 10/10

Не знаю, просто предполагаю.

Многие исследования приходят к нам из спорта. В свое время я изучал, как пульс может влиять на состояния организма. Обычным пульсометром можно получать много информации. Если измерять периодически и записывать показания. У некоторых брендов есть свои сервисы и методики(Polar, Garmin). Конечно оно относится больше к спортивным людям. Но одно есть точно, при заболеваниях или утомлении изменения видны на ритме сердца. Polar в свое время проводил доступность измерения R-R интервалов(их просто измерять) и по ним можно было определять типа состояние организма. Есть программы которые конвертируют в разные спектры и графики и находят закономерности. Но пока тема спорная конечно. Я пытался измерять но из-за недостатка времени и неудобства программ потерял интерес. Может что то найдете для себя, вот общее описание происходящего тут .
Но на себе более простое — это анализ поведения пульса и отклонения от нормы, дает мне достаточно информации стоит ли проводить интенсивные тренировки.
Самые подробные методики и анализы предоставляют мониторы холтера там много интересного. Тема конечно сложная.

При всем уважении, на мой взгляд — чушь полная.
Какой принцип ЭКГ? В методике проведения ЭКГ обследования используется 12 датчиков. 6 устанавливаются на конечности и 6 на грудной клетке.
С точки зрения мониторинга — это разве что определить жив или мертв по частоте сердечных сокращений, которую снимают пьезоэлементы, не более. Пациенты с екстрасистолией, тахикардией, ишемической болезнью сразу отпадают. Источники сигналов — я так понимаю пальцы рук обладают огромной резистивностью поэтому данные амплитуды — недостоверные. Активное использование датчиков приводит к большому загрублению оценок.
Аутентификация — вообще речи нет. После чашки кофе, девушки на переходе или выбежавшей на дорогу бабушки/кошки/собаки система примет решение об отказе в доступе. Или наченет процедуру реанимации/катапультирования/кремации

При хорошо продуманной системе может и выйдет получить внятную ЭКГ — не такую конечно как здесь на картинках, но у нас с одной руки на вторую получалось увидеть довольно детальный сигнал, по крайней мере RST комплекс просматривался. В случае с рулем можно было использовать накладки из проводящей резины — тогда поверхностью выступала бы вся ладонь, шумы возможно были бы приемлемые. Хотя в любом случае для аутентификации это использовать — крайне сомнительное занятие

Статья оставляет много вопросов ))
Какой именно хард отвечал за снятие сигналов? На фото видно только два электрода, у вас все-таки не было системы активного подавления шумов (для нее необходимо три)?
Какие шумы у этой системы? Все графики тут из каких-то источников, а что получилось непосредственно у вас?
Какой препроцессинг данных был перед их подачей в нейронную сеть, и какую нейронную сеть использовали?
Еще, в статье написано про точность более 70% — можно подробнее, сколько ошибок 1го рода, а сколько 2го, на какой выборке?

P.S. на графиках до нормализации амплитуда ЭКГ в тысячи вольт (должны быть сотни милливольт), после нормализации — вольты (должна быть безразмерной). Мелочь, но все же.

Как аутентификатор 0/10. Как биометрия в грузоперевозках (хотя такие системы уже кучу лет как существуют, даже бьющие током, если водитель засыпает) 4/10 за оверинжиниринг.

Почему за аутентификатор 0 баллов:
1)

Час, необхідний для авторизації — менше 30 секунд, точність — понад 70%

Без комментариев

2) Ведёшь фуру, вышел по нужде, раздавил случайно мобильник(или заряд сел). Стоишь посреди пустыни в Неваде, машина не заводится, позвонить не можешь.
3)

Щоб забезпечити вищий рівень безпеки

Совок, параноя, страны третьего мира. Три клиента

4)

передаються на мобільний застосунок за допомогою Bluetooth

Уровень безопасности определяется самой тонкой дверью в доме, а не самой толстой. Вы просто свели на нет всю вашу безопасность просто добавив в неё Bluetooth.

5) Датчики часто ломаются. Особенно те, с которыми непосредственный физический контакт. Одно дело — не показало пульс во время пробежки, совсем другое — не заводится машина посреди пустыни.

Фактически статья о системе шумоподавления методом обработки сигнала из разных источников. Я понимаю почему вы гордитесь работой, но не понимаю почему вы гордитесь этим гаджетом.

У системы точность «более 70%», я думаю волноваться о проблемах безопастности bluetooth с такими характеристиками — несколько преждевременно ))

Как аутентификатор 0/10. Как биометрия в грузоперевозках (хотя такие системы уже кучу лет как существуют, даже бьющие током, если водитель засыпает) 4/10 за оверинжиниринг.

5/10 за пафосный ролик. Кстати, почему в нём не снималась настоящая команда разработки с фото?

Вы просто свели на нет всю вашу безопасность просто добавив в неё Bluetooth.
можете аргументувати цей пункт? наскільки я в курсі, блютуз достатньо надійний в контексті взлому. є навіть дверні замки з блютузом ( habrahabr.ru/post/153399 )

Можете погуглить «кодграбберы» или «перехват блютуз». От самых простых с перехватом до более сложных, которые не только перехватывают, но и глушат источник, а затем делают подмену. Есть как брелки, так и приложения на смартфон.

Це якщо поверх блютузу не навернути своє власне шифрування. Я, наприклад, пробував через блютуз OpenVPN пропускати. Якщо зробити достатньо надійні ключі, то ніхто нічого не перехопить і не підмінить. Залишиться лише можливість заглушити, але тут можна згадати, що система працюватиме в металевій кабіні машини.

Підписатись на коментарі