Криптокарта FORTEZZA -
правительственные технологии в коммерческих приложениях
(обзор по материалам открытой печати)
Фоменков Г.В., Академия ФСБ РФ
17июня 1996 года компания Netscape Communications Corporation анонсировалавыпуск бета-версии SSLRef 3.0 - средства разработки приложений, обеспечивающихзащиту информационного обмена в среде Internet/Intranet с использованиемоткрытого протокола SSL 3.0 [1]. Компания Netscape начала деятельностьпо стандартизации протокола SSL (Secure Sockets Layer) еще в октябре 1994года. Группе инженерной поддержки сети Internet (IETF) в качестве основытребований к безопасности информационного обмена, обеспечиваемой на транспортномуровне, был предложен протокол SSL версии 2. При этом, было выполнено одноиз основных условий, предъявляемых к "кандидату на стандарт"- наличие коммерческой реализации протокола. Первым поколением продуктов,поддерживающих протокол SSL, стали Netscape Navigator 2.0, Netscape CommerceServer 1.0 и Netscape News Server 1.0.
Основным отличием текущей, третьей, версии протокола SSL является поддержкабольшего количества алгоритмов и аппаратных средств обмена ключевой информациейи шифрования, в том числе и технологии Fortezza, разработанной специалистамиАНБ США [2]. Поддержка криптокарты Fortezza в программных продуктах семействаNetscape была запланирована более года назад. В октябре 1995 года вице-президентNetscape Марк Андриссен (Mark Andreessen) заявил, что поддержка технологииFortezza позволит укрепить позиции компании в качестве ведущего поставщикапрограммных продуктов, использующих Web-технологии, как для федеральногоправительства США, так и для коммерческих организаций [3]. Результаты незаставили себя ждать: Netscape стала первой компанией, которой правительствоСША в июле 1996 с.г. предоставило право распространять по сети Internetпрограммное обеспечение, подлежащее экспортным ограничениям [4]. NetscapeNavigator и Netscape FastTrack Server стали первыми программными продуктами,использующими алгоритм RC4 с длиной ключа 128 бит, которые американскиепользователи могут получить по сети Internet.
В настоящее время число компаний, поддерживающих протокол SSL, значительноувеличилось. Среди них: Apple Computer, Inc., Digital Equipment Corporation,IBM, MasterCard International Inc., Microsoft Corporation, Motorola, Novell,Inc., Siemens Nixdorf, Silicon Graphics, Inc., Sun Microsystems, Inc.,Visa International и др. Существуют также и некоммерческие реализации,например WWW-сервер Apache-SSL. Широкое распространение протокола SSL делаетвозможным и необходимым более детальное ознакомление с одним из его средств- криптокартой Fortezza.
История создания криптокарты Fortezza
Технология "Fortezza Cryptographic Card", разработанная вАНБ США, представляет собой стандартное устройство PC-card (раньше этостандарт назывался PCMCIA), предназначенное для реализации аутентификациии шифрования в соответствии со стандартами правительства США. Карты Fortezzaприменяются в системе электронной связи Defence Message System (DMS) МОСША, в поисковой системе Intelink разведывательного сообщества правительстваСША, использующей технологии WWW, а также в других правительственных системах[5].
Работы по созданию Fortezza были начаты в 1991 году в рамках программыPre Message Security Protocol (PMSP) [6]. Перед специалистами АНБ былапоставлена задача разработать технологию защиты информации, не имеющейгрифа секретности, но являющейся служебной тайной организации. Первоначальнойцелью этого проекта являлось создание недорогого устройства, выполненногов стандарте "smart card" и обеспечивающего: целостность данных,шифрование данных, идентификацию и аутентификацию источника данных. Кромеэтого, необходимо было предусмотреть возможность совместимости с существующимистандартами (например, с протоколом распространения ключей X.509), обеспечитьработу мобильных пользователей, предоставить средства расширяемости архитектурыдля поддержки потенциально большого числа пользователей (до 4-х миллионов).Первоначальными областями применения технологии Fortezza виделись защитаэлектронной почты и другого электронного информационного обмена, осуществляемогопо открытым каналам связи, а также контроль доступа к системам и их компонентам.
За время развития технология несколько раз меняла свое название. Какуже говорилось, в 1991 году программа Fortezza называлась Pre Message SecurityProtocol, а само криптографическое устройство разрабатывалось в соответствиисо стандартом "smart card". В 1993 году название программы былоизменено на "MOSAIC", тип криптографического устройства измененна PC Card, а сама PC-карта получила название "Tessera Crypto Card".Затем, в 1994 году, программа была влита в объединенный проект АНБ и Агентстваинформационных систем МО США (DISA) Multi-Level Information Systems SecurityInitiative (MISSI). После этого название технологии было изменено на "Fortezza"и PC-карта переименована в "Fortezza Crypto Card".
Технология Fortezza обладает двумя важными свойствами, делающими возможнымее широкое распространение (если только это распространение не оказываетсяв сфере действия экспортных ограничений). Первым таким свойством является"персонализация" средств обеспечения безопасности. Каждый пользовательснабжается индивидуальным криптографическим устройством, PC-картой. ЭтаPC-карта содержит уникальную для каждого конкретного лица ключевую информациюи связанные с ней данные, а также выполняет заложенные в нее криптографическиеалгоритмы. Создатели карты Fortezza проделали большую работу по разработкесложной системы генерации, распределения и управления криптографическимиключами. Особое внимание было уделено контролю целостности данных картыи распространению требуемой криптографической и системной информации.
Вторым свойством является наличие открытого прикладного программногоинтерфейса (API). Аппаратные и программные спецификации карты разрабатывалисьс учетом требований к открытой системе. Это позволяет осуществлять простуюинтеграцию технологии Fortezza в большинство аппаратных платформ, коммуникационныхсредств, операционных систем, пакетов прикладных программ и сетевых протоколови архитектур. Кроме этого, подход Fortezza избавляет разработчиков программныхсредств от необходимости встраивать в прикладные программы сложные криптографическиеподсистемы. Достаточно воспользоваться PC-картой Fortezza, которой можноуправлять через API CI_Library [7].
Криптографические функции карты Fortezza
Алгоритм шифрования, применяемый в технологии Fortezza, известен подназванием SKIPJACK [8]. Этот алгоритм разработан специалистами АНБ и отвечаетстандарту депонирования ключей Escrowed Encryption Key Standard. SKIPJACKявляется блочным шифром с размером блока 8 байт, использующим симметричныеключи (т.е. для зашифрования и расшифрования применяется один и тот жеключ). Шифрование по алгоритму SKIPJACK в карте Fortezza осуществляетсяс помощью специализированного криптографического микропроцессора CAPSTONE,выполненного по RISC-технологии. Такие микропроцессоры выполняют те жефункции, что и микропроцессоры CLIPPER, применяемые для реализации алгоритмаSKIPJACK в устройствах голосовой (телефонной) связи. Обсуждение деталейреализации SKIPJACK не представляется возможным, т.к. этот алгоритм являетсязасекреченным.
![](/pictures/it/securities/pic_1.gif)
Рис. 1.
В технологии Fortezza ключ шифрования данных называется Message EncryptionKey (MEK). В дополнении к этому ключу может использоваться также векторинициализации Initialization Vector (IV), который фактически является дополнительнымвходным параметром при шифровании данных. Стандартный режим алгоритма Fortezzaтребует обязательного использования IV всеми участниками информационногообмена. Это означает, что для расшифрования сообщения принимающая сторонадолжна либо иметь возможность сгенерировать точно такой же IV, которыйиспользовался отправляющей стороной при зашифровании сообщения, либо IVдолжен быть передан вместе с сообщением.
Алгоритм шифрования SKIPJACK имеет три режима работы: Electronic Codebook(ECB), Output Feedback (OFB) и Cipher Block Chaining (CBC). По умолчанию,алгоритм Fortezza использует режим CBC. В этом режиме все 8-байтные блокиоткрытого текста, кроме первого, используются для выполнения операции XORс блоком зашифрованного текста, полученным на предыдущем шаге работы алгоритмас использованием MEK. Вектор IV применяется для зашифрования первого блокаоткрытого текста.
На Рис. 1. показан процесс посылки Алисой секретного сообщения Бобу.Для того, чтобы злоумышленник смог расшифровать сообщение Алисы, ему необходимознать не только MEK, но и IV. При этом, компрометация IV не столь существенна,если злоумышленник не обладает MEK.
Распределение ключей шифрования MEK основано на применении разработанногов АНБ алгоритма обмена ключами Key Exchange Algorithm (KEA), который посылаетзашифрованный MEK с каждым сообщением. Поскольку обмен ключами KEA интегрированв технологию Fortezza, ключи шифрования могут меняться от сообщения к сообщениюили от сеанса к сеансу. Алгоритм KEA использует для шифрования MEK специальныйключ, названный Token Encryption Key (TEK). Необходимо иметь в виду, чтов приложениях, использующих технологию Fortezza, TEK может быть использованпри шифровании данных как альтернатива ключа шифрования MEK, однако MEKне может быть использован для защиты TEK в процессе обмена ключами.
![](/pictures/it/securities/pic_2.gif)
Рис. 2.
Шифрование с открытым ключем в стандартном режиме алгоритма Fortezzaиспользуется только для обмена ключами с использованием KEA и для цифровойподписи сообщений (включая временные метки). В описании алгоритма Fortezzaобычно используют следующие обозначения: 20-байтный закрытый ключ называется"X", 128-байтный открытый ключ называется "Y", P иQ - большие простые числа (секретные), G - простое число по модулю P*Q(общедоступное).
На Рис.2 представлен общий процесс шифрования сообщений с использованиемоткрытого ключа абонента. Алиса зашифровывает сообщение для Боба, используяоткрытый ключ Боба Y и алгоритм шифрования с открытым ключом. Боб расшифровываетпослание Алисы с помощью своего открытого ключа X. Каждый, кто получитдоступ к месту хранения открытых ключей, сможет зашифровать данные дляБоба, но только Боб сможет расшифровать эти данные, поскольку никто незнает его закрытого ключа. Генерация и распределение пар открытого и закрытогоключей для организации обмена ключами KEA и цифровой подписи производитсядля каждого пользователя отдельно в соответствии со специальной процедурой.
Алгоритм обмена ключами
Как отмечено выше, алгоритм обмена ключами KEA разработан специалистамиАНБ и используется для организации распределения ключей шифрования MEKпри информационном обмене и для рассылки секретных ключей пользователям.Основным достоинством KEA является тот факт, что обе стороны могут вычислитьодин и тот же TEK самостоятельно, используя два случайных числа (A и B),собственные параметры P, Q, G и открытый ключ абонента. Когда KEA используетсяпри информационном обмене, принимающая сторона может получить все значения,необходимые для расшифрования сообщения, вместе с принятым сообщением.
![](/pictures/it/securities/pic_3.gif)
Рис. 3.
Основные функции алгоритма KEA показаны на Рис.3. Заметим, что в данномалгоритме значения P, Q и G, используемые Алисой для первоначальной генерацииTEK, а Бобом для генерации TEK при получении сообщения, не передаются поканалам связи и одинаковы для всех пользователей.
Алгоритм обмена ключами KEA применим как в приложениях типа электроннойпочты, так и при информационном обмене между абонентами, логически и/илифизически соединенными между собой в режиме реального времени.
Необходимо заметить, что одно и то же сообщение, адресованное разнымабонентам, зашифровывается с использованием одного ключа MEK, однако этотключ должен быть свернут с помощью различных TEK, соответствующих получателямданного сообщения. Приложение - адресат должно просмотреть сообщение инайти TEK, предназначенный для данного пользователя, развернуть MEK и расшифроватьполученное сообщение.
Цифровая подпись
Для контроля целостности передаваемых сообщений, обеспечения подлинностии невозможности отрицания авторства технология Fortezza использует алгоритмцифровой подписи Digital Signature Algorithm (DSA) и алгоритм хешированияSecure Hash Algorithm (SHA-1), соответствующие стандарту NIST Digital SignatureStandard (DSS).
Процесс генерации цифровой подписи показан на Рис.4.
![](/pictures/it/securities/pic_4.gif)
Рис.4.
После вычисления хэш-функции сообщения, 20-байтный хэш-блок преобразуетсяс помощь алгоритма DSA в цифровую подпись сообщения размером 40 байт. Необходимообратить внимание на различия в использовании параметров P, Q и G в алгоритмахраспределений ключей KEA и цифровой подписи DSA. При проверке цифровойподписи послания Алисы Боб должен иметь доступ к значениям P, Q и G Алисы.Эти параметры должны распространяться либо в заголовке сообщения, либовместе с открытым ключем Алисы. (В целях снабжения каждого пользователянабором собственных значений P, Q и G прикладная библиотека CI_Libraryимеет соответствующие функции загрузки этих значений.) Такое различие виспользовании этих параметров связано с возможностью DSA, в отличии отKEA, поддерживать информационный обмен между пользователями различных "доменов",которые могут различаться процедурами распространения и сертификации ключей.
На момент создания технологии Fortezza не существовало правительственныхили промышленных стандартов временных меток цифровой подписи. Для "привязки"сообщений ко времени их создания применяется дополнительная процедура вычисленияхэш-функции от хэш-блока сообщения и текущего времени, взятого из надежногоисточника (например, криптокарты Fortezza). Необходимо заметить, что значенияP, Q и G, используемые алгоритмом DSA при вычислении подписи с применениемвременных меток, являются общими для всех карт Fortezza и записываютсяв память производителем криптокарты. Поскольку проверка цифровой подписив случае применения временной метки связана с необходимостью синхронизацииисточников времени, вычислением времени доставки сообщения и рядом другихсложностей, использование временных меток в технологии Fortezza не являетсяобязательным.
Сертификаты
Как следует из сказанного выше, в технологии Fortezza должен существоватьпротокол, регламентирующий выдачу и распространение открытых ключей пользователей.Открытые ключи ассоциируются с их владельцами с помощью так называемых"сертификатов". Сертификат представляет собой структуру данных,связывающую идентификатор пользователя, открытые ключи, предназначенныедля алгоритмов KEA и DSA, а также информацию о лице, выдавшем сертификат.С целю защиты от подделки сертификат защищается цифровой подписью выдавшегосертификат лица. Сертификаты и пары секретных/открытых ключей образуютоснову системы управления ключами технологии Fortezza.
В качестве основы системы аутентификации Fortezza использует схему аутентификациисертификатов X.509 и соглашения о наименовании объектов X.500. ТехнологияFortezza различает две структуры сертификатов. Под "сертификатом Fortezza"понимается внутренняя структура данных технологии Fortezza, под "сертификатомX.509" - блок данных стандарта X.509, содержащийся в сертификате Fortezza(см. Рис.5.).
2820 байт
метка
| флажки | размер
| DSA
| KEA
| DSA
| DSA
| DSA | DSA | DSA
| KEA | KEA | KEA
| KEA | KEA
| сертификат
|
| | данных
| Private (X)
| Private (X) | размер PG
| размер Q
| P
| Q
| G | размер PG
| размер Q
| P
| Q
| G
| X.509
|
32
| 16 | 4
| 48 | 48
| 4
| 4
| 128
| 48
| 128 | 4
| 4
| 128
| 48
| 128
| 2048 байт
|
Рис. 5.
Каждый сертификат Fortezza состоит из двух пар открытых/секретных ключей(одна из них предназначена для использования в KEA, другая - в DSA) и соответствующихим значений параметров P, Q и G. Сертификат X.509 содержит открытые составляющиеэтих ключей. Открытые ключи всегда доступны пользователю карты. Ключи хранятсяв закодированном виде: секретные - с помощью локальных ключей пользователяKs (ключ Ks имеет размер 80 бит, находится в специальном регистре криптокартыи становится доступным после успешного ввода PIN пользователя), открытые- с помощью ASN.1. Поле данных размером 2048 байт, зарезервированное длясертификата X.509, может использоваться для хранения любой информации (биометрическихданных, фотоизображений), если только такие "сертификаты" неиспользуются в криптографических функциях. Приложения могут загружать этиданные в энергонезависимую память карты и сохранять их там продолжительноевремя.
Сертификаты X.509 могут быть размещены в базу данных специализированного"сертификационного сервера" (нескольких серверов) или распределеныпо сети и сохранены локально в картах всех участников информационного обмена.Единственным условием является доступность сертификата для криптографическихфункций приложений Fortezza. Некоторые приложения позволяют включать сертификатотправителя в заголовок сообщения, предоставляя получателю возможностьдинамически создавать локальную базу сертификатов абонентов. Такая локальнаябаза может служить своего рода "кэшем" сертификатов, что делаетвозможным посылку сообщений без обращения к серверу сертификатов. Однако,долгое использование локальной базы может привести к устареванию содержащихсяв ней сертификатов.
Таблица 1 содержит описание всех криптографических функций.
Криптографическая функция | Название | Размер параметров | Стандарт |
Обмен открытыми ключами | KEA | секретный ключ 160 бит | модифицированный Diffie-Helman |
Шифрование сообщений | SKIPJACK | ключ 80 бит | NSA / FIPS 185 |
Цифровая подпись | DSA | модуль 1024 бит | NIST FIPS 186 |
Хэширование | SHA-1 | 160 бит | NIST FIPS 180-1 |
Временные метки | нет | 160 бит | Fortezza |
Пароль пользователя | PIN | 4-12 байт | Fortezza |
Сертификат | нет | 2820 байт | используется CCITT X.509 |
Таблица 1. Криптографические функции Fortezza.
Реализации
Описание Fortezza является интересным само по себе, однако как пользователей,так и исследователей этой технологии не могут не заинтересовать прикладныеаспекты конкретных разработок. В таблице 2 содержатся основные параметры3-х известных автору реализаций технологии Fortezza на основе информации,полученной по сети Internet.
Название, характеристики |
MykotronxFortezza ISA BusCard |
Rainbow Fortezza Crypto Card |
National Fortezza CryptoCard |
Фирма-производитель |
Mykotronx, Inc.357 Van Ness Way Suite 200 Torrance,CA, USA 90501 |
Rainbow TechnologiesCorporate Headquarters50 Technology DriveIrvineCA 92618 |
iPower Business UnitNational Semiconductor 1090 Kifer Road, Mail Stop16-225, Sunnyvale, CA 94086-3737 |
Интерфейс |
PC ISA bus |
PCMCIA 2.1 Type 1 |
PC Card Type II |
Поддерживаемые платформы (наличие средств разработки приложений) |
DOS Windows 3.1 Windows 95 Windows NT SCO ODT |
DOS Windows 3.1 Windows 95 Windows NT Apple Macintosh SCO ODT UNIX-HP/UX IBM AIX SUN OS и Solaris |
DOS Windows 3.1 Windows 95* Windows NT* Apple Macintosh7.x* OSF* UNIX* IBM AIX* HPBLS* |
Производительность: шифрование цифровая подпись верификация подписи хэширование |
> 1.4 Мбайт/с 23 мс 39 мс н/д |
> 1.1 Мбайт/с 67 мс н/д н/д |
2 Мбайт/с <50 мс <100 мс 2 Мбайт/с |
Электропитание: напряжение мощность |
+5В н/д |
+5В 605 мВт (62.5 мВт**) |
+5В < 1Вт |
Источник информации |
[9] |
[10] |
[11] |
Таблица 2. Характеристики производимых криптокарт Fortezza
Примечания: * - в будущем, ** - в режиме standby, н/д - нет данных.
MykotronxFortezza ISA Bus | Rainbow Fortezza Crypto Card
| National Fortezza Crypto
|
---|
![](/pictures/it/securities/isa_card.gif) |
|
|
Литература
[1]. Пресс-релиз. Netscape Communications Corporation. June 17, 1996
[2]. The SSL Protocol. Version 3.0. Internet draft. March 1996.
[3]. Пресс-релиз. Netscape Communications Corporation. October 10, 1995.
[4]. Пресс-релиз. Netscape Communications Corporation. July 16, 1996.
[5]. PC Newswire. October 10, 1995.
[6]. Fortezza Program Overview. Version 4.0a. 8 February 1996.
[7]. Application Implementors Guide. Version 1.00. 10 January 1995.
[8]. The Cambridge Algorithms Workshop. Bruce Schneier. Dr.Dobb's Journal,April 1994.
[9]. FORTEZZA ISA Bus Crypto Card.
[10]. FORTEZZA Crypto PC Card.
[11]. iPower Technology Website: Fortezza Crypto Card.