Цифровые
сертификаты, созданные на основе стандарта X.509, содержат массу
информации, в том числе серийный номер, который CA присваивает сертификату,
дату окончания срока действия сертификата, имя держателя сертификата
и его открытый ключ (см. Рисунок 2).
Доверие
к CA предполагает, что сторона, выдавшая сертификат, серьезно подходит
к проверке личности держателя сертификата. К примеру, продавец ликеро-водочного
магазина проверяет по вашему водительскому удостоверению, позволяет
ли ваш возраст приобретать алкогольные напитки, поскольку он уверен,
что министерство транспорта США уже позаботилось о точном установлении
даты вашего рождения.
Конечно,
каждый, кому приходилось предъявлять водительские права старшего
брата или сестры, чтобы купить пива, знает, что эту систему можно
обойти. Так что PKI использует также специальные механизмы, которые
гарантируют, что цифровые сертификаты не были подделаны, украдены
или просрочены.
Одним
из таких механизмов является цифровая подпись, которая удостоверяет,
что данный документ не сфальсифицирован. Информацию, которую необходимо
снабдить цифровой подписью, вы (или, точнее, ваш компьютер) обрабатываете
с помощью алгоритма хэширования, превращающего данный документ в
файл очень небольшого размера, называемый резюме документа (message
digest). Извлечь содержимое документа из такого резюме невозможно.
Для каждого документа резюме уникально, т. е., если в самом документе
изменить хотя бы один символ, а затем опять применить к нему алгоритм
хэширования, в результате получится другое резюме документа.
Отправитель
шифрует резюме сообщения с помощью своего личного ключа и добавляет
его в документ, создавая цифровую подпись. Получатель расшифровывает
резюме с помощью открытого ключа отправителя, а затем применяет
к документу тот же самый алгоритм хэширования. Если это новое резюме
идентично первому, то получатель может быть уверен, что документ
не изменялся после того, как его подписал отправитель.
Цифровые
сертификаты и цифровые подписи — это те основные приложения, где
технология PKI наиболее выигрышна. Соответственно управление сертификатами
и подписями, а также ключами шифрования, которые составляют их основу,
требует особого внимания. Цифровой сертификат содержит открытый
ключ отправителя, а также цифровую подпись доверенной стороны. Получатель
может проверить цифровую подпись доверенной стороны, декодировав
хэшированную подпись с помощью открытого ключа.
ЭЛЕМЕНТЫ
ГОЛОВОЛОМКИ
Как
уже упоминалось раньше, сертификационный центр — это краеугольный
камень доверия к системе с открытыми ключами. CA выпускает сертификаты,
управляет ими и может отозвать. Как только сертификат создан, CA
подписывает его своим личным ключом, тем самым подтверждая, что
данный сертификат находится в зоне ответственности CA. Если по каким-то
причинам CA утратит доверие (например, его личный ключ будет скомпрометирован),
сертификаты, выпущенные CA после этого события, тоже станут ненадежными.
Архитектура
CA состоит из нескольких компонентов, в том числе из центра регистрации
(Registration Authority, RA) и хранилища сертификатов. RA, как следует
из его названия, регистрирует подписчиков цифровых сертификатов.
Он собирает и проверяет всю информацию, которая включается в состав
цифрового сертификата. Данные для RA могут быть введены оператором
с клавиатуры, внесены конечным пользователем через браузер или загружены
из базы данных о кадрах или другой базы данных. Правила сертификации
определяют, какую информацию следует указывать в сертификате и каким
образом ее туда вносить.
Хранилище
содержит текущие сертификаты и список отозванных сертификатов. Это
открытая база данных, информация из которой о выданных и отозванных
сертификатах пересылается по запросу. Хранилище публикует свои данные
в каталоге, созданном либо на базе упрощенного каталога службы протоколов
(Lightweight Directory Access Protocol, LDAP), либо на основе каталога
X.500 (протокол CCITT для поддержки единой логической структуры
файлов и каталогов, размещенных на нескольких физических системах).
Все
эти компоненты могут размещаться на одной и той же машине, хотя
в некоторых реализациях CA и RA располагаются на разных устройствах.
Перечисленные
компоненты в первую очередь связаны с выдачей и обслуживанием сертификатов.
Еще одна функция CA, возможно, самая важная, касается отзыва сертификатов.
Поначалу это может показаться странным, учитывая, какие препоны
приходится преодолевать, чтобы первый раз получить сертификат, а
также еще и потому, что сертификаты имеют ограниченный срок действия,
указанный в сертификате.
Однако
отзыв сертификатов может производиться по многим причинам. Когда
сотрудник уходит из организации или его увольняют, выданные ему
сертификаты надо аннулировать, чтобы он не мог пройти аутентификацию
и воспользоваться правами, полученными для работы в организации.
Кроме того, если личный ключ держателя сертификата был утерян или
украден, то доверять данному сертификату больше нельзя.
Таким
образом, именно сертификационный центр должен постоянно поддерживать
и обновлять список недействительных сертификатов. Как правило, для
этого применяется список отозванных сертификатов (Certificate Revocation
List, CRL), электронный эквивалент списка недействительных кредитных
карт, который в магазинах обычно прикреплен рядом с кассой. Каждый
раз, когда отзывается сертификат, он добавляется в этот список.
Пользователи могут свериться с ним, чтобы выяснить статус сертификата.
CRL должен быть заверен цифровой подписью CA, чтобы можно было убедиться
в его подлинности.
Не
слишком ли все просто? На первый взгляд это так, но CRL имеет целый
ряд потенциальных недостатков. Прежде всего — размер списка. В зависимости
от числа сертификатов, которыми управляет CA, список CRL может расти
очень быстро. Передача такого большого файла потребует значительной
пропускной способности или вычислительной мощности.
Другой
и, возможно, более серьезный минус связан с оперативностью обновления
таких списков. Скажем, вы обновляете свой CRL дважды в день, в 10
ч утра и в 4 ч дня. Каковы будут последствия, если сотрудника уволят
во время обеденного перерыва? Что касается PKI, то этот человек
будет иметь все права, определенные сертификатом, еще в течение
4 ч, т. е. у раздраженного служащего окажется достаточно времени,
чтобы в отместку оставить после себя если не пепелище, то некоторые
разрушения.
По
этим причинам и были разработаны методы, позволяющие упростить процесс
отзыва сертификатов. Один из них — дополнительный CRL. Периодически
публикуется полный базовый список отозванных сертификатов. Между
публикациями базового CRL выпускается список меньшего размера —
дополнительный CRL. Он содержит дополнения к основному списку. Чтобы
при запросе статуса сертификата пользователь не принял по ошибке
короткий список за полный CRL, дополнительные CRL соответствующим
образом обозначаются.
Еще
одна возможность — интерактивный протокол статуса сертификатов (Online
Certificate Status Protocol, OCSP), с помощью которого пользователи
могут проверить статус сертификата в режиме реального времени, не
ожидая, пока CA выпустит обновленный CRL. Как отметил Марк Диодети,
старший менеджер по продуктам RSA Keon и RSA WebPassPort, протокол
OCSP был создан как основная технология для проверки сертификатов
в режиме реального времени.
Когда
клиент обращается с запросом о статусе сертификата к серверу OCSP,
он может получить три ответа: «в порядке», «отозван» и «неизвестно».
Утверждение «в порядке» свидетельствует о том, что сертификат не
был отозван, но не гарантирует его надежность, а просто говорит
об отсутствии данного сертификата в списке отозванных. Расширения
этого метода позволяют получать дополнительную информацию в случае
ответа «в порядке». Ответ «отозван» свидетельствует, что данный
сертификат недействителен. Ответ «неизвестно» означает, что сервер
не имеет информации о статусе сертификата и о его существовании.
КЛЮЧИ
ОТ ЦАРСТВА
Вся
архитектура с открытыми ключами рассыпается, если не гарантировать
конфиденциальность личных ключей. Когда личный ключ попадает в руки
кого-то, помимо истинного держателя ключа, он теряет свойства уникальной
идентификации. Например, если Боб похитил личный ключ Алисы, то
он может ставить на документах или транзакциях цифровые подписи
от имени Алисы, а также декодировать данные, зашифрованные с помощью
открытого ключа Алисы.
«Строжайшая
защита выданного личного ключа — критически важный компонент PKI»,
— напоминает Лайза Притти, исполнительный директор PKI Forum, независимой
от производителей организации, которая пропагандирует технологию
с открытыми ключами.
Защита
ключа зависит от выбранного метода хранения ключа; иными словами,
будут ли ключи конечных пользователей храниться на смарт-картах
или на настольной системе? Диодети описывает четыре основных метода
хранения ключа. Первый предусматривает хранение личного ключа на
смарт-карте и считается самым безопасным, поскольку сами смарт-карты
защищены от подделки. Наиболее безопасным методом хранения ключей
Диодети в настольной системе называет парную аутентификацию с помощью
аппаратного ключа и пользовательского PIN. Следующий метод — защита
с использованием кодовой фразы, посредством которой личный ключ
шифруется в настольной системе. И, наконец, наименее надежный способ
состоит в хранении ключа в браузере в виде незашифрованного текста.
Хотя
смарт-карты — самое надежное решение с точки зрения защиты, их применение
имеет свои отрицательные стороны. К примеру, настольные компьютеры
в этом случае необходимо оснастить модулями чтения смарт-карт, что
может потребовать больших затрат средств и времени. Кроме того,
по мнению Диодети, «не так-то просто найти специалистов по локальным
сетям, у которых были бы навыки обслуживания смарт-карт». Вдобавок,
если конечный пользователь потерял или повредил смарт-карту, необходимо
выпускать не только новую карту, но и новые ключи, что создает дополнительную
нагрузку на администраторов.
Конечно,
хранение ключа в настольной системе также не лишено недостатков.
Из-за непродуманного выбора пароля ключ может быть украден. Кроме
того, как заметила Притти, «если кто-то проникнет в настольную систему
и извлечет из памяти личный ключ пользователя, он сможет скопировать
его и использовать где угодно».
Так
какое же решение наиболее подходящее? «На самом деле, это зависит
от степени риска и требуемого уровня безопасности, а также от того,
какой метод лучше всего подходит для данной среды, — рассуждает
Притти. — Многие европейские организации считают, что ключи следует
хранить на аппаратных устройствах, поэтому они выбирают смарт-карты.
В Соединенных Штатах большинство компаний предпочитает держать ключи
в зашифрованном виде в настольной системе».
Имейте
в виду, что пользователи, скорее всего, будут иметь не одну пару
ключей. Как правило, они используются либо для шифрования, либо
для цифровых подписей. Иными словами, у пользователя может быть
один набор ключей для шифрования, а другой — для цифровых подписей.
Зачем это нужно? Если у вас есть резервная копия личного ключа для
цифровых подписей, то значимость этой подписи с точки зрения фиксации
авторства снижается, поскольку ключ больше не уникален для конечного
пользователя. «Копии ключей, служащих для формирования цифровых
подписей, не стоит делать никогда», — убежден Диодети.
Вместе
с тем, если нет резервной копии ключа, который используется для
шифрования и декодирования, в экстремальной ситуации администраторы
не смогут декодировать файлы. Скажем, пользователь потерял смарт-карту
с личным ключом. Все файлы, зашифрованные с помощью соответствующего
открытого ключа, останутся недоступными. Так что ключи шифрования,
по всей видимости, следует архивировать.
Еще
один вопрос, связанный с ключами, касается возможности применения
их в нескольких приложениях. Например, если конечные пользователи
работают с разными программами электронной почты, поддерживать несколько
пар ключей для каждой из программ будет довольно обременительно.
Переносить ключи и сертификаты между приложениями позволяют два
интерфейса — Public Key Cryptography Standard (PKCS) #11 и Cryptographic
API (CAPI) компании Microsoft.
Как
легко предположить, это конкурирующие интерфейсы. PKCS #11 предназначен
для программ на базе UNIX, а Microsoft разработала CAPI для своей
собственной платформы. «PKCS #11 представляет собой открытый стандарт.
Он существует уже достаточно давно и используется очень широко»,
— сообщает Паттерсон.
Что
же касается CAPI от Microsoft, то, по словам Паттерсона, большая
часть ведущих поставщиков цифровых сертификатов теперь работают
именно с ним. Тот факт, что он позволяет применять цифровые сертификаты
в среде Windows, которая сейчас установлена практически на всех
настольных системах, дает немалое преимущество. Microsoft прошла
очень долгий путь, чтобы сделать его открытым и полезным.
Так
что же следует поддерживать вам? «Если вы работаете исключительно
в среде Windows, я бы посоветовал выбрать Crypto-API. При наличии
компьютеров разных типов от различных компаний предпочтение следует
отдать PKCS #11. Но на самом деле не так уж сложно поддерживать
оба интерфейса», — советует Паттерсон.
ФИЗИЧЕСКАЯ
ЗАЩИТА
Поскольку
PKI в первую очередь используют для цифровых подписей, ключей шифрования
и криптографических алгоритмов, легко упустить из виду организацию
защиты программного и аппаратного обеспечения, которое и составляет
вашу инфраструктуру. Такое упущение может обойтись очень дорого,
особенно если подтверждение и шифрование транзакций, предусматривающих
перевод крупных денежных сумм, осуществляются с помощью PKI.
Защита,
которую вы применяете, должна быть соизмерима с ценностью системы,
которую необходимо защитить. Если PKI нужен только для подписи и
шифрования электронной почты, скорее всего, в серверном зале не
обязательно устанавливать детекторы движения и ловушки вроде тех,
которые показаны в фильме «Миссия невыполнима». Однако если ваша
PKI служит основой интерактивной биржи ценных бумаг или международного
банка, то рекомендуется использовать нечто более надежное, нежели
запертые двери.
При
организации защиты систем PKI, особенно сертификационного центра
и устройств генерации ключей, начните с администраторов, которые
обслуживают их и управляют ими. Скрытая проверка ваших специалистов
по защите — неплохой первый шаг. Возможно, системы имеет смысл сконфигурировать,
чтобы такие деликатные операции, как извлечение ключей из архива,
выполнялись в присутствии не менее двух администраторов. Регулярно
просматривайте регистрационные журналы и проводите плановые проверки,
дабы убедиться, что система работает в соответствии с установленными
правилами.
Что
же касается самого размещения, система защиты может предусматривать
определенную форму электронного мониторинга: связанную с круглосуточной
охраной сигнализацию на случай физического вторжения и видеокамеры
на входах и терминалах. Стандартные дверные замки можно дополнить
модулями чтения карт или биометрическими системами, чтобы гарантировать
санкционированный доступ. И, наконец, было бы неплохо иметь резервную
копию вне самого офиса на случай пожара или землетрясения.