Анимация
JavaScript
|
Главная Библионтека Глава 24 Примеры реализаций Одно дело разрабатывать протоколы и алгоритмы, и совсем другое дело встраивать их в операционные си с-темы. В теории практика и теория не отличимы, но на практике между ними огромные различия . Часто идеи замечательно выглядят на бумаге, но не работают в реальной жизни . Может быть слишком велики требования к скорости канала, может быть протокол слишком медлителен . Некоторые из вопросов использования криптогр а-фии рассматриваются в главе 10, в этой главе обсуждаются примеры того, как криптографические алгоритмы реализуются на практике. 24.1 Протокол управления секретными ключами компании IBM В конце 70-х годов IBM, используя только симметричную криптографию, разработала законченную систему управления ключами для передачи данных и безопасности файлов в компьютерных сетях [515, 1027]. Не так важны реальные механизмы протокола, как его общая философия : за счет автоматизации генерации, распределения, установки, хранения, изменения и разрушения ключей этот протокол далеко продвинулся, обеспечивая безопасность лежащих в его основе криптографических алгоритмов . Этот протокол обеспечивает три вещи: безопасную связь между сервером и различными терминалами, безопасное хранение файлов на сервере и безопасную связь между серверами. Протокол не обеспечивает настоящего прямого соединения терминал-терминал, хотя его модификация может реализовать такую возможность . Каждый сервер сети подключен к криптографической аппаратуре , которая выполняет все шифрование и дешифрирование. У каждого сервера есть Главный ключ (Master Key), KM0, и два варианта, KM1 и KM2, которые являются упрощенными вариантами KM0. Эти ключи используются для шифрования других ключей и для генерации новых ключей. У каждого терминала есть Главный ключ терминала (Master Terminal Key), KMT, который используется для обмена ключами с другими термин алами. KMT хранятся на серверах, зашифрованные ключом KM1. Все остальные ключи, например, используемые для шифрования файлов ключей (они называются хранятся в зашифрованной форме, закрытые ключом KM2. Главный ключ KM0 хранится в энергонезависимом модуле безопасности. Сегодня это может быть либо ключ в ПЗУ, либо магнитная карточка, или ключ может вводиться пользователем с клавиатуры (возможно как текстовая строка, преобразуемая в ключ). KM1 и KM2 не хранятся где-нибудь в системе, а, когда понадобится, вычисляются по KM0. Сеансовые ключи для связи между серверами генерируются на сервере с помощью псе в-дослучайного процесса. Аналогичным образом генерируются ключи для шифрования хранимых файлов (KNF). Сердцем протокола служит устойчивый к вскрытию модуль, называемый криптографической аппаратурой (cryptographic facility). И на сервере, и на терминале все шифрование и дешифрирование происходи именно в этом модуле. В этом модуле хранятся самые важные ключи, используемые для генерации действительных ключей шифрования. После того, как эти ключи записаны, считать их становится невозможным . Кроме того, они помечены для конкретного использования: ключ, предназначенный для решения одной задачи, не может случайно быть использован для решения другой . Эта концепция векторов управления ключами возможно является самым значительным достижением этой системы. Дональд Дэвис (Donald Davies) Вильям Прайс (William Price) подробно рассматривают этот протокол управления ключами в [435]. Модификация Модификацию этой схемы главного и сеансовых ключей можно найти в [1478]. Она построена на базе сетевых узлов с аппаратурой проверки подлинности ключей, которая обслуживает локальные терминалы . Эта модификация была разработана, чтобы: - Обезопасить дуплексный канал между двумя пользовательскими терминалами . - Обезопасить связь с помощью шифрованной почты. - Обеспечить защиту личных файлов. - Обеспечить возможность цифровой подписи. Для связи и передачи файлов между пользователями в этой схеме используются ключи, генерированные в аппаратуре проверки подлинности ключей, отправляемые пользователям после шифрования с помощью главн ого ключа. Информация о личности пользователя встраивается в ключ, предоставляя доказательство того, что сеансовый ключ используется конкретной парой пользователей . Возможность проверки подлинности ключей является главной в этой системе. Хотя в системе не используется криптография с открытыми ключами , она поддерживает возможность, похожую на цифровую подпись : ключ может быть прислан только из конкретного и с-точника и прочитан только в конкретном месте назначения . 24.2 MITRENET Одной из самых ранних реализаций криптографии с открытыми ключами была экспериментальная система MEMO (MITRE Encrypted Mail Office, Шифрованное почтовое отделение). MITRE - это б1ла команда умных парней, работающая по заказу Министерства обороны. MEMO служила системой безопасной электронной по ч-ты для пользователей сети MITRENET и использовала криптографию с открытыми ключами для обмена кл ю-чами и DES для шифрования файлов. В системе MEMO все открытые ключи хранятся в Центре распределения открытых ключей (Public Key Distribution Center), который является отдельным узлом сети. Ключи хранятся в стираемом перепрограммируемом ПЗУ, чтобы не дать изменить их. Закрытые ключи генерируются пользователями системы. Чтобы пользователь мог отправлять безопасные сообщения , система сначала устанавливает безопасное с о-единение с Центром распределения открытых ключей . Пользователь запрашивает в Центре файл всех открытых ключей. Если пользователь проходит идентификацию с использованием его закрытого ключа, Центр пересыл а-ет запрошенный список на рабочую станцию пользователя . Для обеспечения целостности список шифруется с помощью DES. Для шифрования сообщений используется DES. Для шифрования файлов система генерирует случайный ключ DES, пользователь шифрует файл ключом DES, а ключ DES - открытым ключом получателя. Зашифрованный файл и ключ отправляются получателю . MEMO не предусматривает мер предосторожности против потерь ключей . Существуют некоторые средства проверки целостности сообщений с использованием контрольных сумм . В систему не встроены средства проверки подлинности. Прежде, чем система была реализована, была доказана небезопасность конкретной реализации системы о т-крытых ключей в MEMO - обмена ключами по схеме Diffie-Hellman над GF(2127) (см. раздел 11.6), хотя нетрудно изменить систему, чтобы можно было использовать большие числа . MEMO была изобретена главным образом для экспериментальных целей и никогда не использовалась в реальной системе MITRENET. 24.3 ISDN Bell-Northern Research разработала прототип безопасного телефонного терминала ISDN (Integrated Services Digital Network, Цифровая сеть с интегрированием услуг) [499, 1192, 493, 500]. Как телефонный аппарат, терминал остался на уровне прототипа. В результате появился Уровень безопасности пакетов данных (Packet Data Security Overlay). Терминал использует схему обмена ключами Diffie-Hellman, цифровые подписи RSA и DES для шифрования данных. Он может передавать и принимать речь и данные со ск оростью 64 Кбит/с. Ключи В телефон встроена пара "открытый ключ/закрытый ключ" для длительного использования . Закрытый ключ хранится в устойчивом от вскрытия модуле телефона. Открытый ключ служит для идентификации телефона. Эти ключи являются частью самого телефонного аппарата и не могут быть изменены . Кроме того, в телефоне хранятся еще два открытых ключа. Одним из них является открытый ключ владельца аппарата. Этот ключ используется для проверки подлинности команд владельца, он может быть изменен по команде, подписанной владельцем. Так пользователь может передать кому-то другому право владения аппар атом. В телефоне также хранится открытый ключ сети . Он используется для проверки подлинности команд апп а-ратуры управления сетью и проверки подлинности вызовов от других пользователей сети . Этот ключ также можно изменить командой, подписанной владельцем . Это позволяет владельцу менять сеть, к которой подкл ючен его аппарат. Эти ключи рассматриваются как ключи длительного пользования - они меняются редко, если вообще мен я-ются. В телефоне также хранится пара "открытый ключ/закрытый ключ" для краткосрочного использования . Они встроены в сертификат, подписанный центром управления ключами . Два телефона обмениваются сертиф и-катами при установлении соединения. Подлинность этих сертификатов удостоверяется открытым ключом сети . Обмен сертификатами и их проверка выполняются только при установлении безопасного соединения между аппаратами. Для установления безопасного соединения между людьми протокол содержит дополнительный компонент. В аппаратном ключе зажигания, который вставляется в телефон владельцем, хранится закрытый ключ владельца, зашифрованный секретным паролем, известным только владельцу (его не знает ни телефонный аппарат, ни центр управления сетью, ни еще кто-нибудь) . Ключ зажигания также содержит сертификат, подп и-санный центром управления сетью, в который включены открытый ключ владельца и некоторая идентификац ионная информация (имя, компания, специальность, степень допуска, любимые сорта пиццы, сексуальная ориентация и прочее). Все это также зашифровано. Для дешифрирования этой информации и ввода ее в телефон пользователь вводит свой секретный пароль с клавиатуры аппарата. Телефонный аппарат использует эту и н-формацию для соединения, но она удаляется после того, как пользователь извлечет свой ключ зажигания . В телефоне также хранится набор сертификатов, выданных центром управления сетью . Эти сертификаты удостоверяют право конкретных пользователей пользоваться конкретными телефонными аппаратами . Вызов Вызов Боба Алисой происходит следующим образом. (1) Алиса вставляет в телефон свой ключ зажигания и вводит свой пароль . (2) Телефон опрашивает ключ зажигания, чтобы определить личность Алисы и выдать ей сигнал "линия свободна". (3) Телефон проверяет свой набор сертификатов, проверяя, что Алиса имеет право использовать этот аппарат . (4) Алиса набирает номер, телефон определяет адресата звонка. (5) Два телефона используют протокол обмена ключами на базе криптографии с открытыми ключами, чтобы генерировать уникальный и случайный сеансовый ключ . Все последующие этапы протокола шифруются с помощью этого ключа. (6) Телефон Алисы передает свой сертификат и идентификатор пользователя . (7) Телефон Боба проверяет подписи сертификата и идентификатора пользователя, используя открытый ключ сети. (8) Телефон Боба инициирует последовательность запросов/ответов . Для этого необходимо в реальном времени (не позднее заданной задержки) отправлять подписанные ответы на запросы . (Это помешает злоумышленнику использовать сертификаты, скопированные из предыдущего обмена .) Один ответ должен быть подписан закрытым ключом телефона Алисы, а другой - закрытым ключом Алисы . (9) Если Боба нет у телефона, то его телефон звонит. (10) Если Боб дома, он вставляет в телефон свой ключ зажигания. Его телефон опрашивает ключ зажигания и проверяет сертификат Боба, как на этапах (2) и (3). (11) Боб передает свой сертификат и идентификатор пользователя . (12) Телефон Алисы проверяет подписи Боба, как на этапе (7) и инициирует последовательность запросов/ответов, как на этапе (8). (13) Оба телефона выводят на свои экраны личность и номер телефона другого пользователя . (14) Начинается безопасный разговор. (15) Когда одна из сторон вешает трубку, удаляются сеансовый ключ, а также сертификаты, которые телефон Боба получил от телефона Алисы, и сертификаты, которые телефон Алисы получил от телефона Боба . Каждый ключ DES уникален для каждого звонка. Он существует только внутри двух телефонных аппаратов и только в течение разговора, а после его окончания немедленно уничтожается. Если злоумышленник добудет один или оба участвовавших в разговоре аппарата, он не сможет расшифровать ни один предшествующий ра з-говор, в котором участвовали эти два аппарата. 24.4 STU-III STU обозначает "Secure Telephone Unit" (Безопасный телефонный модуль), разработанный в NSA безопасный телефон. По размерам и форме этот модуль почти такой же, как и обычный телефон, и может быть испол ь-зован также, как и обычный телефон. Аппараты устойчивы к взлому, без ключа они работают как несекретные. Они также включают порт передачи данных и помимо передачи речи могут быть использованы для безопасной передачи данных по модемному каналу [1133]. Уитфилд Диффи описал STU-III в [494]: Чтобы позвонить, используя STU-III, звонящий сначала обычным образом звонит на другой STU-III, затем вставляет похожее на ключ устройство, содержащее криптографическую переменную, и нажимает кнопку "секретные переговоры" ( "go secure"). Спустя примерно 15 секунд задержки, нужной для криптографической настройки , каждый телефон выводит на экран информацию о личности и допуске другой стороны, и разговор может начинаться . Беспрецедентным шагом был объявление Уолтера Дили (Walter Deeley), заместителя директора NSA по безопасности коммуникаций, о STU-III или будущей системе безопасной голосовой связи в эксклюзивном интервью, данном The New York Times [282]. Главной целью новой системы было предоставить Министерству обороны США и его подрядчикам средства безопасной передачи речи и безопасной низкоскоростной передачи данных. В интервью не было много сказано о работе си с-темы, но постепенно информация начала появляться. В новой системе используются открытые ключи. 0 1 2 3 4 5 6 7 8 9 10 11 12 [ 13 ] 14 15 16 17 18 19 20 21 22 23 24 25 |