
Полная версия
Площадь атаки
Я попыталась прошвырнуться по магазинам, бродила из одного усиленно охраняемого торгового центра в другой, упрямо веря, что где-нибудь, в каком-нибудь закутке найдется наконец та единственная шмотка, которую я добровольно надела бы. Довольно приятный в своей бессмысленности способ убить несколько часов. Потом съела черствую пиццу в «Доминос» и поплелась обратно в отель. На площади намечалась еще одна демонстрация, и в нескольких местах полиция перекрыла улицы. Пришлось обходить. Меня это не пугало. Меньше всего хотелось опять ввязываться в какие-нибудь протесты. Через тридцать шесть часов я буду в Берлине. И пусть до тех пор ничего не случится.
В лифте вместе со мной на восьмой этаж поднимались проститутка и ее клиент, и все мы старательно отводили глаза друг от друга. Когда двери раскрылись, охранник за столом жестом велел нам выходить, потом потребовал мой ключ и записал номер. У меня сложилось впечатление, что в этой гостинице восьмой этаж предназначен для самых почетных гостей.
Я поставила сумку возле кровати, разделась, натянула теплые легинсы и джемпер – в номере стоял собачий холод, видимо, из расчета на то, что постояльцы а) задержатся ненадолго и б) будут заняты бурной физической деятельностью. Включила ноут заряжаться в настенную розетку, упаковала его в сумку, залезла в спальный мешок, закрыла глаза. И наконец-то мне удалось заснуть быстро.
* * *Я проснулась. В номере темно, и кажется, меня разбудил какой-то громкий шум. Я подскочила, озираясь, схватилась за сумку, выбралась из спального мешка, на ходу вспоминая, где включается свет и где я оставила ботинки.
Потом с улицы донесся пронзительный крик, загудела машина, опять крики и ужасный, душераздирающий грохот. Я перестала шарить в поисках выключателя, подошла к окну, отодвинула край занавески и выглянула.
Страшная авария. «Файнкэб», малогабаритная машина городского автономного такси, врезалась в пустой уличный вазон, и я невольно хмыкнула: беспилотные машины были здесь странноватым поводом для национальной гордости, и если вы хоть что-то слышали о Словстакии, то наверняка скажете: «А, это та самая страна, у которой хватило глупости закупить автоматические такси первого поколения». Эти «файнкэбы» получили печальную известность за то, что постоянно попадали в мелкие ДТП, и стали символом того, с какой легкостью зарубежные компании продают правящим элитам технический мусор (см. также: «КЗОФ»).
Но эта катастрофа была не чета мелким комедийным авариям. Судя по крикам, доносившимся с дороги, кто-то сильно пострадал. Я заметила, как к машине поспешно направился какой-то человек в гостиничной ливрее, и решила, что меня это уже не касается. Сами разберутся. И легла спать.
Едва я сомкнула глаза, как где-то вдалеке снова послышался грохот, загудели сигналы, потом, практически сразу, громыхнуло опять, и крики не смолкали. Я выглянула и увидела, что в других окнах тоже появились люди, некоторые держали в руках телефоны, все орали друг на друга по-борисовски. Я вернулась к кровати, достала телефон, вышла в свободный мир и стала искать Словстакию в новостных лентах.
И хотя почти все было на кириллице, смысл ночных новостей был понятен по картинкам. Сначала массовые демонстрации на центральной площади, потом атака полицейских с дубинками, ответная атака, кровь и слезоточивый газ, густые клубы газа, перечный спрей, толпа распадается, люди спасаются бегством. Все это я уже видела. А вот то, что последовало дальше, выбило меня из колеи.
Поначалу попадались только фотографии разбитых машин, в основном «файнкэбов», и множества пострадавших – судя по одежде, все они были демонстрантами. Мне стало не по себе. Листаю дальше. Все больше аварий, все больше жертв. Потом нечеткое видео, кадры мелькают, как на сломанном одометре: автономное такси на полной скорости мчится к протестной толпе, стоящей на углу улицы. Демонстранты замечают машину, когда она уже совсем рядом, рассыпаются, бегут – и она бросается в погоню за одной из них. Это девушка в дутой куртке и зимних ботинках, она убегает, ее друзья вопят от ужаса. Девушка прячется за угол. Картинка начинает дергаться – тот, кто снимает, бежит вдогонку, тоже сворачивает за угол, а машина уезжает прочь. Несчастная остается недвижимо лежать на мостовой.
Вам наверняка попадалось это видео, если вы вообще пытались что-то смотреть на эту тему. Но для меня самым страшным стало не оно. Тот ролик еще цветочки по сравнению с тем, какие ужасы довелось запечатлеть пассажирам, ехавшим в тех такси. Люди колотили по кнопкам аварийной остановки, но машины не реагировали, с разгона тараня одного демонстранта за другим. А сидевшие внутри люди видели, как головы несчастных жертв разбиваются о лобовое стекло, оставляя на нем кровавые полосы и клочья волос. Это в тысячу раз страшнее.
Стало ясно, что мне уже не уснуть. Я зашла на сайт «Аэрофлота» и забронировала билет на ближайший утренний рейс до Москвы. Это, конечно, не Берлин, ну и ладно. До Берлина я сумею добраться и оттуда. И вообще смогу улететь куда угодно.
Куда же податься? Мне было одиноко и страшно – и стыдно за то, что меня уволили. К одиночеству я всегда относилась легко, а страх можно положить на предназначенную для него полочку.
Очевидно, я уже не та, какой была, работая на «КЗОФ». И не хотела больше такой становиться. Велика вероятность, что именно «КЗОФ» продала Литвинчуку и его команде эксплойты, позволившие захватить управление теми машинами. Мне, конечно, и раньше доводилось творить малоприглядные вещи, но что, если одна из этих малолитражек сшибла Кристину? Или размазала ее по стене? Или сбила с ног и переехала?
Я написала ей короткую шифровку, потом, готовясь к скорому отъезду, собрала вещи, перекачала секретные файлы в зашифрованное облачное хранилище и для верности удалила их со своего ноута. Теперь, если кто-нибудь прикажет включить компьютер и ввести пароль от жесткого диска, я смогу подчиниться, не раскрывая самых важных данных.
За всеми этими хлопотами я перестала вспоминать Кристину, зато задумалась о том, чем я займусь, когда через несколько часов мой самолет приземлится в Москве. Машинально посмотрела на календарь, хотя почти все мероприятия в нем относились к работе, с которой меня только что вышвырнули. Но при этом вспомнила о дне рождения Таниши, который уже наступил в Европе и скоро наступит в Сан-Франциско. Умная напоминалка открыла мою адресную книгу на ее странице, а та, тоже умная, переадресовала меня на ее последний пост в соцсетях – селфи, на котором она, потряхивая на ветру пышной афропрической, улыбалась на фоне огромной толпы демонстрантов. Почти как здесь, но где-то в другом месте. Наверняка в Окленде.
Ее улыбка на экране моего ноута подстегнула мое одиночество, оно стало физически болезненным, уселось на грудь, как тяжелый слон, и я долго хватала ртом воздух, силясь восстановить дыхание. Таниша была осколком моей прошлой жизни, у нее не было такого количества полочек и такой массы всяческих противоречий, которые надо по этим полочкам разложить. Наше постоянное общение прервалось несколько лет назад, но она до сих пор осталась одной из немногих, чей день рождения был указан в моем календаре, и я никогда не забывала поздравить ее.
> С днем рождения, Ниш! Как раз о тебе думала.
Это было довольно близко к правде – ближе, чем я хотела показать.
> надеюсь, день прошел на ура. Береги себя, сноси крышу, будь собой! Целую, Маша.
Вот и все. Сообщение, сам факт которого – думаю о тебе – нес гораздо больше смысла, чем все слова, из которого оно состоит. Я нажала «отправить» и снова стала просматривать стыковочные рейсы из Шереметьево.
И тут телефон зазвонил.
* * *На экране высветилось ТАНИША и появилась довольно старая фотография, тех времен, когда мы виделись в прошлый раз, вместе ездили на фестиваль Burning Man. На ней был серебристый купальник, на голове бурно кучерявилось афро, она играла на контрабасе в джем-сейшне, на который мы случайно забрели.
Она звонила по моему старому номеру, который появился у меня лет в двенадцать. Оттуда ее переадресовали на облачный сервер, обвешанный тысячами правил, благодаря которым лишь очень немногим людям удавалось пробиться на тот телефон, который имелся у меня на данный момент. Я с религиозным усердием регулярно обновляла переадресацию, даже при том, что (или потому что) мама могла дозвониться до меня всегда, как только ей захочется, а это получалось чаще, чем мне хотелось говорить с ней, и реже, чем она могла бы, на мой взгляд, обо мне вспоминать.
– Йо.
– Маша?
– Привет, Ниш. Гм, с днем рождения.
– Он будет завтра.
– А здесь, у меня, уже сегодня.
– Ах да. Там, где ты есть, сейчас часа три утра?
– Два часа ночи. Не волнуйся, я не сплю.
– Маша, надеюсь, ты не на тусовке. Ты вроде уже не в том возрасте.
Я рассмеялась.
– Возраст самый подходящий, но да, я не на тусовке. – Я окинула взглядом кошмарный гостиничный номер советской эпохи. – Собираюсь улетать, складываю вещи. – И сразу пожалела о своих словах.
– Куда летишь?
Может быть, в глубине души мне хотелось обсудить с ней это. А иначе зачем я затеяла весь этот разговор?
– Еще не решила.
На другом конце линии наступило молчание.
– Гм, ладно. Ты, наверно, черт знает где, слышимость очень плохая.
– Да, я далековато, к тому же пропускаю вызов через шлюз. Чтобы труднее было отследить.
Она пропела несколько тактов из темы «Миссия невыполнима» – таким способом она обычно давала мне понять, что моя паранойя ее не впечатляет. Но быстро умолкла.
– Прости, я не в том положении, чтобы над тобой смеяться.
Ого. Я старалась не уделять слишком много внимания американской политике – ведь как-никак я своими руками помогла изобрести многое из того, что мне не нравилось в сегодняшней Америке. Но, надо думать, Таниша внезапно позвонила мне потому, что ей нужен мой профессиональный совет, а не просто посплетничать.
– Ну-ка, рассказывай.
Долгое молчание было красноречивее всяких слов. Наверно, у нее в голове прокручивалось: «Можно ли доверять этому телефонному соединению?»
– Ниш, если ты хочешь поговорить так, чтобы никто не подслушал, я могу тебе перезвонить. У тебя еще стоит то приложение? – Обычно, когда я была в других странах, мы созванивались через «Сигнал», и Таниша говорила, что порекомендует это приложение своим друзьям, но я хорошо знала, что без активных напоминаний от модели рисков люди обычно быстро успокаиваются и переходят на привычный способ общения.
– Угу, – отозвалась Таниша.
– Так я и думала. Переустанови его, и я перезвоню через пять минут.
– Меня слышно? – Звонки через «Сигнал» обычно проходят гораздо хуже, чем по обычной голосовой связи или даже «Скайпу», то и дело перебиваются помехами в инопланетянском стиле или гулким дребезжанием, но моя симка в роуминге работала неплохо, а Таниша нашла место с хорошим приемом, поэтому сейчас мы слышали друг друга почти как в нормальном телефонном разговоре.
– Слышу тебя. – Голос у нее был усталым, а ведь на Западном побережье еще даже не наступил вечер.
– Ниш, что случилось? – Мне подумалось – может быть, связь прервалась. – Ниш!
– Сейчас. Соберусь немного. Прости.
Непохоже на нее. Таниша была невероятно собранным человеком, прямо-таки железной леди.
– Короче, дело вот в чем. В Окленде проводились крупные собрания и митинги Альянса чернокожих и цветных, и я туда ходила. Мы принимали все меры предосторожности – блокировали телефоны, на месте переводили их в режим полета, отменяли разблокировку по отпечатку пальца, все карты держали в чехлах Фарадея. Разговаривали между собой только при выключенных телефонах, переписывались в зашифрованных чатах с исчезающими сообщениями. Но я всегда помнила твои слова…
– О том, что между массовой слежкой и целенаправленным наблюдением огромная разница.
– Да. Так что была особенно осторожна. Пользовалась одноразовыми предоплаченными телефонами, носила зеркальный грим, следила за котлами и как можно скорее выбиралась, если они начинали образовываться. Но…
– Выкладывай.
– Ты решишь, что у меня паранойя.
– Ниш, поверь, мне и в голову не придет, что у тебя паранойя.
Я услышала ее вздох и стала ждать. Ниш всегда вздыхала по два раза подряд, и мы иногда поддразнивали друг друга. Я много лет об этом не вспоминала, но в подсознании засело крепко. Ага, вот и второй вздох.
– Это ведь ты рассказала мне о бинарной прозрачности?
– Да.
Бинарная прозрачность – отличная штука, но настолько сложная, что мало кто толком понимает ее. В первую очередь надо уяснить, что такое функция хэширования. Это криптографический алгоритм, который берет длинный файл (например, компьютерную программу, или электронное письмо, или обновление приложения) и генерирует для него контрольную сумму, то есть число, которое человек может легко (до некоторой степени) прочитать вслух и сравнить с другими контрольными суммами. Если хэш-функция работает нормально, то намеренно создать два разных файла с одинаковыми контрольными суммами будет практически невозможно. Точно так же практически невозможно, глядя на контрольную сумму, догадаться, каким был исходный файл. (Для лучшего понимания, что такое «практически невозможно», представьте себе, что все атомы водорода во вселенной превратились в компьютеры и работают над разгадкой вплоть до тепловой смерти вселенной, и все равно им не хватает ни пространства, ни времени.)
Следующим этапом надо разобраться, что такое криптографические пары открытых и закрытых ключей. Краткое объяснение: файл, зашифрованный открытым ключом, можно расшифровать только с помощью закрытого ключа, и наоборот. Поэтому каждый человек старается как можно шире раздать свой открытый ключ и пуще глаза бережет закрытый.
• Если у вас появился файл, который вы смогли расшифровать моим открытым ключом, можете быть уверены, что я его зашифровала своим закрытым ключом (и ничем иным).
• Если вы зашифровали что-то моим открытым ключом, расшифровать это сможет только тот, у кого есть мой закрытый ключ.
• Если вы хотите послать мне файл, который сможем прочитать только вы и я, то зашифруйте его своим закрытым ключом и моим открытым ключом. Я расшифрую его своим закрытым ключом и вашим открытым. Я буду уверена, что прочитать это могут только те, у кого есть мой закрытый ключ, а послать – только те, у кого есть ваш закрытый ключ.
• Затем соедините хэширование с системой двойных ключей, и результат будет потрясающим. Сначала вы хэшируете файл, потом шифруете хэш своим закрытым ключом, и я с помощью этого хэша смогу проверить, вы ли послали этот файл и не изменялся ли он на пути от вас ко мне.
Поняли? Нет? Вы не одиноки. Этого, к большому сожалению, не понимает почти никто. К сожалению – потому что мы уже готовы перейти к бинарной прозрачности, а это очень крутая штука.
Следите за руками. С помощью хэширования вы создаете короткую контрольную сумму файла. Если у вас есть собственная копия файла, вы можете хэшировать его еще раз и убедиться, что контрольные суммы совпадают. Если они не совпали, значит, с момента последнего хэширования кто-то внес в файл изменения. А пары ключей позволяют вам зашифровать файл или контрольную сумму так, что у вас не останется сомнений, кто именно послал вам файл, не менялся ли он по дороге и не мог ли его прочитать кто-нибудь посторонний.
А теперь поговорим об обновлениях программ и о лазейках. Все программы, работающие на всех компьютерах, которые вы считаете вполне надежными, на самом деле, как бы это помягче выразиться, полная дрянь. Потому что люди несовершенны, им свойственно ошибаться, вот почему в каждой книге есть опечатки. Разница в том, что в случае с книгой вы даже с опечатками можете догадаться, о чем именно хотел рассказать писатель, тогда как мелкие ошибки в компьютерных программах ведут к сбоям, потере данных и, разумеется, к риску того, что другие программисты – назовем их хакерами – могут проникнуть в программу, захватить управление вашим компьютером и погубить вас.
Потому мы и говорим, что «безопасность – это не продукт, а процесс». Это значит, что мы всегда будем обнаруживать баги в ваших компьютерах, а обнаружив, постараемся их исправить. Вот почему каждый ваш компьютер постоянно требует установить обновления – именно таким способом его создатели ставят заплатки на проблемные места.
Но криптография – штука серьезная. Если программист хорошо знает свое дело и не насажал ошибок, сообщения, зашифрованные его программой, будут сопротивляться попыткам грубого взлома до самого конца пространства-времени (см. выше). И если правительство хочет добраться до чьих-либо секретов, ему приходится искать другие способы. Зачем растрачивать ресурсы и время, пытаясь пробиться в математически неуязвимую дверь? У правительства есть много других методов.
Например, они могут послать человека, который проникнет к вам в дом и установит крохотную, не больше булавочной головки, видеокамеру в таком месте, откуда хорошо виден ваш экран. Или дождутся, пока вы оставите свой ноутбук без присмотра в гостиничном номере, и пошлют другого человека, который вскроет никуда не годные (наверняка!) дверные замки и пролезет в ваш компьютер с помощью перепрошитых USB‐устройств, или установит клавиатурный перехватчик, или сделает еще что-нибудь. Но все эти механические методы отдают стариной, им не хватает истинной элегантности цифрового взлома.
И это возвращает нас к теме «безопасность – это процесс». Чтобы программа была защищенной, она должна регулярно получать обновления от своих создателей, потому что они постоянно находят какие-то ошибки и будут находить их всегда, поэтому безопасность – это процесс, а не продукт.
А если заставить компанию выпустить обновление, которое вместо исправления ошибок, наоборот, внедрит какой-нибудь баг? Компании не любят так поступать, но есть и другие способы – например, подкупить сотрудника низшего уровня. Или пусть главный прокурор надавит на главу компании, и тот под угрозой тюрьмы поручит своим шестеркам написать шпионскую программу и под видом обновления внедрить ее в компьютер к нужному человеку. Задача облегчается тем, что параноики, обеспокоенные слежкой со стороны правительства, обычно усерднее других устанавливают обновления безопасности.
Тут-то в дело и вступает бинарная прозрачность. Даже если компания хочет под видом обновлений безопасности пропихнуть шпионскую программу, она вряд ли станет рассылать ее всем своим пользователям, в первую очередь потому, что чем шире вещь распространяется, тем больше вероятность, что кто-то заметит подмену и забьет тревогу. Лучший способ поставить целенаправленную лазейку – отправить ее целенаправленно: конкретному пользователю, в конкретный город, в регион или даже в страну, но в идеале не всем ее жителям, а выборочно, потому что среди этих «всех» может найтись скучающий, упертый студент-выпускник, который в поисках темы для дипломной работы распотрошит любое попавшееся ему обновление от любой компании.
А это наводит нас на хороший способ обнаружения червоточин: надо сравнить полученное вами обновление безопасности с обновлениями, которые получили все остальные. Вот она, бинарная прозрачность: программы, снабженные соответствующими модулями, будут автоматически вычислять контрольную сумму каждого прилетевшего обновления и отсылать ее на проверочные сервера, желательно сопроводив контрольными суммами программы до и после установки обновления. Иногда программа имеет различные версии для разных языков, поэтому английская заплатка отличается от китайской – ведь сообщения об ошибках поступают на разных языках. Но если два китайских пользователя получают разные заплатки, это наводит на подозрения.
Бинарная прозрачность – инструмент эффективный и красивый. Она включается еще до того, как правительство вынудит компании шпионить за пользователями, а это значит, что, когда вам в дверь постучат агенты ФБР, инструмент уже работает. Если они заставят вас выпустить обновление со встроенными лазейками, бинарная прозрачность это обнаружит. Если вас заставят выпустить масштабное обновление, отключающее бинарную прозрачность, все это заметят и перестанут пользоваться вашей программой.
А это значит, что разумное правительственное агентство даже не станет заморачиваться с тайными лазейками, так как они все равно не сработают. Потому что бинарная прозрачность выложит на стол все ваши лазейки и даже разоблачит любые просьбы об их установке.
Это в теории. А на практике бинарная прозрачность выглядит далеко не так радужно. Во-первых, почти каждое предупреждение от бинарной прозрачности является ложной тревогой: может быть, компания рассылает разным клиентам разные обновления просто для того, чтобы протестировать экспериментальные функции. А может, в обновление или в его контрольную сумму внес мелкие изменения интернет-провайдер, затеявший глубокую проверку пакетов или еще какую-нибудь ерунду. Все эти вещи происходят не очень часто, однако все же гораздо чаще, чем вылавливается реальная лазейка (отчасти потому, что компании, пользующиеся бинарной прозрачностью, гораздо реже получают от шпионов просьбы об установке лазеек). Мало кто догадывается о существовании бинарной прозрачности, а те, кто что-то слышал о ней, уверены, что это такая штука, на которую вполне можно забить, потому что она только и делает, что подает ложные сигналы тревоги.
Дело было бы еще терпимо, будь правительственные агенты людьми разумными. Но шпионы по определению полные отморозки. Вспомните – в детстве среди ваших знакомых наверняка был мальчишка, мечтавший стать шпионом. Напыщенность и авторитарность пополам с паранойей. В 1960-х годах ЦРУ пыталось хирургически вживить кошкам подслушивающие устройства и обучить их шпионажу за врагами Америки. (Не шучу. Поищите в интернете проект «Акустическая киса».) Вдумайтесь: в ЦРУ не только наплевали на мнение ветеринаров, утверждавших, что кошкам нельзя имплантировать тяжелые записывающие устройства с питанием от батарей, они к тому же всерьез полагали, что кошек можно чему-то научить. Потому что, если взять напыщенного авторитарного параноика, дать ему неограниченный бюджет и оставить без присмотра, он испортит все что угодно.
Если вам кажется, что шпионы никогда не попробуют взломать бинарную прозрачность, потому что это пустая трата их и вашего времени, то вы сильно недооцениваете их готовность впустую тратить и свое время, и ваше.
А это значит, что некоторые предупреждения от системы бинарной прозрачности не являются ложной тревогой. Это шпионы пытаются силой проломить себе путь сквозь глупую неотзывчивую реальность.
Бинарная прозрачность еще в ходу, она упоминается в инструкциях для компаний о том, как избежать слежки, но на практике никто не обращает на нее внимания. Кроме Таниши.
– У меня «Хашаш» засбоил. Утром прилетело обновление, хотела уже запустить его и вдруг получила уведомление об ошибке бинарной прозрачности. Чуть было не нажала ОК, но потом вспомнила твои рассказы о том, что никто не обращает на это внимания и поэтому злоумышленники могут попытаться внедрить закладку в программу, где включена бинарная прозрачность. Но, сама понимаешь, у меня много дел, для которых не требуется больших технологических навыков, например бороться против превосходства белых, и…
– Ага. Вот и у всех так же происходит. Рентгенолог просвечивает твою опухоль, чтобы понять, нет ли у тебя рака, и если для этого требуется подключить сетевой кабель, который никто обычно не подключает, то рак побеждает на сто процентов.
– Да.
Где-то на моем этаже кто-то – возможно, комиссар возле лифта – громко, протяжно пукнул. Звук был слышен даже сквозь стену. Я фыркнула.
– Что это было?
– Ты слышала? – Очевидно, «Сигнал» значительно улучшил обработку звуков.
– Маша, ты чего, смеешься над собственным пуканьем?
– Нет, это кто-то здесь, в отеле.
– Здесь – это где?
– Блтц.
– А где это?
– В Словстакии.
– А где это?
– В бывшем СССР. Не советую приезжать сюда.
– Любишь ты шляться по модным курортам.
– Видела бы ты, в какой я тут помойке, перестала бы завидовать. Ну так расскажешь, что было дальше?
– Вот я и пытаюсь. Что, не терпится узнать? Ладно. В общем, это было неделю назад. Я стараюсь быть в курсе всего, что происходит в Альянсе чернокожих и цветных. В моей рабочей группе десять человек, все стояли у истоков организации. Мы нацелились против Оклендского информационного центра. Казалось бы, после той истории с утечками они станут легкой добычей, но не тут-то было. Они зубами и когтями борются за свою жизнь, потому что понимают – иначе им конец.
Я, конечно, слышала об Оклендском информационном центре. Пустая затея, возникшая на волне борьбы с терроризмом. Он поглощал тонны центрального финансирования и занимался тем, что помогал местным полицейским координировать все свои шпионские уловки с самыми разными федералами, от Управления по борьбе с наркотиками до Агентства национальной безопасности. Я смутно помнила, что у них был какой-то скандал, связанный с утечками, но не смогла восстановить в памяти, в чем конкретно было дело.














