Варя.
Сидим в машине у школы.
Сташевский хмурится, сверяясь с фотографией Ромы в соцсети, которую я ему показала. Его пальцы сжимают мой телефон, а взгляд прыгает от экрана к лицам детей, вываливающихся гурьбой на крыльцо.
– Может, не надо? – Нарушаю я напряжённую тишину.
Он не отвечает, только кивает головой на толпу школьников, внимательно вглядываясь.
Наконец, его взгляд останавливается, глаза прищуриваются.
Замечаю Тёму и Рому, выходящих на крыльцо.
Без шапки оба… Убью, нафиг!
Сташевский, встрепенувшись, передаёт мне телефон и, отстегнув ремень, тянется к дверной ручке.
– Сидите здесь, я сейчас.
– Подождите! – Хватаю его за рукав пальто.
– Что ещё, Варвара? – Закатываются от раздражения его глаза.
– Может, всё же не стоит? Он несовершеннолетний, а вы – незнакомый ему взрослый, который ловит его возле школы и зовёт в машину. Это, знаете ли, порицается у нас в обществе.
Сташевский открывает рот, чтобы что-то сказать, но я перебиваю:
– Да, я знаю, что вам плевать. Но, может быть, всё же отказаться от этой идеи?
Он вздыхает, обводит задумчивым взглядом школьный двор.
– Хорошо. А если мы сядем где-нибудь в кафе, это будет менее подозрительным?
Он не сдастся и не отступит, да?
– Тогда… Тогда я сама приглашу его туда, – заявляю твёрдо и выскакиваю из машины, пока Сташевский не успел меня остановить.
Тёма с Ромой стоят, разглядывая что-то в телефоне.
– Привет, – подхожу к ним. Понижаю голос. – Так, парни, сейчас вы должны сделать вид, что мы не знакомы.
– Варь, ты ку-ку.
– Шапка где? – Зыркаю строго на Тёму.
Молча достаёт из кармана и натягивает на голову.
– Рома, мой босс хочет угостить тебя мороженым. Как тебе идея?
Тёма и Рома синхронно морщатся.
– Мы продаёмся только за бургеры.
– Ты, Артём, с нами не пойдёшь, – предупреждаю я.
– Ещё чего! Пойду.
– Нет!
– Ромка плавает в инфе, кто ему подсказывать будет? – Парирует Тёма.
От раздражения сжимаю кулаки.
– Ладно, – сдаюсь. – Куда нам подъехать?
Тёма косится через моё плечо, разглядывая машину Сташевского. Присвистывает.
– Нифига у тебя на чём босс катается…
– Адрес скажи, Тём.
– За углом есть бургерная, можно там сесть.
– Окей. Рома, тоже шапку.
Возвращаюсь в машину.
– Ну что? – Сташевский внимательно меня разглядывает.
А я пытаюсь мысленно промотать в голове недавнюю сцену и понять, не выдала ли себя чем-нибудь.
– За углом бургерная, – тычу я пальцем вдоль улицы.
Сташевский коротко кивает, выворачивает руль, и мы направляемся туда.
Садимся за столик в углу. Соня радостно агукает в переноске, дёргая Станислава Сергеевича за рукава. Её весёлое настроение резко контрастирует с моим бешено колотящимся сердцем и ощущением надвигающейся беды.
Сташевский молчит, разглядывая что-то в своём телефоне. Изредка бросает на Соньку взгляды, значение которых я разгадать не могу.
Через пару минут дверь открывается, и заходят Тёма и Рома.
Тёма первым делом замечает Сташевского и буквально замирает на месте. Глаза его расширяются, занимая теперь почти всё место на шокированном лице.
Рома толкает его в плечо, и они подходят ближе. Усаживаются за столик, снимают куртки.
Рома тут же утыкается в меню, выбирая себе бургер.
Тёма же продолжает сверлить взглядом Сташевского, и я незаметно тыкаю его ногой под столом.
«Отвисни» – внушаю ему взглядом, сжимая зубы.
Сташевский смотрит на Рому и заговорщицки улыбается.
– Ну, друг, объясни мне, зачем ты это сделал?
Рома откидывается на спинку диванчика, делая вид, что абсолютно спокоен.
– Это ачивка, – бросает небрежно.
– Неплохая ачивка, – Сташевский холодной усмехается, скрещивает руки на груди. – Ладно, давай разберёмся по порядку. Какой код ты использовал?
– Ну… Это… Короче, я взял… Ну, генератор ключей, а потом… Ну, алгоритм.
Сташевский хмурится.
– Какой именно алгоритм?
Рома теряется, его взгляд рассеянно прыгает по нашим лицам.
– Э-э… Этот… Асимметричное шифрование.
– RSA? – Уточняет Сташевский.
Рома молчит, нервно теребя край своего худи.
– Нет, там была другая схема, – быстро говорит Тёма. – Он использовал атаку на метод Эль-Гамаля. Сначала получил параметры, потом через модульное уравнение пересчитал открытый ключ.
Сташевский переводит взгляд на Тёму.
– Вы оба занимаетесь этим?
– Нет! – Выпаливаю я слишком резко и громко.
– Варвара, помолчите. Получается, он сгенерировал свой ключ, подменил его в сессии, а затем атаковал сервер? – Станислав Сергеевич прищуривается. Снова смотрит на Рому. – Ты сам это придумал?
– Ну, да, сам придумал.
Тёма качает головой, едва сдерживаясь от того, чтобы не закатить глаза.
Сонька тянет ручки к нему, улыбаясь, но тот старается её игнорировать, хотя я вижу, как ему это даётся тяжело. Сташевский, кажется, тоже это замечает, потому что недовольно что-то бубнит.
– Так, вундеркинд, и что дальше?
– Ну, дальше… Взломал систему.
– Подробней.
– Э…
– Там была связка методов. Проблема в том, что у вас уязвимость в одном из протоколов проверки ключей. Когда сервер проверяет подпись, он делает это не напрямую, а через промежуточный вызов.
Прибью сейчас говнюка!
Сташевский слегка наклоняет голову, разглядывая Тёму.
– То есть вы с ним нашли уязвимость в схеме подтверждения?
– Нет, он… – Тёма осекается, понимая, что едва не выдал лишнего. – Ну да, типа того. Мы – то есть он – просто заменил часть цепочки вызовов.
– Конкретно какую часть?
Рома нервно сглатывает.
– Эээ… Ну, там этот… Хендшейк.
– Хендшейк, – насмешливо повторяет Сташевский. – Какой именно?
– Там шифрование на эллиптических кривых… или что-то такое… – Рома краснеет и заикается.
Тёма снова вмешивается.
– Это был ECC, но у вас в реализации есть слабое место. Мы использовали проблему с некорректной обработкой временных меток.
– Временных меток? – Сташевский чуть подаётся вперёд. – Вы перепутали порядок отправки?
– Нет, – Тёма явно наслаждается процессом. – Мы создали цепочку ложных вызовов. Там же у вас библиотека OpenSSL старой версии, она уязвима к этому. Если сервер принимает метку за истинную, он упрощает проверку.
– И это позволяет обойти подтверждение ключа?
– Ну… Да, – неуверенно вставляет Рома, в надежде выглядеть умнее. – Я как бы… Глянул в код и сразу всё понял.
Сташевский бросает на него острый взгляд.
– В каком языке?
– В… Эм… В…
– Си, – быстро отвечает Тёма.
Рома кивает, подтверждая. Нервно кусает губы.
Сташевский на секунду задумывается.
– Значит ты, умник, написал код и решил проверить мою систему на уязвимость?
– Ну… Так вышло.
– Ты понимаешь, что если бы я решил довести дело до суда, тебе грозило бы нечто куда более серьёзное, чем просто разговор со мной?
Рома молчит, глядя куда-то в сторону.
– Хорошо, – Сташевский откидывается на спинку кресла. – На первый раз ограничимся разговором. Но если ты решишь продолжать свои эксперименты…
Он не заканчивает. Но в этом нет нужды, потому что его угроза очень явно повисает в воздухе.
Он поворачивается резко к Тёме.
– Ты неплохо шаришь, – с легкой улыбкой. – Тебе стоит подумать о карьере в кибербезопасности.
Тёма нервно хмыкает, но похвала от кумира его явно зацепила.
Рядом Сонька громко смеётся и машет руками, пытаясь привлечь внимание к себе. Но никто из нас не осмеливается ей ответить.
Почти физически ощущаю, как воздух между ними становится напряжённым. Сташевский, кажется, впечатлён, но старается не показывать.
– Хорошо, Роман. У меня есть предложение. Я хочу, чтобы ты помог мне пересобрать систему защиты. Сделать её менее уязвимой для хакеров, отловить баги.
Рома вылупляется на него, будто Сташевский предложил ему возглавить миссию на Марс.
– Чего? – На выдохе.
Тёма меняется в лице.
Вижу, как напрягаются его плечи, и весь он вскипает изнутри. Вот-вот взорвётся.
– Не бесплатно, конечно, – добавляет Сташевский. – Взять тебя в штат я не могу, но мы обсудим гонорар. Я считаю, что таких юных гениев нельзя упускать из виду, поэтому предлагаю тебе не конкуренцию, а свою дружбу.
И Тёма, естественно, взрывается!
– Нет! Я так не могу! Это не Ромка, – почти срываясь на крик. – Это я собрал код! Это я должен над системой защиты работать!
– Артём! – Рявкаю.
– Варя, блин, да это кринж! Думаешь, я позволю кому-то присвоить мой код?! Да он идеальный! Я над ним так долго работал!
Хватаюсь за голову, до боли вцепляясь пальцами в волосы. Ноги немеют от страха.
Сташевский смотрит на нас с таким выражением лица, будто примеряет, поместимся ли мы все в багажнике его машины.
– А ты не подумал обо мне, гений чёртов?! – Вырывается из меня с раздражением, и я лишь усилием воли держусь от слёз.
– Я о тебе и думаю! – Не сдаётся Тёма. – Я же сказал, что на этом можно поднять бабла!
Тёма протягивает руки к Соньке, и, прежде чем я успеваю что-то сделать, он забирает её к себе на колени. Соня, счастливая как никогда, с радостным визгом тянется к нему, хватая за лицо и оставляя на подбородке слюнявый след.
Сташевский смотрит на эту сцену как на какой-то странный спектакль.
Его взгляд перемещается от Тёмы к мне, а потом обратно к Тёме.
– Станислав Сергеевич, – губы предательски дрожат. – Я… Я всё вам сейчас объясню… Я просто…
Но не успеваю.
Его ноздри гневно раздуваются. Он резко встаёт из-за стола, поправляет пальто.
Он злится?
О, нет… Он в ярости!
– Я уволена? – Тихо спрашиваю, пряча взгляд.
– Артём, с тобой свяжутся. Варвара… – Многозначительная громкая пауза. – Жду вас в машине.
Он разворачивается и уходит, оставляя меня в страшном ступоре, на грани нервного срыва.
Падаю головой на стол.
– Командир, да нормально всё будет…
– Нет, не будет, – шепчу.
Всё, нельзя убиваться. Сейчас не время.
Вот домой вернусь, там и пострадаю.
Поднимаюсь, быстро надеваю куртку. Забираю Соню из Тёминых рук и осторожно укладываю её обратно в переноску. Она фыркает, но быстро успокаивается, глядя на меня большими ясными глазами.
– Почему ты не рассказала, что Сташевский твой босс?
– Потому что знала, что тебе снесёт крышу. Ладно уж, дома поговорим. Пойду сдаваться.
– Думаешь, он правда уволит тебя?
Пожимаю плечами, стараясь не расплакаться прямо здесь, в этой чёртовой бургерной.
– Не знаю, Тём. Наверное.
Обречённо плетусь на выход…