Безопасность сетей

Доверие в информационной системе


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

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

Иерархия

Иерархическая модель доверия наиболее проста для восприятия. Говоря простым языком, в данном случае вы доверяете человеку, который находится выше в иерархической цепи, так как от него было получено соответствующее указание о необходимости доверия. На рисунке 12.12 изображена схема этой модели. Как видно из рисунка, пользователи User1 и User2 располагаются под CA1. Следовательно, если CA1 говорит, что сертификат открытого ключа принадлежит пользователю User1, пользователь User2 будет верить этому. На практике User2 передает пользователю User1 свой сертификат открытого ключа, подписанный CA1. Пользователь User1 проверяет подпись CA1 с использованием открытого ключа CA1. Так как CA1 находится в иерархии выше, чем User1, то User1 доверяет CA1 и, следовательно, доверяет сертификату пользователя User2.


Рис. 12.12.  Иерархическая модель доверия

Мы рассмотрели довольно простой случай. Если пользователю User1 нужно проверить информацию от пользователя User3, все несколько усложняется. CA1 не знает о пользователе User3, в отличие от CA2. Тем не менее, пользователь User1 не доверяет CA2, так как это бюро сертификатов напрямую не принадлежит цепочке пользователя User1. Следующий уровень вверх по цепочке - CA4. Пользователь User1 может верифицировать информацию от пользователя User3 посредством проверки с помощью CA4 следующим образом.


  1. Пользователь User1 смотрит на сертификат пользователя User3. Он подписан в CA2.
  2. Пользователь User1 получает сертификат пользователя CA2. Он подписан в CA4.
  3. Так как пользователь User1 доверяет CA4, открытый ключ CA4 может использоваться для верификации сертификата CA2.
  4. Как только сертификат CA2 верифицирован, пользователь User1 может верифицировать сертификат пользователя User3.
  5. Как только будет верифицирован сертификат пользователя User3, пользователь User1 может использовать открытый ключ пользователя User3 для верификации данных.


Как видите, все довольно быстро усложняется. Представьте себе, какой объем операций по верификации необходимо было бы производить, если бы пользователю User1 нужно было верифицировать данные, поступившие от пользователя User4. Две цепочки не пересекаются вплоть до CA9! Так реализована сертификация в X.509. Иерархия устанавливается таким образом, чтобы между любыми двумя нижними объектами могла быть создана цепочка сертификатов.

С теоретической точки зрения все выглядит неплохо. Однако на практике все иначе. Одной из причин, по которой данная технология не функционировала, заключается в том, что не существовало реальных CA корневого уровня. CA корневого уровня - это наивысшая точка в иерархии. В одно время было принято считать, что в каждой стране должно быть свое бюро сертификатов корневого уровня. Также предполагалось, что компании, выпускающие кредитные карты, должны стать корневыми CA, или что каждая организация должна иметь свое собственное CA. На практике почти ничего не было реализовано. Возникал еще один вопрос, который представлял собой потенциальную проблему: сколько CA должны сертифицировать каждого конечного пользователя? Если конечный пользователь живет в стране А, обладает кредитной картой компании B и работает в организации C, должны ли все три объекта подписывать один и тот же сертификат?



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

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


Вопрос к эксперту

Вопрос. Существуют ли CA общего пользования?

Ответ. Да, существуют "общие" бюро сертификатов, предназначенные для обслуживания основной массы населения, а не определенных организаций. VeriSign (http://www.verisign.com) и Thawte (http://www.thawte.com/) являются наиболее яркими примерами таких CA. Организация может создать пару открытого ключа, например для веб-сервера, и отправить открытый ключ в CA. CA создает сертификат и предоставляет его организации. CA получает прибыль от предоставления этой услуги. Использование таких сертификатов можно наблюдать при посещении многих защищенных сайтов в интернете. Так как открытые ключи CA известны большей части веб-браузеров, сертификат веб-сайта верифицируется с помощью открытого ключа CA.



Примечание

Системы, используемые в CA, и сертификаты CA ( в особенности секретные ключи CA) должны быть хорошо защищены, так как CA является "сердцем" системы. Меры, предпринимаемые для защиты секретного ключа CA, как правило, требуют, чтобы разблокировку секретного ключа производили два человека.

Как видно из списка, приведенного выше, при разработке CA возникает целый ряд вопросов. Если организация достаточно крупная или имеет большое число объектов нижних уровней (т. е. пользователей), администрирование сертификатов пользователей будет отнюдь не простой задачей. Перед подписыванием сертификата нужно будет проверить личность каждого пользователя. Срок действия сертификатов будет периодически истекать, и, следовательно, будет возникать потребность в издании новых сертификатов. Некоторые сертификаты придется аннулировать.

Аннулирование сертификатов

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

Если организация использует только одно CA, все не так сложно, однако при этом CA должно быть постоянно доступным. Если иерархия CA имеет большие размеры (как на рис. 12.12), то проблема приобретает комплексный характер. Пользователь User1 может сообщить CA о том, что его сертификат аннулирован, и CA1 может обнародовать эту информацию, но как эта информация дойдет до пользователя User4 от CA6?

Сеть

Сеть с доверием представляет собой альтернативную модель доверия. Эта концепция была впервые использована в технологии Pretty Good Privacy (PGP).



Она заключается в том, что каждый пользователь сертифицирует свой сертификат и передает его известным ассоциированным объектам. Эти объекты могут подписать сертификат другого пользователя, так как он известен (см. рис. 12.13).

В данной модели не существует центрального бюро сертификатов. Если пользователю User1 требуется верифицировать информацию, поступающую от пользователя User2, он запрашивает сертификат пользователя User2. Так как пользователь User1 знает пользователя User2, то доверяет сертификату и даже может его подписать.

Теперь рассмотрим ситуацию, в которой User1 получает информацию от User3. Пользователь User3 не известен пользователю User1, но у пользователя User3 есть сертификат, подписанный пользователем User2. Таким образом, рассматриваемая модель распространяется на всю компьютерную сеть. Единственным решением, которое должно приниматься в процессе работы, является число переходов, которому доверяет пользователь. Как правило, это число равно 3 или 4. Кроме того, может возникнуть ситуация, в которой для установления доверия другому пользователю есть два пути. Например, User2 может использовать два пути установления доверия с пользователем User5: один через пользователя User3 и другой через пользователя User4. Так как оба пользователя User3 и User4 сертифицируют пользователя User5, пользователь User2 может быть уверен в сертификате пользователя User5.


Рис. 12.13.  Сеть модели доверия

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

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


Содержание раздела