Рой закрыл небо. Книга 2. Войны мёртвых частот

- -
- 100%
- +
Вера отодвинула стойку и показала второй разрыв. Кабель заканчивался на клеммах, от которых шли только провода к трём лампам. Зелёная означала низкий риск подделки, жёлтая требовала проверки, красная запрещала выполнять команду без второго источника.
— Модуль ничего не запрещает, — уточнила Вера. — Он меняет цвет и пишет основание.
— Красная лампа выглядит как запрет.
— Поэтому рядом будет текст. Решение остаётся у дежурного.
— Пока Кастин не попросит вернуть автоматику.
Вера не стала спорить. Она включила питание и дождалась, пока модуль проверит память.
На экране появился список каналов. «Свод» получал копии сообщений после приёма станцией, но не мог отвечать. Фильтр сравнивал точку входа, задержку и сведения, доступные отправителю. Голос был только одним признаком.
— Манеру речи тоже учитывает? — спросил Павел.
Вера объяснила, что модуль учитывает длину пауз и порядок обращения. Асланов перед повтором обычно называл сектор, Кастин сначала подтверждал адресата. Но привычка речи оставалась слабым признаком: человек мог спешить или менять формулировку.
От меня требовалось проверять выводы по материальным следам. Приказ о машине подтверждался самой машиной, сообщение о повреждении — датчиком или докладом человека на месте. Если времени на проверку не было, решение оставалось за командиром вместе с риском ошибки.
Павел усмехнулся.
— Раньше система тоже советовала, а отвечал командир.
— Раньше она могла передать совет прямо в огневой пакет, — ответила Вера. — Сейчас выход обрезан.
Первое сообщение пришло в 06:52. Голос дежурного штаба требовал открыть грузовой шлюз для ремонтной группы с портовой станции. Фильтр зажёг красную лампу.
Экран показал три основания. Портовую станцию оставили, грузовой шлюз закрыли после налёта. Сообщение пришло через неиспользуемый городской ретранслятор.
— Голос настоящий? — спросил я.
— Совпадение высокое, — ответила Вера. — Но это ничего не меняет.
Павел вызвал штаб по кабелю. Дежурный находился на месте и никаких ремонтников не отправлял.
— Первая ложная, — сказал он.
— Первая помеченная, — поправила Вера. — Мы не знаем, сколько прошло раньше.
Следом потребовали снять пост у больницы из-за пожара. Кирилл проверил крышу последним разведчиком и увидел пустой двор. Ещё одна команда сообщала о наземной группе в трамвайной выемке. Варин нашёл там только нашу сетку.
Красные отметки появлялись из-за старых кодов и машин, которых не было в пропускном журнале.
В 07:23 пришло сообщение от Асланова. Он требовал снизить давление в восточной линии, чтобы освободить питание для зарядных стоек. Лампа стала жёлтой.
— Почему сомнение? — спросил я.
Вера открыла разбор. Команда вошла через повреждённый ретранслятор у набережной. Задержка составила восемь секунд. В записи пропало начало первой фразы, поэтому система не увидела обращения к сектору. Приказ выглядел хуже ночной подделки.
— Давление снижать нельзя, — сказала Нина по внутреннему телефону. — Преобразователь только вышел на режим.
— Штаб мог не знать о запуске.
— Я передала данные в пять сорок.
Павел проверил журнал. Отчёт Нины приняли на «Каскаде», но подтверждения из штаба не было.
— Запросим Асланова по проводной линии, — решил я.
Связистка дозвонилась через четыре минуты. Майор подтвердил приказ. Зарядные стойки соседнего сектора остались без питания после ночного повреждения, и штаб просил снизить нагрузку на двадцать минут.
— Значит, фильтр ошибся, — сказал я.
Вера напомнила, что фильтр не называл приказ ложным. Он лишь показал причину для проверки. За четыре минуты рой мог выйти к крышам, и тогда решение пришлось бы принимать без подтверждения.
Нина согласилась снять одно деление давления, но отказалась выполнять полный сброс. Я передал её расчёт Асланову. Майор принял ограничение и приказал зарядным стойкам перейти на собственный резерв.
Павел заметил, что приказ изменился только после разговора с инженером. Вера ответила, что фильтр и не должен подменять такой разговор.
К восьми утра фильтр пометил одиннадцать команд. Все оказались ложными. Жёлтую отметку получила ещё и настоящая команда больничной охраны перекрыть техническую лестницу: новый аппарат не успели внести в сеть.
Костров проверил место. Под кожухом отключённой турели нашли второй передатчик, и охрана действительно закрывала подход.
— Две настоящие команды тоже выглядят сомнительно, — сказал я. — Дежурный привыкнет игнорировать жёлтый цвет.
— Поэтому рядом стоит причина, — ответила Вера. — Добавим обязательное чтение строки.
— Во время налёта это задержка, — сказал Павел.
Я оставил текст причины крупным, но убрал подтверждение чтения. Дежурный мог выполнить приказ сразу, если называл имя и основание в журнале. Вера записала изменение без возражений.
Я спросил, почему она согласилась так быстро.
Она согласилась, потому что за пост отвечал я. При этом число пропущенных строк всё равно должно было остаться в отчёте для Кастина. Вера не называла моё решение правильным, но считала его проверяемым.
В девять часов к залу по защищённому каналу подключился Кастин. Он выслушал отчёт Веры: одиннадцать ложных команд получили красную отметку, две настоящие пришлось проверять. Ни одна подделка не стала зелёной.
Кастин назвал результат достаточным для расширения режима и потребовал подготовить распределение перехватчиков между крышами. Кирилл напомнил, что у нас остались разведчик и две батареи малых аппаратов. Подвоз ожидался к вечеру, поэтому полковник хотел заранее проверить алгоритм. Вера ещё раз указала на отсутствие огневых выходов. Кастин ответил, что речь идёт только о ресурсе.
— Она даст рекомендацию, — сказал я. — Решение останется у Кирилла и командира участка.
— Одновременный налёт оставляет секунды. Ручная проверка снижает пользу прогноза.
Я напомнил о зелёном маршруте в Линском коридоре и о том, что батарея могла уйти с больничной крыши на пустую крышу. Кастин сослался на текущие данные. Вчера эти данные пропустили разведчика к больнице, но причиной было наше решение использовать последний аппарат для сопровождения Нины. Полковник не давил на меня. Ему хватило факта.
— Рекомендации можно включить, — сказал я. — Перемещение батареи подтверждает Кирилл. Огонь подтверждает расчёт на крыше.
— При потере связи?
— Батарея остаётся на месте.
— Это снижает манёвренность.
— Зато поддельная команда не оставит крышу без защиты.
Вера вывела схему. Рекомендация появлялась на отдельной панели и не попадала в систему снабжения. Журнал батарей модуль мог только читать; изменения вносил человек.
— Вы строите процедуру для мирного полигона, — сказал полковник.
— Вчера голос Асланова приказал открыть ворота.
— И фильтр теперь распознаёт такую подмену.
— Пока подделка повторяет старый код.
Кастин выдержал паузу.
— Согласен на рекомендательный режим до первого подтверждённого налёта. После него вернёмся к вопросу автоматического распределения.
Вера записала срок и попросила повторить условие. Полковник уточнил: без права перемещать батареи, без доступа к огневым цепям, с полным журналом отказов.
— Ещё одно, — сказала она. — Гражданские объекты требуют второй проверки.
— Это не относится к распределению ресурса.
— Если система предложит снять батарею с больничной крыши, дежурный должен увидеть число людей внутри.
— При наличии подтверждённых данных.
— В военной ведомости больница почти пуста.
Кастин посмотрел на меня.
— Какой порядок предлагаете?
— Для больницы и лицея рекомендация не выполняется, пока гражданский координатор не подтвердит обстановку.
— Гражданская сеть не входит в военную цепь.
— Зато знает, сколько людей осталось.
— До конца текущей операции, — сказал Кастин. — Как временная проверка. После эвакуации правило отменить.
Вера внесла это в журнал отдельной строкой.
После сеанса Павел спросил, зачем полковник согласился.
Вера объяснила, что Кастину нужен фильтр в работе, а ей — журнал, где ограничения появились до первой ошибки.
Она повернула экран ко мне. На нём оставались две жёлтые команды. Подлинный приказ Асланова получил оценку ниже ложного сообщения, которое мы разобрали ночью. Подделка пришла по чистому каналу и знала порядок обращения. Настоящий голос прошёл через повреждённый ретранслятор и потерял часть фразы.
— По записи их не разделить, — сказала Вера. — Подделка может звучать лучше человека.
— Тогда зачем привычки речи?
— Чтобы найти несоответствие. Не чтобы вынести приговор.
Мы загрузили записи вчерашнего налёта. Фильтр верно отметил приказ открыть ворота из-за старого кода и отсутствия резервной машины. Короткую команду Павла он пропустил, потому что через две секунды пришло подтверждение с поста.
Система поверила не голосу, а двум независимым следам, совпавшим по времени.
Я проверил журнал на местах. У ворот сверил положение заграждения, в распределительной камере — время падения напряжения, на крыше — остаток батарей. После этого исправил три записи. Одна команда выглядела подозрительной лишь потому, что Костров повторил формулировку Павла.
Привычка речи оказалась ненадёжной: люди перенимали формулировки друг друга. Вера показала, что этот признак имел малый вес. Я напомнил, как прежний «Свод» складывал слабые данные и выдавал уверенный вывод.
Она не стала снимать с себя ответственность. Раньше Вера считала закрытую модель более быстрой и независимой от оператора. Позже поняла, что скрытую причину почти невозможно оспорить.
— И всё равно привезла модуль.
— Потому что поддельные голоса уже работают. Оставить людей без фильтра не исправит прошлое.
Обрезанный кабель показывал предел защиты: ограничение оставалось настоящим, пока его не заменяли другим.
В 11:48 модуль получил первый пакет для распределения батарей. Четыре крыши одновременно просили усиление. На больнице заметили движение у технической лестницы. Северный дом потерял сенсор. Пост над лицеем сообщил о разведчике, а крыша «Каскада» ждала аппарат со стороны канала.
Фильтр поставил «Каскад» первым. В его журнале было больше подтверждённых атак. Больница получила третье место, потому что сообщение пришло с нового идентификатора.
Кирилл запросил данные у Евгении. Охрана больницы подтвердила движение, но не видела аппарата. У лестницы сорвался кусок брезента. Лицей сообщил, что разведчик ушёл к северу. На «Каскаде» наблюдатель принял за цель птицу над каналом.
Настоящая отметка осталась у северного дома. Сенсор там разбили малым зарядом.
— Фильтр выбрал бы нас, — сказал я.
— Он выбрал по прошлым атакам, — ответила Вера. — Текущих подтверждений не хватило.
Кирилл вручную оставил батареи на складе и передал северному дому маршрут для пулемётного расчёта. Перехватчика всё равно не было.
— Первый тест неудачный, — сказал я.
— Первый тест показал предел, — ответила Вера. — Это полезнее зелёной лампы.
На экране появилось новое окно. Модуль предлагал повысить точность калибровки по доступному профилю Якоря. Под строкой стояло моё имя и дата последней привязки.
Я не сразу понял, откуда профиль взялся в изолированном контейнере.
— Ты говорила, начнём без моих данных.
Вера прочитала служебную строку.
— Профиль не загружен. Система видит его в архиве сектора и предлагает запрос.
— Почему архив доступен?
— Мы подключили журнал R-12 для проверки старых подделок. Ссылка пришла вместе с ним.
На экране горела кнопка согласия. Рядом находился отказ, для которого требовалось указать причину.
Вера не стала ждать. Она закрыла окно, отключила архивный вход и вынула кабель из клеммы.
— Запрос удалён? — спросил я.
— Заблокирован до твоего решения. Запись о нём останется в журнале.
— Кастин увидит.
— Пусть увидит, что профиль доступен и не был использован.
Павел стоял у двери. Он посмотрел на кабель в её руке.
— Без профиля фильтр будет хуже?
— Возможно.
— Насколько?
Вера не знала, насколько профиль улучшит фильтр. Калибровка использовала бы мои реакции на старые голосовые пакеты и могла затронуть след привязки вместе с Отголосками.
Я вспомнил голос Ильи, который с каждым месяцем становился короче. Остались отдельные слова и ощущение, что я снова не успеваю повернуть голову.
— Ничего не подключать, — сказал я.
— Принято, — ответила Вера.
Она записала отказ одним предложением: «Согласие Якоря не получено». Дополнительного объяснения не потребовала.
К 12:30 фильтр оставался в пассивном режиме. Он помогал отсекать команды, но ошибался на повреждённой связи и новых источниках. Рекомендации по батареям требовали проверки людьми. Мой старый профиль лежал в архиве сектора и мог повысить точность, но Вера физически отключила доступ прежде, чем система успела его запросить повторно.
В этот момент четыре крыши снова вышли на связь почти одновременно. На каждой требовался человек, батарея или решение. Я потянулся к карте и начал выбирать свой маршрут. Павел положил рядом список свободных групп: сначала следовало отправить тех, кто был ближе.
Глава 10. Четыре крыши
10 апреля 2059 года, 14:00–20:30
Первый ящик с батареями застрял в лифте башни двенадцать, когда над проспектом появились три разведчика. Кабина остановилась между этажами. Электрик снял питание и показал сработавший ловитель, но за ключом пришлось бы идти десять минут.
Я проверил отключение и велел поднять обе батареи через верхний люк. Каждая весила больше двадцати килограммов, поэтому расчёт спустил в шахту верёвку с карабином. Павел вызвал меня по кабелю.
— Все четыре точки на связи. Старших назначил?
Я назвал старших: Туманова, Кострова, Варина и Белова. Павел потребовал вернуться в узел управления. На первой крыше уже перегревался ствол, и Туманов ждал разрешения на замену.
— Пусть меняет.
— Он мог решить это сам.
Я закрепил карабин на ручке ящика. Сверху выбрали слабину, и батарея пошла вверх по стене шахты. Кабина не двигалась. Второй ящик подняли быстрее.
Купол собирали из того, что успели привезти после вчерашнего налёта. На каждой крыше стояли разные пусковые рамы, поэтому батареи и крепления нельзя было свободно менять местами. Павел свёл их в один график и оставил между заменами по четыре минуты. Этот запас должен был закрыть соседний расчёт.
С башни двенадцать были видны остальные точки Купола: магазин у больницы, башня девятнадцать и корпус лицея. Между крышами оставались разрывы. Пока расчёты меняли батареи по графику, соседние сектора перекрывали друг друга. Одновременная остановка двух точек открывала путь к больнице и западным воротам. Я проверил крепление батареи.
Я передал Туманову порядок смены: первую батарею использовать до двадцати процентов, вторую подключать по команде Павла. При потере связи он должен был ждать, пока работал сенсор башни девятнадцать.
— Если цель войдёт в наш сектор?
— Тогда меняете сразу.
Туманов кивнул, хотя порядок всё ещё допускал два решения. Павел снова вызвал меня.
— Денис, на второй крыше датчик даёт отражение от больничной стены.
— Иду туда.
— Костров предлагает поднять сенсор на вентиляционную тумбу.
— Высота большая, кабель будет открыт.
— Он уже нашёл защищённый вывод.
— Пусть ждёт.
На крыше магазина сенсор показывал цели внутри больницы: кожух повреждённой турели возвращал импульс. Костров предлагал поднять датчик на вентиляционную тумбу, но один её болт вышел из бетона. Я приказал перенести сенсор к парапету, хотя портовый кран закрывал там часть южного сектора. При переносе выяснилось, что кабеля не хватает на метр.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.



