Pull to refresh

Безопасности не существует: как NSA взламывает ваши секреты

Level of difficultyMedium
Reading time8 min
Views7.2K

Сегодня — пятница, 13-е. В культуре этот день окутан предчувствием беды, словно сама удача берёт выходной. В романе «Задача трёх тел» и его экранизации человечество сталкивается с хоррор-сценарием: учёные по всему миру уходят из жизни, шепча, что «физики больше не существует». Инопланетный разум использует совершенную технологию («софоны»), чтобы саботировать эксперименты и заставить законы природы казаться сломанными. Это порождает пугающий вопрос: а что, если и в цифровом мире наше чувство безопасности — лишь удобная иллюзия? Что, если криптографическая защита, на которую мы полагаемся, может рассыпаться, стоит появиться достаточно умелому взломщику? Возможно, абсолютной безопасности не существует — и настало время заглянуть за кулисы этого интеллектуального триллера.

Конечные поля: игра по замкнутым правилам

Представьте обычные часы: 9 + 4 на циферблате даёт 1, потому что стрелка делает круг и возвращается в ту же вселенную двенадцати делений. Именно так работает арифметика по модулю — фундамент так называемого конечного поля. У вас есть ограниченный набор чисел, и любая операция — сложение, умножение, возведение в степень — никогда не вырывается за его границы. Крипто-алгоритмы любят такую «огороженную площадку»: всё детерминировано, проверяемо, повторяемо.

Но уют замкнутого пространства оборачивается и слабостью. Если поле конечное, то, в принципе, каждое состояние можно просчитать или перебрать — вопрос лишь в объёме ресурсов. В шифрах размер поля чудовищен: AES оперирует 2¹²⁸ возможными блоками, число настолько астрономическое, что прямой перебор кажется безумием. Тем не менее, это всё ещё конечность. А значит, в теории существует путь, пусть и звёздно-дорогой, пройти весь цикл и вернуться к исходной точке. И если у кого-то — скажем, у спецслужб с неограниченным бюджетом — окажется хитрая математика или квантовый рычаг, уютная площадка превратится в ловушку.

Хэш-функции: мясорубка, которая иногда крутится вспять

Хэш-функции любят называть цифровой мясорубкой: на входе любое сообщение, на выходе — «котлета» фиксированной длины. Теоретически провернуть фарш назад невозможно: хэш сталкивает бесконечно много разных входов в один и тот же отпечаток. Но вспомним про конечность поля. Если функция действует внутри замкнутой вселенной битовых строк, она, как и часы, рано или поздно повторится — вопрос лишь, насколько длинным окажется цикл.

Именно эту трещину вскрыли исследователи, показав коллизии для SHA-1. Вместо фантастических миллиардов лет им хватило нескольких месяцев облака и аккуратных математических ухищрений. Стало понятно: необратимость держится не на «магии», а на том, что цикл пока слишком велик для обычных смертных. Но если у вас есть доступ к экзафлопсам, к хитрому алгебраическому методу или к квантовому ускорителю, мясорубку можно заставить крутиться до исходной кости. Стоит лишь найти правильную частоту вращения — и святость хэша превращается в иллюзию.

Блочные шифры: тайны на поле битвы

Перейдём к тяжёлой артиллерии — блочным алгоритмам. Возьмём AES, короля современного шифрования. На бумаге он выглядит монументально: 10–14 раундов запутывания и перемешивания, огромный ключ, суровая математика поля GF(2⁸). Для каждого ключа AES всего-навсего создаёт одну гигантскую перестановку всех 2¹²⁸ возможных блоков. То есть шифр — это строго определённая функция на конечном множестве, а значит, в принципе обратим, если знать секретный порядок.

В чём подвох? Внутри AES-раундов скрывается изящная алгебра. Байты проходят через S-блок, который можно описать как обратное по модулю x⁸ + x⁴ + x³ + x + 1 с последующей аффинной трансформацией. Всё это работает в том самом конечном поле, и если вдруг найдётся способ «распрямить» эти преобразования в систему уравнений, стойкость шифра рухнет. Сегодня таких методов нет ― по крайней мере, публичных. Но история DES учит: наличие некой «неизвестной науки» у спецслужб вполне реально.

Добавим к этому громкую проблему реализаций. Аппаратные ускорители AES-NI действуют как чёрный ящик: да, они шифруют быстрее, но что ещё они делают с ключом, пока пользователь моргает? Малейшая инженерная недоработка — и всплывает побочный канал. Одно лишнее потребление тока, один невыравненный тайминг — и криптоаналитик с осциллографом начинает читать секреты, как роман в мягкой обложке.

Так и получается: математика может быть железобетонной, но достаточно одному микроскопическому зазору — и всё великолепие превращается в декоративный фасад, за которым опытный противник пройдёт без ключей и отмычек.

Случайность: генераторы под прицелом

Ни один шифр не прочнее своего ключа, а ключ не прочнее источника, который его породил. Случайность — сердце криптографии, и именно на неё сегодня охотятся самые продвинутые хакеры мира. Компьютер, как бы он ни притворялся, не умеет «по-настоящему» бросать кости: внутри него лишь холодные транзисторы, исполняющие детерминированный код. Поэтому в ход идут псевдослучайные генераторы — алгоритмы, которые растят целое море битов из малого зерна энтропии.

И вот тут начинается магия, больше напоминающая шулерские карты. В 2013-м всплыл скандал с Dual_EC_DRBG, генератором, ратифицированным NIST. Оказалось, в его эллиптической кривой спрятаны таинственные константы, известные лишь избранным. Тот, кто знает эти числа, способен за доли секунд восстановить внутреннее состояние и предсказывать каждое «случайное» следующее значение. Поговаривали, что RSA Security получила пару десятков миллионов долларов, чтобы включить этот генератор в свои библиотеки «по умолчанию» — тихий бэкдор, маскирующийся под стандарт.

Аппаратные RNG-модули выглядят лучше: они слушают тепловой шум, радиационные выбросы, квантовые флуктуации. Но стоит вспомнить инструкцию RDRAND в процессорах Intel — маленькую черную коробку, к которой доверчиво тянутся тысячи программ. Сколько инженеров действительно проверили, что там внутри? Как убедиться, что глубоко в кремнии не спрятан дополнительный регистр, передающий каждую порцию «случайности» в тихую инженерную кладовую?

И пока мы спорим, что считать достаточной энтропией, атакующий выбирает самый простой путь: снять маску. Он меряет, как ваш генератор залипает на повторениях, анализирует слабые линейные связи, подсовывает вам предсказуемый стартовый вектор. Потому что, если случайность неслучайна, вся криптография разваливается моментально — как карточный домик под посвистом ветра.

Аппаратные закладки: троян, запаянный в кремний

Криптография может быть идеальной, но что, если сам кремний уже играет на стороне противника? После утечек Сноудена стало ясно: спецслужбы годами работали прямо в цепочке поставок. Раскрытые документы описывали банальную сцену — коробка с серверами Dell «случайно» задерживается на несколько часов, внутри устанавливается микромодуль-жучок, и техника едет дальше к ни о чём не подозревающему банку.

Самым хищным хабом для такой «инфекции» остаётся скрытая подсистема внутри современных процессоров. У Intel это Management Engine: крошечное независимое ядро, стартующее до операционной системы, со своим сетевым стеком и прямым доступом к памяти. Оно не отображается ни в BIOS, ни в диспетчере задач, но может читать, шифровать и отправлять что угодно.

Сетевое оборудование страдает ещё сильнее: одна лишняя микросхема на материнской плате, пару нестандартных дорожек — и у вас уже трансивер, способный пересылать трафик в обход любых VPN. Поймать такой жучок почти невозможно без рентгена и лаборатории. Даже микрокодные обновления, которые «улучшают стабильность», могут тайком включить режим, где специфическая последовательность команд снимает все ограничения доступа.

Аппаратный бэкдор — атака мечты. Он не зависит от софта, переживает переустановку ОС и срабатывает без шума, пока пользователь уверенно читает: «Соединение защищено 256-битным шифрованием».

Физические каналы утечки: когда стены имеют уши

Предположим, алгоритм безупречен, железо чисто, ключи сгенерированы идеально. Даже в такой «стерильной» картине компьютер продолжает болтать — физикой собственного тела. Любая операция внутри чипа меняет токи и поля: процессор потребляет чуточку больше энергии, катушка импульсного питания тихо пискнет, конденсатор отдаст микроскопический лучик радиоволн. Для криптоаналитика это не шум, а полноценный язык.

Технологии TEMPEST (Telecommunications Electronics Material Protected from Emanating Spurious Transmissions) появились ещё в 1960-х, когда разведка уловила: по колебаниям напряжения в телеграфном аппарате можно читать набираемый текст. Дальше — больше. В 1985-м исследователь Ван Эк показал, что изображение с ЭЛТ-монитора можно восстановить радиоприёмником за стеной, просто слушая электромагнитный фон. Сегодняшние атаки ушли в наномир: израильтяне считали RSA-ключ, поднеся к ноутбуку обычный радиоблок на $20; лаборатория Кембриджа прочитала зашифрованную фразу, анализируя едва слышный «писк» VRM-катушек.

Утечка может идти и обратным курсом. Зарядный кабель USB-C становится антенной: спящий смартфон аккуратно модулирует ток и передаёт ключи в эфир милливаттами, не поднимая тревоги у Bluetooth-сканеров. Светодиод статуса на роутере шлёт азбуку Морзе инфракрасной камерой за десять метров. Лазерный микрофон на парковке считывает вибрацию окна от печати пароля.

Главное для атакующего — не взламывать шифр, а подслушать физический шёпот устройства. Криптография защищает биты в математике, но не защищает ваше железо от того, что оно звучит, светится и дышит током. В поле реального излучения даже идеальная формула превращается в бумажный щит.

Невидимые протоколы: как пакеты шпионят без шума

Даже если излучение подавлено и жучков нет, шпиону нужно ещё вывести добычу наружу. Для этого существует целый зверинец covert-каналов — путей, которые сетевые фильтры считают «служебным мусором» и пропускают автоматически. Классика жанра — ICMP-эхо, тот самый ping. Формально пакет несёт всего байты диагностики, однако поле данных допускает до 64 кБ полезной нагрузки. Зашифруй туда ключ — и трафик уйдёт, не оставив лога в прокси.

DNS-туннелирование ещё хитрее: доменное имя вроде kd9fp3y7.example.com кажется рандомным, а на деле каждая метка кодирует очередной фрагмент секрета. Провайдеры миллионы раз в сутки разрешают такие запросы, и пара сотен лишних строк в логах тонет в массовке.

В мобильных сетях та же история: в 5G-стеке живут управляющие каналы, которые роутеры не логируют вовсе. Отправь «сервисное» сообщение с нужной меткой MIB — и спутник-приёмник за тысячи километров примет его как штатную телеметрию.

Смысл прост: не взламывать шифр, а вывести ключ по дороге, где никто не смотрит. И пока мы радуемся зелёному замку TLS, где-то мелькает невинный ICMP-пакет, несущий тот самый 256-битный секрет, добытый аппаратным трояном.

Иллюзия безопасности: симуляция доверия

Соберём пазл. Конечные поля дают теоретическую тропинку к обратимости. Хэши и блочные шифры устойчивы лишь пока никто не нашёл более короткого маршрута. Генератор случайности можно «подсадить» на поддельную энтропию. Процессор способен тасовать ключи прямо в кремнии, а скрытый радиомодуль — пересылать их наружу. Дальше подключаются невидимые протоколы, которые провозят добычу мимо глаз IDS и VPN.

Получается странная картинка мира: со стороны пользователя всё сияет замками и сертификатами, а у противника — набор отмычек, каждая из которых старается даже не трогать сам шифр. Вместо лобовой атаки он бьёт в обход, где совмещаются математика, физика и supply-chain. И если сложить эти векторы, станет понятно, как можно раскрутить почти любую криптосистему, не нарушая формальной «крепости» алгоритмов.

Так возникает провокационный вывод: абсолютной безопасности нет, есть лишь дороговизна атаки с нашей точки зрения. Для кого-то другие ресурсы – другие горизонты. Отсюда главный вопрос: разве криптография — это не симулятор доверия, удобная игра в замки, пока сильный игрок не решит, что пора выйти из тени?

Финальный аккорд: что остаётся нам?

Если безопасность — это сцена, на которой каждому отведена роль, то мы, пользователи, часто сидим в зале: аплодируем красивому спектаклю из аббревиатур — AES, SHA, TLS, TPM — и верим, что кулисы надёжно зашиты. Но актёр, играющий злодея, давно ходит по служебным проходам, знаком со всеми люками и знает, где в декорации прячется потайная дверь.

Что же делать? Первое — признать: уязвимостей нет только у мёртвых систем. Живой софт, живое железо и живой человек всегда оставят лазейку. Второе — учиться разделять доверие: хранить ключи там, где нельзя подменить микрокод; генерировать случайность на разных независимых источниках; держать в поле зрения физику устройства. Третье — не бояться сомневаться: задавать неприятные вопросы производителям, проверять стандарты, выкручивать протоколы наизнанку.

И, наконец, помнить: абсолютный дзен недостижим, но тревожный ум — лучшая защита. Пока мы держим глаза открытыми, у следующего «софона» меньше шансов незаметно подменить реальность. Безопасность — это процесс, а не состояние; дорога без финишной ленточки. И чем внимательнее мы всматриваемся в тень, тем меньше места остаётся тому, кто пытается в ней спрятаться.

Tags:
Hubs:
+29
Comments30

Articles