Санкт-Петербургский Государственный Политехнический Университет Факультет технической кибернетики Кафедра Измерительных информационных технологий Дипломный проект Тема: Аутентификация в Windows 7 при помощи электронного USB ключа Выполнил: студент группы 6085/20 Шестаков К.А. Научный руководитель: доц., к.т.н., Сальников В.Ю. Постановка задачи Цель дипломной работы – разработка программного комплекса аутентификации в Windows 7 при помощи электронного USB ключа. Для реализации данной цели необходимо: 1. Исследовать механизмы аутентификации в Windows 7; 2. Разработать методы работы с USB ключом; 3. Разработать методы хранения и защиты ключевой информации. 2 Актуальность Контроль доступа к информационным ресурсам сложная задача. Проблемы с паролями и безопасностью актуальны как для крупных организаций так и для обычных пользователей. Решить эти проблемы пытаются при помощи электронных ключей и других аппаратных аутентификаторов. Электронные ключи предназначены для однофакторной и двухфакторной аутентификации пользователей и хранения ключевой информации. Двухфакторная аутентификация – это сочетание следующих элементов: 1. То, что у вас есть, например смарт-карта или USB накопитель. 2. То, что вы знаете, например личный идентификационный номер (PIN). 3 Недостатки существующих решений Основные недостатки существующих программных продуктов аутентификации в Windows при помощи электронного USB ключа: 1. 2. 3. Не все поддерживают проверку на основе PIN-кода. Большинство не имеет открытого исходного кода. Некоторые программы не поддерживаются последними версиями Windows. 4 Архитектура входа в Windows 7 Начало Перезагрузка Системы (выход из сеанса) Winlogon запускает LogonUI сеанса консоли Загрузка Dll каждого поставщика В каждом сеансе, кроме нулевого, есть экземпляр процесса winlogon. Новый процесс LogonUI регистрирует и загружает несколько поставщиков учетных данных, а также осуществляет визуализацию графического отображения процесса входа в систему. Создание экземпл. объекта для каждого поставщика Экран входа в систему Конец 5 Алгоритм работы поставщика учетных данных Чтобы поставщик начал обработку информации необходимо соблюдение двух условий: 1. К компьютеру должен быть подключен один USB накопитель. 2. Должен быть введен PIN-код (четыре цифры). Обработка начинается при нажатии клавиши «Enter» в поле ввода PIN-кода. 6 Алгоритм работы программы – агента (отслеживание извлечения ключевого устройства) При запуске, программа – агент пытается получить PNPID ключевого устройства. Если идентификатор был получен, то при извлечении электронного USB ключа будет выполнен выход из сеанса. Если идентификатор получить не удалось, извлечение не отслеживается. 7 Алгоритм работы программы – агента (создание ключевого устройства) Создание электронных USB ключей возможно только от имени «Администратора». Чтобы создать ключевое устройство необходимо: 1. Подключить один USB накопитель. 2. Указать имя пользователя. 3. Ввести пароль (необязательное поле) 4. Ввести PIN-код. 5. Нажать кнопку «Создать». 8 Получение информации об электронном USB ключе при помощи механизма WMI ROOT/CIMV2 – пространство имен WMI по умолчанию на компьютерах с операционной системой Windows. При построении WQL запросов используются два класса WMI: 1. Win32_LogicalDisk – класс логических дисков Свойства: - DriveType (2 – съемное устройство) - Caption (буква логического диска) 2. Win32_DiskDrive – класс физических дисков. Свойства: - InterfaceType («USB») - PNPDeviceID (идентификатор) В коде программ используются следующие запросы: - SELECT * FROM Win32_LogicalDisk – возвращает все логические диски. - SELECT * FROM Win32_DiskDrive – возвращает все физические диски. 9 Алгоритм шифрования ключевой информации Функции шифрования и дешифрования написаны на основе блочного алгоритма шифрования TEA. Блок данных – 4 байта разбит на две равные части v0 и v1 по 2байта. Ключ разбит на четыре подключа K0, K1, K2 и K3 по 2байта. Переменная Delta – 2байта, на каждом шаге цикла умножается на номер шага. Ключи и Delta инициализируются значениями, полученными с использованием значения PIN-кода. 10 Хранение ключевой информации Информация о созданных USB ключах хранится в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVer sion\Diagnostics: - LOGX – логин; - PNPX – зашифрованный PNPID электронного USB ключа. X – номер записи от 0 до 9. В программе – агенте не имеется средств для удаления информации о созданных электронных USB ключах. Удаление ключевой информации выполняет администратор путем извлечения соответствующих записей из реестра. 11 Графический интерфейс Окно для ввода PIN-кода поставщика учетных данных. Окно программы – агента. 12 Технические требования Программный комплекс аутентификации с использованием ключевого USB устройства разработан для операционной системы Windows 7. Компьютер должен иметь разъем USB или разъем для карт памяти MMC/SD. Электронный USB ключ должен иметь флеш-память не менее 32КБ для хранения зашифрованного пароля. 13 Недостатки и ограничения При включении, перезагрузке компьютера, когда отображается экран входа в систему, окно для ввода PIN-кода появляется с задержкой в несколько секунд. При выходе из сеанса или блокировании окно появляется сразу. Для авторизации в системе или при создании электронного USB ключа, к компьютеру может быть подключен только один USB накопитель. Количество зарегистрированных на компьютере электронных USB ключей ограничено десятью. Отсутствуют инструменты удаления информации о зарегистрированных в системе ключевых устройствах. Поэтому удаление ключевой информации выполняется администратором путем извлечения соответствующих записей из реестра. 14 Заключение В результате выполнения дипломного проекта были решены следующие задачи: 1. Исследованы механизмы аутентификации в Windows 7. 2. Разработаны методы работы с USB ключом. 3. Разработаны методы хранения и защиты информации. 4. Написан собственный поставщик учетных данных. 5. Написана программа – агент. 6. Проведены успешные испытания. 7. Выявлены недостатки и ограничения. 15