Опубликован: 19.01.2010 | Уровень: специалист | Доступ: платный
Лекция 6:

Безопасность на прикладном уровне: PGP и S/MIME

PGP-сертификаты

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

Сертификаты X.509

Протоколы, которые используют сертификаты X.509, зависят от иерархической структуры доверия. Есть заранее заданная цепочка доверия от корня до любого сертификата. Каждый пользователь полностью доверяет администрации CA на заданном уровне корня. Корень вырабатывает сертификаты для второго уровня, второй уровень CA вырабатывает сертификаты для третьего уровня, и так далее. Каждый партнер, который хочет быть доверенным для выдачи сертификатов, должен быть представлен на одной из ветвей дерева какого-либо CA. Если Алиса не доверяет выпускающему сертификат для Боба, она может обратиться к администрации более высокого уровня вплоть до корня (которому необходимо доверять для того, чтобы система работала). Другими словами, есть один-единственный путь к сертификату от CA, которому полностью доверяют.

В X.509 есть единственный путь от администрации, которому полностью доверяют, к любому сертификату.

PGP-Сертификаты

В PGP нет никакой потребности в CA - любой в кольце может подписать сертификат для кого-либо другого в кольце. Боб может подписать сертификат для Теда, Джона, Алисы и так далее. В PGP нет иерархии доверия; нет дерева. Отсутствие иерархической структуры может привести к тому, что Тед может иметь один сертификат от Боба и другой сертификат - от Джона. Если Алиса хочет исследовать линию получения сертификатов для Теда, у нее есть два пути: начинать от Боба и начинать от Джона. Интересно, что Алиса может полностью доверять Бобу, но только частично доверяет Джону. Может быть много путей доверия, приводящих к сертификату от администрации, которой доверяют полностью или частично. В PGP выпускающего сертификат обычно называют поручителем.

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

Доверие и законность

Полная операция PGP базируется на доверии поручителя, доверии сертификата и законности общедоступных ключей.

Уровни доверия поручителя. При отсутствии центральной администрации очевидно, что кольцо не может быть очень большим, если каждый пользователь в кольце PGP -пользователей не имеет полного доверия к каждому члену сообщества. (Даже в реальной жизни мы не можем полностью доверять каждому человеку, которого мы знаем.). Чтобы решить эту проблему, PGP позволяет различные уровни доверия. Число уровней, главным образом, зависит от реализации, но для простоты давайте назначим три уровня доверия к любому поручителю: никакой, частичный и полный. Уровень доверия поручителя определяет уровни доверия, выработанные поручителем для других людей в кольце. Например, Алиса может полностью доверять Бобу, частично доверять Анне и не доверять Джону. Вообще, в PGP нет механизма, чтобы решить, как принять решение поручителя о заслуживающем доверия партнере; это может сделать только пользователь.

Уровни доверия сертификата, Когда Алиса получает сертификат от поручителя, она хранит сертификат под именем субъекта (сертифицированный объект) и назначает уровень доверия этому сертификату. Уровень доверия сертификата обычно тот же, что и уровень доверия поручителя, который выдал сертификат. Предположим, что Алиса полностью доверяет Бобу, частично доверяет Анне и Джанетт и не имеет никакого доверия Джону. Могут быть следующие сценарии:

  1. Боб вырабатывает два сертификата, один для Линды (с открытым ключом K1) и один для Лесли (с открытым ключом K2). Алиса хранит открытый ключ и сертификат для Линды под названием "Линда" и назначает полный уровень доверия этому сертификату. Алиса также хранит сертификат и открытый ключ для Лесли под названием "Лесли" и назначает полный уровень доверия этому сертификату.
  2. Анна вырабатывает сертификат для Джона (с открытым ключом K3). Алиса хранит этот сертификат и открытый ключ под названием "Джон", но назначает уровень для этого сертификата - частичный.
  3. Джанетт вырабатывает два сертификата: один для Джона (с общедоступным ключом K3) и один для Ли (с открытым ключом K4). Алиса хранит сертификат Джона под его именем и сертификатом "Ли" под этим именем (Ли), каждый с частичным уровнем доверия. Обратите внимание, что Джон теперь имеет два сертификата: один от Анны и один от Джанетт, каждый с частичным уровнем доверия.
  4. Джон вырабатывает сертификат для Лиз. Алиса может отказаться или сохранить этот сертификат с надписью " не доверяю".

Законность ключей. Цель использования поручителя и сертификата доверия - определить законность открытого ключа. Алиса должна знать, насколько законны открытые ключи Боба, Джона, Лиз, Анны и так далее. PGP определяет очень ясную процедуру для того, чтобы определить законность ключей. Уровень законности ключей для пользователя - это взвешенные уровни доверия пользователя. Например, предположим, что мы назначаем следующие веса на уровни доверия сертификата:

  1. вес 0 - сертификату, которому не доверяют;
  2. вес 1/2 - сертификату с частичным доверием;
  3. вес 1 - сертификату с полным доверием.

Тогда для полного доверия объекту Алиса нуждается в одном сертификате, которому доверяет полностью, или в двух частичных сертификатах доверия для этого объекта. Например, Алиса может использовать открытый ключ Джона в предыдущем сценарии, потому что и Анна, и Джанетт выработали сертификат для Джона, каждый с уровнем доверия сертификата 1/2. Обратите внимание, что законность общедоступного ключа, принадлежащего объекту, не имеет никакого отношения к уровню доверия других людей к этому человеку. Хотя Боб может использовать открытый ключ Джона, чтобы передать сообщение ему, Алиса может не принять ни одного сертификата, выпущенного Джоном, потому что для Алисы Джон имеет уровень " нет доверия".

Старт кольца

Вы, возможно, нашли серьезную проблему в вышеупомянутом обсуждении. А если никто не передал сертификат, что он полностью или частично доверяет объекту? Например, как можно решить проблему законности общедоступного ключа Боба, если никто не передал сертификат Боба? В PGP законность ключа, которому доверяют, или объекта, которому частично доверяют, может быть также определена другими методами.

  1. Алиса может физически получить открытый ключ Боба. Например, Алиса и Боб могут встретиться лично. И при этом обменяться открытым ключом, написанным на обрывке бумажки или на диске.
  2. Если голос Боба распознаваем Алисой, Алиса может по телефону вызвать его и получить его открытый ключ.
  3. Лучшее решение, предложенное PGP для Боба, - передать его открытый ключ Алисе электронной почтой. И Алиса, и Боб делают дайджест ключа 16 байтов MD5 (или 20 байтов SHA-1). Дайджест обычно отображается как восемь групп по 4 цифры (или десять групп по 4 цифры) в шестнадцатеричном виде и называется отпечатком пальца. Алиса может тогда вызвать Боба и проверить отпечаток пальца по телефону. Если ключ изменился или изменен во время почтовой передачи, два отпечатка пальца не будут соответствовать друг другу. Для того чтобы сделать проверку более удобной, PGP создал список слов, каждое из которых представляет комбинацию из 4-х цифр. Когда Алиса вызывает Боба, Боб может объявить эти восемь слов (или десять слов) для Алисы. Слова тщательно выбраны PGP, чтобы избежать путаницы при произношении; например, если печь находится в списке, то слово речь не включается в список.
  4. В PGP ничто не препятствует Алисе получать открытый ключ Боба от CA по отдельной процедуре. Она может тогда вставить открытый ключ в кольцо открытого ключа.

Таблица кольца ключей

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

Формат таблицы кольца секретного ключа.

Рис. 6.7. Формат таблицы кольца секретного ключа.

Рис.6.7 показывает формат таблицы кольца секретного ключа.

  • Пользовательский ID. Пользовательский ID - обычно адрес электронной почты пользователя. Однако пользователь может определять уникальный адрес электронной почты или псевдоним для каждой ключевой пары. Таблица перечисляет пользовательские ID, связанные с каждой парой.
  • ID ключа. Этот столбец уникально определяет открытый ключ среди открытых ключей пользователя. В PGP ID ключа для каждой пары - первые (самые младшие) 64 бита открытого ключа. Другими словами, ключ ID вычисляется как - ключ mod 264). Ключ ID необходим для работы PGP, потому что Боб может иметь несколько открытых ключей, принадлежащих Алисе, в его кольце открытого ключа. Когда он получает сообщение от Алисы, Боб должен знать, какой ID ключа надо использовать, чтобы проверить сообщение. Ключ ID, который передают с сообщением, как мы увидим, дает возможность Бобу использовать заданный открытый ключ для Алисы из своего открытого кольца. Можно спросить, почему не передают полностью открытый ключ. Ответ на это вопрос такой: в криптографии открытого ключа размер открытого ключа может быть очень большой. Передавая только 8 байт, мы уменьшаем размер сообщения.
  • Открытый ключ. Этот столбец только перечисляет открытые ключи, принадлежащие конкретной паре "секретный ключ / открытый ключ".
  • Зашифрованный секретный ключ. Этот столбец показывает зашифрованное значение секретного ключа в паре "секретный ключ / открытый ключ". Хотя Алиса - единственный человек, имеющий доступ к своему секретному кольцу, PGP сохраняет только зашифрованную версию секретного ключа. Мы увидим позже, как зашифровывается и расшифровывается секретный ключ.
  • Метка времени. Этот столбец содержит время и дату создания пары ключей. Это помогает пользователю решать, когда произвести чистку старых пар и когда создавать новые пары.

Пример 6.1

Покажем пример таблицы кольца секретного ключа для Алисы. Мы предполагаем, что Алиса имеет только два пользовательских ID: alice@some.com и alice@anet.net. Мы также предполагаем, что Алиса имеет два множества пар секретных/открытых ключей, один для каждого пользовательского ID. табл. 6.5 показывает таблицу кольца секретных ключей для Алисы.

Таблица 6.5. Таблица кольца секретных ключей для примера 6.1
ID пользователя Ключ ID Общедоступный ключ Секретный ключ шифрования Метка времени
alice@anet.net AB13...45 AB13...45...59 32452398...23 031505-16:23
alice@some.com FA23...12 FA23...12...22 564A4923...23 031504-08:11

Обратите внимание, что хотя значения ключа ID, открытого ключа и секретного ключа показаны в шестнадцатеричном виде, для метки времени используется формат "месяц - день - год". Для метки времени эти форматы служат только для фиксации даты и могут быть различны. Например, в России утвержден формат " день - месяц - год".

Рис.6.8 показывает формат таблицы кольца общедоступного ключа.

Формат таблицы кольца открытого ключа

увеличить изображение
Рис. 6.8. Формат таблицы кольца открытого ключа

Пользовательский ID. Как и в табл. 6.7 кольца секретного ключа, пользовательский ID - обычно адрес электронной почты объекта.

Ключ ID. Как и в табл. 6.7 кольца секретного ключа, ключ ID - первые (самые младшие) 64 бита общедоступного ключа.

  • Открытый ключ. Это - открытый ключ объекта.
  • Доверие к поставщику. Этот столбец определяет уровень доверия к поставщику. В большинстве реализаций он может иметь только одно из трех значений: не доверяю, доверяю частично или доверяю полностью.
  • Сертификат(ы). Этот столбец содержит сертификат или сертификаты, подписанные другим объектам для этого объекта. Пользовательский ID может иметь больше чем один сертификат.
  • Сертификат(ы) доверия. Этот столбец представляет сертификат доверия (или просто доверие). Если Анна передает сертификат за Джона, PGP ищет вход строки Анны, находит значение доверенного поставщика для Анны, копирует это значение и вставляет его в поле сертификата доверия для Джона.
  • Законность ключей. Это значение вычисляется PGP, на основе значения сертификата доверия и заранее заданного веса для каждого сертификата доверия.
  • Метка времени. Этот столбец содержит дату и время создания столбца.
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Дмитрий Хитров
Дмитрий Хитров
Россия
Юрий Докучаев
Юрий Докучаев
Россия, ПГТ Яблоновский