180 likes | 411 Views
Санкт-Петербургский Государственный политехнический университет Факультет технической кибернетики Кафедра Измерительных информационных технологий. Дипломный проект Тема: Динамическая библиотека графической идентификации ( GINA ) для Windows, реализующая контроль клавиатурного почерка.
E N D
Санкт-Петербургский Государственный политехнический университет Факультет технической кибернетики Кафедра Измерительных информационных технологий Дипломный проектТема: Динамическая библиотека графической идентификации (GINA) для Windows, реализующая контроль клавиатурного почерка Выполнил: Соколов А. С. Группа: 6085/20 Руководитель: Сальников В. Ю.
Цели проекта Реализоватьпроверкуклавиатурногопочерка во время ввода пароля для усложнения процесса аутентификациипри входе в Windows для повышения безопасности рабочей станции
Поиск готовых решений В процессе поиска, программ, использующих клавиатурный почерк в процессе аутентификации, не найдено
GINA 1) Расширение стандартной MSGINA Функции имеют вид: return_type Wlx_function(Param_list) { // свои действия return Wlxtbl.Wlx_function(Param_list); } 2) Custom Gina HKLM\\SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon\\GinaDLL
Winlogon Существует 3 состояния: • Никто не вошел • Пользователь вошел • Станция заблокирована Рис.1 Схема состояний процесса входа Winlogon
Блок-схема работы GINA с модулем клавиатурного почерка
Математическая модель клавиатурного почерка Проверка делится на 2 этапа: • сбор параметров клавиатурного почерка авторизованных пользователей – эталонные характеристики • сбор и подсчет параметров тестируемого пользователя, сравнение с эталонными при входе в систему
Математическая модель клавиатурного почерка Для проверки клавиатурного почерка используется метод на основе измерений и статистической обработки индивидуальных характеристик клавиатурного почерка. За характеристику почерка берется время между нажатиями клавиш.
Алгоритм проверки клавиатурного почерка
Выводы по теоретической части • Рассмотрена математическая модель проверки клавиатурного почерка • Рассмотрена работа библиотеки Gina и процесса входа (Winlogon) • Данные для проверки почерка собрать во время ввода пароля в функции обработки диалогового окна LogonDialog • Проверку клав почерка произвести в функциях Gina LoggedOutSAS и LockedWkstaSAS
Класс Gina WlxInitialize(LPWSTR lpWinsta,HANDLE hWlx,PVOID pvReserved,PVOID pWinlogonFunctions,PVOID*pWlxContext); { … pWlxContext – указатель, используемый в последующих вызовах. Gina* pGina = new Gina(); *pWlxContext = (PVOID*)pGina; … } Пример вызова функции класса Gina: (Gina*)pWlxContext->LoggedOutSAS();
Список вспомогательных классов 1) SecurityHelper 2) RegisterHelper 3) StatusWindow 4) GinaModalDialog 5) NoticeDialog 6) LogonDialog 7) SecurityOptionsDialog
Реализация модуля клавиатурного почерка INT_PTR LogonDialog::DialogProc(UINT msg, WPARAM wp, LPARAM lp) { ………… case WM_COMMAND: { if (LOWORD(wp) == IDC_PASSWORD) switch (HIWORD(wp)) { case EN_UPDATE: if (quantity != 0){ finish = timeGetTime ();duration = finish-start;bufTime[quantity] = duration;} start = timeGetTime ();PrevChar=CurChar; CurChar = SendDlgItemMessage(_hwnd, IDC_PASSWORD, WM_GETTEXTLENGTH, NULL, NULL); quantity++; if (CurChar > PrevChar){ SendDlgItemMessage(_hwnd, IDC_PASSWORD, WM_GETTEXT, 254, (LPARAM)buf);} break;} …………
Примеры диалоговых окон Рис. 3 Внешний вид диалога-уведомления Рис. 4 Внешний вид диалога ввода идентификационных данных Рис. 5 Внешний вид диалога опций пользователя
Выводы по практической части • Реализован класс Gina и все вспомогательные классы • Реализована проверка клавиатурного почерка в процессе аутентификации по паролю • Произведено тестирование библиотеки на Windows XP
Заключение • Исследованы способы взаимодействия Winlogon и Gina • Реализована библиотека biokeyboardgina.dll • Тестирование прошло успешно • Возможные расширения библиотеки