Кирилл Лейфер, аспирант ИТМО, кафедра «Безопасные информационные технологии»
В этом докладе я расскажу о своём рисёче, который начался около года назад как дипломная работа, и продолжается уже как кандидатская. Я пытаюсь разработать систему идентификации, которая анализирует характеристики пользовательских жестов, оставляемых им на сенсорном экране, и на основании этого принимает решение, стоит ли пускать такого пользователя в систему. В работе в том числе использую методы машинного обучения
2. О себе
● Ковыряюсь в Android с 2013 года
● Закончил ОмГУ им. Ф.М. Достоевского
● Учусь в аспирантуре
● Работаю вирусным аналитиком под Android
3. Текущее развитие сенсорных
экранов
● Применяются на смартфонах с
1994 года
● 10+ одновременных касаний
● Точность до 1px
● Периодичность обновления ~1мс
4. Какие данные можно из него извлечь
● Координаты касаний
● Тип жеста (касание, свайп, …)
● Метка времени
● Площадь касания
● И даже больше! (на более крутых устройствах)
5. Самый Главный Вопрос ™
Достаточно ли этих данных для выделения
ряда уникальных характеристик?
7. Как ответить на эти вопросы?
1. Собрать данные
2. Провести предварительный анализ
3. Выделить ряд характеристик
4. Проверить их “качество”
5. GOTO 3
8. Сбор данных
● Клиент-серверное приложение
● Клиент считывает информацию о
касаниях прямо из драйвера
(/dev/input/eventX)
● Данные шифруются
● И отправляются на сервер
9. Собранные данные
● Около 200000 жестов собрано за 2
недели от 20 пользователей
● Половина пользователей прислала
менее 1000 жестов
● 50.7% простых касаний
● 46.9% свайпов
● 2.3% мультитач-жестов
16. Анализ данных
● Сравнение различных классификаторов
KNN Random
forest
Boosted Trees
AUC dev AUC dev AUC dev
прод-сть 0.86 0.007 0.85 0.011 0.85 0.008
длина 0.79 0.008 0.82 0.005 0.79 0.008
17. Анализ данных
● Голосование за лучший классификатор
Voting Classifier Единая
Россия
AUC deviation
Duration 0.87 0.007 1.46
Normalized distance 0.82 0.006 1.46