Что нужно сделать, чтобы распропагандировать небольшую софтверную компанию? Среди прочих существует один безотказный способ — организовать атаку, желательно успешную, на Microsoft. Прием, известный со времен дедушки Крылова: как еще поступить маленькой собачке? Но в чистом виде он ущербен, ибо не может с гарантией обеспечить выход скандала за пределы компьютерной прессы. Поэтому желательно имя Microsoft связать с кем-то еще, чья репутация столь же неоднозначна в глазах широкой общественности. Великолепно, если это будет какая-нибудь спецслужба, ну например, АНБ (National Security Agency, NSA).
Именно к этой далеко не новой тактике, в основе которой стоит спекуляция на антимайкрософтовских настроениях, прибег Эндрю Фернандес (Andrew Fernandes) — специалист из небольшой канадской компании Cryptonym. На то, чтобы прославить себя и свою фирму, ему потребовалось всего две недели. Оказалось, что достаточно сначала (15 августа) выступить на конференции Crypto’99 (Санта-Барбара, шт. Калифорния), затем срочно (к 1 сентября) создать сайт, не содержащий практически ничего, кроме описания действительно крупной ошибки, как теперь говорят, прокола Microsoft, — и дело будет в шляпе. И в самом деле, через пару дней после того, как по адресу
www.cryptonym.com появилась статья Фернандеса “Microsof, АНБ и Вы” (“Microsoft, the NSA, and You”), о ней уже писала газета “Нью-Йорк Таймс”.
И все же, чем удивил мир доселе никому неизвестный Эндрю Фернандес? Увы, предпосылку к его успеху создали сами специалисты Microsoft: на свою беду они забыли удалить символические метки в пакете Windows NT4 SP 5, точнее, в той части операционной системы, где находятся компоненты, обеспечивающие информационную безопасность. Эту оплошность и заметил Э. Фернандес, а далее пытливый пользователь сумел раскопать альтернативный вход в систему криптографической защиты, который, оказывается, есть в любой копии Win95/ 98/NT4 и Windows 2000. В своей работе он базировался на трудах Нико ван Сомерена (Nicko van Someren, компания NCipher) и Эди Шамира (Adi Shamir), одного из отцов-основателей и патриархов современной криптографии: в аббревиатуре названия его компании RSA “S” означает как раз его имя).
Второй (или, скорее, его стоит назвать черным) ход содержится в Crypto API (CAPI). Вообще прикладные программные интерфейсы API (Application Programmer’s Interface) — это принятый технологический прием, обеспечивающий доступ к программному продукту сторонним разработчикам, но не раскрывающий при этом содержание самого продукта. Конкретно CAPI появился как ответ Microsoft на ужесточение требований правительства США в области криптографии.
Дело в том, что любая заокеанская компания, выпускающая операционные системы, оказывается зажатой в жестких тисках: с одной стороны, американское правительство накладывает заметные ограничения на экспорт криптографических средств, а с другой — целый ряд пользователей не может создавать системы, не обеспечивающие соответствующую криптозащиту своих данных. Чтобы разрешить эту дилемму, и был придуман CAPI, в котором имеется механизм электронной подписи, ограничивающий использование средств криптозащиты Windows. В нем применен механизм шифрования с открытым ключом. Общая схема предполагает, что если кто-то намеревается защищать свои данные, то он должен пользоваться только средствами, заложенными в Windows, для чего он обязан обратиться в компанию Microsoft: там он получит ключ и уже после этого сможет работать в защищенном варианте. Таким образом контролируются режимы защиты.
Но (всегда найдется это “но”, разрушающее идеальную схему) в отладочной версии Windows NT осталась неудаленной метка “_KEY”, указывающая вход в механизм защиты CAPI; мало того, там же оказалась еще одна метка, обозначающая дополнительную точку входа, — она именуется “_NSAKEY”. Именно в этом и заключалось открытие Фернандеса. Вернитесь в начало статьи, обратите внимание на английскую аббревиатуру Национального агентства безопасности. Вот он, черный ход для спецслужб. Вы как честный пользователь получаете публичный ключ и легально входите в дверь с надписью “_KEY”, а кто-то из “людей в черном” совершенно спокойно, не предупредив вас, может войти под надписью “_NSAKEY”. Как это делается — вопрос техники.
Обнаружение “_NSAKEY” не могло не вызвать очевидных в таком случае сравнений с уже было позабытым оруэлловским Большим Братом. (Если кто-то не читал, то речь идет о романе Дж. Оруэлла “1984”). Разумеется, представители Microsoft тут же отвергли существование программной “закладки”, они называют это случайным совпадением, но пусть отношения компании с правительством, то, как она оправдывается, останутся вопросом ее внутренней жизни. Для пользователей существеннее другое обстоятельство. Фернандес открыл возможность подключения произвольных средств шифрования Windows через этот злосчастный вход “_NSAKEY”. Отныне и впредь ограничений на использование методов шифрования, так же как и требований по лицензированию, нет. Он сказал буквально следующее: “Экспортный контроль над Windows приказал долго жить”.
Мало того, в своей публикации на сайте Э. Фернандес популярно объяснил, как обойти ограничения на внедрение собственных средств криптографии. Это можно сделать с помощью элемента CryptoAPI, называемого Cryptographic Service Providers (CSP). Именно он не позволяет использовать сторонние средства криптозащиты. Это утверждение относится к следующим версиям Windows: NT4 Server SP5, Win95osr2, Win98, Win98gold, WinNT4 (все версии) и Win2000 (вплоть до 2072 RC1). После загрузки CSP, а затем отладочных средств несложно обнаружить, что по адресу 0x77DF5530 находится метка “_KEY”, а по адресу 0x77DF55D0 — “_NSAKEY”.
Если вы, к примеру, захотите войти в систему со своей новой криптозащитой через парадный вход, т. е. попытаетесь заместить “_KEY” своим адресом, то Windows, как ей и положено, перестанет работать. Система убедится в несоответствии цифровой подписи и все поймет. А вот то же самое действие с адресом “_NSAKEY” останется для ОС незамеченным, она сохранит свое рабочее состояние. Вся штука в том, что здесь-то подпись не проверяется.
В результате подобной манипуляции окажутся убитыми сразу два зайца. Во-первых, будет нейтрализована возможность захода людей из того же АНБ в вашу систему, во-вторых, вы сможете пользоваться той криптозащитой, которая вам по вкусу, не спрашивая на то разрешения.
Простейшая программа, ликвидирующая ключ NSA и замещающая его тестовым ключом, может быть загружена с сайта Cryptonym Corporation.
Результатом проделанной акции будут довольны и заинтересованные пользователи, и автор всей затеи Э. Фернандес, а вот уважаемой компании стоит напомнить выражение: “Не выгадывай, не прогадаешь”.
Версия для печати