Главная страница

Криптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С


Скачать 3.25 Mb.
НазваниеКриптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С
Дата29.04.2022
Размер3.25 Mb.
Формат файлаpdf
Имя файлаShnayer_Prikladnaya-kriptografiya.352928.pdf
ТипПротокол
#504484
страница59 из 78
1   ...   55   56   57   58   59   60   61   62   ...   78
времени. 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 хэширует сеансовый ключ и выводит хэш-значение на маленьком экране в в и- де четырех шестнадцатиричных цифр. Собеседники проверяют, что на их экраны выведены одинаковые цифры .
1   ...   55   56   57   58   59   60   61   62   ...   78


написать администратору сайта