Область техники, к которой относится изобретение
Настоящее изобретение, в основном, относится к передаче данных в одноранговой сети и, в частности, относится к механизмам аутентификации и авторизации одноранговых узлов в одноранговой сети.
Уровень техники
Традиционно сетевые подключения формировались между вычислительным устройством клиента и вычислительным устройством сервера, где сервер служил в качестве центрального репозитория данных. Таким образом, клиент выбирал конкретный сервер, который исполнял потребности клиента, и предпринимал попытку подключения к этому серверу. При попытке подключения к серверу клиент предлагал форму идентификации и, если уместны, пароль или аналогичную информацию по обеспечению безопасности, которая разрешала клиенту выполнить доступ к защищенной информации. Сервер сравнивал идентификацию клиента и, если необходимо, информацию по обеспечению безопасности с базой данных клиентов, которым сервер согласился предоставить доступ. Если идентификация клиента и информация по обеспечению безопасности совпадали с записью в базе данных, сервер предоставлял клиенту доступ.
Вышеупомянутая система, однако, предполагает, что клиент имеет некоторый механизм, посредством которого он может проверить идентичность сервера. Например, многие клиенты подключались к конкретному серверу при помощи модемного подключения посредством набора телефонного номера, назначенного этому серверу телефонной компанией. В таком случае, клиенту могло гарантироваться, что надлежащий сервер принимал информацию об аутентификации клиента, так как гарантировалось, что телефонный номер телефонной компании подключал только к назначенному получателю. Однако, так как растет известность Интернета и Всемирной паутины, все больше и больше подключений между клиентами и серверами формировались по выделенным сетевым подключениям, которые прошли через промежуточные вычислительные устройства, известные как маршрутизаторы. Такие маршрутизаторы направляли передачи данных клиента на конкретные сервера, основываясь на таблицах маршрутизации или подобной информации, сопоставляющей воспринимаемые человеком имена серверов с адресами Интернета, которые часто являлись переменными. Если одна или более таблиц маршрутизации были скомпрометированы, передачи данных клиента могли быть направлены на ненадлежащий сервер. Часто такие ненадлежащие сервера представляли себя в качестве надлежащего сервера при попытке получить информацию об аутентификации клиента. Следовательно, возникла необходимость в механизме, посредством которого сервер мог бы доказать клиенту, что сервер действительно был тем, за которого он себя выдавал.
Центр сертификации (ЦС) может служить в качестве независимой проверки, что сервер, с которым клиент осуществляет передачу данных, действительно является тем, за кого он себя выдает. В частности, сервер может предложить клиенту защищенный идентификатор, такой как подписанный сертификат, который клиент может проверить посредством ЦС третьей стороны, которому клиент доверяет. В одном общем механизме, используемом в настоящее время, клиент может проверить защищенный идентификатор, так как клиент принял заслуживающим доверие образом открытый ключ ЦС, который клиент может использовать для декодирования защищенного идентификатора. Используя такой механизм, защищенным идентификатором, который сервер предлагает клиенту, может быть этот сертификат сервера, подписанный секретным ключом ЦС. Так как только ЦС имел доступ к секретному ключу ЦС, и только открытый ключ ЦС может декодировать такой подписанный сертификат, если подписанный сертификат правильно декодируется клиентом, используя открытый ключ ЦС, клиент определяет, что ЦС подписал сертификат и проверил информацию, содержащуюся в нем. Если клиент удовлетворен, что сервером является тот, за которого он себя выдает, клиент может приступить к идентификации себя серверу, как указано выше.
В одноранговых сетях, однако, нет центрального сервера, к которому клиенты могут подключаться. Вместо этого, вычислительные устройства клиентов передают данные друг другу, формируя сеть из последовательности подключений клиент-клиент. Несмотря на то что подключение клиент-клиент может защищаться вышеописанным образом, является нецелесообразным, чтобы каждое индивидуальное устройство клиента регистрировало себя на ЦС независимой третьей стороны. Поэтому требуется механизм, посредством которого один клиент может аутентифицировать себя для другого клиента, не требуя затрат и сложности регистрации на ЦС третьей стороны. Аналогично, если клиент аутентифицировался, существует необходимость в механизмах авторизации, которые могут предоставить возможность одному клиенту выполнить доступ к данным и ресурсам другого клиента.
Сущность изобретения
Поэтому в одном варианте осуществления настоящего изобретения хранилище доверенных лиц может вручную заполняться сертификатами, так что могут аутентифицироваться клиенты, представляющие сертификаты, совпадающие с сертификатами в хранилище доверенных лиц, без необходимости в аутентификаторах сертификатов третьей стороны.
В другом варианте осуществления группа клиентов может аутентифицироваться при помощи специально созданного сертификата группы.
В другом варианте осуществления клиент или группа клиентов могут аутентифицироваться посредством представления цепочки сертификатов, которая подтверждает цепочку доверительных отношений от сертификатов клиентов к сертификату, присутствующему в хранилище доверенных лиц или хранилище доверенных корней.
В еще другом варианте осуществления, если один клиент аутентифицируется другим, ему может быть предоставлен доступ к данным и ресурсам на другом клиенте посредством изменения пароля учетной записи первого клиента на втором клиенте на известное значение и затем регистрации первого клиента с целью создания маркера пользователя, который может использоваться для предоставления доступа к данным и ресурсам второго клиента.
Хотя описание в данном документе сосредоточено, главным образом, на аутентификации и авторизации вычислительных устройств в одноранговой сети, понятно, что описание в равной степени применимо к более обычным сетевым средам клиент-сервер или любой сетевой топологии, где является нецелесообразным использование центра сертификации третьей стороны. Кроме того, несмотря на то что нижеприведенное описание ссылается на процессы, выполняющиеся на отдельных вычислительных устройствах, механизмы, описанные в данном документе, в равной степени применимы к одному вычислительному устройству, имеющему многочисленные процессоры или выполняющему мультипроцессорную обработку. Дополнительные признаки и преимущества изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, которое выполняется с ссылкой на прилагаемые чертежи.
Краткое описание чертежей
Хотя прилагаемая формула изобретения детально излагает признаки настоящего изобретения, изобретение, вместе с его задачами и преимуществами, можно лучше понять из последующего подробного описания, рассматриваемого совместно с прилагаемыми чертежами, на которых:
фиг.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 безопасным образом.
Как объяснено выше, традиционно сертификаты аутентифицировали вычислительное устройство, так как сертификаты подписывались центром сертификации (ЦС). В одном известном механизме ЦС подписывал сертификат посредством шифрования некоторых данных, таких как данные из самого сертификата, используя секретный ключ ЦС. Как известно специалисту в данной области техники, секретный ключ содержится в секрете единственным объектом и используется для шифрования информации, которая затем может быть расшифрована посредством соответствующего открытого ключа. Так как секретный ключ не может быть получен из открытого ключа, открытый ключ может распределяться свободно. Таким образом, если вычислительное устройство было осведомлено об открытом ключе ЦС, и если оно могло правильно декодировать зашифрованные данные в сертификате, вычислительное устройство могло определить, что ЦС подписало этот сертификат. Кроме того, если вычислительное устройство «доверяет» ЦС, вычислительное устройство может расширить это доверие на устройство, представляющее подписанный сертификат, и, таким образом, аутентифицировать это устройство.
Традиционные ЦС включают в себя компании, деятельностью которых является проверка информации и подпись сертификатов, и для внутренних сетей корпоративные отделы информационной технологии (ИТ). Например, в корпоративной сети, которая поддерживается и в которой обеспечивается безопасность отделом ИТ корпорации, отдел ИТ может служить в качестве ЦС и может подписывать сертификаты сотрудников корпорации для указания того, что им можно доверять другим сотрудникам. Однако такой ЦС был полезным только для внутрикорпоративных передач данных. Если сотрудник пытался выполнить подключение к вычислительному устройству вне корпорации, вероятно, что внешнее устройство не признавало этот отдел ИТ корпорации в качестве доверяемого центра и, следовательно, не аутентифицировало сотрудника, основываясь на сертификате, подписанным отделом ИТ корпорации. В таком случае мог использоваться ЦС третьей стороны, такой как компания, деятельностью которой являлась проверка информации. Например, компания третьей стороны может действовать в качестве независимого ЦС, и любому, желающему предоставить сертификат, подписанный этим ЦС, могло потребоваться представление многочисленной информации, так чтобы компания могла проверить идентичность и законность запрашивающей стороны перед подписанием его сертификата. Если компания старательно проверяла информацию перед подписанием сертификатов, она могла создать репутацию заслуживающего доверия ЦС и могла использоваться для предоставления возможности двум или нескольким вычислительным устройствам из различных окружений, таких как различные корпоративные объекты, аутентифицировать друг друга.
Сертификат от ЦС, как считается, является «самоподписываемым», так как зашифрованная информация, содержащаяся в сертификате, шифруется посредством собственного секретного ключа ЦС. Такие самоподписываемые сертификаты от ЦС известны как «корневые» сертификаты и могут доставляться одному или нескольким вычислительным устройствам заслуживающим доверие образом. Например, в вышеописанном корпоративном сценарии, корневой сертификат, который дает возможность отделу ИТ корпорации служить в качестве ЦС, может быть предварительно установлен отделом ИТ на каждом вычислительном устройстве или может устанавливаться вручную членами отдела ИТ, используя портативные носители данных. В таком случае, когда один из вычислительных устройств корпорации пытается подключиться к другому, он может представить сертификат, подписанный отделом ИТ корпорации. Другое устройство может проверить сертификат, так как открытый ключ, необходимый для расшифровки зашифрованной информации и, таким образом, проверки сертификата, уже находится на устройстве в качестве части корневого сертификата. Аналогично корневой сертификат для ЦС независимой третьей стороны может предварительно устанавливаться на вычислительном устройстве изготовителем или может поступать укомплектованный программным обеспечением от источника, которому доверяли индивидуальные пользователи, таким как веб-браузер или программа пересылки файлов от известных компаний или организаций программного обеспечения. В таких случаях, если одно вычислительное устройство представляет сертификат, подписанный известным ЦС третьей стороны, другому вычислительному устройству другое вычислительное устройство может проверить сертификат и аутентифицировать первое вычислительное устройство благодаря тому факту, что был предварительно установлен самоподписываемый сертификат ЦС третьей стороны, таким образом предоставляя другому вычислительному устройству открытый ключ ЦС и давая ему возможность проверки, что зашифрованная информация была зашифрована с использованием секретного ключа ЦС, таким образом аутентифицируя представляющее устройство.
К сожалению, как указано выше, ЦС независимой третьей стороны часто требуют плату за подписание сертификата, делая нецелесообразным использование таких ЦС для индивидуальных лиц, небольших организаций, образовательных институтов, благотворительных организаций и т.п. Например, небольшой астрономический клуб может пожелать предоставить своим членам возможность совместного использования их цифровых астрономических фотографий при помощи сети, содержащей одноранговые подключения, экономя клубу на покупке вычислительного устройства для выделенного сервера. Аналогично индивидуальное лицо может пожелать установить одноранговую сеть, чтобы играть в игры или совместно использовать файлы со своими друзьями. В обоих случаях требуется механизм для аутентификации вычислительных устройств, желающих установить такие одноранговые подключения, которые не основываются на дорогостоящем ЦС третьей стороны.
Обращаясь к фиг.3, изображен один механизм для аутентификации устройств согласно варианту осуществления настоящего изобретения. Традиционно, как описано выше, корневой сертификат для ЦС предварительно сохранялся на вычислительном устройстве посредством некоторого доверенного средства. Такие сертификаты идентифицировали ЦС и его открытый ключ и были самоподписываемыми с использованием соответствующего секретного ключа. Когда корневые сертификаты хранились на устройстве, они могли хранится в общем расположении, которое может упоминаться как «хранилище доверенных корней». Как понятно специалисту в данной области техники, хранилище доверенных корней, такое как хранилища 205 и 206 доверенных корней, изображенные на фиг.2, необязательно является конкретной папкой или аналогичным объектом файловой системы, но может просто ссылаться на концептуализированную совокупность корневых сертификатов, где бы ни находилось их расположение в файловой системе данного вычислительного устройства.
Таким образом, как показано на фиг.3, чтобы аутентифицировать подключающееся устройство согласно одному варианту осуществления настоящего изобретения, принимающее устройство может сначала принять сертификат, как изображается этапом 301. Впоследствии на этапе 303 принимающее устройство может выполнить попытку определения, был ли подписан сертификат, который он принял, ЦС, сертификат которого хранится в хранилище доверенных корней. Часто подключающееся устройство предоставляет цепочку сертификатов, причем его собственный сертификат является первым сертификатом в цепочке. Этот первый сертификат может содержать зашифрованную часть, которая может быть расшифрована с использованием открытого ключа, заданного в последующем сертификате в цепочке сертификатов. Так как только обладатель секретного ключа мог выполнить эту зашифрованную часть, зашифрованная часть первого сертификата служит в качестве проверки первого сертификата объектом, соответствующим второму сертификату. Таким образом, проверяется достоверность каждого сертификата последующим сертификатом в цепочке сертификатов. В конечном счете, однако, если цепочка не завершается сертификатом, подписанным ЦС, который имеет сертификат, хранимый в хранилище доверенных корней, принимающее вычислительное устройство может не аутентифицировать подключающееся устройство.
Таким образом, на этапе 303 принимающее устройство может сначала определить, аутентифицируется ли сертификат, посланный подключающимся устройством, ЦС, которому доверяет принимающее устройство. Как объяснено выше, клиент доверяет ЦС, если сертификат этого ЦС хранится в хранилище доверенных корней клиента. Как также объяснено выше, может быть определено, что сертификат аутентифицируется ЦС, когда он содержит зашифрованные данные, которые могут быть расшифрованы только открытым ключом, заданным сертификатом ЦС, тем самым указывая, что он был зашифрован ЦС, так как только ЦС имел доступ к его собственному секретному ключу. Если была послана цепочка сертификатов, принимающее устройство может определить на этапе 303 был ли аутентифицирован последний сертификат в цепочке посредством ЦС, которому доверяет принимающее устройство.
Если сертификат аутентифицирован ЦС, которому доверяет принимающее устройство, принимающее устройство затем может определить, соответствует ли сертификат подключающемуся устройству, как показано этапом 307. Если сертификат представляет собой просто последний сертификат в цепочке сертификатов, тогда он не будет идентифицировать подключающееся устройство. Однако, если подключающееся устройство только послало единственный сертификат, тогда этот сертификат должен как аутентифицироваться ЦС, которому доверяет принимающее устройство, так и должен правильно идентифицировать подключающееся устройство. Если он выполняет эти оба действия, тогда принимающее устройство может разрешить подключение, как указано этапом 317 на фиг.3.
Однако, если подключающееся устройство послало только один сертификат, и он не идентифицировал подключающееся устройство, тогда принимающее устройство определяет, что сертификат не идентифицирует подключающееся устройство на этапе 307, и что больше нет других сертификатов в цепочке на этапе 309, и поэтому откажет в подключении, пытающемся установить подключающимся устройством, как изображено на этапе 315. Принимающее устройство аналогично откажет в подключении, если цепочка сертификатов не начиналась с сертификата, который идентифицировал подключающееся устройство.
Если на этапе 309 принимающее устройство определяет, что имеются дополнительные сертификаты в цепочке сертификатов, которая имеет последний сертификат, аутентифицированный доверяемым ЦС, принимающее устройство может исследовать непосредственно предыдущий сертификат на этапе 311 и определить, как изображается этапом 313, сертифицируется ли предыдущий сертификат последующим сертификатом. Как известно специалисту в данной области техники, если каждый сертификат в цепочке сертификатов не сертифицирует предыдущий сертификат, доверительные отношения могут быть разорваны, и цепочка сертификатов не сможет сертифицировать устройство, посылающее ее. Следовательно, если на этапе 313 принимающее устройство определяет, что есть разрыв в цепочке сертификатов, оно может отказать в подключении на этапе 315, как изображено. Если, однако, сертификат, исследуемый в настоящий момент, сертифицируется следующим сертификатом, принимающее устройство может вернуться к этапу 307 для определения, идентифицирует ли сертификат, исследуемый в настоящий момент, подключающееся устройство. Как объяснено выше, если оно это делает, тогда принимающее устройство может аутентифицировать посылающее устройство и разрешить подключение на этапе 317, тогда как, если оно не делает этого, тогда принимающее устройство может проверить другие сертификаты в цепочке, как изображено на этапе 309, также описанным выше.
Однако, как объяснено выше, может быть нецелесообразным требование представления индивидуальными устройствами в различных одноранговых сетевых ситуациях сертификатов, подписанных ЦС третьей стороны. Следовательно, «хранилище доверенных лиц», рассматриваемое вариантом осуществления настоящего изобретения, может использоваться в дополнение к хранилищу доверенных корней. Аналогично хранилищу доверенных корней, хранилище доверенных лиц может заполняться сертификатами от объектов, которым доверяет конкретный пользователь на данном вычислительном устройстве. Однако, в отличие от хранилища доверенных корней, объектам, сертификаты которых находятся в хранилище доверенных лиц, не разрешается действовать в качестве ЦС для этого пользователя. Хранилище доверенных лиц, как объяснено выше со ссылкой на хранилище доверенных корней, необязательно ссылается на конкретный раздел или элемент файловой системы вычислительного устройства, но скорее ссылается на концептуальную совокупность всех сертификатов, которые рассматриваются частью хранилища доверенных лиц, где бы они не могли находиться в файловой системе.
Другим различием между хранилищем доверенных корней и хранилищем доверенных лиц является то, что хранилище доверенных лиц может легче заполняться индивидуальными пользователями. Так как предоставление возможности индивидуальным пользователям выбирать, кому доверять, может уменьшить потенциальные защитные меры, любое повышение опасности может компенсироваться ограничением применимости хранилища доверенных лиц только до пользователя, который выбрал, какие сертификаты были помещены там первоначально.
Пользователи могут принимать сертификаты посредством множества механизмов и могут индивидуально определять, доверять ли таким сертификатам. Например, два друга могут договориться в телефонном разговоре или в личном разговоре об отправке друг другу по электронной почте своих сертификатов, чтобы предоставить возможность их компьютерам сформировать одноранговое подключение. Если один из этих друзей потом принимает сообщение электронной почты, которое, как подразумевается, от другого, содержащее сертификат, существует достаточно признаков доверительности, что получатель может выбрать добавление этого сертификата к своему хранилищу доверенных лиц. Альтернативно доверительные сертификаты могут быть получены внешним образом, таким как физический перенос сертификата на портативный считываемый компьютером носитель и копирование его на вычислительное устройство или посылка сертификата на портативном считываемым компьютером носителе при помощи службы доставки пакетов.
Если хранилище доверенных лиц на вычислительном устройстве содержит сертификат для доверенного объекта, этот объект может формировать одноранговое подключение с этим вычислительным устройством без получения сначала сертификата, подписанного ЦС третьей стороны. Конкретно сертификат может использоваться для аутентификации объекта, если сертификат этого объекта находится в хранилище доверенных лиц. Например, если посылающее вычислительное устройство уже имеет самоподписываемый сертификат, идентифицирующий его в хранилище доверенных лиц принимающего вычислительного устройства, тогда посылающее вычислительное устройство может стать аутентифицированным предоставлением самоподписываемого сертификата. Такой самоподписываемый сертификат, как объяснено подробно выше, содержит информацию о посылающем устройстве и содержит зашифрованную информацию, которая была зашифрована посредством секретного ключа посылающего устройства. Так как самосертификат посылающего устройства уже находится в хранилище доверенных лиц, принимающее устройство может использовать открытый ключ, предусмотренный сертификатом в хранилище доверенных лиц, и может расшифровать зашифрованную информацию, которая была частью самоподписываемого сертификата, посланного посылающим устройством, и может, таким образом, определить, что самоподписываемый сертификат действительно был подписан секретным ключом посылающего устройства, таким образом аутентифицируя посылающее устройство.
В качестве альтернативного примера посылающее вычислительное устройство может иметь подписанный третьей стороной сертификат, идентифицирующий его, хранимый в хранилище доверенных лиц принимающего вычислительного устройства. В таком случае посылающее вычислительное устройство может стать аутентифицированным посредством предоставления этого подписанного третьей стороной сертификата таким образом, который аналогичен тому, что подробно описано выше. Такое устройство имеет дополнительную выгоду предоставления возможности заполнения пользователями своего хранилища доверенных лиц подписанными третьей стороной сертификатами, не требуя, чтобы пользователи принимали какой-либо сертификат, подписанный третьей стороной (как было бы в случае, если бы третья сторона была бы просто добавлена в хранилище доверенных корней). Следовательно, как можно видеть, сертификатам, хранимым в хранилище доверенных лиц, необходимо только идентифицировать объект, и не существует требования, основанного на настоящем изобретении, чтобы такие сертификаты были бы только самоподписываемыми сертификатами.
Обращаясь к фиг.3, если на этапе 303 принимающее устройство определяет, что принятый сертификат или цепочка сертификатов не подписаны никаким ЦС, сертификаты которого находятся в хранилище доверенных корней, оно может проверить хранилище доверенных лиц на этапе 305. Таким образом, если одному их этих устройств было необходимо послать, например, самоподписываемый сертификат в попытке формирования одноранговой сети с принимающим устройством, этого самоподписываемого сертификата будет достаточно для аутентификации его, так как сертификат устройства находится в хранилище доверенных лиц, и устройство может действовать в качестве ЦС для самого себя. Таким образом, устройствам, пытающимся сформировать одноранговые подключения, нет необходимости принимать на себя расходы и неэффективность того, что их сертификаты подписаны ЦС третьей стороны.
Как подробно описано выше и изображено этапами 307-313 на фиг.3, подключающееся устройство может послать цепочку сертификатов для аутентификации его на принимающем устройстве. Такая цепочка сертификатов может быть в равной степени эффективной, если она имеет, в качестве корневого сертификата, сертификат группы, который, как будет видно, может предоставить возможность индивидуальному лицу создавать единственный сертификат для группы, упрощая одноранговые подключения между объектами в небольшой организации, клубе, благотворительной организации или т.п. Например, возвращаясь к вышеупомянутому гипотетическому астрономическому клубу, который пытается установить одноранговую сеть среди некоторых из его членов, чтобы облегчить совместное использование изображений, один из членов может создать сертификат группы, который аналогичен самоподписываемому сертификату, подробно описанному выше, и затем другие члены принимают этот сертификат группы. Конкретно, когда каждый из других членов «принимает» сертификат группы, он указывает, что он желает аутентифицировать любого члена группы. Следовательно, сертификат группы может служить таким образом, который аналогичен корневому сертификату, подробно описанному выше. Однако, чтобы исключить проблемы обеспечения безопасности, сопутствующие добавлению сертификата группы в хранилище доверенных корней, или хранилище доверенных лиц, один механизм, рассматриваемый вариантом осуществления настоящего изобретения, может сохранять сертификат группы в своем собственном запоминающем устройстве и предоставлять его процессам аутентификации, когда потребуется. Процессы аутентификации поэтому могут действовать так, как описано выше, и могут рассматривать сертификат группы в качестве корневого сертификата. Например, для любого члена группы для формирования однорангового подключения с любым другим членом каждый член может просто представить другому члену свой сертификат, подписанный сертификатом группы. Так как сертификат группы рассматривается в качестве корневого сертификата, сертификат, подписанный сертификатом группы, является достаточным для аутентификации посылающего члена. Однако, так как сертификат группы не является фактически присутствующим в хранилище корней или хранилище доверенных лиц, аутентификация членов группы может происходить на индивидуальной основе, которая может контролироваться механизмом, который предоставляет сертификат группы процессам аутентификации.
Кроме того, другие члены, которые могут не иметь возможности обратиться к создателю группы, могут просто попросить одного из других участвующих в группе членов, которые имеют полномочия выдавать сертификаты, таких как администраторы, подписать их сертификат. Когда эти члены пытаются сформировать одноранговое подключение, они могут представить цепочку сертификатов, содержащую их сертификат и сертификат другого члена, где их сертификат подписан сертификатом другого члена, и сертификат другого члена подписан сертификатом группы. Как изображено на фиг.3, если на этапе 301 принимающее устройство принимает такую цепочку сертификатов, оно может определить, подписан ли последний сертификат в цепочке сертификатом группы, служащим в качестве корневого сертификата, что изображается этапом 303. Если да, тогда принимающее устройство может выполнить итерацию по цепочке, как изображено этапами 307-313, обеспечивая, что каждый сертификат подписан последующим сертификатом, и что первый сертификат в цепочке идентифицирует устройство, пытающееся выполнить одноранговое подключение. В вышеприведенном примере такой процесс показывает, что последний сертификат в цепочке, а именно сертификат другого члена, был подписан сертификатом группы, который может служить в качестве ЦС, и что сертификат присоединяющегося члена был подписан другим членом, таким образом завершая цепочку и аутентифицируя присоединяющегося члена.
Как указано выше, сертификаты или цепочки сертификатов обмениваются как часть алгоритмов, такого как алгоритм ЗТУ, который был подробно описан ранее. Следовательно, механизмы, рассматриваемые вариантом осуществления настоящего изобретения, могут быть реализованы эффективно посредством применения по-новому возможностей алгоритмов, таких как ЗТУ, и простого вставления дополнительных механизмов для выполнения вышеописанных этапов, после того как уже были обменены сертификаты. Так как такое вставление может оказывать влияние на элементы алгоритмов, таких как ЗТУ, который аутентифицировал устройства, основываясь на ЦС, хранимых в хранилище доверенных корней, дополнительные механизмы, рассматриваемые вариантом осуществления настоящего изобретения, могут выполнять аутентификацию этого типа, такую как указанная этапом 303 на фиг.3. Альтернативно механизмы, рассматриваемые вариантом осуществления настоящего изобретения, могут сосредотачиваться исключительно на аутентификации объектов, которые представляют сертификаты или цепочки сертификатов, аутентифицируемые в конечном счете на основе ЦС, хранимых в хранилище доверенных лиц.
Как показано на фиг.4, одна возможная реализация вышеописанных механизмов может быть выполнена при помощи динамически подключаемой библиотеки (ДПБ) или подобного компонента, такого как peerssp.dll 403, изображенного на фиг.4. peerssp.dll 403 может обеспечивать интерфейс 405 провайдера услуг безопасности (ПУБ), который дает возможность приложению выполнить доступ к возможностям peerssp.dll 403, включающим в себя, например, возможность аутентификации объектов при одноранговом подключении, например, посредством ссылки на хранилище доверенных корней, хранилище доверенных лиц или сертификат группы.
Если два или более устройств подключаются при помощи одноранговой сети, одно из устройств может предпринимать попытку выполнения доступа к доверенному ресурсу другого устройства. В таком случае устройство, хостирующее доверенный ресурс, может определить, предоставить ли доступ запрашивающему устройству посредством определения, авторизовано ли запрашивающее устройство на доступ к нему. В основном вне контекста одноранговых сетей пользователь авторизуется на доступ к ресурсам вычислительного устройства, если пользователь имеет учетную запись вычислительного устройства, которая разрешает пользователю выполнить доступ к этим ресурсам. Такое разрешение учетной записи может быть отражено в маркере, генерируемом компонентом центра локальной системы (ЦЛС) операционной системы вычислительного устройства, когда пользователь регистрируется в своей учетной записи на этом вычислительном устройстве. Традиционно пользователь регистрируется в своей учетной записи посредством предоставления ЦЛС имени пользователя и пароля. Если имя пользователя и пароль совпадают с именем пользователя и паролем, назначенным конкретной учетной записи, тогда пользователь регистрируется в этой учетной записи посредством ЦЛС и генерируется соответствующий маркер.
Когда пользователь затем предпринимает попытку выполнения доступа к доверенному ресурсу, операционная система или другой процесс, который предоставляет пользователю доступ к ресурсу, может сначала проверить маркер пользователя для определения, авторизован ли пользователь на доступ к доверенному ресурсу. Если пользователь авторизован, операционная система или другой процесс отвечает на запрос пользователя. Более конкретно запросы пользователя на доступ к ресурсам в основном выполняются при помощи приложения, такого как приложение 401, изображенное на фиг.4. Приложение 401 может по распоряжению пользователя попытаться выполнить доступ к доверенному ресурсу посредством использования команды «открыть файл» или подобной команды, задающей доверенный ресурс в качестве параметра запроса. Операционная система или другой процесс, который предоставляет доступ к ресурсу, может после проверки маркера пользователя определить, предоставить или нет пользователю доступ к ресурсу. Если пользователь авторизован, операционная система или другой процесс может ответить индикатором успеха. При приеме индикатора приложение 401 затем может выдать запрос «послать байты» или подобный запрос для фактического приема содержимого доверенного ресурса, чтобы обработать его и предоставить такую информацию пользователю. Однако, если пользователь не авторизован, операционная система или другой процесс может ответить индикатором неудачи, который может быть представлен пользователю при помощи приложения 401 в виде диалогового окна или аналогичного уведомления.
Пользователям в одноранговых сетях может предоставляться доступ к доверенным ресурсам на удаленных вычислительных устройствах при помощи аналогичных средств. Конкретно приложение, организующее передачу данных по одноранговой сети, может иметь удаленный процесс, выполняющийся на вычислительном устройстве, к которому выполняется доступ, для заимствования прав выполняющего доступ пользователя. Однако, чтобы генерировать маркер для выполняющего доступ пользователя на вычислительном устройстве, к которому выполняется доступ, выполняющему доступ пользователю может быть разрешено зарегистрироваться на вычислительном устройстве. Чтобы исключить создание вручную учетных записей для каждого пользователя на каждом вычислительном устройстве, варианты осуществления настоящего изобретения рассматривают автоматизированный механизм, посредством которого пользователь может быть зарегистрирован без создания вручную учетной записи.
На фиг.5 изображен механизм для автоматической регистрации пользователя на удаленном вычислительном устройстве, рассматриваемый вариантом осуществления настоящего изобретения. Как показано, информация пользователя может быть добавлена в хранилище доверенных пользователей на этапе 501 таким образом, который подробно описан выше. Если пользователь был добавлен в хранилище доверенных пользователей, может быть создана учетная запись для этого пользователя на вычислительном устройстве, в хранилище доверенных пользователей которого был добавлен пользователь, как изображается этапом 503. Потом после того как пользователь, работающий с запрашивающего устройства, сформирует одноранговое подключение с хост-устройством, пользователь может запросить ресурс, который требует аутентификации, такой как доверенный ресурс, как изображается этапом 505.
Для заимствования прав пользователя на хост-устройстве, чтобы определить, предоставлять ли пользователю доступ к запрошенному ресурсу, один или несколько процессов, рассматриваемых вариантом осуществления настоящего изобретения, могут вызвать создание маркера для удаленного пользователя посредством регистрации удаленного пользователя на хост-устройстве, используя учетную запись, созданную на этапе 503, и пароль, которые процессы могут изменить на известное значение. Так как один или несколько процессов, выполняющих заимствование прав, могут исполняться в качестве процессов локальной системы, они могут изменить пароль учетной записи, созданной на этапе 503. Конкретно пароль может быть изменен на значение, которое может автоматически определяться процессом или процессами, заимствующими права пользователя, такое как хэш-значение некоторой или всей информации, содержащейся в сертификате удаленного пользователя. Таким образом, как изображается этапом 507, после того как удаленный пользователь запросит доверенный ресурс на этапе 505, процесс или процессы, заимствующие права удаленного пользователя на вычислительном хост-устройстве, могут изменить пароль учетной записи пользователя на известное значение и могут затем создать маркер пользователя на этапе 509 посредством регистрации учетной записи пользователя, используя вновь выбранный пароль. В некоторых операционных системах вместо изменения пароля, соответствующего учетной записи удаленного пользователя, процесс или процессы, заимствующие права удаленного пользователя, могут во время регистрации пользователя просто задавать другой тип пароля, такой как хэш-значение сертификата, а не более обычный пароль, такой как пароль Цербера.
Если создан маркер пользователя, может выполняться попытка выполнения доступа к доверенному ресурсу аналогично тому, как подробно описано выше. Конкретно процесс или процессы, заимствующие права удаленного пользователя на вычислительном хост-устройстве, могут использовать команду «открыть файл», вызывая проверку операционной системой или другим процессом, который контролирует доступ к доверенному ресурсу, маркера пользователя с целью определения, авторизован ли пользователь на доступ к доверенному ресурсу. Если пользователь не авторизован на доступ к доверенному ресурсу, операционная система или другой процесс, контролирующий доступ к доверенному ресурсу, может возвратить индикатор неудачи процессу или процессам, заимствующим права удаленного пользователя, и этот индикатор неудачи может быть направлен по одноранговому подключению одному или нескольким процессам на запрашивающем устройстве, который может уведомить пользователя о неудаче. Однако, если пользователь авторизован на доступ к доверенному ресурсу, операционная система или другой процесс, контролирующий доступ к доверенному ресурсу, может возвратить индикатор успеха процессу или процессам, заимствующим права удаленного пользователя, после чего этот процесс или процессы заимствования прав могут использовать команду «послать байты» для запроса данных, содержащихся в доверенном ресурсе. Однако вместо потребления этих данных на вычислительном хост-устройстве, данные, принятые в результате команды «послать байты», могут быть просто направлены по одноранговому подключению на удаленное вычислительное устройство, где локальный процесс или процессы могут потребить данные и представить их пользователю.
Возвращаясь к фиг.4, одна ДПБ, такая как peerssp.dll 403, может обеспечить большую часть из вышеописанных функциональных возможностей заимствования прав. Например, приложение, такое как приложение 401, за исключением на удаленном устройстве может запросить, чтобы выполнялся доступ к доверенному ресурсу на хост-устройстве посредством запуска соответствующих функций, выполняемых ДПБ на удаленном устройстве, такой как peerssp.dll 403, экземпляр которой создан в пространстве процесса приложения. Запрос может быть направлен ДПБ на хост-устройстве, такой как peerssp.dll 403, показанной на фиг.4, которая может заимствовать права удаленного пользователя на хост-устройстве. Так как генерирование маркеров может быть весьма привилегированным процессом, peerssp.dll 403 может организовать передачу данных с компонентом, имеющим более высокие привилегии, таким как служба 411 аутентификации. Таким образом, при заимствовании прав удаленного пользователя процесс, такой как peerssp.dll 403, может пропускать необходимый мандат для регистрации пользователя на службу 411 аутентификации с высокими привилегиями при помощи удаленного вызова 407 процедуры. Если регистрация пользователя была успешной, служба 411 аутентификации с высокими привилегиями может возвратить результирующий маркер процессу пользовательского режима, такому как peerssp.dll, при помощи аналогичных механизмов удаленного вызова процедуры.
Некоторые современные операционные системы предоставляют возможность многочисленным пользователям одновременно регистрироваться на вычислительном устройстве. В таком случае один пользователь может добавить сертификат для однорангового вычислительного устройства в его хранилище доверенных лиц, в то время как другие пользователи не могут. Механизмы, рассматриваемые вариантом осуществления настоящего изобретения, позволяют выполнять проверку с целью определения, какой пользователь в настоящий момент выполняет доступ к ресурсам вычислительного устройства, и использовать хранилище доверенных лиц этого пользователя в качестве базы для аутентификации удаленного устройства.
Как можно видеть, варианты осуществления настоящего изобретения рассматривают хранилище доверенных лиц, которое может заполняться под контролем пользователя и может давать возможность одноранговым устройствам аутентифицироваться, не требуя сертификаты или цепочки сертификатов, которые в конечном счете подписываются ЦС третьей стороны. Кроме того, варианты осуществления настоящего изобретения рассматривают заимствование прав удаленного пользователя на вычислительном хост-устройстве, чтобы применять по-новому существующие механизмы для определения, авторизован ли удаленный пользователь на доступ к доверенным ресурсам. Хотя вышеприведенные подробные описания основаны на конкретных алгоритмах, ничего касательно настоящего изобретения не требует только этих алгоритмов за исключением других подобных алгоритмов. Например, хотя вышеописанные сертификаты подписывались с использованием криптографии с открытым/секретным ключом, любые сертификаты, защищенные любыми соответствующими криптографическими алгоритмами, в равной степени применимы с настоящим изобретением. Аналогично, хотя вышеприведенные подробные описания ссылаются на единственный модуль ДПБ, варианты осуществления изобретения могут быть реализованы в любой комбинации библиотек, стандартных программ, стандартных подпрограмм, процессов операционной системы или любых других поддающихся программированию логических структур.
С учетом многих возможных вариантов осуществления, к которым могут быть применены принципы данного изобретения, необходимо признать, что описанные в данном документе варианты осуществления в отношении чертежей, как подразумевается, являются исключительно иллюстративными и не должны рассматриваться как ограничивающие объем изобретения. Например, для специалиста в данной области техники понятно, что некоторые элементы изображенных вариантов осуществления, показанные в виде программного обеспечения, могут быть реализованы аппаратными средствами и наоборот или что изображенные варианты осуществления могут быть модифицированы в устройстве и деталях без отступления от сущности изобретения. Поэтому изобретение, как описанное в данном документе, рассматривает все такие варианты осуществления, которые могут охватываться объемом следующей формулы изобретения и ее эквивалентов.
название | год | авторы | номер документа |
---|---|---|---|
УПРАВЛЯЕМОЕ ПОЛИТИКАМИ ДЕЛЕГИРОВАНИЕ УЧЕТНЫХ ДАННЫХ ДЛЯ ЕДИНОЙ РЕГИСТРАЦИИ В СЕТИ И ЗАЩИЩЕННОГО ДОСТУПА К СЕТЕВЫМ РЕСУРСАМ | 2007 |
|
RU2439692C2 |
ИНФРАСТРУКТУРА ВЕРИФИКАЦИИ БИОМЕТРИЧЕСКИХ УЧЕТНЫХ ДАННЫХ | 2007 |
|
RU2434340C2 |
СПОСОБ УПРАВЛЕНИЯ ДОСТУПОМ К ЗАЩИЩЕННОЙ СЕТИ НА ОСНОВЕ ТРЕХЭЛЕМЕНТНОЙ АУТЕНТИФИКАЦИИ ОДНОРАНГОВЫХ ОБЪЕКТОВ | 2008 |
|
RU2444156C1 |
АВТОМАТИЧЕСКАЯ АТТЕСТАЦИЯ СОХРАННОСТИ УСТРОЙСТВА С ПРИМЕНЕНИЕМ ЦЕПОЧКИ БЛОКОВ | 2016 |
|
RU2673842C1 |
КОНТЕКСТ УСТОЙЧИВОЙ АВТОРИЗАЦИИ НА ОСНОВЕ ВНЕШНЕЙ АУТЕНТИФИКАЦИИ | 2008 |
|
RU2390838C2 |
СПОСОБ УПРАВЛЕНИЯ ИДЕНТИФИКАЦИЕЙ ПОЛЬЗОВАТЕЛЕЙ ИНФОРМАЦИОННЫХ РЕСУРСОВ НЕОДНОРОДНОЙ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ | 2009 |
|
RU2415466C1 |
ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ СВЯЗИ С РАСШИРЕННЫМИ МУЛЬТИМЕДИЙНЫМИ ПЛАТФОРМАМИ | 2015 |
|
RU2685975C2 |
КОНТЕКСТ УСТОЙЧИВОЙ АВТОРИЗАЦИИ НА ОСНОВЕ ВНЕШНЕЙ АУТЕНТИФИКАЦИИ | 2003 |
|
RU2337399C2 |
СИСТЕМЫ И СПОСОБЫ ДЛЯ ЗАЩИТЫ СЕТЕВЫХ УСТРОЙСТВ | 2015 |
|
RU2675055C2 |
СПОСОБ АВТОРИЗАЦИИ ОПЕРАЦИИ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ ВЫПОЛНЕНИЯ НА ЗАДАННОМ ВЫЧИСЛИТЕЛЬНОМ УСТРОЙСТВЕ | 2014 |
|
RU2675902C2 |
Изобретение относится к области сетей передачи данных. Технический результат заключается в упрощении аутентификации вычислительных устройств. Сущность изобретения заключается в том, что механизм аутентификации использует хранилище доверенных лиц, которое может заполняться на индивидуальной основе пользователями вычислительных устройств и может содержать сертификаты объектов, которым пользователь желает разрешить действовать в качестве центров сертификации. Следовательно, может быть выполнено одноранговое подключение, даже если ни одно устройство не представляет сертификат или цепочку сертификатов, подписанную центром сертификации третьей стороны при условии, что каждое устройство представляет сертификат или цепочку сертификатов, подписанную устройством, присутствующим в хранилище доверенных лиц. Если аутентифицирован, удаленный пользователь может выполнить доступ к доверенным ресурсам на хост-устройстве посредством заимствования локальными процессами прав пользователя и создания соответствующего маркера посредством изменения пароля или типа пароля пользователя на хэш-значение сертификата пользователя и затем регистрации пользователя. На маркер можно ссылаться стандартным образом для определения, авторизован ли удаленный пользователь на выполнение доступа к доверенному ресурсу. 3 н. и 17 з.п. ф-лы, 5 ил.
1. Считываемый компьютером носитель, имеющий исполнимые компьютером инструкции для аутентификации первого вычислительного устройства на втором вычислительном устройстве, причем считываемые компьютером инструкции выполняют этапы, содержащие
создание хранилища доверенных корней и хранилища доверенных лиц на втором вычислительном устройстве, причем хранилище доверенных лиц содержит сертификаты, отличные от сертификатов в хранилище доверенных корней;
прием одного или нескольких сертификатов от первого вычислительного устройства на втором вычислительном устройстве;
определение, содержит ли какой-либо из сертификатов из одного или более сертификатов идентификатор, соответствующий сертификату, содержащемуся в хранилище доверенных лиц;
аутентификацию первого вычислительного устройства, если какой-либо из упомянутых сертификатов хранилища доверенных лиц идентифицирует первое вычислительное устройство, в противном случае - определение, подписан ли последний сертификат из одного или нескольких сертификатов объектом хранилища доверенных корней, причем объект хранилища доверенных корней идентифицируется подписанным сертификатом, помещенным в хранилище доверенных корней второго вычислительного устройства;
и причем дополнительно хранилище доверенных лиц второго вычислительного устройства содержит другие сертификаты, чем хранилище доверенных корней второго вычислительного устройства;
определение, идентифицирует ли первый сертификат из одного или нескольких сертификатов первое вычислительное устройство;
определение, аутентифицируется ли каждый сертификат из одного или нескольких сертификатов предыдущим сертификатом из одного или нескольких сертификатов;
и аутентификацию первого вычислительного устройства, если последний сертификат из одного или нескольких сертификатов подписан объектом хранилища доверенных корней, если первый сертификат из одного или более сертификатов идентифицирует первое вычислительное устройство, и если каждый сертификат из одного или более сертификатов аутентифицируется предыдущим сертификатом из одного или нескольких сертификатов.
2. Считываемый компьютером носитель по п.1, в котором хранилище доверенных лиц второго вычислительного устройства содержит подписанные сертификаты объектов, считаемых пользователем второго вычислительного устройства заслуживающими доверие, причем подписанные сертификаты были помещены в хранилище доверенных лиц второго вычислительного устройства под руководством пользователя второго вычислительного устройства.
3. Считываемый компьютером носитель по п.1, в котором один или несколько сертификатов содержат цепочку сертификатов, заканчивающуюся сертификатом группы, причем сертификат группы предусматривается в качестве корневого сертификата на индивидуальной основе без сохранения ни в хранилище доверенных корней, ни в хранилище доверенных лиц.
4. Считываемый компьютером носитель по п.1, в котором хранилище доверенных лиц второго вычислительного устройства представляет собой хранилище доверенных лиц зарегистрированного пользователя, соответствующее пользователю, зарегистрированному в настоящий момент на втором вычислительном устройстве, причем дополнительно каждый пользователь второго вычислительного устройства имеет соответствующее хранилище доверенных лиц.
5. Считываемый компьютером носитель по п.1, в котором каждый объект, идентифицируемый подписанным сертификатом в хранилище доверенных лиц второго вычислительного устройства, имеет соответствующую учетную запись на втором вычислительном устройстве.
6. Считываемый компьютером носитель по п.1, в котором исполняемые компьютером инструкции выполняют дополнительные этапы, содержащие
прием от пользователя первого вычислительного устройства запроса на доступ к доверенному ресурсу на втором вычислительном устройстве;
изменение элемента пароля учетной записи пользователя на втором вычислительном устройстве;
заимствование прав пользователя посредством регистрации в учетной записи пользователя, используя измененный элемент пароля, причем регистрация в учетной записи пользователя генерирует маркер;
выполнение доступа к доверенному ресурсу с маркером; и
предоставление результатов выполнения доступа пользователю на первом вычислительном устройстве.
7. Считываемый компьютером носитель по п.6, в котором регистрация в учетной записи пользователя содержит предоставление мандата и измененного элемента пароля процессу режима ядра при помощи удаленного вызова процедуры.
8. Считываемый компьютером носитель, имеющий исполняемые компьютером инструкции для авторизации пользователя на первом вычислительном устройстве для доступа к доверенному ресурсу на втором вычислительном устройстве, причем считываемые компьютером инструкции выполняют этапы, содержащие
прием от пользователя запроса на доступ к доверенному ресурсу на втором вычислительном устройстве;
изменение элемента пароля учетной записи пользователя на втором вычислительном устройстве на основе сертификата первого вычислительного устройства, сохраненного в хранилище доверенных лиц второго вычислительного устройства;
регистрацию в учетной записи пользователя, используя измененный элемент пароля, таким образом генерируя маркер;
выполнение доступа к доверенному ресурсу с маркером; и
предоставление результатов выполнения доступа пользователю на первом вычислительном устройстве.
9. Считываемый компьютером носитель по п.8, в котором изменение элемента пароля учетной записи пользователя содержит изменение протокола пароля, чтобы использовать хэш-значение сертификата пользователя для регистрации в учетной записи пользователя.
10. Считываемый компьютером носитель по п.8, в котором регистрация в учетной записи пользователя содержит предоставление мандата и измененного элемента пароля процессу с высокими привилегиями при помощи удаленного вызова процедуры.
11. Считываемый компьютером носитель по п.8, в котором предоставление результатов содержит предоставление указания о неудаче пользователю на первом вычислительном устройстве, если выполнение доступа к доверенному ресурсу с маркером не было успешным, и предоставление данных с доверенного ресурса пользователю на первом вычислительном устройстве, если выполнение доступа к доверенному ресурсу с маркером было успешным, причем данные получаются при помощи команды типа «послать байты».
12. Считываемый компьютером носитель по п.8, в котором исполняемые компьютером инструкции выполняют дополнительные этапы, содержащие
прием одного или нескольких сертификатов от первого вычислительного устройства на втором вычислительном устройстве;
определение, подписан ли последний сертификат из одного или нескольких сертификатов объектом хранилища доверенных лиц, причем объект хранилища доверенных лиц идентифицируется подписанным сертификатом, помещенным в хранилище доверенных лиц второго вычислительного устройства, причем дополнительно хранилище доверенных лиц второго вычислительного устройства содержит другие сертификаты, чем хранилище доверенных корней второго вычислительного устройства;
определение, идентифицирует ли первый сертификат из одного или нескольких сертификатов первое вычислительное устройство;
определение, аутентифицируется ли каждый сертификат из одного или нескольких сертификатов предыдущим сертификатом из одного или нескольких сертификатов;
и аутентификацию первого вычислительного устройства, если последний сертификат из одного или нескольких сертификатов подписан объектом хранилища доверенных лиц, если первый сертификат из одного или нескольких сертификатов идентифицирует первое вычислительное устройство, и если каждый сертификат из одного или нескольких сертификатов аутентифицируется предыдущим сертификатом из одного или нескольких сертификатов.
13. Считываемый компьютером носитель по п.12, в котором хранилище доверенных лиц второго вычислительного устройства содержит подписанные сертификаты объектов, считаемых пользователем второго вычислительного устройства, заслуживающими доверие, причем подписанные сертификаты были помещены в хранилище доверенных лиц второго вычислительного устройства под руководством пользователя второго вычислительного устройства.
14. Считываемый компьютером носитель по п.12, в котором хранилище доверенных лиц второго вычислительного устройства представляет собой хранилище доверенных лиц зарегистрированного пользователя, соответствующее пользователю, зарегистрированному в настоящий момент на втором вычислительном устройстве, и причем дополнительно каждый пользователь второго вычислительного устройства имеет соответствующее хранилище доверенных лиц.
15. Вычислительное устройство, содержащее
хранилище доверенных корней, содержащее подписанные сертификаты, отличные от сертификатов в хранилище доверенных лиц;
хранилище доверенных лиц, содержащее подписанные сертификаты объектов, считаемых пользователем вычислительного устройства заслуживающими доверия, причем подписанные сертификаты были помещены в хранилище доверенных лиц под руководством пользователя;
сетевой интерфейс, причем сетевой интерфейс выполняет этапы, содержащие прием одного или нескольких сертификатов от другого вычислительного устройства; и
блок обработки, причем блок обработки выполняет этапы, содержащие определение, содержит ли какой-либо сертификат из одного или более сертификатов идентификатор, соответствующий сертификату, содержащемуся в хранилище доверенных лиц, аутентификацию вычислительного устройства, если какой-либо из упомянутых сертификатов хранилища доверенных лиц идентифицирует первое вычислительное устройство, в противном случае - аутентификацию другого вычислительного устройства, если последний сертификат из одного или более сертификатов подписан объектом хранилища доверенных корней, причем объект хранилища доверенных корней идентифицируется подписанным сертификатом в хранилище доверенных корней, если первый сертификат из одного или более сертификатов идентифицирует другое вычислительное устройство, и если каждый сертификат из одного или более сертификатов аутентифицируется предыдущим сертификатом из одного или более сертификатов.
16. Вычислительное устройство по п.15, в котором сетевой интерфейс выполняет дополнительные этапы, содержащие прием от пользователя на другом вычислительном устройстве запроса на доступ к доверенному ресурсу на вычислительном устройстве; и в котором блок обработки выполняет дополнительные этапы, содержащие изменение элемента пароля учетной записи пользователя на вычислительном устройстве, регистрацию в учетной записи пользователя, используя измененный элемент пароля, при этом регистрация в учетной записи пользователя генерирует маркер, выполнение доступа к доверенному ресурсу с маркером, и предоставление результатов выполнения доступа пользователю на другом вычислительном устройстве.
17. Вычислительное устройство по п.16, в котором изменение элемента пароля учетной записи пользователя содержит изменение протокола пароля так, чтобы использовать хэш-значение сертификата пользователя для регистрации в учетной записи пользователя.
18. Вычислительное устройство по п.16, в котором регистрация в учетной записи пользователя содержит предоставление мандата и измененного элемента пароля процессу режима ядра на вычислительном устройстве посредством удаленного вызова процедуры.
19. Вычислительное устройство по п.15, в котором хранилище доверенных лиц является отдельным для каждого пользователя вычислительного устройства.
20. Вычислительное устройство по п.15, в котором каждый объект, идентифицированный подписанным сертификатом в хранилище доверенных лиц, имеет соответствующую учетную запись на вычислительном устройстве.
US 20030070070 A1, 10.04.2003 | |||
СПОСОБ АУТЕНТИФИКАЦИИ ОБЪЕКТОВ | 2000 |
|
RU2184390C1 |
KR 20030026707 A, 03.04.2003 | |||
Устройство для регулирования плотности петель на плосковязальных машинах | 1983 |
|
SU1479007A3 |
Рудоспуск | 1985 |
|
SU1259045A1 |
Авторы
Даты
2010-05-27—Публикация
2005-08-01—Подача