Вопрос
Попалась мне недавно программка, которая подбирает пароли к BIOS. Проверил на своем компьютере – подобрала и к моему BIOS'у пароль. Как прекратить это безобразие (Award Bios 4.51PG)? Требуется единственный пароль на загрузку и BIOS.
Ответ
Увы… Никто не сможет этого сделать. Все дело в двух вещах:
В очень убогом методе кодирования паролей КМОСом — путем применения побитового XOR;
В КМОСЕ НЕ ХРАНИТЬСЯ даже закодированный пароль, а лишь его «цифровой дайджест» — CRC код, полученный из п. №1!
Т.е. алгоритм сохранения пароля у КМОСа следующий:
Прочитать последовательность байт, принятых за пароль (с клавиатуры).
Получить некий «закодированный» вариант пароля после применения к нему по некоему алгоритму побитовой операции XOR(исключающее ИЛИ). Длина последовательности байт будет равна длине последовательности из п. №1
Посчитать код CRC для последовательности байт из п. №2 (CRC – циклический код с избытком, считается на основе таблицы значений некоторого, очень сложного полинома n-ой степени, где n>>3). Смысл — одна и та же последовательность байт ВСЕГДА даст один и тот же код CRC (длина исходной последовательности k, длина CRC — ВСЕГДА слово (2 байта) или двойное слово (4 байта))
Т.е. КМОС хранит именно эти самые 2 байта результирующего кода CRC для введенного тобой пароля! Алгоритм проверки верности введенного пароля:
Прочитать последовательность байт, принятых за пароль (с клавиатуры).
Получить некий «закодированный» вариант пароля после применения к нему по некоему алгоритму побитовой операции XOR(исключающее ИЛИ). Длина последовательности байт будет равна длине последовательности из п. №1
Посчитать CRC и сравнить с тем значением, что храниться в КМОСЕ!
Теперь дело техники — получить последовательности байт определенной длины, посчитать для них CRC и сравнить его с CRC, хранимым в КМОСе. При проверке пароля проверяется не сам пароль, а его CRC! Проблема в том, что XOR обратимая операция, поэтому получается, что для двух разных последовательностей, но, которые на самом деле являются лишь XOR отражением некоторой первоначальной, CRC может совпадать… Так сказать, для CRC алгоритма они будут являться тождественными(!). Это можно показать, учитывая, что данные две производные последовательности обладают абсолютно одинаковыми коэффициентами корреляции (таким же, как и исходная!), плюс, алгоритм CRC, реализованный в КМОСе, очевидно базируется на небольшой таблице полинома малой степени.
Ладно. Это все глухая теория…
А на практике, пока еще никто не собирается устоявшийся десятилетиями алгоритм КМОСа менять…
Так что, пока твоя проблема не разрешима… Для современных БИОС всегда найдется масса паролей, подходящих для отмыкания компа (я уже молчу про ситуацию, когда просто можно вскрыть комп и …)
Зобов Александр
Copyright 2000-2004 Сообщество Чайников
Контактная информация