Upload
hao
View
62
Download
4
Embed Size (px)
DESCRIPTION
Санкт-Петербургский Государственный политехнический университет Факультет технической кибернетики Кафедра Измерительных информационных технологий. Дипломный проект Тема: Динамическая библиотека графической идентификации ( GINA ) для Windows, реализующая контроль клавиатурного почерка. - PowerPoint PPT Presentation
Citation preview
Дипломный проектТема: Динамическая библиотека графической
идентификации (GINA) для Windows, реализующая контроль клавиатурного почерка
Выполнил: Соколов А. С.Группа: 6085/20Руководитель: Сальников В. Ю.
Санкт-Петербургский Государственный политехнический университетФакультет технической кибернетики
Кафедра Измерительных информационных технологий
Цели проекта
Реализовать проверку клавиатурного почерка во время ввода пароля для усложнения процесса аутентификации при входе в Windows для повышения безопасности рабочей станции
Поиск готовых решений
В процессе поиска, программ, использующих клавиатурный почерк в процессе аутентификации, не найдено
GINA
1) Расширение стандартной MSGINAФункции имеют вид:return_type Wlx_function(Param_list){
// свои действия return Wlxtbl.Wlx_function(Param_list);
}2) Custom GinaHKLM\\SOFTWARE\\Microsoft\\WindowsNT\\
CurrentVersion\\Winlogon\\GinaDLL
WinlogonСуществует 3 состояния:
1) Никто не вошел
2) Пользователь вошел
3) Станция заблокирована
Рис.1 Схема состояний процесса входа Winlogon
Блок-схема работы GINAНачало
программы
Negotiate
Остановка программы
DisplaySASNotice(состояние
LOGGED_OFF)
Состояние LOGGED_ON
LogOff
Initialize
LoggedOutSAS(сбор учетных
данных)
ActivateUserShell
ShutDown
DisplayLockedNotice (состояние
LOCKED)
WkstaLockedSAS (сбор учетных
данных)
Аутентификация не успешна
Аутентификация успешна
Администратор входит в систему
Блок-схема работы GINA с модулем клавиатурного почерка
Начало программы
Negotiate
Остановка программы
DisplaySASNotice(состояние
LOGGED_OFF)
Состояние LOGGED_ON
LogOff
Initialize
LoggedOutSAS(сбор учетных
данных)
ActivateUserShell
ShutDown
DisplayLockedNotice (состояние
LOCKED)
WkstaLockedSAS (сбор учетных
данных)
Аутентификация по паролю не успешна
Аутентификация по паролюуспешна
Администратор входит в систему
Проверка успешна
Проверка клавиатурного
почерка
Аутентификация по почерку не успешна
Аутентификация по почеркууспешна
Проверка клавиатурного
почеркаПроверка неуспешна
Математическая модель клавиатурного почерка
Проверка делится на 2 этапа:
• сбор параметров клавиатурного почерка авторизованных пользователей – эталонные характеристики
• сбор и подсчет параметров тестируемого пользователя, сравнение с эталонными при входе в систему
Математическая модель клавиатурного почерка
Для проверки клавиатурного почерка используется метод на основе измерений и статистической обработки индивидуальных характеристик клавиатурного почерка.
За характеристику почерка берется время между нажатиями клавиш.
Алгоритм проверки клавиатурного почерка
Начало
Cбор временных интервалов во время ввода
пароля
Цикл 1
Цикл 1
Рассчитать граничное
значение, T
T > Z
R1++
Да
Нет
Цикл 2
Цикл 2
С>=0
Рассчитать почерк
входящего,С
R2++
Рассчитать вероятность,
P
Конец
Да
Нет
1
1
Выводы по теоретической части
• Рассмотрена математическая модель проверки клавиатурного почерка
• Рассмотрена работа библиотеки Gina и процесса входа (Winlogon)
• Данные для проверки почерка собрать во время ввода пароля в функции обработки диалогового окна LogonDialog
• Проверку клав почерка произвести в функциях Gina LoggedOutSAS и LockedWkstaSAS
Таблица функций GINAФункция Описание
WlxActivateUserShell Запускает основную оболочку пользователя
WlxDisplayLockedNotice Отображение GINA информации о блокировке
WlxDisplaySASNotice Вызывается, когда никто не вошел в систему
WlxIsLogoffOk Проверка на завершение сеанса работы
WlxDisplayStatusMessage Показывает статус — сообщение
WlxGetConsoleSwitchCredentials Применяет пользовательскую информацию на указанную сессию
WlxGetStatusMessage Получение текущего статус-сообщения
WlxInitialize Инициализация GINA на текущую станцию
WlxLoggedOutSAS Реакция на SAS-событие, при условии, что пользователь в системе и станция не заблокирована
WlxLogoff Проверка на завершение сеанса работы
WlxNegotiate Проверка версий winlogon и GINA
WlxNetworkProviderLoad Уведомление, что запустилась служба взаимодействия с другими типами сетей
WlxRemoveStatusMessage Удаление статус-сообщения
WlxIsLockOk Проверка на блокировку станции
WlxShutDown Уведомление о завершении работы станции
WlxWkstaLockedSAS Реакция на SAS-событие при условии, что станция заблокирована
WlxLoggedOnSAS Реакция на SAS-событие, при условии, что пользователь в системе и станция не заблокирована
Класс GinaWlxInitialize(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
• Тестирование прошло успешно
• Возможные расширения библиотеки