Секреты и ложь. Безопасность данных в цифровом мире

ОглавлениеДобавить в закладки К обложке

В главе 7, когда я говорил о длине ключей и безопасности, я обсуждал проблемы изобретения и запоминания пользователями ключей. Пароль – это форма запоминания пользователем ключа, и словарные нападения на пароли поразительно эффективны.

Как работает это нападение? Подумаем о системе контроля доступа к компьютеру или веб-сайту. У компьютера есть файл имен пользователей и паролей. Если нападающий получит доступ к этому файлу, то узнает все пароли. В середине 70-х годов эксперты по компьютерной безопасности пришли к лучшему решению: вместо хранения всех паролей в файле они решили хранить хэш-функцию пароля. Теперь, когда Алиса набирает свой пароль в компьютере или на веб-сайте, программное обеспечение вычисляет хэш-значение и сравнивает его с сохраненным в файле. Если они совпадают, Алиса допускается в систему. Теперь нет файла паролей, который можно было бы украсть, – есть только файл хэшированных паролей. И так как назначение хэш-функции – воспрепятствовать незваному гостю зайти слишком далеко в своих намерениях, злоумышленник не сможет восстановить настоящие пароли из хэшированных.

И тут ему на помощь приходят словарные нападения. Предположим, что нападающий владеет копией файла хэшированных паролей. Он берет словарь и подсчитывает хэш-значение каждого слова в словаре. Если хэш-значение какого-либо слова соответствует одной из записей файла, тогда он нашел пароль. Он попробует перебрать таким образом все слова, попытается переставлять буквы, набирать некоторые буквы прописными и т. п. В конце концов он попробует все характерные комбинации короче заданной длины.

Ранее словарные нападения были сложны из-за медленной работы компьютеров. Они стали более легкими, потому что компьютеры стали гораздо быстрее. L0phtcrack является примером хакерского инструмента, предназначенного для восстановления паролей и оптимизированного для паролей Windows NT. Windows NT имеет две парольные защиты: более сильную, предназначенную для NT, и более слабую, совместимую со старыми сетевыми протоколами входа в систему. Эта функция работает без учета регистра с паролями не длиннее семи символов. L0phtcrack облегчает работу в парольном пространстве. На Pentium II с тактовой частотой 400 МГц L0phtcrack может перебрать каждый буквенно-цифровой пароль за 5,5 часа, каждый буквенно-цифровой пароль с прочими символами за 45 часов и каждый из возможных паролей, включающий любой знак клавиатуры компьютера, – за 480 часов. Это не сулит ничего хорошего.

Некоторые пытались решить эту проблему, используя все более и более «сильные» пароли. Это означает, что пароли сложней для угадывания и их появление в словаре менее вероятно. Старая универсальная система контроля доступа на мэйнфрэймах (RACF) требовала от пользователей ежемесячной смены паролей и не разрешала использовать слова. (В Microsoft Windows нет такого контроля, и вам услужливо предлагается сохранить любой пароль.) Некоторые системы создают пароли для пользователей случайным образом – путем связывания случайных слогов в произносимое слово (например, «талпудмокс») или соединения чисел, символов и смены регистра: например FOT78hif#elf. Система PGP использует парольные фразы, которые представляют собой сложные предложения с бессмысленным контекстом: например «Телефон ЗЗЗЗЗЗ, это должно быть вы говорите мне приятным голосом 1958???!телефон». (Однако это не так просто для запоминания и набора, как вам хотелось бы.)

Эти ухищрения становятся все менее и менее эффективными. В течение последних десятилетий действие закона Мура делает возможной «атаку в лоб» для ключей, имеющих все большую энтропию. В то же самое время есть максимум энтропии, до которого средний компьютерный пользователь (или даже пользователь уровнем выше среднего) может что-то запомнить. Вы не можете ожидать от него запоминания 32-символьного случайного шестнадцатеричного числа, так что же должно произойти, чтобы он запомнил 128-битовый ключ? Вам действительно не стоит полагаться, что он введет при входе в систему фразу с использованием набора алгоритмов и программ высоконадежного шифрования, описанных в предыдущем параграфе. Эти два фактора пересеклись; сейчас взломщики паролей могут вычислить все, что (в пределах разумного) может запомнить пользователь.

Конечно, есть исключения. Производство высоконадежных компьютеров, применяемых в ядерной отрасли, надежные дипломатические каналы, системы, применяемые для связи со шпионами, живущими на вражеской территории, – случаи, когда пользователи найдут время, чтобы запомнить длинные и сложные парольные фразы. Эти применения не имеют ничего общего с современными компьютерными сетями и паролями для продажи товаров в электронной торговле. Проблема в том, что средний пользователь не может и даже не пытается запомнить достаточно сложные пароли для предотвращения словарных нападений. Атаковать защищенную паролем систему часто легче, чем напасть на шифровальный алгоритм с 40-битовым ключом. Пароли ненадежны, если вы не в силах предотвратить словарных нападений.


Логин
Пароль
Запомнить меня