Криптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С
Скачать 3.25 Mb.
|
времени. PKCS #7 с PEM, поэтому подписанные и зашифрованные сообщения могут быть преобразованы в с о- общения PEM, и наоборот, без дополнительных криптографических операций . Для управления ключами с по- мощью сертификатов PKCS #7 может поддерживать множество архитектур - одной из них является PEM. PKCS #8 [1350] описывает синтаксис информации о закрытых ключах, включая закрытый ключ и набор а т- рибутов, и синтаксис шифрованных закрытых ключей . Для шифрования информации о закрытых ключах мож- но использовать PKCS #5. PKCS #9 [1351] определяет избранные типы атрибутов для расширенных сертификатов PKCS #6, сообщений с цифровой подписью PKCS #7 и информации о закрытых ключах PKCS #8. PKCS #10 [1352,] описывает стандартный синтаксис запросов сертификации . Сертификация включает инди- видуальное имя, открытый ключ и (необязательно) набор атрибутов , которые подписаны лицом, приславшим запрос. Запросы сертификации присылаются в сертифицирующий орган , который преобразует запрос либо в сертификат открытого ключа X.509, либо в сертификат PKCS #6. PKCS #11 [1353], Стандарт API криптографической метки (Cryptographic Token API Standard) , определяет интерфейс программирования, называемый "Cryptoki", для портативных криптографических устройств всех типов. Cryptoki представляет собой обобщенную логическую модель , позволяющую приложениям выполнять криптографические операции на портативных устройствах, не зная деталей используемой технологии . Этот стандарт также определяет профили приложения : наборы алгоритмов, которые может поддерживать устройство . PKCS #12 [1354] описывает синтаксис хранения в программном обеспечении открытых ключей пользоват е- лей, защищенных закрытых ключей, сертификатов и другой связанной криптографической информации . Целью этого является стандартизация единого фала ключей, используемого многими приложениями . Эти стандарты всесторонни, но не всеобъемлющи . Многие вопросы остались за пределами этих стандартов : проблема присвоения имен, некриптографические вопросы, касающиеся сертификации, длины ключей и усл о- вия для различных параметров. PKCS призваны обеспечить формат передачи данных, основанной на крипт о- графии с открытыми ключами, и инфраструктуру, поддерживающую такую передачу . 24.15 Универсальная система электронных платежей Универсальная система электронных платежей ( Universal Electronic Payment System, UEPS) представляет собой банковское приложение, использующее интеллектуальные карточки, первоначально разработанное для сельской Южной Африки, но позднее принятое основными банковскими группами этой страны . К началу 1995 года в ЮАР было выпущено около 2 миллионов карточек . Эта система также принята в Намибии, и разверт ы- вается по крайней мере одним российским банком . Система позволяет использовать безопасные дебитные карточки, подходящие для регионов, в которых пл о- хая телефонная сеть делает невозможной диалоговую проверку . Карточки есть и покупателей, и у продавцов, покупатели могут использовать свои карточки для перевода денег продавцам . Продавец может воспользоваться своей карточкой, чтобы позвонить в банк и поместить деньги на свой банковский счет, покупатель может во с- пользоваться своей карточкой, чтобы позвонить в банк и перевести деньги на свою карточку . Нет необходимо- сти заботиться об анонимности, нужно обеспечить только защиту от мошенничества . Вот как выглядит протокол связи между покупателем Алисой и продавцом Бобом (В действительности, Али- са и Боб просто вставляют свои карточки в машину и ожидают выполнения транзакции .) Когда Алиса впервые получает свою карточку, она получает и пару ключей, K 1 и K 2 , банк вычисляет их, используя ее имя и некот о- рую секретную функцию. Только в карточки продавцов встроены секретные средства, необходимые для вычи с- ления ключей пользователей. (1) Алиса посылает Бобу свое имя, A, его имя, B, и случайное число R A , шифруя их с помощью DES: сначала ключом K 2 , затем K 1 . Она также посылает свое имя открытым текстом . A, E K 1 ( E K 2 (A,B,R A )) (2) Боб вычисляет K 1 и K 2 по имени Алисы. Он расшифровывает сообщение, убеждается, что A и B правиль- ны, затем шифрует незашифрованную вторую половину сообщения Алисы ключом K 2 E K 2 (A,B,R A ) Боб не посылает это сообщение Алисе, 56 битов шифротекста становятся ключом K 3 . Боб посылает Алисе свое имя, ее имя и случайное число, R B , шифруя их с помощью DES: сначала ключом K 3 , затем K 1 E K 1 ( E K 3 (B,A,R В )) (3) Алиса аналогичным образом вычисляет K 3 и расшифровывает сообщение Боба, убеждаясь, что A и B пра- вильны, затем шифрует незашифрованную вторую половину сообщения Боба ключом K 3 E K 3 (B,A,R В ) Алиса не посылает это сообщение Бобу, 56 битов шифротекста становятся ключом K 4 . Затем Алиса посы- лает Бобу свое имя, его имя проверочное значение C. Это проверочное значение содержит имена отпр а- вителя и получателя, дату, контрольную сумму, количество и два MAC. Все это шифруется DES: сначала ключом K 4 , затем K 1 . Один из MAC может быть проверен банком Алисы, а второй может быть проверен только расчетно-кассовым центром. Алиса уменьшает свой счет на соответствующее значение . E K 1 ( E K 4 (A,B,С)) (4) Боб аналогичным образом вычисляет K 4 . При условии, что все имена совпадают, и правильно выполнена проверка, он принимает платеж. Великолепным нововведением в этом протоколе является то, что каждое сообщение зависит от предыдущего . Каждое сообщение выступает удостоверением всех предыдущих сообщений. Это означает, что повторить старое сообщение никому не удастся, получатель просто никогда не расшифрует его . Мне нравится эта идея, и я уве- рен, что она получит широкое применение, как только станет широко извес тна. Другой разумной вещью в этом протоколе - навязывание правильной реализации . Если разработчик прило- жения неправильно реализует протокол, он просто не будет работать. Обе карточки сохраняют записи каждой транзакции . Когда карточки рано или поздно установят диалоговое соединение с банком (продавец - положить деньги на счет, а покупатель - снять со счета), банк извлечет эти з а- писи для последующего контроля. Аппаратура изготавливается устойчивой к взлому, чтобы помешать любому из участников испортить да н- ные. Алиса не сможет изменить значение своей карточки . Подробная запись обеспечивает данные для обнар у- жения и запрещения мошеннических транзакций . В карточках используются универсальные секреты - ключи MAC в карточках покупателей, функции для преобразования имен пользователей в K 1 и K 2 - но считается, что решение обратной задачи для этих секретов достато чно трудно. Эта схема, конечно же, несовершенна, но она безопаснее бумажных чеков и обычных дебитных карточек . Источником угрозы мошенничества являются не военные враги, а покупатели и продавцы . UEPS предоставляет защиту от таких злоупотреблений. Обмен сообщения является прекрасным примером устойчивого протокола: В каждом сообщении присутст- вую имена обеих сторон, включая информацию, уникальную для сообщения, каждое сообщение явным образом зависит от всех предыдущих. 24.16 CLIPPER Микросхема Clipper (известная также как MYK-78T) - это разработанная в NSA, устойчивая к взлому мик- росхема, предназначенная для шифрования переговоров голосом. Это одна из двух схем, реализующих прав и- тельственный Стандарт условного шифрования (Escrowed Encryption Standard, EES) [1153]. VLSI Technologies, Inc. изготовила микросхему, а Mykotronx, Inc. запрограммировала ее. Сначала все микросхемы Clipper будут входить в Безопасное телефонное устройство Model 3600 AT&T (см. раздел 24.18). Микросхема реализует алго- ритм шифрования Skipjack (см. раздел 13.12,), разработанный NSA секретный алгоритм с шифрованием сек- ретным ключом, только в режиме OFB. Самым противоречивым моментом микросхемы Clipper, и EES в целом, является протокол условного вруче- ния ключей (см. раздел 4.14). У каждой микросхемы есть специальный, ненужный для сообщений, ключ . Этот ключ используется для шифрования копии ключа сообщений каждого пользователя . В ходе процесса синхрони- зации передающая микросхема Clipper генерирует и посылает принимающей Поле доступа для выполнения з а- кона (Law Enforcement Access Field, LEAF). LEAF содержит копию текущего сеансового ключа, зашифрованн о- го специальным ключом (называемым ключом модуля). Это позволяет правительственным прослушивателям получить сеансовый ключ и раскрыть открытый текст разговора . По словам директора NIST [812]: Предусматривается, что система "с условно врученным ключом" обеспечит использование микросхемы Clipper для защиты законопослушных американцев . В каждом устройстве, содержащем микросхему будет два уникальных "ключа", два числа, которые понадобятся уполномоченным правительственным органам для д е- шифрирования сообщений, зашифрованных устройством . При изготовлении устройства оба ключа будут пом е- щены порознь в двух базах данных " условно врученных ключей", контролируемых Генеральным прокурором . Доступ к этим ключам будет разрешен только правительственным чиновникам с законным разрешением по д- ключить подслушивающее устройство. Правительство также собирается поощрять широкое распространение таких телефонных аппаратов, но никто не знает, что может произойти с базами данных условно врученных ключей . Помимо политических аспектов, стоит поговорить и о внутренней структуре LEAF [812, 1154, 1594, 459, 107, 462]. LEAF - это строка, включающая достаточно информации, чтобы при обеспечении правопорядка мож- но было раскрыть сеансовый ключ K s при условии, что два условно получивших ключи учреждения будут действовать сообща. LEAF содержит 32-битовый идентификатор модуля U, уникальный для каждой микросхе- мы Clipper. Оно также содержит текущий 80-битовый сеансовый ключ, зашифрованный уникальным ключом модуля микросхемы K U , и 16-битовую контрольную сумму C, называемую идентификатором условного вруч е- ния. Контрольная сумма представляет собой функцию сеансового ключа, IV и возможно другой информации. Эти три поля шифруются фиксированным общим ключом K F , общим для всех взаимодействующих микросхем Clipper. Общий ключ, используемые режимы шифрования, детали контрольной суммы и точная структура LEAF засекречены. Возможно это поле похоже на что-то подобное : E E K U C K K s F U ( ( , , )) K U вводится в микросхемы Clipper при изготовлении. Этот ключ затем разделяется (см. раздел 3.5) и хра- нится в двух базах данных условно врученных ключей , охраняемых двумя различными учреждениями . Чтобы Ева могла извлечь K s из LEAF, она должна сначала расшифровать LEAF ключом K F и получить U. Затем она должна получить постановление суда для каждого из учреждений условного вручения, каждое из к о- торых возвращает половину K U для данного U. Ева выполняет XOR обеих половин и получает K U , затем она использует K U для получения K s , и K s - для подслушивания разговора. Контрольная сумма должна помешать нарушению этой схемы, принимающая микросхема Clipper не может выполнить дешифрирование, если контрольная сумма неправильна . Однако существует лишь 2 16 возможных значений контрольной суммы, и фальшивое LEAF с правильной контрольной суммой, но неправильным кл ю- чом, может быть найдено примерно за 42 минуты [187]. Но это не очень поможет подслушать разговор, вед у- щийся с помощью Clipper. Так как протокол обмена ключами не является частью микросхемы Clipper, 42- минутное вскрытие грубой силой должно быть выполнено после обмена ключами, оно не может быть выполн е- но до телефонного звонка. Такое вскрытие может работать при передаче факсов или при использовании карто ч- ки Fortezza (см. раздел 24.17). Предположительно микросхема Clipper должна противостоять инженерному вскрытию, выполненному "изощренным, хорошо" [1154], но по слухам в Sandia National Laboratories успешно провели исследование од- ной из микросхем. Даже если эти слухи ложны, я подозреваю, что самым крупным мировым производителям такое инженерное вскрытие вполне по силам, и его срок является только вопросом ресурсов и морали . С этой темой связано множество вопросов о тайне личности . Многочисленные группы защиты гражданских свобод ведут активную компанию против любого механизма условного вручения ключей, который даст прав и- тельству право подслушивать граждан. Вся подлость в том, что, ходя эта схема никогда не проходила через Конгресс, NIST опубликовал EES в качестве FIPS [1153], обойдя болезненный законодательный процесс. Сей- час все выглядит, как если бы EES тихо и медленно умирал, но стандарты способны продолжать свою ползучую деятельность. В 22-й перечислены различные организации, участвующие в этой программе . Как насчет идеи, чтобы оба учреждения условного вручения относились только к исполнительной ветви власти? Что вы скажете об учре ж- дениях условного вручения, которые по сути ничего не знают о заявках на подслушивание и могут только слепо одобрять их? И что насчет идее о принятии правительством секретного алгоритма в качестве коммерческого стандарта? Табл. 24-2. Организации, участвующие в --5. Министерство юстиции - Спонсор системы, владелец общего ключа NIST - Руководство программой, хранитель условно врученной части ключа FBI - Пользователь-дешифровщик, владелец общего ключа Министерство финансов - Хранитель условно врученной части ключа NSA - Разработчик программы В любом случае, использование Clipper породит немало проблем при обращении в суд . Не забывайте, Clip- per работает только в режиме OFB. Что бы вам иное не говорили, этот режим не обеспечивает целостности или проверке подлинности. Предположим, что Алиса предстала перед судом, и частью доказательств является тел е- фонный разговор, зашифрованный микросхемой Clipper. Алиса утверждает, что она никогда не звонила, и голос - не ее. Алгоритм сжатия речи настолько плох, что опознать голос Алисы трудно , но обвинение утверждает, что, так как расшифровать разговор можно только с помощью условно врученного ключа Алисы, этот звонок был сделан с ее телефона. Алиса заявляет, что разговор был подделан в соответствии с [984, 1339]: даны шифротекст и открытый текст, объединив их с помощью XOR, можно получить ключевой поток. Затем этот ключевой поток можно объ- единить с помощью XOR с абсолютно другим открытым текстом, получая фальшивый шифротекст, который затем может быть преобразован в фальшивый открытый текст, который подается на дешифратор микросхемы . Правдив он или нет, этот довод может легко посеять сомнение в жюри присяжных, которые не сочтут телефо н- ный разговор доказательством. Другой способ вскрытия, называемый Втискиванием ( Squeeze), позволяет Алисе выдать себя за Боба. Вот как это происходит [575]: Алиса звонит Бобу, используя Clipper. Она сохраняет копию его LEAF вместе с сеан- совым ключом. Затем она звонит Кэрол (про которую известно, что ее подслушивают ). При установке ключа Алиса делает сеансовый ключ идентичным тому, который она использовала для разговора с Бобом. Для этого потребуется взломать телефон, но это нетрудно . Затем вместо того, чтобы послать свое LEAF, она посылает LEAF Боба. Это правильное LEAF, поэтому телефон Кэрол ничего не заметит. Теперь она может говорить Кэ- рол все, что захочет - когда полиция расшифрует LEAF, она обнаружит, что оно принадлежит Бобу . Даже если Алисе не удастся выдать себя за Боба, ему придется доказывать свою невиновность в суде, что вполне может оправдать применение подобной схемы. Органы охраны правопорядка Соединенных Штатов не должны тратить свое время, занимаясь сбором и н- формации в уголовных расследованиях, которую нельзя использовать в суде . Даже если условное вручение ключей и являлось бы неплохой идеей, Clipper - это не лучший способ реализации этой идеи . 24.17 CAPSTONE Capstone (известный также как MYK-80) - это другая разработанная NSA СБИС, реализующая Стандарт ус- ловного шифрования правительства США [1153]. Capstone реализует следующие функции [1155, 462]: — Алгоритм Skipjack в любом из четырех основных режимов: ECB, CBC, CFB и OFB. — Алгоритм обмена ключами (Key Exchange Algorithm, KEA) на базе открытых ключей, скорее всего Dif- fie-Hellman. — Алгоритм цифровой подписи (Digital Signature Algorithm, DSA). * — Алгоритм безопасного хэширования (Secure Hash Algorithm, SHA). j — Алгоритм возведения в степень для общего назначения . — Генератор случайных чисел с использованием истинно шумового источника . Capstone обеспечивает криптографические возможности, необходимые для безопасной электронной торговли и других компьютерных приложений. Первым применением Capstone является карточка PCMCIA, названная Fortezza. (Сначала она называлась Tessera, пока на это не пожаловалась компания Tessera, Inc..) NSA изучило возможность удлинения контрольной суммы LEAF в Capstone в версиях для карточек для того, чтобы помешать ранее рассмотренному вскрытию LEAF. Вместо этого была добавлена возможность выполнять перезапуск карточки после 10 неправильных LEAF. Меня это не впечатлило - время поиска правильного LEAF только на 10 процентов, до 46 минут. 24.18 Безопасный телефон AT&T MODEL 3600 TELEPHONE SECURITY DEVICE (TSD) Безопасный телефон AT&T (Telephone Security Device, TSD) - это телефон с микросхемой Clipper. На самом деле существует четыре модели TSD. Одна содержит микросхему Clipper, другая - экспортируемый фирменный алгоритм шифрования AT&T третья - фирменный алгоритм для использования внутри страны плюс экспорт и- руемый алгоритм, а четвертая включает Clipper, внутренний и экспортируемый алгоритмы . Для каждого телефонного звонка TSD используют отличный сеансовый ключ. Пара TSD генерирует сеансо- вый ключ с помощью схемы обмена ключами Diffie-Hellman, независящей от микросхемы Clipper. Так как Dif- fie-Hellman не включает проверки подлинности, TSD использует два метода для предотвращения вскрытия "человек в середине". Первым является экран. TSD хэширует сеансовый ключ и выводит хэш-значение на маленьком экране в в и- де четырех шестнадцатиричных цифр. Собеседники проверяют, что на их экраны выведены одинаковые цифры . |