Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шнайер - Прикладная криптография.doc
Скачиваний:
13
Добавлен:
01.05.2025
Размер:
10 Мб
Скачать
☆

Интеллектуальные карточки

Интеллектуальная карточка представляет собой пластиковую карточку, по размеру и форме как кредитная карточка, с встроенной компьютерной микросхемой. Идея стара - первые патенты были выданы лет 20 тому назад - но из-за практических ограничений возможность реализовать такие карточки появилась только примерно пять лет назад. С тех пор они стали популярны, главным образом в Европе. Во многих странах интеллектуальные карточки используются для оплаты за телефоны. Существуют интеллектуальные кредитные карточки, интеллектуальные дебитные карточки, интеллектуальные карточки для чего угодно. Американские компании по выпуску кредитных карточек работают над технологией, и через несколько лет даже захудалые американцы будут носить интеллектуальные карточки в своих бумажниках.

Интеллектуальная карточка содержит маленький компьютер (обычно 8-битовый микропроцессор), ОЗУ (четверть килобайта), ПЗУ (примерно 6-8 килобайт), и несколько килобайт либо EPROM (стираемое программируемое ПЗУ) или EEPROM (электронно стираемое программируемое ПЗУ). Объем памяти в интеллектуальных карточках следующего поколения наверняка возрастет, но определенные физические ограничения затруднят такие расширения. Карточка использует свою операционную систему, программы и данные. (Чего в ней нет, так это источника питания, электроэнергия подается, когда карточку вставляют в считыватель.) Карточка безопасна. В нашем меняющемся мире, когда нельзя доверять чужому компьютеру, телефону, да чему угодно, вы можете быть уверены в своей карточке, которая хранится в вашем бумажнике.

В интеллектуальных карточках могут использоваться различные криптографические протоколы и алгоритмы. Они могут быть электронным кошельком, давая возможность тратить и получать электронные наличные. Карточки могут использоваться в протоколах проверки подлинности с нулевым знанием, они могут обладать собственными ключами шифрования. Возможно, они позволяют подписывать документы или снимать блокировку с компьютерных программ.

Некоторые интеллектуальные карточки считаются устойчивыми к взлому, таким образом себя часто защищают организации, эмитировавшие карточки. Банк вовсе не хочет, чтобы вы могли влезть в их интеллектуальную карточку и начислить себе побольше денег.

Интеллектуальные карточки - это очень интересная тема, на которую написано множество литературы. Хорошей обзорной статьей по криптографии в интеллектуальных карточках может служить [672]. Ежегодно проводятся конференции: CARTES в октябре в Париже и CardTech в апреле в Вашингтоне, округ Колумбия. Труды двух других конференций по интеллектуальным карточкам можно найти в [342, 382]. В области интеллектуальных карточек существуют сотни патентов, частью принадлежащие европейским компаниям. Интересные вопросы будущего использования интеллектуальных карточек - проверка целостности, аудиторский контроль, защита от копирования, электронные наличные, оплата почтовых расходов - описаны в [1628].

Стандарты криптографии с открытыми ключами

Стандарты криптографии с открытыми ключами (Public-Key Cryptography Standards, PKCS) - это попытка компании RSA Data Security, Inc обеспечить промышленный стандарт для криптографии с открытыми ключами. По традиции такими делами занимался ANSI, но, учитывая текущую ситуацию в криптографической политике, RSADSI решила, что лучше они все сделают сами. Работая со множеством компаний, RSADSI разработала набор стандартов. Некоторые из них совместимы с другими стандартами, а некоторые - нет.

Эти стандарты не являются стандартами в общепринятом смысле этого слова, никто не собирался и не голосовал за PKCS. По своим собственным словам RSADSI "будет единственной организацией, правомочной принимать решения о каждом стандарте, и будет пересматривать эти стандарты по мере необходимости " [803].

Даже это уже совсем. Если вы неуверены, какие структуры данных и синтаксис использовать при программировании криптографии с открытыми ключами, эти стандарты не хуже каких-либо других. К тому же, так как это не настоящие стандарты, вы можете подстроить их под свои нужды.

Далее приведено краткое описание каждого PKCS (PKCS #2 и PKCS #4 были включены в PKCS #l).

PKCS #l [1345] описывает способ шифрования и дешифрирования RSA, главным образом для создания цифровых подписей и цифровых конвертов, описанных в PKCS #7. Для цифровых подписей сообщение хэшируется, а затем хэш-значение шифруется закрытым ключом подписывающего. Совместное представление сообщения и хэш-значения подробно описано в in PKCS #7. Для цифровых конвертов (шифрованные сообщения) сообщение сначала шифруется симметричным алгоритмом, а затем ключ сообщений шифруется открытым ключом получателя. Совместное представление шифрованного сообщения и шифрованного ключа должно соответствовать PKCS #7. Эти два метода совместимы со стандартами PEM. Для структуры сертификатов (или их подобия) открытых и закрытых ключей RSA и трех алгоритмов подписи - MD2 и RSA, MD4 и RSA, MD5 и RSA - PKCS #l также описывает синтаксис, идентичный синтаксису X.509 и PEM.

PKCS #3 [1346] описывает способ реализации обмена ключами по схеме Diffie-Hellman.

PKCS #5 [1347) описывает способ шифрования сообщений секретным ключом, полученным из пароля. Стандарт использует MD2 или MD5 для получения ключа из пароля и шифрует сообщения с помощью DES в режиме CBC. Этот метод предназначен главным образом для шифрования закрытых ключей при их передаче от одной компьютерной системы другой, но может быть использован и для шифрования сообщений.

PKCS #6 [1348] описывает стандартный синтаксис сертификатов открытых ключей. Синтаксис является надмножеством сертификата X.509, при необходимости можно извлечь и сертификат X.509. Дополнительные атрибуты не ограничивают процесс сертификации только открытым ключом. Они содержат и другую информацию, например, адрес электронной почты.

PKCS # 7 [1349] представляет собой общий синтаксис для подписываемых или шифруемых данных, например, цифровых подписей или цифровых конвертов. Синтаксис является рекурсивным, поэтому можно организовать вложенность конвертов или поставить чью-то подпись под ранее зашифрованными данными. Синтаксис также разрешает вместе с содержанием сообщения проверку подлинности других атрибутов, например, меток времени. 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 призваны обеспечить формат передачи данных, основанной на криптографии с открытыми ключами, и инфраструктуру, поддерживающую такую передачу.