Страница:
– Ну так что же, лишите его пароля, – предложил кто-то.
Боб покачал головой. После очередной серии вопросов Боб раскололся и сказал, что это его собственный сын.
– Как же он ухитрился узнать системный пароль?
– Он его не знал.
– Так как же он сюда проник?
В конце концов выяснилось, что Боб по рассеянности отошел от компьютера в тот момент, когда получил доступ ко всему компьютерному хозяйству в Bell Labs, оставив Роберту работающую систему. Роберт просто сел за машину и начал в ней копаться.
Интересы Роберта явно простирались дальше компьютерных игр. Когда он перешел в предпоследний класс, отец познакомил его с UNIX, и Роберт тут же нашел в ней дыры. Вскоре он написал свою собственную оболочку для UNIX, изящную программу для выполнения команд пользователя. Как только исходный код UNIX появился в прямом доступе, Роберт начал изучать его с особым жаром. В 16 лет он показал своему лучшему другу Питеру, сыну Дуга Макилроя, как можно получить статус привилегированного пользователя на одной машине, а потом использовать эти привилегии на других машинах в лаборатории. Роберт даже модифицировал несколько файлов, прежде чем обратил внимание отцовских коллег на дыру в защите, которую он обнаружил. Если сотрудники Bell Labs и были озадачены или даже благодарны подростку, который нашел изъяны в их произведении, они этого не показали.
Роберт уже в? классе был скорее коллегой отца, чем его учеником. У Боба хватало такта никогда не сажать Роберта перед собой со словами: «Слушай, я собираюсь прочесть тебе лекцию». Иногда у них завязывалась дискуссия, касавшаяся какой-нибудь технической проблемы, которая могла тянуться часами или даже днями. Когда они говорили о своем – это могло быть слабое место в защите UNIX или монтаж электронной схемы – они не замечали остальных членов семьи. Боб, поскольку он знал больше, иногда бывал неоправданно суров к Роберту и крайне требователен. Невольно слыша их беседы, Энн могла бы сказать, что Боб давит на сына. Но такова была его манера разговаривать. Боб привык выспрашивать, вытягивать информацию у любого, задавая вопросы коротко и сжато, что посторонним могло показаться резкостью и раздражительностью. Для тех же, кто его знал. Боб был совсем не грозным и даже веселым. По большей части они с Робертом обсуждали теоретические вопросы, однако Боб всегда поощрял сына в занятиях прикладным программированием.
Посторонним могло даже показаться, что Боб поощряет его заниматься хакингом. В 1982 году Гина Колата, журналистка из Science, работавшая над статьей о компьютерной преступности для журнала Smitsonian, брала у Боба Морриса интервью. Он рассказал ей о «тигриных командах» и уверенно заявил, что, бегло просмотрев содержимое ее сумки, будет знать о ней достаточно, чтобы отгадать ее компьютерный пароль. Когда она спросила, не знает ли он каких-нибудь молодых хакеров, у которых она могла бы взять интервью, Боб предложил ей поговорить с его сыном (на основе полной анонимности) и пригласил домой. Роберт, которому было 16 лет, поразил Кодату необычайной застенчивостью и, казалось, почти боялся журналистки. Энн Моррис присутствовала при их разговоре и хотя и производила впечатление опекающей сына, у Колаты осталось ощущение, что отец и сын были тандемом. Роберт рассказал ей, что да, он просматривал конфиденциальную электронную почту и вламывался в компьютеры через сеть. «Я никогда не уверял себе, что в том, чем я занимаюсь, нет ничего плохого». Но, сказал он, продолжал это делать – ради азарта и риска. (Забавное совпадение: в том году Роберт занял на олимпиаде по физике 11-е место в штате. Его наградили подпиской на Smitsoniаn и в первом же номере, который он получил, была статья Колаты.)
Статья в Smitsonian появилась в то время, когда осознание значимости компьютерной защиты постепенно росло. К началу 80-х сначала сотни, а затем тысячи компьютеров соединялись через сеть, и компьютерная идеология была «один пользователь – один компьютер». Но начинала оформляться новая идея: почему бы не создать вычислительную систему, которая находилась бы не в одном компьютере, а распределялась по компьютерной сети? Будет ли такая система столь разумной, что, когда потребуется выполнить какое-нибудь задание, она автоматически отправит это задание туда, где наиболее доступны вычислительные ресурсы? Компьютерная революция шла, но мало кто отдавал в этом отчет.
Пока Роберт подрастал, сети в большинстве частных лабораторий использовались только для экспериментов с новыми путями использования компьютеров. Вещи, которыми занимался его отец, исследования, о которых говорили вокруг, только укрепляли это представление. Однако мир быстро изменялся, и на ближайшее десятилетие наиболее мощным инструментом перемен стала Arpanet. ARPA – Управление перспективных исследований Министерства обороны, в дальнейшем переименованное в DAPRA. Заправляли там скорее ученые, чем военные, и на управление были возложены задачи разработки высоко рисковых идей. Для американской компьютерной науки в университетах и частных исследовательских центрах DAPRA открыла совершенно новый мир. В 60-е и 70-е годы финансирование DAPRA сыграло решающую роль в наиболее значительных прорывах в компьютерной науке. Персональные компьютеры, компьютерные сети, искусственный интеллект, распознавание голоса – все это так или иначе своим появлением было обязано экспериментам, финансированным DAPRA.
Сеть Arpanet, в свою очередь, была оригинальной разработкой программистов, которые в конце 60-х предвидели возможность совместного использования компьютеров и дорогостоящих вычислительных ресурсов инженерами и программистами вне зависимости от того, где они находились. То, что компьютерная сеть может служить одновременно и средством мгновенной коммуникации, и исследовательской лабораторией, было революционной идеей.
В начале 1960 года Пол Баран из Rand Corporation искал способы сделать телефонные сети более надежными в случае ядерной войны. Из его исследований родилась идея разбивать преобразованные в цифровую форму сообщения на пакеты. Каждый пакет должен содержать электронный адрес, и каждый можно будет передавать по самому оптимальному маршруту. Пакетная коммутация существенно снизила расходы на передачу данных, сделав возможным появление малобюджетных компьютерных сетей. Идея включения в эти сети уже связанных компьютеров принадлежала Дж. С. Р. Ликлидеру, психологу, котopый стал первым директором отдела обработки информации и технологий в DARPA.
Первый узел Arpanet был установлен в Калифорнийском университете в Лос-Анджелесе в декабре 1969 года, а следующие три – в Калифорнийском университете в Санта-Барбаре, Стэнфордском исследовательском институте, калифорнийском мозговом центре, и в университете штата Юта. В 1970 году прибавились еще три узла на Восточном побережье – в Массачусетсом технологическом институте, в лаборатории Bolt, Beranek and Newman в Кембридже, где разрабатывалась сеть Arpanet, и в Гарвардском университете.
Во всех прочих проектах компьютеры соединяли в порядке эксперимента, но Arpanet предстояло вырасти в первую всеамериканскую компьютерную сеть. Arpanet соединила исследовательские центры, пентагоновские вычислительные центры и университеты. Поначалу все машины в сети были идентичными (почти все – PDP корпорации Digital) и практически все пользователи получали зарплату от правительства. Работать в вычислительном центре, соединенном с Arpanet, значило входить в элиту. Так соблазнительно было подключиться к сети, что зачастую предложение академической работы принимали или отвергали в зависимости от того, гарантирует она или нет доступ к сети. Для некоторых компьютерщиков такой доступ был необходимым условием их деятельности. Для них пойти работать в университет, не входивший в сеть, было то же самое, что микробиологу согласиться работать в школе, где нет микроскопа.
Первые годы Arpanet представляла что-то вроде частного клуба. «Вы в сети?» – часто можно было услышать от самых элитарных компьютерщиков. Попасть в клуб было нелегко, но уж когда человек становился членом клуба, то мог развернуться вовсю. Понятия о какой-либо защите информации попросту не существовало. Кто угодно и где угодно мог прочесть любой файл в сети. Например, в университете Карнеги-Меллона любой файл в любом компьютере, за исключением тех, что были откровенно закрыты, был доступен для просмотра или копирования пользователями Arpanet. В таких местах аспиранты провели много счастливых часов, путешествуя по файлам «внешних» компьютеров в поисках чего-нибудь интересненького.
В 1975 году сеть была передана Управлению связи Министерства обороны. Теперь в нее входило более 60 вычислительных центров, и рабочая нагрузка сети заметно возросла. Фактически, клубная обстановка, характеризовавшая раннюю Arpanet, определялась чисто техническими ограничениями сети. В 70-е годы Arpanet могла обслуживать только 256 машин. Но в 1982 году была разработана новая схема сетевой адресации, что сделало возможным рост сети по экспоненте. К середине 80-х Arpanet стала центром кристаллизации комплекса сетей, получившего название Internet и обосновавшегося более чем в 50 странах. Уж эту сеть никак нельзя было назвать техническим экспериментом. Компьютерные центры использовали эту сеть для технической поддержки, ученые гоняли статьи туда-сюда, и всевозможное программное обеспечение рекой заливало земной шар. Частные фирмы перенимали технологию сети и создавали собственные коммерческие сети, базировавшиеся на том же наборе протоколов обмена. Эти корпорации использовали и саму Internet, чтобы поддерживать контакт с раскинувшимися по всему миру филиалами. Internet, в свою очередь, объединялась через шлюзы с сотнями, а то и тысячами других сетей. Пошли разговоры о еще более масштабной концепции объединения сетей в сеть более высокого уровня. Такую суперсеть называли «Матрицей» – название было позаимствовано у окружившей весь мир компьютерной сети из романа Вильяма Гибсона «Нейромант».
У пионеров Arpanet не вызывало восторга, что их сетью начали пользоваться все кому не лень. Если раньше год пользования сетью стоил 250000 долларов, то теперь уровень поддержки вырос настолько, что стоимость стала минимальной. Университеты и исследовательские центры корпораций по-прежнему составляли большинство связей, но к 1988 году функции сети существенно изменились. Когда-то предполагалось, что Arpanet будет прежде всего компьютерной лабораторией, но теперь она использовалась главным образом для отправки электронных сообщений всевозможного содержания. Ветераны сети были обескуражены и не на шутку раздосадованы, видя, что журналисты – их тут только не хватало! – пользуются сетью. Это было почти так же нелепо, как если бы в химической лаборатории университета вы обнаружили компанию репортеров, баловавшихся с бунзеновскими горелками и пипетками.
Постепенно исходные связи Arpanet были вытеснены более быстрыми маршрутами, и к 1990 году сеть прекратила существовать как отдельный организм, будучи поглощена Internet. Считалось, что в сети находилось несколько сот тысяч машин, от суперкомпьютеров до ПК, и более чем 2 миллиона пользователей. С сетью работали ученые, бизнесмены, студенты, солдаты… Было ясно, что Америка на пороге новой индустриальной революции, которая породит новый бизнес, новое образование и новые развлечения.
И все– таки сперва сети создавались для того, чтобы экспериментально исследовать размах и мощь самих сетей. В 1971 году Боб Томас, сотрудник Bolt, Beranek and Newman, работал над распределенным программным обеспечением. Его группа занималась моделированием авиадиспетчерской программы, которая отслеживала бы передвижение самолетов. Идея заключалась в том, чтобы передавать контроль за самолетом от одного компьютера на другой и сообщать всем другим компьютерам об изменениях в местоположении отдельного самолета. Занимаясь этим, Томас написал программу, чья функция состояла в том, чтобы ползти по сети и выскакивать на каждом экране, оставляя сообщение: «Я -ползун! Поймай меня, если сможешь!». Когда об этой программе узнали хакеры, то стали вовсю писать подобные программы, причем некоторые размножались, пока прокладывали дорогу по сети (ползун не размножался, он просто двигался), а другие включали программы-риперы (жатки), отлавливавшие и уничтожавшие ползунов. Запуск таких программ стал на несколько месяцев пунктиком, и потом вышел из моды.
В начале 80-х два сотрудника исследовательского центра компании Xerox в Пало-Альто начали экспериментировать с программами, которые они называли «червями». Черви могли прогоняться на многих компьютерах в локальной сети (Arpanet была глобальной сетью, соединявшей удаленные компьютеры). Термин «червь» они взяли из научно-фантастического романа «Оседлавший взрывную волну», классики научной фантастики, написанного Джоном Браннером в 1975 году. В книге описывалось авторитарное правительство, осуществлявшее тотальный контроль над обществом посредством всемогущей компьютерной сети, пока взбунтовавшийся программист не заразил сеть программой, названной «ленточный глист». Чтобы уничтожить программу – паразита, правительство было вынуждено выключить сеть, при этом лишившись своей власти. После этой книги Браннер стал культовой фигурой для всех читателей фантастики. Роман оказал сильное влияние и на зарождавшийся компьютерный андеграунд – неформальные объединения телефонных фриков и компьютерных хакеров в таких местах, как Кремниевая долина и Кембридж, – возникший одновременно с появлением персональных компьютеров. Джон Шок и Ион Хепп из Xerox искали способ сделать совместное использование вычислительных ресурсов в локальной сети более доступным. Они пришли к созданию 5 или 6 рабочих червей. Один назывался «червь-глашатай», его миссия заключалась в том, чтобы путешествовать по сети и оставлять объявления. Другой – «червь-диагностик» – должен был прыгать с машины на машину, постоянно проверяя, все ли в порядке. Конечно, самой распределенной из программ, которые они замыслили, должен был стать «червь-вампир». Такая программа, полагали они, получит преимущества почти безграничной автономности в сети рабочих станций. Ведь эти машины по ночам простаивают, а это время можно было бы использовать с толком. Вампир должен был автономно включаться, когда люди разойдутся по домам, и приступать к работе над сложными задачами, требующими больших вычислительных ресурсов. Утром, когда люди заявят свои права на машины, вампир уступит им поле деятельности и исчезнет до вечера.
Но Шоку и Хеппу довольно быстро пришлось познакомиться с потенциальной опасностью червей. Однажды ночью неправильно функционировавшая программа вышла из-под контроля в локальной сети исследовательского центра Пало-Альто. Утром, когда программисты вернулись, они обнаружили, что зависли компьютеры во всем здании. Они стали перезагружать системы, но стоило им запустить машину, как дефективный червь тут же заставлял ее зависать. Ситуацию осложняло то, что многие машины находились в запертых комнатах и до них нельзя было добраться. Наконец они написали программу-вакцину, которая пошла по сети, делая каждому компьютеру электронную прививку.
Кен Томпсон из Bell Labs пользовался Arpanet, экспериментируя с компьютерной защитой. В конце 70-х, когда Томпсон работал над статьей о взламывании парольной защиты, он использовал несколько узлов сети – Гарвард, МГГ, университет Карнеги-Меллона и Беркли, то есть те, где пароли были общедоступны, либо где у него был доступ к этим файлам. Его программа, взламывавшая пароли, сработала, и он обнаружил, что нечаянно захватил пароли нескольких ведущих администраторов Arpanet, людей с доступом ко многим машинам по всей сети. Он попробовал пароли и убедился, что они работают. В руках «плохих ребят» такой изъян в защите был бы весьма опасен, так что Томпсон предупредил владельцев паролей.
Благодаря его прежним несанкционированным путешествиям по компьютерам Bell Labs Роберт уже сделал себе что-то вроде имени. Но он был прилежным работником. У него был собственный проект, которым он занимался, – создание более защищенной и действенной реализации UUCP, программы, использовавшейся для передачи файлов с одной UNIX-машины на другую. Требовалось написать реализацию UUCP, которая могла бы справиться с интенсивностью и разнообразием траффика, развернувшегося в сети за годы. Не каждый студент университета смог бы переработать такой большой массив ПО. Несмотря на некоторые шероховатости, программа Роберта оказалась настолько хороша, что стала моделью для UUCP, в итоге принятой Bell Labs. Роберт написал статью о результатах своей работы, озаглавив ее «Ещё одна попытка UUCP».
Неверно было бы думать, что Роберт целиком посвятил себя компьютерам. Он плавал за школьную команду и пел в хоре. Все же он оставался закомплексованным и, насколько могли судить его родители, по-прежнему не отдавал отчет в своих интеллектуальных способностях. Энн ничего не оставалось, как взять на себя разговор с директором школы. Она объяснила, что, как ей кажется, Роберту пойдет на пользу, если учителя будут его хвалить в присутствии других учеников. Через несколько дней, когда школа получила результаты ежегодного теста SAT, директор встретил Роберта и во всеуслышание объявил, что его результаты – 800 баллов по языку и 700 по математике – самые высокие за всю историю школы. С этого момента его уверенность в себе стала крепнуть. Для продолжения образования он выбрал Гарвардский колледж. Там учился не только его отец, но и несколько поколений его предков по матери. Роберт подал документы досрочно и был принят.
В Гарварде Роберт оставался таким же застенчивым и неловко чувствовал себя в обществе. Он сразу же наметил себе вычислительный центр имени Эйкена. Эйкеновская лаборатория обслуживала отделение прикладных наук. Главный вычислительный центр, где от операторов не требовалось ничего, кроме умения заправить бумагу в принтер, находился в другом конце университетского городка, в помещении Центра информационных технологий. В Эйкене машины были посильнее, нравы посвободнее, поэтому Эйкен была куда более привлекательным местом для работы. Когда Роберт поступил в Гарвард, факультета компьютерных наук как такового там не было. Его заменяла кафедра компьютерных наук на факультете прикладных наук, где работало 17 преподавателей. Гарвардские студенты, серьезно интересовавшиеся вычислительной техникой, попадали по закону притяжения в Эйкен, где проводил все свое время и преподавательский состав.
Кирпичный памятник утилитарной архитектуры, Эйкен соседствовал с величественным зданием факультета права. В вестибюле, занимая всю стену, стоял вклад Говарда Эйкена в современные вычислительные технологии – Марк I, автоматическая счетная машина, монстр длиной в 51 фут и высотой в 8 футов. В 30-е-годы профессор математики мечтал создать крупномасштабный калькулятор – смонтированное на распределительном щите устройство, которое производило бы арифметические вычисления без участия оператора. В 1944 году Эйкен, сотрудничая с IBM, собрал Марк I стоимостью в 250000 долларов. Это был первый в мире крупномасштабный электрический калькулятор. Со стандартной задачей, на решение которой у команды из четырех специалистов ушло бы три недели, Марк I справлялся всего за 18 часов. В конце 80-х вычисление, которое бы по-настоящему озадачило Марка I, можно было за одну-две секунды выполнить на программируемом карманном калькуляторе. Но для своего времени Марк I был революционным прорывом, и место Говарда Эйкена в истории науки бережно сохранялось в здании, названном в его честь.
Напротив Марка за стеклянной стеной располагалась комната с терминалами и рабочими станциями, где работали студенты и персонал Эйкена. В 1983 году закоренелые компьютерщики, у которых не было своих комнат, проводили в ней по 18 часов, а другие дрейфовали туда-сюда. В свое время в этой комнате работал и Боб Моррис, помогая собирать Марка IV, четвертое поколение эйкеновских вычислительных машин.
Вскоре после прибытия в Гарвард Моррис-младший зашел в кабинет эйкеновского администратора и попросил машинное время. Администратор, Элеонор Сакс, терпеливо объяснила, что первокурсникам это не разрешается, что Эйкен – вотчина профессорско – преподавательского состава и старшекурсников. Она любезно предложила ему присоединиться к другим новичкам в вычислительном центре, который находился в нескольких шагах. Однако Роберт не горел желанием слиться с массами в цокольном этаже центра, где океан компьютерных терминалов и ПК больше напоминал машбюро, чем лабораторию. Эйкен был не только более цивилизованным местом, где можно было сидеть и писать программы, он предоставлял больше вычислительных ресурсов. Роберт не пытался спорить и вышел из кабинета. Несколько дней спустя он сам разрешил свою проблему, превратил Эйкеновский VAX в однопользовательскую машину, сделал себе доступ и затем вернул VAXy многопользовательский статус. Его пароль остался тем же, что и во времена Bell Labs, – rtm. Вскоре знавший Боба Морриса сотрудник похлопотал за Роберта, и тот получил законный доступ.
Ник Хортон, эйкеновский администратор, мало знал о UNIX, и вскоре Роберт прочно обосновался в Эйкене. Роберт был не из тех всезнаек, кто знает понемногу обо всем. Как и его отец, Роберт знал много о многим. Он с одинаковой легкостью справлялся как с отказами железа, так и с проблемами в ПО. Стоило в Эйкене узнать о его талантах, как его услуги стали пользоваться большим спросом.
В Гарварде относительно немногие специализировались по вычислительной технике – примерно 30 студентов каждый год получали степень бакалавра компьютерных наук. Но они гордились тем, что получали гораздо более разностороннюю подготовку, чем их коллеги– выпускники МГГ. Роберт, возможно, был исключительно одаренным, но определенно не выделялся в Эйкене. Его окружали очень яркие личности. Стиль Эйкена лучше всего иллюстрировали студенты, которые подрабатывали здесь программистами. Один профессор, ждавший для выполнения какой-то программной задачи студента, был поражен тем, что увидел: студент сидел и ждал вывода данных, читая одновременно две книги – одну на французском, другую на немецком, просто чтобы убить время. Возможно, больше всего выделяло Роберта его впечатляющее знание UNIX. Он мог часами читать руководство по UNIX. Документация UNIX разрослась так, что занимала более 2000 страниц, и на каждой странице – новые детали, касавшиеся эксплуатации этой операционной системы. Многие держали документацию под рукой просто как справочник, но Роберт получал наслаждение от чтения. Вскоре его считали самым большим специалистом лаборатории по UNIX. Он был больше чем теоретик. Его способность помнить детали была потрясающей. Если у кого-то возникал вопрос по UNIX, проще было спросить у Роберта, чем искать ответ в справочнике. Одни с благоговением относились к его компетенции, другие удивлялись – неужели ему больше нечем заняться. Короче, Роберт был системным хакером до мозга костей.
Как и его отец, Роберт умел наскоро написать программу, которая разрешила бы проблему. Был случай, когда одному профессору потребовалось программное обеспечение для нового компьютера. Он попросил Роберта, и тот, даже не набросав плана, сел за компьютер и начал печатать. Через несколько часов он закончил, и программа, несмотря на некоторые погрешности в коде, оказалась вполне на уровне. К концу первого курса Роберт проводил в Эйкене почти все свое время. Он делал всякую программистскую мелочевку и осуществлял техническую поддержку, все это бесплатно, и стал незаменимым. Когда у него спросили, почему бы ему не устроиться на работу в Эйкен и по крайней мере получать деньги, он ответил, что отец велел ему не торопиться с работой, чтобы ничего не отвлекало его от учебы. Таким образом, он держал слово, а в Эйкен ходил для развлечения. И поскольку ему не платят, он может сам выбирать, над чем работать.
Лето после первого курса Роберт провел в родительском доме в Миллиштоне, работая в Bell Labs. В результате появилась его вторая статья, обращавшая внимание на бреши в защите берклийской версии UNIX. К этому времени Роберта уже так ценили в Эйкене, что компьютер в Bell Labs связали напрямую с Гарвардом, так что Роберт из Нью-Джерси мог заниматься диагностикой и удаленной эксплуатацией. Его сообщения были немногословными и почти всегда устраняли проблему. Он помогал даже тогда, когда его не просили об этом. Как-то он пасся по эйкенской системе и обнаружил, что какое-то «железо» установлено неправильно. Ник Хортон получил записку от Роберта: «Попробуй поменять местами платы А и Б». Проблема была решена.
Боб покачал головой. После очередной серии вопросов Боб раскололся и сказал, что это его собственный сын.
– Как же он ухитрился узнать системный пароль?
– Он его не знал.
– Так как же он сюда проник?
В конце концов выяснилось, что Боб по рассеянности отошел от компьютера в тот момент, когда получил доступ ко всему компьютерному хозяйству в Bell Labs, оставив Роберту работающую систему. Роберт просто сел за машину и начал в ней копаться.
Интересы Роберта явно простирались дальше компьютерных игр. Когда он перешел в предпоследний класс, отец познакомил его с UNIX, и Роберт тут же нашел в ней дыры. Вскоре он написал свою собственную оболочку для UNIX, изящную программу для выполнения команд пользователя. Как только исходный код UNIX появился в прямом доступе, Роберт начал изучать его с особым жаром. В 16 лет он показал своему лучшему другу Питеру, сыну Дуга Макилроя, как можно получить статус привилегированного пользователя на одной машине, а потом использовать эти привилегии на других машинах в лаборатории. Роберт даже модифицировал несколько файлов, прежде чем обратил внимание отцовских коллег на дыру в защите, которую он обнаружил. Если сотрудники Bell Labs и были озадачены или даже благодарны подростку, который нашел изъяны в их произведении, они этого не показали.
Роберт уже в? классе был скорее коллегой отца, чем его учеником. У Боба хватало такта никогда не сажать Роберта перед собой со словами: «Слушай, я собираюсь прочесть тебе лекцию». Иногда у них завязывалась дискуссия, касавшаяся какой-нибудь технической проблемы, которая могла тянуться часами или даже днями. Когда они говорили о своем – это могло быть слабое место в защите UNIX или монтаж электронной схемы – они не замечали остальных членов семьи. Боб, поскольку он знал больше, иногда бывал неоправданно суров к Роберту и крайне требователен. Невольно слыша их беседы, Энн могла бы сказать, что Боб давит на сына. Но такова была его манера разговаривать. Боб привык выспрашивать, вытягивать информацию у любого, задавая вопросы коротко и сжато, что посторонним могло показаться резкостью и раздражительностью. Для тех же, кто его знал. Боб был совсем не грозным и даже веселым. По большей части они с Робертом обсуждали теоретические вопросы, однако Боб всегда поощрял сына в занятиях прикладным программированием.
Посторонним могло даже показаться, что Боб поощряет его заниматься хакингом. В 1982 году Гина Колата, журналистка из Science, работавшая над статьей о компьютерной преступности для журнала Smitsonian, брала у Боба Морриса интервью. Он рассказал ей о «тигриных командах» и уверенно заявил, что, бегло просмотрев содержимое ее сумки, будет знать о ней достаточно, чтобы отгадать ее компьютерный пароль. Когда она спросила, не знает ли он каких-нибудь молодых хакеров, у которых она могла бы взять интервью, Боб предложил ей поговорить с его сыном (на основе полной анонимности) и пригласил домой. Роберт, которому было 16 лет, поразил Кодату необычайной застенчивостью и, казалось, почти боялся журналистки. Энн Моррис присутствовала при их разговоре и хотя и производила впечатление опекающей сына, у Колаты осталось ощущение, что отец и сын были тандемом. Роберт рассказал ей, что да, он просматривал конфиденциальную электронную почту и вламывался в компьютеры через сеть. «Я никогда не уверял себе, что в том, чем я занимаюсь, нет ничего плохого». Но, сказал он, продолжал это делать – ради азарта и риска. (Забавное совпадение: в том году Роберт занял на олимпиаде по физике 11-е место в штате. Его наградили подпиской на Smitsoniаn и в первом же номере, который он получил, была статья Колаты.)
Статья в Smitsonian появилась в то время, когда осознание значимости компьютерной защиты постепенно росло. К началу 80-х сначала сотни, а затем тысячи компьютеров соединялись через сеть, и компьютерная идеология была «один пользователь – один компьютер». Но начинала оформляться новая идея: почему бы не создать вычислительную систему, которая находилась бы не в одном компьютере, а распределялась по компьютерной сети? Будет ли такая система столь разумной, что, когда потребуется выполнить какое-нибудь задание, она автоматически отправит это задание туда, где наиболее доступны вычислительные ресурсы? Компьютерная революция шла, но мало кто отдавал в этом отчет.
Пока Роберт подрастал, сети в большинстве частных лабораторий использовались только для экспериментов с новыми путями использования компьютеров. Вещи, которыми занимался его отец, исследования, о которых говорили вокруг, только укрепляли это представление. Однако мир быстро изменялся, и на ближайшее десятилетие наиболее мощным инструментом перемен стала Arpanet. ARPA – Управление перспективных исследований Министерства обороны, в дальнейшем переименованное в DAPRA. Заправляли там скорее ученые, чем военные, и на управление были возложены задачи разработки высоко рисковых идей. Для американской компьютерной науки в университетах и частных исследовательских центрах DAPRA открыла совершенно новый мир. В 60-е и 70-е годы финансирование DAPRA сыграло решающую роль в наиболее значительных прорывах в компьютерной науке. Персональные компьютеры, компьютерные сети, искусственный интеллект, распознавание голоса – все это так или иначе своим появлением было обязано экспериментам, финансированным DAPRA.
Сеть Arpanet, в свою очередь, была оригинальной разработкой программистов, которые в конце 60-х предвидели возможность совместного использования компьютеров и дорогостоящих вычислительных ресурсов инженерами и программистами вне зависимости от того, где они находились. То, что компьютерная сеть может служить одновременно и средством мгновенной коммуникации, и исследовательской лабораторией, было революционной идеей.
В начале 1960 года Пол Баран из Rand Corporation искал способы сделать телефонные сети более надежными в случае ядерной войны. Из его исследований родилась идея разбивать преобразованные в цифровую форму сообщения на пакеты. Каждый пакет должен содержать электронный адрес, и каждый можно будет передавать по самому оптимальному маршруту. Пакетная коммутация существенно снизила расходы на передачу данных, сделав возможным появление малобюджетных компьютерных сетей. Идея включения в эти сети уже связанных компьютеров принадлежала Дж. С. Р. Ликлидеру, психологу, котopый стал первым директором отдела обработки информации и технологий в DARPA.
Первый узел Arpanet был установлен в Калифорнийском университете в Лос-Анджелесе в декабре 1969 года, а следующие три – в Калифорнийском университете в Санта-Барбаре, Стэнфордском исследовательском институте, калифорнийском мозговом центре, и в университете штата Юта. В 1970 году прибавились еще три узла на Восточном побережье – в Массачусетсом технологическом институте, в лаборатории Bolt, Beranek and Newman в Кембридже, где разрабатывалась сеть Arpanet, и в Гарвардском университете.
Во всех прочих проектах компьютеры соединяли в порядке эксперимента, но Arpanet предстояло вырасти в первую всеамериканскую компьютерную сеть. Arpanet соединила исследовательские центры, пентагоновские вычислительные центры и университеты. Поначалу все машины в сети были идентичными (почти все – PDP корпорации Digital) и практически все пользователи получали зарплату от правительства. Работать в вычислительном центре, соединенном с Arpanet, значило входить в элиту. Так соблазнительно было подключиться к сети, что зачастую предложение академической работы принимали или отвергали в зависимости от того, гарантирует она или нет доступ к сети. Для некоторых компьютерщиков такой доступ был необходимым условием их деятельности. Для них пойти работать в университет, не входивший в сеть, было то же самое, что микробиологу согласиться работать в школе, где нет микроскопа.
Первые годы Arpanet представляла что-то вроде частного клуба. «Вы в сети?» – часто можно было услышать от самых элитарных компьютерщиков. Попасть в клуб было нелегко, но уж когда человек становился членом клуба, то мог развернуться вовсю. Понятия о какой-либо защите информации попросту не существовало. Кто угодно и где угодно мог прочесть любой файл в сети. Например, в университете Карнеги-Меллона любой файл в любом компьютере, за исключением тех, что были откровенно закрыты, был доступен для просмотра или копирования пользователями Arpanet. В таких местах аспиранты провели много счастливых часов, путешествуя по файлам «внешних» компьютеров в поисках чего-нибудь интересненького.
В 1975 году сеть была передана Управлению связи Министерства обороны. Теперь в нее входило более 60 вычислительных центров, и рабочая нагрузка сети заметно возросла. Фактически, клубная обстановка, характеризовавшая раннюю Arpanet, определялась чисто техническими ограничениями сети. В 70-е годы Arpanet могла обслуживать только 256 машин. Но в 1982 году была разработана новая схема сетевой адресации, что сделало возможным рост сети по экспоненте. К середине 80-х Arpanet стала центром кристаллизации комплекса сетей, получившего название Internet и обосновавшегося более чем в 50 странах. Уж эту сеть никак нельзя было назвать техническим экспериментом. Компьютерные центры использовали эту сеть для технической поддержки, ученые гоняли статьи туда-сюда, и всевозможное программное обеспечение рекой заливало земной шар. Частные фирмы перенимали технологию сети и создавали собственные коммерческие сети, базировавшиеся на том же наборе протоколов обмена. Эти корпорации использовали и саму Internet, чтобы поддерживать контакт с раскинувшимися по всему миру филиалами. Internet, в свою очередь, объединялась через шлюзы с сотнями, а то и тысячами других сетей. Пошли разговоры о еще более масштабной концепции объединения сетей в сеть более высокого уровня. Такую суперсеть называли «Матрицей» – название было позаимствовано у окружившей весь мир компьютерной сети из романа Вильяма Гибсона «Нейромант».
У пионеров Arpanet не вызывало восторга, что их сетью начали пользоваться все кому не лень. Если раньше год пользования сетью стоил 250000 долларов, то теперь уровень поддержки вырос настолько, что стоимость стала минимальной. Университеты и исследовательские центры корпораций по-прежнему составляли большинство связей, но к 1988 году функции сети существенно изменились. Когда-то предполагалось, что Arpanet будет прежде всего компьютерной лабораторией, но теперь она использовалась главным образом для отправки электронных сообщений всевозможного содержания. Ветераны сети были обескуражены и не на шутку раздосадованы, видя, что журналисты – их тут только не хватало! – пользуются сетью. Это было почти так же нелепо, как если бы в химической лаборатории университета вы обнаружили компанию репортеров, баловавшихся с бунзеновскими горелками и пипетками.
Постепенно исходные связи Arpanet были вытеснены более быстрыми маршрутами, и к 1990 году сеть прекратила существовать как отдельный организм, будучи поглощена Internet. Считалось, что в сети находилось несколько сот тысяч машин, от суперкомпьютеров до ПК, и более чем 2 миллиона пользователей. С сетью работали ученые, бизнесмены, студенты, солдаты… Было ясно, что Америка на пороге новой индустриальной революции, которая породит новый бизнес, новое образование и новые развлечения.
И все– таки сперва сети создавались для того, чтобы экспериментально исследовать размах и мощь самих сетей. В 1971 году Боб Томас, сотрудник Bolt, Beranek and Newman, работал над распределенным программным обеспечением. Его группа занималась моделированием авиадиспетчерской программы, которая отслеживала бы передвижение самолетов. Идея заключалась в том, чтобы передавать контроль за самолетом от одного компьютера на другой и сообщать всем другим компьютерам об изменениях в местоположении отдельного самолета. Занимаясь этим, Томас написал программу, чья функция состояла в том, чтобы ползти по сети и выскакивать на каждом экране, оставляя сообщение: «Я -ползун! Поймай меня, если сможешь!». Когда об этой программе узнали хакеры, то стали вовсю писать подобные программы, причем некоторые размножались, пока прокладывали дорогу по сети (ползун не размножался, он просто двигался), а другие включали программы-риперы (жатки), отлавливавшие и уничтожавшие ползунов. Запуск таких программ стал на несколько месяцев пунктиком, и потом вышел из моды.
В начале 80-х два сотрудника исследовательского центра компании Xerox в Пало-Альто начали экспериментировать с программами, которые они называли «червями». Черви могли прогоняться на многих компьютерах в локальной сети (Arpanet была глобальной сетью, соединявшей удаленные компьютеры). Термин «червь» они взяли из научно-фантастического романа «Оседлавший взрывную волну», классики научной фантастики, написанного Джоном Браннером в 1975 году. В книге описывалось авторитарное правительство, осуществлявшее тотальный контроль над обществом посредством всемогущей компьютерной сети, пока взбунтовавшийся программист не заразил сеть программой, названной «ленточный глист». Чтобы уничтожить программу – паразита, правительство было вынуждено выключить сеть, при этом лишившись своей власти. После этой книги Браннер стал культовой фигурой для всех читателей фантастики. Роман оказал сильное влияние и на зарождавшийся компьютерный андеграунд – неформальные объединения телефонных фриков и компьютерных хакеров в таких местах, как Кремниевая долина и Кембридж, – возникший одновременно с появлением персональных компьютеров. Джон Шок и Ион Хепп из Xerox искали способ сделать совместное использование вычислительных ресурсов в локальной сети более доступным. Они пришли к созданию 5 или 6 рабочих червей. Один назывался «червь-глашатай», его миссия заключалась в том, чтобы путешествовать по сети и оставлять объявления. Другой – «червь-диагностик» – должен был прыгать с машины на машину, постоянно проверяя, все ли в порядке. Конечно, самой распределенной из программ, которые они замыслили, должен был стать «червь-вампир». Такая программа, полагали они, получит преимущества почти безграничной автономности в сети рабочих станций. Ведь эти машины по ночам простаивают, а это время можно было бы использовать с толком. Вампир должен был автономно включаться, когда люди разойдутся по домам, и приступать к работе над сложными задачами, требующими больших вычислительных ресурсов. Утром, когда люди заявят свои права на машины, вампир уступит им поле деятельности и исчезнет до вечера.
Но Шоку и Хеппу довольно быстро пришлось познакомиться с потенциальной опасностью червей. Однажды ночью неправильно функционировавшая программа вышла из-под контроля в локальной сети исследовательского центра Пало-Альто. Утром, когда программисты вернулись, они обнаружили, что зависли компьютеры во всем здании. Они стали перезагружать системы, но стоило им запустить машину, как дефективный червь тут же заставлял ее зависать. Ситуацию осложняло то, что многие машины находились в запертых комнатах и до них нельзя было добраться. Наконец они написали программу-вакцину, которая пошла по сети, делая каждому компьютеру электронную прививку.
Кен Томпсон из Bell Labs пользовался Arpanet, экспериментируя с компьютерной защитой. В конце 70-х, когда Томпсон работал над статьей о взламывании парольной защиты, он использовал несколько узлов сети – Гарвард, МГГ, университет Карнеги-Меллона и Беркли, то есть те, где пароли были общедоступны, либо где у него был доступ к этим файлам. Его программа, взламывавшая пароли, сработала, и он обнаружил, что нечаянно захватил пароли нескольких ведущих администраторов Arpanet, людей с доступом ко многим машинам по всей сети. Он попробовал пароли и убедился, что они работают. В руках «плохих ребят» такой изъян в защите был бы весьма опасен, так что Томпсон предупредил владельцев паролей.
* * *
Роберт проскочил изучение вычислительной техники в школе. В Делбартоне были первые компьютеры Apple, но Роберт с 12 лет имел доступ к машинам в десять раз более мощным, так что его освободили от занятий. В то время, как в школе раздавали награды ученикам за работу с Apple, Роберт уже писал сложные программы и технические статьи. Однако мало кто из преподавателей Роберта и его друзей по Делбартону подозревал, насколько этот застенчивый второкурсник разбирается в компьютерах. Компьютерная карьера Роберта началась дома. Когда он был на последнем курсе, старый друг Боба Фред Грамп взял Роберта на неполный рабочий день в Bell Labs. Шестнадцатилетний Роберт работал как любой из десятков студентов колледжа, стажировавшихся или подрабатывавших в Bell. В отличие от своего отца, он был необыкновенно тихим, но унаследовал отцовское ненасытное любопытство и интерес к окружающему миру.Благодаря его прежним несанкционированным путешествиям по компьютерам Bell Labs Роберт уже сделал себе что-то вроде имени. Но он был прилежным работником. У него был собственный проект, которым он занимался, – создание более защищенной и действенной реализации UUCP, программы, использовавшейся для передачи файлов с одной UNIX-машины на другую. Требовалось написать реализацию UUCP, которая могла бы справиться с интенсивностью и разнообразием траффика, развернувшегося в сети за годы. Не каждый студент университета смог бы переработать такой большой массив ПО. Несмотря на некоторые шероховатости, программа Роберта оказалась настолько хороша, что стала моделью для UUCP, в итоге принятой Bell Labs. Роберт написал статью о результатах своей работы, озаглавив ее «Ещё одна попытка UUCP».
Неверно было бы думать, что Роберт целиком посвятил себя компьютерам. Он плавал за школьную команду и пел в хоре. Все же он оставался закомплексованным и, насколько могли судить его родители, по-прежнему не отдавал отчет в своих интеллектуальных способностях. Энн ничего не оставалось, как взять на себя разговор с директором школы. Она объяснила, что, как ей кажется, Роберту пойдет на пользу, если учителя будут его хвалить в присутствии других учеников. Через несколько дней, когда школа получила результаты ежегодного теста SAT, директор встретил Роберта и во всеуслышание объявил, что его результаты – 800 баллов по языку и 700 по математике – самые высокие за всю историю школы. С этого момента его уверенность в себе стала крепнуть. Для продолжения образования он выбрал Гарвардский колледж. Там учился не только его отец, но и несколько поколений его предков по матери. Роберт подал документы досрочно и был принят.
В Гарварде Роберт оставался таким же застенчивым и неловко чувствовал себя в обществе. Он сразу же наметил себе вычислительный центр имени Эйкена. Эйкеновская лаборатория обслуживала отделение прикладных наук. Главный вычислительный центр, где от операторов не требовалось ничего, кроме умения заправить бумагу в принтер, находился в другом конце университетского городка, в помещении Центра информационных технологий. В Эйкене машины были посильнее, нравы посвободнее, поэтому Эйкен была куда более привлекательным местом для работы. Когда Роберт поступил в Гарвард, факультета компьютерных наук как такового там не было. Его заменяла кафедра компьютерных наук на факультете прикладных наук, где работало 17 преподавателей. Гарвардские студенты, серьезно интересовавшиеся вычислительной техникой, попадали по закону притяжения в Эйкен, где проводил все свое время и преподавательский состав.
Кирпичный памятник утилитарной архитектуры, Эйкен соседствовал с величественным зданием факультета права. В вестибюле, занимая всю стену, стоял вклад Говарда Эйкена в современные вычислительные технологии – Марк I, автоматическая счетная машина, монстр длиной в 51 фут и высотой в 8 футов. В 30-е-годы профессор математики мечтал создать крупномасштабный калькулятор – смонтированное на распределительном щите устройство, которое производило бы арифметические вычисления без участия оператора. В 1944 году Эйкен, сотрудничая с IBM, собрал Марк I стоимостью в 250000 долларов. Это был первый в мире крупномасштабный электрический калькулятор. Со стандартной задачей, на решение которой у команды из четырех специалистов ушло бы три недели, Марк I справлялся всего за 18 часов. В конце 80-х вычисление, которое бы по-настоящему озадачило Марка I, можно было за одну-две секунды выполнить на программируемом карманном калькуляторе. Но для своего времени Марк I был революционным прорывом, и место Говарда Эйкена в истории науки бережно сохранялось в здании, названном в его честь.
Напротив Марка за стеклянной стеной располагалась комната с терминалами и рабочими станциями, где работали студенты и персонал Эйкена. В 1983 году закоренелые компьютерщики, у которых не было своих комнат, проводили в ней по 18 часов, а другие дрейфовали туда-сюда. В свое время в этой комнате работал и Боб Моррис, помогая собирать Марка IV, четвертое поколение эйкеновских вычислительных машин.
Вскоре после прибытия в Гарвард Моррис-младший зашел в кабинет эйкеновского администратора и попросил машинное время. Администратор, Элеонор Сакс, терпеливо объяснила, что первокурсникам это не разрешается, что Эйкен – вотчина профессорско – преподавательского состава и старшекурсников. Она любезно предложила ему присоединиться к другим новичкам в вычислительном центре, который находился в нескольких шагах. Однако Роберт не горел желанием слиться с массами в цокольном этаже центра, где океан компьютерных терминалов и ПК больше напоминал машбюро, чем лабораторию. Эйкен был не только более цивилизованным местом, где можно было сидеть и писать программы, он предоставлял больше вычислительных ресурсов. Роберт не пытался спорить и вышел из кабинета. Несколько дней спустя он сам разрешил свою проблему, превратил Эйкеновский VAX в однопользовательскую машину, сделал себе доступ и затем вернул VAXy многопользовательский статус. Его пароль остался тем же, что и во времена Bell Labs, – rtm. Вскоре знавший Боба Морриса сотрудник похлопотал за Роберта, и тот получил законный доступ.
Ник Хортон, эйкеновский администратор, мало знал о UNIX, и вскоре Роберт прочно обосновался в Эйкене. Роберт был не из тех всезнаек, кто знает понемногу обо всем. Как и его отец, Роберт знал много о многим. Он с одинаковой легкостью справлялся как с отказами железа, так и с проблемами в ПО. Стоило в Эйкене узнать о его талантах, как его услуги стали пользоваться большим спросом.
В Гарварде относительно немногие специализировались по вычислительной технике – примерно 30 студентов каждый год получали степень бакалавра компьютерных наук. Но они гордились тем, что получали гораздо более разностороннюю подготовку, чем их коллеги– выпускники МГГ. Роберт, возможно, был исключительно одаренным, но определенно не выделялся в Эйкене. Его окружали очень яркие личности. Стиль Эйкена лучше всего иллюстрировали студенты, которые подрабатывали здесь программистами. Один профессор, ждавший для выполнения какой-то программной задачи студента, был поражен тем, что увидел: студент сидел и ждал вывода данных, читая одновременно две книги – одну на французском, другую на немецком, просто чтобы убить время. Возможно, больше всего выделяло Роберта его впечатляющее знание UNIX. Он мог часами читать руководство по UNIX. Документация UNIX разрослась так, что занимала более 2000 страниц, и на каждой странице – новые детали, касавшиеся эксплуатации этой операционной системы. Многие держали документацию под рукой просто как справочник, но Роберт получал наслаждение от чтения. Вскоре его считали самым большим специалистом лаборатории по UNIX. Он был больше чем теоретик. Его способность помнить детали была потрясающей. Если у кого-то возникал вопрос по UNIX, проще было спросить у Роберта, чем искать ответ в справочнике. Одни с благоговением относились к его компетенции, другие удивлялись – неужели ему больше нечем заняться. Короче, Роберт был системным хакером до мозга костей.
Как и его отец, Роберт умел наскоро написать программу, которая разрешила бы проблему. Был случай, когда одному профессору потребовалось программное обеспечение для нового компьютера. Он попросил Роберта, и тот, даже не набросав плана, сел за компьютер и начал печатать. Через несколько часов он закончил, и программа, несмотря на некоторые погрешности в коде, оказалась вполне на уровне. К концу первого курса Роберт проводил в Эйкене почти все свое время. Он делал всякую программистскую мелочевку и осуществлял техническую поддержку, все это бесплатно, и стал незаменимым. Когда у него спросили, почему бы ему не устроиться на работу в Эйкен и по крайней мере получать деньги, он ответил, что отец велел ему не торопиться с работой, чтобы ничего не отвлекало его от учебы. Таким образом, он держал слово, а в Эйкен ходил для развлечения. И поскольку ему не платят, он может сам выбирать, над чем работать.
Лето после первого курса Роберт провел в родительском доме в Миллиштоне, работая в Bell Labs. В результате появилась его вторая статья, обращавшая внимание на бреши в защите берклийской версии UNIX. К этому времени Роберта уже так ценили в Эйкене, что компьютер в Bell Labs связали напрямую с Гарвардом, так что Роберт из Нью-Джерси мог заниматься диагностикой и удаленной эксплуатацией. Его сообщения были немногословными и почти всегда устраняли проблему. Он помогал даже тогда, когда его не просили об этом. Как-то он пасся по эйкенской системе и обнаружил, что какое-то «железо» установлено неправильно. Ник Хортон получил записку от Роберта: «Попробуй поменять местами платы А и Б». Проблема была решена.