вторник, 28 сентября 2010 г.

ISSP \ Домен 06. Криптография. Часть 8

В этой части рассмотрены следующие вопросы:
  • Стандарты электронной почты
  • MIME
  • PEM
  • MSP
  • PGP
  • Квантовая криптография


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

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

Если компании просто нужно шифровать некоторые сообщения электронной почты, наилучшим выбором может быть PGP. Если компания хочет шифровать все данные, передаваемые по каналам связи в свои филиалы, лучшим выбором может быть внедрение канального шифрования. Если компания хочет внедрить технологию SSO для аутентификации пользователей при использовании ими различных сервисов и ресурсов сети, лучшим выбором может быть внедрение PKI или Kerberos. Сетевой администратор должен разбираться в каждой из таких технологий и стандартов, что позволит ему принимать взвешенные решения, анализировать и тестировать конкурирующие продукты в рамках выбранной технологии перед покупкой. Криптография сложна сама по себе, но также сложным является процесс ее внедрения и последующего сопровождения. Проведение качественного и всестороннего анализа присутствующих на рынке продуктов, вместо покупки самого красивого и блестящего продукта, может существенно снизить головную боль компании в дальнейшем.

В следующих разделах рассмотрены некоторые наиболее популярные стандарты электронной почты.


MIME (Multipurpose Internet Mail Extension  – многоцелевое расширение функций электронной почты в Интернете) – это техническая спецификация, определяющая способы передачи мультимедийных данных и вложений в сообщениях электронной почты. В Интернете существуют почтовые стандарты, определяющие форматирование сообщений электронной почты, их инкапсуляцию, передачу и открытие. Если сообщение или документ содержит двоичное вложение, MIME указывает, как должна обрабатываться эта часть сообщения.

Если вложение содержит аудио-файл, графическое изображение или иной мультимедийный компонент, почтовый клиент отправляет этот файл с заголовком, описывающим тип файла. Например, заголовок может указывать, что MIME-типом файла является «изображение», а подтипом – «jpeg». Хотя это должно быть в заголовке, системы часто используют расширение файла для указания MIME-типа. Так, в предыдущем примере имя файла может быть stuff.jpeg. Система пользователя увидит расширение jpeg или поле заголовка, после чего начнет поиск ассоциированной с этим расширением программы, которой следует открывать этот конкретный файл. Если в системе пользователя файл JPEG ассоциирован с MS Paint, именно MS Paint должен открыть и показать изображение пользователю.

Иногда могут возникать ситуации, когда у системы отсутствует ассоциация для полученного типа файла или не установлена программа, необходимая для его просмотра и использования. В этом случае пользователю предоставляется возможность сделать выбор программы самостоятельно (либо установить необходимую программу).

MIME – это спецификация, которая определяет, как файлы определенных типов должны передаваться и обрабатываться. Эта спецификация содержит множество типов и подтипов, позволяющих различным компьютерам обмениваться данными в различных форматах, обеспечивая при этом стандартизированный подход к представлению данных.

S/MIME (Secure MIME - безопасный MIME) – это стандарт шифрования и подписи электронной почты, предназначенный для безопасной передачи данных. S/MIME расширяет стандарт MIME, позволяя шифровать электронную почту и вложения. Алгоритмы шифрования и хэширования могут быть указаны в почтовом сообщении пользователя, они не диктуются стандартом. S/MIME следует Стандартам криптографии с открытыми ключами (PKCS – Public Key Cryptography Standard). S/MIME обеспечивает конфиденциальность с помощью алгоритмов шифрования, целостность – с помощью алгоритмов хэширования, аутентификацию – с помощью сертификатов открытых ключей Х.509, а неотказуемость – с помощью подписанных дайджестов сообщений.


PEM (Privacy-Enhanced Mail – электронная почта повышенной секретности) – это интернет-стандарт, обеспечивающий безопасную передачу электронной почты через Интернет и внутреннюю коммуникационную инфраструктуру. Протоколы, входящие в состав РЕМ, обеспечивают аутентификацию, целостность сообщений, шифрование и управление ключами. Этот стандарт совместим со многими типами процессов управления ключами, а также с симметричными и асимметричными методами шифрования. Кроме того, стандарт совместим с PKCS.

РЕМ – это набор технологий аутентификации и шифрования сообщений, разработанный несколькими правительственными группами. РЕМ может использовать AES для шифрования и RSA для аутентификации отправителя и управления ключами. Кроме того, он обеспечивает неотказуемость. В составе PEM могут использоваться следующие компоненты:
  • Шифрование сообщений с помощью AES в режиме СВС
  • Управление ключами с помощью RSA
  • Структура и формат сертификатов на основе стандарта X.509
РЕМ не привлек большого внимания разработчиков. Основной проблемой РЕМ является то, что он предоставляет слишком много структур для различных сред, что требует большой гибкости в инфраструктуре защищенных коммуникаций.


MSP (Message Security Protocol - Протокол безопасности сообщений) – это военный вариант РЕМ, разработанный Агентством национальной безопасности США. Он является протоколом прикладгого уровня, совместимым с Х.400, и используется для безопасного обмена сообщениями электронной почты. MSP может использоваться для подписи и шифрования сообщений, выполнения функций хэширования. Аналогично РЕМ, приложения, в которых реализован MSP, позволяют использовать различные алгоритмы и параметры для обеспечения большой гибкости.

Ссылки по теме:


PGP (Pretty Good Privacy) – бесплатная программа, разработанная Филом Циммерманом и предназначенная для обеспечения безопасности электронной почты. Первая версия PGP была выпущена в 1991 году. Эта была первая программа шифрования с открытыми ключами, получившая широкое распространение. PGP – это комплексная криптосистема, обеспечивающая защиту сообщений электронной почты и файлов. Стандартно в PGP для управления ключами используется асимметричный алгоритм RSA, а для основной массы операций шифрования – симметричный шифр IDEA, хотя пользователю предоставляется возможность для выбора иных алгоритмов для этих функций. PGP обеспечивает конфиденциальность с помощью алгоритма шифрования IDEA, целостность – с помощью алгоритма хэширования MD5, аутентфиикацию – с помощью сертификатов открытого ключа, и неотказуемость – с помощью цифровой подписи сообщений. В PGP применяется свой собственный тип цифровых сертификатов, отличный от используемых в PKI, но оба они имеют схожее назначение.

Для генерации и шифрования закрытого ключа, пользователю предлагается некоторое время нажимать на клавиатуре случайные клавиши. Вместо паролей в PGP используются парольные фразы. Парольные фразы применяются для шифрования закрытого ключа пользователя, хранящегося на его жестком диске.

PGP не использует иерархию Удостоверяющих центров или другие типы формально доверенных сертификатов, вместо этого в PGP для управления ключами применяется подход «сеть доверия» (web of trust). Каждый пользователь создает и распространяет свой открытый ключ, пользователи подписывают открытые ключи друг друга, создавая сообщество, в рамках которого все пользователи доверяют друг другу. Это отличается от подхода с Удостоверяющим центром, при котором никто не доверяет друг другу – все доверяют только Удостоверяющему центру. Например, Марку и Джо нужно взаимодействовать с помощью PGP. Марк передает свой открытый ключ Джо. Джо подписывает ключ Марка и сохраняет у себя копию, после чего передает Марку копию своего ключа, чтобы начать процесс безопасного взаимодействия. Предположим, что позднее у Марка возникает потребность взаимодействовать с Салли, но Салли не знает Марка и не знает, можно ли доверять ему. Марк отправляет Салли свой открытый ключ, подписанный Джо. У Салли есть открытый ключ Джо, т.к. они взаимодейсовали раньше, и она доверяет Джо. Поскольку Джо подписал открытый ключ Марка, Салли теперь также может доверять Марку и отправляет ему свой открытый ключ, чтобы начать процесс безопасного взаимодействия с ним. Таким образом, PGP как бы говорит: «Я не знаю тебя, но мой друг Джо говорит, что ты хороший парень и тебе можно доверять».

Каждый пользователь хранит в файле, называемом «кольцом для ключей» (key ring), набор открытых ключей, которые он получил от других пользователей. Каждый ключ в этом файле имеет параметры, определяющие его достоверность (validity) и уровень доверия к соответствующему пользователю. Например, если Стив знает Лизу многие годы и доверяет ей, он может указать более высокий уровень доверия к ее открытому ключу, чем к ключу Тома, которому больше никто не доверяет. Кроме того, предусмотрено поле, определяющее, кто может подписывать другие ключи в области доверия Стива. Если Стив получает ключ от кого-то, кого он не знает, например, от Кевина, и этот ключ подписан Лизой, программа проверяет вышеуказанное поле, в котором перечислены те, чьим подписям на других ключах он доверяет. Если в этом поле указано, что Стив достаточно доверяет Лизе, чтобы принимать подписанные ей ключи других людей, Стив может принять ключ Кевина и взаимодействовать с ним, поскольку Лиза поручилась за него. Однако если Стив получит ключ Кевина, подписанный недоверенным Томом, Стив может решить не доверять Кевину и не взаимодействовать с ним.

Эти поля доступны для обновления и изменения. Если однажды Стив лучше узнает Тома и поймет, что ему можно доверять, он может изменить соответствующие параметры в PGP и предоставить Тому больше доверия.

Поскольку сеть доверия не имеет центра, такого как Удостоверяющий центр, реализовать на базе нее стандартизованную функциональность сложнее. Если Стив потеряет свой закрытый ключ, он должен будет уведомить об этом каждого, т.к. его открытому ключу больше нельзя доверять. В среде PKI Стиву нужно было бы уведомить об этом только Удостоверяющий центр, который разместит сертификат открытого ключа Стива в списке отозванных сертификатов (CRL), с помощью которого любой, кто будет проверять действительность открытого ключа Стива сразу узнает, что ему нельзя доверять. В мире PGP это не централизовано и не организовано. Стив может отправить сертификат отзыва ключа (key revocation certificate), но нет гарантий выполнения соответствующих изменений в файле с ключами на компьютере каждого пользователя.

PGP – это общедоступное программное обеспечение, использующее криптографию с открытыми ключами. Хотя PGP не получил одобрения Агентства национальной базопасности США, этот прекрасный и к тому же бесплатный продукт получил широкое распространение для личного пользования, став фактически стандартом шифрования в Интернете.

ПРИМЕЧАНИЕ. PGP считается криптосистемой, поскольку он имеет все необходимые компоненты: алгоритмы с симметричными ключами, алгоритмы с асимметричными ключами, алгоритмы хэширования, ключи, протоколы и необходимые программные компоненты.

Ссылки по теме:



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

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

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

Предположим, что Том и Кэти – шпионы, и им нужно передавать друг другу данные, будучи уверенными, что они не будут перехвачены. Для этого на обеих сторонах им нужно использовать симметричный ключ шифрования: одна копия ключа для Тома и одна – для Кэти.

В квантовой криптографии для представления бита (1 или 0) используется поляризация фотона. Поляризация – это ориентация электромагнитных волн, которыми являются фотоны. Электромагнитные волны могут иметь ортогональную поляризацию (т.е. быть ориентированы в горизонтальной или вертикальной плоскости) или диагональную (т.е. быть наклонены влево или вправо).

Теперь представим, что у Кэти и Тома есть свои фотонные пушки, которые они будут использовать для обмена фотонами (информацией) друг с другом. Должна быть установлена связь между поляризацией фотона и двоичным значением. Поляризация может быть вертикальной (|), горизонтальной (--), левой (\) или правой (/), а поскольку у нас только два двоичных значения, возникает некоторое перекрытие.

В рамках этого примера будем считать, что фотон с вертикальной поляризацией соответствует двоичному значению 0, левая поляризация – 1, правая – 0, а горизонтаотная – 1. Эта «привязка» (кодирование) к двоичным значениям и является ключом шифрования. Том должен знать эту схему «привязки» поляризации фотонов к двоичным значениям, чтобы иметь возможность правильно интерпретировать информацию, которую ему отправляет Кэти. Если Том получит фотон с левой поряризацией, он декодирует его как «1», если он получит фотон с вертикальной поляризацией – то как «0». Производя декодирование сообщения с помощью такого ключа, он получит информацию, которую ему отправила Кэти.

Таким образом, для обмена информацией им необходимо договориться о ключе, которым будет являться соответствие между состояниями поляризации фотонов и двоичным представлением передаваемой информации. Это необходимо сделать заранее, до начала сеанса передачи информации по выделенной оптической линии. После того, как соглашение о симметричном ключе достигнуто сторонами, этот ключ может использоваться ими для зашифрования и расшифрования данных, передаваемых по открытым коммуникационным каналам. Случайность поляризации и сложность создания симметричного ключа способствует обеспечению того, что злоумышленник не может вскрыть ключ шифрования.

Поскольку этот тип криптографии основан на квантовой физике, а не на точной математике, отправитель и получатель могут быть уверены, что никакой злоумышленник не прослушивает коммуникационный канал и не выполняет атаку «человек посередине». Это связано с тем, что квантовый уровень – это уровень характеристик атомных и субатомных частиц. Если злоумышленник будет выполнять пассивную атаку, прослушивая коммуникационный канал (сниффинг), получатель сразу узнает об этом, т.к. даже это простое действие изменит характеристики (поляризацию) фотонов.

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

Ссылки по теме:

Комментариев нет: