Московский инженерно-физический институт (государственный университет)
парольная аутентификация пользователя
до загрузки операционной системы
В данной работе представлен алгоритм аутентификации пользователей до запуска операционной системы, то есть сразу после завершения загрузочных функций BIOS’а. Этот алгоритм реализован путем добавления к системному загрузчику дополнительных функций.
В связи с потребностью хранения конфиденциальной информации на системных носителях, а также ограничения доступа к персональному компьютеру посторонних пользователей появилась необходимость создания специализированных средств, обеспечивающих аутентификацию пользователя сразу после включения компьютера, а не после загрузки операционной системы, когда данные с диска уже считаны в память [1].
Для решения этой задачи можно использовать парольный доступ к компьютеру: проверка пароля будет осуществляться сразу после завершения загрузочных функций BIOS’а, и пользователь, не знающий пароля, не сможет загрузить никакую операционную систему для работы на данной машине. Кроме этого ввод пароля можно сделать скрытым, например: не выводить на экран предложение ввести пароль, а просто ожидать его ввода в течение некоторого времени, либо выдавать фразу о неисправности оборудования, которая на самом деле будет являться запросом пароля.
Загрузка персонального компьютера всегда начинается с выполнения программы BIOS независимо от того, какая операционная система на нем установлена. BIOS считывает системный загрузчик из Master Boot Record (MBR) диска, его нулевого сектора, и передает ему управление. Для того, чтобы к стандартным функциям загрузчика добавить, например, аутентификацию пользователя, нужно написать свою программу и заменить ею системный загрузчик, то есть поместить программу в MBR. Кроме этого там же размещается контрольная сумма, которая используется при проверке правильности ввода пароля.
Чтобы затруднить подбор пароля путем перебора, для вычисления контрольной суммы был использован следующий алгоритм. В качестве начального ключа используется массив, у которого первые 16 байт занимает инициализационный вектор, который хранится в открытом виде в MBR, а оставшиеся 16 байт заполняются первыми 16-ю символами введенного пользователем пароля. Из этого ключа инициализируется рабочий ключ длиной в 304 байта, который используется в дальнейших операциях. Для расчета контрольной суммы выделяется один сектор памяти, то есть 512 байт. Изначально этот сектор обнуляется, а в его начало записывается пользовательский пароль (его максимальная длина принята равной 255 символам), пароль завершается цифрой FFh. Подготовленный таким образом сектор зашифровывается достаточно большое число раз для замедления перебора пароля. В реализованной программе это значение составляет 5000h раз. В данном случае можно использовать любой блочный алгоритм шифрования [2]. В реализации загрузчика был использован модифицированный для работы с секторами блочных устройств алгоритм NUSH, разработанный компанией «ЛАН Крипто».
После многократного шифрования мы получаем зашифрованный сектор, содержимое которого зависит от введенного пароля. Далее над двумя половинами этого сектора выполняется операция XOR, и после этого берутся последние 16 байт получившегося массива. Эти 16 байт должны полностью совпадать с сохраненной контрольной суммой. Если контрольная сумма не совпадает, значит, пароль введен не верно. В этом случае дальнейшая загрузка компьютера блокируется, и пользователь должен перезагрузить компьютер, чтобы ввести пароль заново.
Это осложняет перебор пароля, и делает его возможным только при подключении жесткого диска этого персонального компьютера к другой машине, и автоматическом переборе паролей с него, но для этого необходимо точно знать процедуру работы всей программы.
Приведенный выше алгоритм можно также использовать для многопользовательской аутентификации, если хранить в MBR не одну, а несколько контрольных сумм. Кроме этого загрузчик может производить загрузку с зашифрованных системных дисков, если в него включить криптографические функции [3].
Список литературы
1. , , Криптография в банковском деле. - М.: МИФИ, 1997.
2. Прикладная криптография. - М.: ТРИУМФ, 2002.
3. Бутакова построения, разработка и реализация системы по защите информации с использованием криптографических методов на блочных устройствах. //Научная сессия МИФИ-2004. Сборник научных трудов. В 15 томах. М.: МИФИ, 2004.
Т. 12. Информатика и процессы управления. Компьютерные системы и технологии.


