Одноранговая аутентификация и авторизация

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

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

Уровень техники

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

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

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

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

Сущность изобретения

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

В другом варианте осуществления группа клиентов может аутентифицироваться при помощи специально созданного сертификата группы.

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

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

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

Краткое описание чертежей

Хотя прилагаемая формула изобретения детально излагает признаки настоящего изобретения, изобретение, вместе с его задачами и преимуществами, можно лучше понять из последующего подробного описания, рассматриваемого совместно с прилагаемыми чертежами, на которых:

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

фиг.2, в основном, иллюстрирует принцип действия механизма аутентификации согласно одному варианту осуществления настоящего изобретения;

фиг.3, в основном, иллюстрирует операции, выполняемые механизмом аутентификации согласно одному варианту осуществления настоящего изобретения;

фиг.4, в основном, иллюстрирует программные компоненты, используемые механизмом авторизации, рассматриваемые одним вариантом осуществления настоящего изобретения; и

фиг.5, в основном, иллюстрирует операции, выполняемые механизмом авторизации согласно одному варианту осуществления настоящего изобретения.

Описание изобретения

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

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

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

Как показано на чертежах, на которых подобные позиции ссылаются на подобные элементы, изобретение иллюстративно описывается как реализованное в контексте соединенных между собой вычислительных устройств, таких как вычислительное устройство 100, показанное на фиг.1. Хотя это и не требуется, изобретение также описывается в общем контексте исполняемых компьютером инструкций, таких как программные модули, исполняемые таким вычислительным устройством. В основном, программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, для специалиста в данной области техники понятно, что изобретение может быть осуществлено на практике со многими различными вычислительными устройствами, включая карманные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые персональные компьютеры (ПК), миникомпьютеры, мэйнфреймы и т.п. Как указано выше, изобретение также может быть осуществлено на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны при помощи сети передачи данных. В распределенной вычислительной среде программные модули могут располагаться как на локальных, так и на удаленных запоминающих устройствах памяти.

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

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

Компоненты компьютерного устройства 100 могут включать в себя, но не ограничиваются ими, блок 120 обработки, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включая системную память с блоком 120 обработки. Системная шина 121 может быть любого из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из многочисленных шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (АПС), шину микроканальной архитектуры (МКА), шину расширенной АПС (РАПС), локальную шину Ассоциации по стандартам в области видеотехники (АСВТ) и шину межсоединений периферийных компонентов (МПК), также известную как шина расширений. Кроме того, блок 120 обработки может содержать один или несколько физических процессоров или ядер обработки.

Вычислительное устройство 100 обычно включает в себя многочисленные считываемые компьютером носители. Считываемые компьютером носители могут быть любыми доступными носителями, к которым может обращаться вычислительное устройство 100, и включают в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители. В качестве примера, а не ограничения, считываемые компьютером носители могут содержать носители данных компьютера и среды передачи данных. Носители данных компьютера включают в себя как энергозависимые, так и энергонезависимые, как съемные, так и несъемные носители, реализованные любым способом или по любой технологии для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Носители данных компьютера включают в себя, но не ограничиваются ими, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или другую технологию изготовления памяти, компакт-диск, цифровые многофункциональные диски (ЦМД) или другое запоминающее устройство на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться для хранения требуемой информации и к которому может обращаться вычислительное устройство 100. Среды передачи данных обычно реализуют считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном данными сигнале, таком как несущая волна или другой транспортный механизм, и включают в себя любые среды доставки информации. Термин «модулированный данными сигнал» означает сигнал, у которого одна или несколько из его характеристик устанавливаются или изменяются таким образом, что кодируют информацию в сигнале. В качестве примера, а не ограничения, среды передачи данных включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (РЧ), инфракрасные или другие беспроводные среды. Комбинации любых из вышеприведенных также должны быть включены в область применения считываемых компьютером носителей.

Системная память 130 включает в себя носители данных компьютера в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода/вывода (БСВВ), содержащая базовые стандартные программы, которые способствуют пересылке информации между элементами в компьютере 110, например, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, к которым может выполняться немедленное обращение и/или которые в данный момент выполняются блоком 120 обработки. В качестве примера, а не ограничения, фиг.1 изображает операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Вычислительное устройство 100 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера. В качестве примера только, фиг.1 изображает накопитель 141 на жестком диске, который считывает с или записывает на несъемный, энергонезависимый магнитный носитель, накопитель 151 на магнитных дисках, который считывает с или записывает на съемный, энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который считывает с или записывает на съемный, энергонезависимый оптический диск 156, такой как компакт-диск или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера, которые могут использоваться в примерной операционной среде, включают в себя, но не ограничиваются ими, кассеты с магнитной лентой, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Накопитель 141 на жестком диске обычно подключается к системной шине 121 при помощи несъемного интерфейса памяти, такого как интерфейс 140, и накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках обычно подключаются к системной шине 121 при помощи съемного интерфейса памяти, такого как интерфейс 150.

Накопители и связанные с ними носители данных компьютера, описанные выше и изображенные на фиг.1, обеспечивают хранение считываемых компьютером инструкций, структур данных, программных модулей и других данных для вычислительного устройства 100. На фиг.1, например, накопитель 141 на жестком диске изображается как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Отметьте, что эти компоненты могут быть теми же самыми или быть отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и программным данным 147 даны здесь другие позиции, чтобы показать, что, как минимум, они представляют собой другие копии. Пользователь может вводить команды и информацию в вычислительное устройство 100 при помощи устройств ввода, таких как клавиатура 162 и указательное устройство 161, обычно упоминаемое как мышь, шаровой указатель или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой планшет, антенну спутниковой связи, сканер или т.п. Эти и другие устройства ввода часто подключаются к блоку 120 обработки при помощи интерфейса 160 ввода пользователя, который соединяется с системной шиной, но могут подключаться при помощи других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ). Монитор 191 или устройство отображения другого типа также подключается к системной шине 121 при помощи интерфейса, такого как видеоинтерфейс 190. В дополнение к монитору компьютеры также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут подключаться при помощи периферийного интерфейса 195 вывода.

Вычислительное устройство 100 может работать в сетевой среде, используя логические подключения к одному или нескольким удаленным компьютерам. Фиг.1 иллюстрирует общее сетевое подключение 171 к удаленному вычислительному устройству 180. Общее сетевое подключение 171 и сетевые подключения, изображенные на фиг.1, могут быть любого из многочисленных различных типов сетей и сетевых подключений, включая локальную сеть (ЛС), глобальную сеть (ГС), беспроводную сеть, сети, согласующиеся с протоколом Эзернета, протоколом Маркерного кольца или другие логические, физические или беспроводные сети, включая Интернет, или Всемирную паутину.

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

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

Обращаясь к фиг.2, изображена последовательность передач данных между вычислительным устройством 201 и вычислительным устройством 202. Вычислительные устройства 201 и 202 могут быть вычислительными устройствами такого же типа, что и вычислительное устройство 100, описанное подробно выше, или они могут быть вычислительными устройствами любого из других типов, также перечисленных выше, включая, но не ограничиваясь ими, карманные вычислительные устройства, портативные вычислительные устройства, вычислительные устройства мэйнфреймов, ориентированные на конкретную задачу вычислительные устройства и т. п. Как показано на фиг.2, вычислительные устройства 201 и 202 являются «одноранговыми узлами сети», поскольку ни один из вычислительных устройств не служит в качестве выделенного сервера, предназначенного быть ядром сети со многими клиентами. Вместо этого вычислительные устройства 201 и 202, вероятно, содержат подобные вычислительные возможности и, вероятно, непосредственно используются одним или несколькими пользователями. Однако, как очевидно для специалиста в данной области техники, одноранговые вычислительные устройства необязательно должны быть подобными по вычислительным возможностям, чтобы служить в качестве одноранговых узлов сети.

Подключение для передачи данных в одноранговой сети может быть образовано между вычислительным устройством 201 и вычислительным устройством 202. Фиг.2 иллюстрирует обычно используемый протокол системы защиты, называемый протоколом «защиты транспортного уровня» (ЗТУ). Хотя нижеприведенное описание концентрируется на протоколе ЗТУ, изобретение не ограничивается таким протоколом, и, как известно специалисту в данной области техники, многие другие протоколы могут предоставлять каждому из вычислительных устройств 201 и 202 информацию, достаточную для того, чтобы вычислительные устройства 201 и 202 имели возможность выполнять механизмы аутентификации, рассматриваемые вариантами осуществления настоящего изобретения.

Как показано на фиг.2, протокол ЗТУ может инициироваться одним одноранговым устройством, в данном примере вычислительным устройством 201, посылкой одного или нескольких инициирующих сообщений 210, которые могут содержать структуру ClientHello (приветствие клиенту), другому одноранговому устройству. Структура ClientHello может содержать, среди прочего, текущее время, случайное значение, список криптографических алгоритмов, поддерживаемых устройством 201, и список алгоритмов сжатия, поддерживаемых устройством 201. Для целей описания передачи данных, изображенной на фиг.2, используются термины «клиент» и «сервер», как они используются протоколом ЗТУ; а именно, «клиентом» является вычислительное устройство, инициирующее передачу данных, и «сервером» является вычислительное устройство, с которым инициируется передача данных. Кроме того, как известно для специалиста в данной области техники, хотя сообщения 210, содержащие структуру ClientHello, изображены как являющиеся инициирующими сообщениями, передача данных, изображенная на фиг.2, в равной степени может инициироваться запросом с вычислительного устройства 202, на которое вычислительное устройство 201 посылает структуру ClientHello. В таком случае на запрос с вычислительного устройства 202 будет предоставляться ответ посредством сообщений 210, содержащих описанную выше структуру ClientHello.

В ответ на сообщения 210 вычислительное устройство 202 может посылать сообщения 212, содержащие структуру ServerHello (приветствие серверу), сертификат или цепочку сертификатов для устройства 202, структуру ServerKeyExchange (обмен ключами сервера), структуру CertificateRequest (запрос сертификата) и сообщение ServerHelloDone (приветствие серверу выполнено). Структура ServerHello может содержать, среди прочего, случайное значение (отличное от случайного значения в ClientHello), идентификатор сессии, выбранный криптографический алгоритм, который был выбран из списка, предоставленного в ClientHello, и выбранный алгоритм сжатия, выбранный из списка, предоставленного в ClientHello. Сертификат или сертификаты для устройства 202, как более подробно описано ниже, могут содержать сертификат или цепочку сертификатов, которые являются подходящими для выбранного криптографического алгоритма, заданного в структуре ServerHello. Структура ServerKeyExchange может содержать информацию, такую как открытый ключ, который может использоваться вычислительным устройством 201 для защиты передачи данных предмастерного секретного кода или завершения обмена ключами, приводящего к предмастерному секретному коду. Сообщениям 212 не нужно содержать структуру ServerKeyExchange, если сертификат или цепочка сертификатов содержит достаточно информации, чтобы дать возможность вычислительному устройству 201 обмениваться предмастерным секретным кодом. Структура CertificateRequest может содержать запрос, чтобы вычислительное устройство 201 предоставило свои сертификаты, и может дополнительно содержать список типов запрошенных сертификатов и список допустимых центров сертификации. И сообщение ServerHelloDone может указывать завершение передачи вышеописанной информации, которая будет посылаться в качестве сообщений 212.

В ответ на сообщения 212 вычислительное устройство 201 может использовать сертификат или цепочку сертификатов, принятых посредством сообщений 212, для аутентификации вычислительного устройства 202 посредством ссылки на сертификаты, которые хранятся или в хранилище 203 доверенных лиц, или в хранилище 205 доверенных корней. Более конкретно, как более подробно описано ниже, вычислительное устройство 201 может сравнивать сертификат или цепочку сертификатов, принятых посредством сообщений 212, с сертификатами, которые хранятся или в хранилище 203 доверенных лиц, или с цепочкой обратно до сертификата в хранилище 205 доверенных корней. Если вычислительное устройство 202 аутентифицируется, вычислительное устройство 201 может послать сообщения 214, содержащие сертификат или цепочку сертификатов для вычислительного устройства 201, структуру ClientKeyExchange (обмен ключами клиента), структуру CertificateVerify (проверить сертификат), сообщение ChangeCipherSpec (изменить спецификацию шифрования) и сообщение Finished (закончено). Сертификат или сертификаты для устройства 201, как более подробно описано ниже, могут содержать сертификат или цепочку сертификатов, которые являются подходящими для выбранного криптографического алгоритма, который был задан в структуре ServerHello сообщений 212. Структура ClientKeyExchange может содержать или зашифрованную версию предмастерного секретного кода, или информацию, достаточную для обоих вычислительных устройств 201 и 202, чтобы независимо вывести один и тот же предмастерный секретный код. Структура CertificateVerify обеспечивает подробную проверку сертификата или сертификатов устройства 201. Сообщение ChangeCipherSpec указывает, что вычислительное устройство 201 приняло согласованные алгоритмы шифрования и будет их использовать с согласованными ключами для передачи последующего сообщения, которое, как указано выше, представляет собой сообщение Finished, указывающее, что завершилась передача информации, содержащейся в сообщениях 214.

После приема сертификата или цепочки сертификатов от устройства 201 в сообщениях 214, вычислительное устройство 202 может использовать сертификат или цепочку сертификатов для аутентификации вычислительного устройства 201 посредством ссылки на сертификаты, хранимые в хранилище 206 доверенных корней или в хранилище 204 доверенных лиц, таким образом, который более подробно описывается ниже. Если аутентифицировано вычислительное устройство 201, устройство 202 может проверить сообщение Finished, посланное в качестве части сообщений 214, чтобы гарантировать, что используются соответствующие алгоритмы шифрования и ключи шифрования. Вычислительное устройство 202 может впоследствии передать сообщения 214, содержащие указание, что устройство 202 будет использовать согласованные алгоритмы и ключи шифрования для шифрования последующих передач данных, и сообщение Finished, зашифрованное так, как указано.

Если вычислительное устройство 201 может надлежащим образом декодировать сообщение Finished, посланное в качестве части сообщений 214, тогда оно может проверить, что устройство 202 использует надлежащие алгоритмы и ключи шифрования. Так как оба устройства 201 и 202 аутентифицировали себя друг для друга и установили общий алгоритм шифрования и набор ключей, они могут приступить к обмену данными 220 безопасным образом.

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

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

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

К сожалению, как указано выше,