Итак, я вновь открыл двери и хакер не замедлил сунуться. Он обнаружил один интересный файл, в котором описывались новые методы разработки интегральных схем. Я видел, он запустил Кермит — универсальную программу переноса файлов, — и считал наш файл в свой компьютер.
Кермит осуществляет не только простое копирование файла из одного компьютера в другой. Он постоянно контролирует, нет ли ошибок в процессе передачи. Поэтому, когда хакер запустил Кермит, я знал, что такая же программа работает у него на компьютере. Где бы ни находился хакер, все равно он должен пользоваться компьютером, а не примитивным терминалом. Значит, хакер может записать весь сеанс и сохранить его на гибком диске или распечатать. Не царапает, небось, карандашом в тетрадке.
Кермит выполняет копирование файлов из одной системы в другую. Два компьютера должны взаимодействовать между собой: один посылает файл, а другой принимает. Кермит должен работать на обоих компьютерах: один Кермит «говорит», а другой — слушает. Чтобы гарантировать отсутствие ошибок, передающий Кермит делает паузу после каждой строки, давая возможность принимающему сказать: «Строку получил, все в порядке. Давай следующую». Передающий Кермит переходит в режим ожидания этого сообщения, а затем передает следующую строку. Если что-то не в порядке, передающий Кермит делает еще одну попытку и ждет подтверждения благополучного приема. Очень похоже на телефонный разговор, когда собеседник то и дело поддакивает: «Угу, угу».
Мой наблюдательный пункт располагался между системным Кермитом и хакерским. Мой принтер регистрирует диалог между ними, находясь на берклиевском конце междугородной линии. Я видел, как компьютер хакера «всосал» наши данные и выдал подтверждение. Внезапно меня осенило. Я стою рядом с человеком, кричащим другому через пропасть. Эхо подскажет расстояние. Чтобы вычислить дистанцию до стены пропасти, нужно просто умножить время задержки эха на половину скорости звука. Элементарная физика. Я немедленно позвонил электронщикам и удачно попал к Ллойду Белкнепу, который знал, как измерить время задержки.
— Нужен лишь осциллограф. Может быть, счетчик.
Через минуту он где-то стянул древний средневековый осциллограф эпохи повального увлечения радиолампами. Для наблюдения импульсов больше ничего не было нужно. Выслеживая тракт, мы определяли время появления эха. Три секунды. Три с половиной секунды. Три секунды — время полного пробега. Если сигналы распространяются со скоростью света (разумное предположение), это означает, что до хакера 279 000 миль.
Без ложной скромности я объявил Ллойду: «Исходя из законов физики, я делаю вывод, что хакер живет на Луне».
Ллойд разбирался в своем деле.
— Я укажу три причины, по которым ты неправ.
— Ладно, одну я сам знаю, — сказал я, — сигналы хакера могут передаваться через спутниковую связь. Передача СВЧ-сигнала с Земли на спутник и обратно занимает четверть секунды. Орбита спутника связи отстоит от экватора на двадцать три тысячи миль.
— Это одна из причин, — сказал Ллойд, — но нужно двенадцать спутниковых «прыжков», чтобы набралось три секунды. Какова настоящая причина задержки?
— Может быть, у хакера медленный компьютер?
— Но не настолько же. Хотя, может быть, он настроил свой Кермит на замедленную реакцию. Это вторая причина.
— Ага, я уже знаю третью. Хакер использует сети, а данные в них передаются пакетами. Для его пакетов постоянно меняется маршрут, производится ассемблирование и реассемблирование. Каждый узел сети вызывает замедление.
— Совершенно верно. Не зная число узлов, нельзя определить расстояние до хакера. Ты проиграл.
Однако все же существовал способ определить расстояние до хакера. После того, как хакер слинял, я позвонил приятелю в Лос Анджелес и попросил подключиться к моему компьютеру через AT&T и Тимнет. Он запустил Кермит, и я засек время прихода эха. Десятая доля секунды. Еще один приятель, на этот раз из Хьюстона, штат Техас. Время эха — 0,15 секунды. Для трех других, из Балтимора, Нью-Йорка и Чикаго, задержки не превышали секунды.
От Нью-Йорка до Беркли около двух тысяч миль. Задержка составляла приблизительно секунду. Поэтому трехсекундная задержка соответствует примерно шести тысячам миль. Странно.
Я выплеснул эту новость на Дэйва Клэвленда.
— Предположим, хакер живет в Калифорнии, звонит на Восточное Побережье, затем соединяется с Беркли. Это объясняет время задержки.
— Хакер не из Калифорнии, — ответил мой гуру. — Я уже говорил тебе, он совсем не знает ЮНИКС Беркли.