Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№6. Пароли и контроль над доступом.doc
Скачиваний:
10
Добавлен:
22.11.2019
Размер:
218.11 Кб
Скачать

Изучение паролей

Если вы считаете, что все эти разговоры насчет легко отгадываемых паролей – пустая болтовня, поразмыслите хорошенько. Вот результат одного из подобных экспериментов. Среди 3829 паролей оказалось: 15 обычных ASCII-символов, 72 двузначных пароля, 464 трехзначных, 477 четырехзначных, 706 пятизначных (все они состояли либо из одних строчных, либо из одних прописных букв) и 605 шестизначных (все из строчных букв).

Вывод: то, что хакеры могут просто сидеть и отгадывать пароли – ФАКТ, а не ФИКЦИЯ. Это не только возможно, но зачастую и нетрудно.

Другой пример того, насколько легко взламываются пароли – “червь”, который прополз по всему Интернету в 1988 году, “завалив” большую часть сети. У “червя” было два способа размножения, один из которых базировался на взломе пользовательских паролей. Сначала “червь” пробовал типичные пароли, такие, как имя для входа в систему, имя или фамилию пользователя, и тому подобные варианты. Если ни один из них не подходил, “червь” прибегал к помощи словаря, состоявшего из 432 общеупотребительных паролей. И, наконец, если оба этих метода не срабатывали, “червь” обращался к словарю системы UNIX и пробовал каждое слово, пока не находил верное. Результаты показали, что этот метод работал безупречно. Кстати, если вы окажетесь в системе UNIX, и вам понадобится грубая сила для получения более высокого уровня доступа, системный словарь может здорово помочь. Он находится в поддиректории “,usr.dict,”. Файл называется “words”. Вы также можете переписать этот файл на дискету или скопировать его на другой компьютер, если вам нужен открытый словарный текст для использования на других машинах.

Одно из достоинств (и недостатков) словаря UNIX заключается в том, что содержащиеся там слова не совсем соответствуют общеупотребительному словарю английского языка. В системном словаре превалируют научные термины, что отвечает целям, ради которых был создан данный словарь.

Ограничения для паролей

Пароль должен отвечать определенным требованиям, как то:

а) быть определенной длины;

б) включать в себя как прописные, так и строчные буквы;

в) включать в себя одну и более цифр;

г) включать в себя один нецифровой и неалфавитный символ

Одно или несколько из этих правил должны соблюдаться.

Программа может также протестировать пароль пользователя, применив список известных ей “плохих” паролей, которые не допускаются к использованию.

Пароли, создаваемые компьютером: подделка и анализ паролей, генегигуемых машиной

Многие из паролей, которые создает сам компьютер, порождены не без участия генератора случайных чисел. Взгляните, например, на приведенный ниже отрывок из сегмента воображаемой программы:

5 Randomize Timer

100 For i = 1 to 6

110 Char=lnt(Rnd*91)

120 If Char < 65 Then Goto 110

130 Password = Password + Chr$(Char)

140 Next i

200 Print "Ваш новый пароль: "; Password

В данном случае шесть прописных букв выбираются независимо друг от друга и соединяются, образуя пароль. Буквы выбираются по случайному числу между 65 и 90 – в соответствии с ASCII-кодом для заглавных букв. Случайность выбранных кодов ASCII основана на использовании функции Rnd, возвращающей псевдослучайные числа, базирующиеся на показаниях компьютерного таймера. В принципе, для генерации случайных чисел может быть использовано все, что угодно – главное было бы аппаратное обеспечение. Во всех основных языках программирования имеется встроенная или библиотечная функция, возвращающая псевдослучайное число: либо в интервале от нуля до единицы, как в приведенном выше примере на языке Бейсик, либо в диапазоне, задаваемом программистом.

Один неплохой шифровочный алгоритм работает следующим образом: берутся синусы ASCII-кодов первых шести или восьми букв имени пользователя, затем берутся две предпоследние цифры из синусов, изменяются до подходящего размера, и соединяются в соответствующие ASCII-кодам буквы, формируя “слово”. Таким образом, вы получаете похожий на случайный пароль, который изготавливается практически вручную. Если имя пользователя состоит менее чем из шести букв, оставшееся место можно заполнить условными символами.

В данном примере имя пользователя превращается в ничего не значащий пароль в соответствии с методом, приведенным в тексте. На первый взгляд получившийся пароль кажется случайным и безопасным, но хакер может его разгадать, прибегнув к общедоступной информации о пользователе (здесь это фамилия пользователя).

Это достаточно простой пример; в жизни вам придется в соответствии с требованиями вводить в пароль строчные и прописные буквы, укорачивать его или удлинять, либо вставлять в пароль цифры, если понадобится.

Еще одна возможность, также предполагающая, что вы можете изменить генератор паролей незаметно – заменить начальное число генератора случайных чисел постоянной величиной (наберите в начале программы: 5 Randomize 0, тем самым заставив программу производить одни и те же серии случайных чисел при каждом запуске (до тех пор, пока компьютер включен и программа не возвращена в первоначальное состояние).

Однако это довольно рискованно, и может привести к нежелательным побочным эффектам. Один из методов устранения недостатков генераторов псевдослучайных чисел был разработан одним из создателей UNIX, Денисом М. Ричи, и издан в 1986 году в информационном бюллетене о средствах защиты под заголовком “On the Security of UNIX” (“О защите в системе UNIX”). Для повышения безопасности вычислительных установок администраторы решили создать безопасные, генерируемые компьютером пароли. Каждый пароль должен был представлять собой восьмизначную строку из строчных букв и цифр. Число таких паролей равняется 2,821,109,900,000. Как сказано у Ричи, у PDP-11,70 уйдет 112 лет на отгадывание этих паролей, перебирая их один за другим. Но один хакер знал, что генератор случайных чисел располагает лишь 32,768 начальными числами, значит, количество возможных результатов сокращается именно до этой величины. Представляете, этот негодяй создал генератор, проверил каждую из этих строк одну за другой и обнаружил все генерируемые системой пароли, потратив на это всего около, одной минуты машинного времени. Действительно, не жалко потратить шестьдесят секунд и немного попрограммировать ради того, чтобы получить доступ во все бюджеты системы!

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