Криптокарта 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, Ne tscape 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, значительноувеличилось. Среди них: App le Computer, Inc., Digital Equipment Corporation,IBM, MasterCard International I nc., 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 Secur ityProtocol, а само криптографическое устройство разрабатывалось в соответствиис о стандартом "smart card". В 1993 году название программы былоизменено на "MOSAIC", тип криптографического устройства измененна PC Card, а с ама PC-карта получила название "Tessera Crypto Card".Затем, в 1994 год у, программа была влита в объединенный проект АНБ и Агентстваинформационных сист ем МО США (DISA) Multi-Level Information Systems SecurityInitiative (MISSI). Пос ле этого название технологии было изменено на "Fortezza"и PC-карта пер еименована в "Fortezza Crypto Card".

Технология Fortez za обладает двумя важными свойствами, делающими возможнымее широкое распростране ние (если только это распространение не оказываетсяв сфере действия экспортных о граничений). Первым таким свойством является"персонализация" средств о беспечения безопасности. Каждый пользовательснабжается индивидуальным криптограф ическим устройством, 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 не представляется возможным, т.к. этот алгоритм являетсязасекреченным.

Р ис. 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 в процессе обмена ключами.

Рис. 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 используетсяпри информационном обмене, принимающая сторона может получить все значения,необходимые для расшифрования сообщения, вместе с принятым сообщением.

Р ис. 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.

Рис.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 DSADSADSA KEAKEAKEA KEAKEA сертификат
  данных
Private (X)
Private (X)
размер PG размер Q P Q Gразмер PG размер Q P Q G X.509
32 164 4848 4 4 128 48 1284 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 могут б ыть размещены в базу данных специализированного"сертификационного сервера&q uot; (нескольких серверов) или распределеныпо сети и сохранены локально в картах всех участников информационного обмена.Единственным условием является доступнос ть сертификата для криптографическихфункций приложений 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

Литература

[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.


Copyright © CIT