который изготавливается практически вручную. Если имя пользователя сос-
тоит менее чем из шести букв, оставшееся место можно заполнить условными
символами.
В данном примере имя пользователя превращается в ничего не значащий
пароль в соответствии с методом, приведенным в тексте. На первый взгляд
получившийся пароль кажется случайным и безопасным, но хакер может его
разгадать, прибегнув к общедоступной информации о пользователе (здесь
это фамилия пользователя).
Это достаточно простой пример; в жизни вам придется в соответствии с
требованиями вводить в пароль строчные и прописные буквы, укорачивать
его или удлинять, либо вставлять в пароль цифры, если понадобится. Такое
внедрение пароля может оказать вам услугу, если вы занимаетесь системой
электронных сообщений или объявлений: пользователям могут так понра-
виться их новые безопасные пароли (а разве "rueavz" не кажется безопас-
ным паролем?), что они начинают пользоваться ими и в других местах.
Еще одна возможность, также предполагающая, что вы можете изменить
генератор паролей незаметно - заменить начальное число генератора слу-
чайных чисел постоянной величиной (наберите в начале программы: 5
Randomize 0, тем самым заставив программу производить одни и те же серии
случайных чисел при каждом запуске (до тех пор, пока компьютер включен и
программа не возвращена в первоначальное состояние). Однако это довольно
рискованно, и может привести к нежелательным побочным эффектам. Один из
методов устранения недостатков генераторов псевдослучайных чисел был
разработан одним из создателей UNIX, Денисом М. Ричи, и издан в 1986 го-
ду в информационном бюллетене о средствах зашиты под заголовком "On the
Security of UNIX" ("О защите в системе UNIX"). Для повышения безопаснос-
ти вычислительных установок администраторы решили создать безопасные,
генерируемые компьютером пароли. Каждый пароль должен был представлять
собой восьмизначную строку из строчных букв и цифр. Число таких паролей
равняется 2,821,109,900,000. Как сказано у Ричи, у PDP-11,70 уйдет 112
лет на отгадывание этих паролей, перебирая их один за другим. Но один
хакер знал, что генератор случайных чисел располагает лишь 32,768 на-
чальными числами, значит, количество возможных результатов сокращается
именно до этой величины. Представляете, этот негодяй создал генератор,
проверил каждую из этих строк одну за другой и обнаружил все генерируе-
мые системой пароли, потратив на это всего около, одной минуты машинного
времени. Действительно, не жалко потратить шестьдесят секунд и немного
попрограммировать ради того, чтобы получить доступ во все бюджеты систе-
мы!
Если вы не сможете ввести код для машинной генерации паролей, вам,
наверно, удастся проанализировать их уже после создания. Для этого вам
потребуется как минимум один пароль, а лучше два или более, из созданных
системой. Если вы располагаете легальным входом в систему, один пароль у
вас уже есть. Если вы взламываете локальную BBS, или еще какую-либо из
тех систем, где возможны многочисленные анонимные входы, попробуйте пе-
резагрузиться несколько раз и собрать несколько новых паролей под разны-
ми именами. Можно приобрести соответствующее программное обеспечение для
работы с BBS или программу генерации паролей и работать с ними, собирая
различные пароли.
Однажды я набрел на "свеженькую" BBS. Поразмыслив, я вошел в качестве
нового пользователя и не обнаружил там ничего интересного - программа
заводского супервизора для местных агентов, чтобы те могли заказывать
товары по описи. Для входа я использовал вымышленные имя и адрес: Roger
Eichner, 13 Stem Court, North Coast, WA 64203. Система дала мне пароль
oroghner24. Я был изумлен! Ведь программа явно попросту взяла первые три
буквы моего имени, последние четыре буквы фамилии и добавила в конце но-
мер! Но так ли это? Я загрузился еще раз, как новый пользователь под
другим именем. На этот раз видимой взаимосвязи между паролем и именем,
казалось, не было. Теперь я уже не просто изумился, но и смутился! Неу-
жели тот, первый, пароль был просто случайностью? А второй? Может быть,
это так запрограммировано, чтобы в качестве паролей только иногда ис-
пользовались части имени пользователя? ^ Тогда я вошел в третий раз, и
опять как новый пользователь. И снова пароль никак не был связан с име-
нем, которое я ввел. Теперь я уже почти окончательно убедил себя в том,
что первый пароль был всего лишь невероятным совпадением. Я послал сис-
темному оператору сообщение, чтобы тот уничтожил бюджеты тех трех новых
пользователей (приложив к посланию их имена с адресами, чтобы он не по-
думал, что я шучу), и больше не входил в эту систему в течение нес-
кольких недель. Несмотря на то, что последние два пароля никак не были
связаны ни с введенными мной личными данными, ни друг с другом, я думал,
что, возможно, я что-то пропустил в тот первый раз, и некоторые символы
одного пароля повторились в следующем. Могли ли эти символы иметь отно-
шение к скорости передачи моей информации в бодах, к типу компьютера,
или какому-то другому параметру, который оставался бы неизменным от од-
ной загрузки к другой? А не могла ли случайность паролей заключаться в
том, какие данные программа избирала для создания паролей? В первом слу-
чае эти данные были взяты из моего имени, и один из элементов (связь ко-
торого с моими данными я не смог распознать) повторился в третьем парол
е. Я вновь вошел в систему под тем же именем, адресом, с теми же тер-
минальными характеристиками и т. д., что и в первый раз. К своему огор-
чению, я получил не созданный компьютером пароль, а следующее сообщение:
"Уважаемый пользователь. Мы сожалеем, что вам придется пройти через это
еще раз, но за последние несколько дней у нас возникли некоторые пробле-
мы. Я вынужден просить вас удовольствоваться предоставленным вам низким
уровнем доступа до тех пор, пока у меня не появится возможность предос-
тавить вам ваши права в полном объеме. Прошу обратить внимание на следу-
ющее: в ответ на запрос системы о пароле не вводите тот же самый пароль,
который был введен раньше. Создайте новый пароль, полностью отличный от
предыдущего. В случае возникновения затруднений обращайтесь за разъясне-
ниями к системному администратору.
StRaPmAsTeR = = = wl1 LIE = = => (системный оператор).
Введите пароль = =>?"
"Разъяснение" гласило, что некий (относительно недавний) пользователь
сей BBS, чей псевдоним был Мистер Шутник, ввел в действие "свойство"
программного обеспечения данной BBS, создававшее несекретные пароли. В
предыдущем году система "вышла из строя, что явилось результатом
действий мистера Шутника". Причина или вид поломки подробно не описыва-
лись, вероятно, потому, что постоянные пользователи системы уже и так
знали эту историю. Как бы то ни было, теперь вы понимаете, каким образом
можно получить неплохую информацию, изучая "случайные" пароли. Даже если
на первый взгляд вы не можете найти ни одного осмысленного набора симво-
лов, это не означает, что его нет вообще. Может присутствовать лишь на-
мек на такой набор, или хотя бы ошибка или странность, которую вам
удастся обнаружить.
Например, в первой версии одной программы BBS - настолько жуткой, что
через месяц полетела клавиатура - генератор случайных паролей никогда не
создавал пароли, в которых присутствовала бы буква А или цифра 0. Знание
этой особенности может оказать некоторую услугу: для семизначного пароля
типа WXYZ123, где WXYZ - строчные либо прописные буквы, а 123 - цифры,
существует только 284,765,630 возможных комбинаций букв и цифр, вместо
456,976,000 - разница в 172,210,630 паролей! Программное обеспечение
кишмя кишело ошибками, многие из которых прославились как наихудшие
ошибки за всю историю программирования.
неслучайные пароли, генерируемые машиной
Под конец давайте обсудим неслучайные машинные пароли. Пользователи
часто подключаются к системе еще до окончания оформления регистрации,
пользуясь временным паролем. Временный пароль может представлять собой
какую-то уже известную пользователю информацию, например, номер карточки
социального страхования, дату рождения, либо другие личные данные. Пред-
полагается, что потом пользователи заменяют такие мало секретные пароли
на более безопасные, но пока им специально не покажут, как это делается,
или не посоветуют так поступить, пользователи вряд ли произведут замену.
Вот один некомпьютерный пример, наглядно демонстрирующий эту челове-
ческую слабость. В апреле 1992 года студенты университета в Нью-Ажерси
получили послание с информацией о новом классе регистрационных процедур.
В послании утверждалось, что код персонального доступа (Personal Access
Code - РАС), предназначенный для подтверждения личной регистрации, сос-
тоит из первых четырех цифр даты рождения данного человека (месяц и
день), вводимых вместе с девятой цифрой студенческого номера (а по необ-
ходимости - номера Социальной безопасности). В первую очередь меня пора-
зил тот факт, что они сообщили студентам, что их сверхсекретный РАС на
самом деле - их день рождения. Такое сообщение сводит на нет все меры по
безопасности, которые они пытаются внедрить. Действительно, неужели так
уж трудно узнать чью-то дату рождения? Но РАС является только частью па-
роля, а другая часть - студенческий ID. Узнать чей-то ID - проще просто-
го. ID можно легально, или почти легально, узнать в студенческих оздоро-
вительных центрах, прочесть на досках объявлений в компьютерных залах, в
идентификационных картах, в списках имеющих право на общежитие - да где
угодно! Послание также гласило, что те, кого беспокоит проблема безопас-
ности, могут подойти в регистрационный офис, чтобы изменить свой РАС.
Как вы понимаете, никому и в голову не придет куда-то тащиться и что-то
менять, коли можно обойтись и без этого. К тому же, замена первых четы-
рех цифр вряд ли сможет отпугнуть опытного хакера. Чтобы отследить изме-
нение пароля, потребуется 10 000 минус одна попыток. Не говоря уже о тех
366 возможных паролях, которые можно перебрать до того, как эта "озабо-
ченная безопасностью" личность сменит свой код. Десять тысяч чисел -
это, разумеется, немало, но перебрать их все вполне возможно. Автомати-
ческий номеронабиратель способен проделать это примерно за семь минут,
если количество попыток ввода кодов на один звонок будет неограниченным.
В любом случае, я привел эту историю для того, чтобы проиллюстрировать
одну истину: пользователь и пальцем не пошевелит, чтобы изме
нить коды доступа, если его не заставить.
И, даже если они это сделают, мало что изменится. На что же тогда мы,
хакеры? Давайте теперь вернемся к нашему разговору о неслучайных паро-
лях, которые генерирует компьютер; вернее, о тех, которые устанавливает
программист или администратор, выбирая их из компьютерных файлов данных.
Компьютер выбирает пароли каждый раз, когда требуется ввести большое
количество паролей сразу. В течение первой недели семестра в колледже
для студентов, занимающихся в компьютерных классах, создаются тысячи
входов. По большей части эти входы-бюджеты устанавливаются с пользова-
тельским именем, соответствующим усеченной или уменьшительной форме нас-
тоящего имени пользователя, а пароли представляют собой либо номер кар-
точки социального страхования (НКСС), либо студенческий ID. Итак, если
вы решили подвергнуть взлому компьютерную систему колледжа, приступайте
к делу в самом начале семестра - пока пользователи не заменили свои па-
роли на более секретные. НКСС можно отгадать методом прямого перебора.
НКСС (или другие идентификационные номера) также можно получить соци-
альными методами (см. главу о социальной инженерии), или с помощью дру-
гих хитростей. Я присутствовал на уроке в одном колледже, когда инструк-