Код документа: RU2763516C2
Предшествующий уровень техники
[0001] Вычислительные устройства становятся все более взаимно соединенными, в результате чего этим устройствам становятся доступными услуги, которые обеспечивают большое количество информации и/или функциональности пользователям этих устройств. Доступность этой информации и функциональности полезна для пользователей, но также имеет свои проблемы. Одна такая проблема состоит в том, что пользователи также зачастую желают сохранять свою конфиденциальность. Однако доступ к этим услугам может предусматривать, по меньшей мере, некоторую идентификацию пользователя и/или пользовательского устройства, что при распространении или совместном использовании с другими услугами снизило бы конфиденциальность, которой обладают пользователи. Это может приводить к неудовлетворенности пользователей их устройствами и/или услугами, к которым они осуществляют доступ.
Краткое описание сущности изобретения
[0002] Настоящее краткое описание сущности изобретения приведено для введения упрощенной форме подборки концепций, которые дополнительно будут описаны ниже в подробном описании. Настоящее краткое описание сущности изобретения не предназначено, чтобы идентифицировать ключевые признаки или существенные признаки заявленного изобретения, а также не предназначено, чтобы использоваться для ограничения объема заявленного изобретения.
[0003] В соответствии с одним или несколькими аспектами, в службе аттестации от вычислительного устройства принимается запрос на сертификат аттестации для вычислительного устройства. Запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение вычислительного устройства. Принятая информация верифицируется, и выбирается пара асимметричных ключей из совокупности пар асимметричных ключей, причем выбранная пара ключей также выбирается для множества дополнительных вычислительных устройств. Генерируется сертификат аттестации для вычислительного устройства, связывающий общедоступный ключ выбранной пары ключей с сертификатом аттестации. Секретный ключ выбранной пары ключей зашифровывается для первого вычислительного устройства. Зашифрованный секретный ключ выбранной пары ключей и сертификат аттестации возвращаются на первое вычислительное устройство.
[0004] В соответствии с одним или несколькими аспектами, в вычислительном устройстве запрос на сертификат аттестации для вычислительного устройства отправляется в службу аттестации, запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение вычислительного устройства. Пара общедоступного/секретного ключей и сертификат аттестации, который связывает пару общедоступного/секретного ключей с доверенным безопасным компонентом вычислительного устройства, принимаются от службы аттестации. Секретный ключ из пары общедоступного/секретного ключей сохраняется в безопасном хранилище доверенного безопасного компонента. Одна или несколько дополнительных пар общедоступного/секретного ключей и один или несколько дополнительных сертификатов аттестации генерируются без осуществления доступа к службе аттестации, причем дополнительные сертификаты аттестации привязываются к службе аттестации.
Краткое описание чертежей
[0005] Подробное описание излагается со ссылкой на прилагаемые чертежи. На чертежах, крайняя левая цифра(ы) ссылочной позиции идентифицирует чертеж, на котором впервые появляется ссылочная позиция. Использование одних и тех же ссылочных позиций в разных случаях в описании и на чертежах может указывать аналогичные или идентичные элементы. Объекты, представленные на чертежах, могут указывать один или несколько объектов, и ссылки могут даваться взаимозаменяемо на одиночные или множественные формы объектов в обсуждении.
[0006] Фиг. 1 иллюстрирует примерную систему, реализующую генерирование удостоверения аттестации ключа с обеспечением анонимности устройства в соответствии с одним или несколькими вариантами осуществления.
[0007] Фиг. 2 иллюстрирует примерную службу аттестации в соответствии с одним или несколькими вариантами осуществления.
[0008] Фиг. 3 иллюстрирует примерный доверенный безопасный компонент в соответствии с одним или несколькими вариантами осуществления.
[0009] Фиг. 4 представляет собой блок–схему последовательности операций, иллюстрирующую примерный процесс для реализации генерирования удостоверения аттестации ключа, обеспечивая анонимность устройства в соответствии с одним или несколькими вариантами осуществления.
[0010] Фиг. 5 представляет собой блок–схему последовательности операций, иллюстрирующую другой примерный процесс для реализации генерирования удостоверения аттестации ключа, обеспечивая анонимность устройства в соответствии с одним или несколькими вариантами осуществления.
[0011] Фиг. 6 иллюстрирует примерную систему, которая включает в себя примерное вычислительное устройство, которое представляет одну или несколько систем и/или устройств, которые могут реализовывать различные методы, описанные здесь.
Подробное описание
[0012] Здесь обсуждается генерирование удостоверения аттестации ключа с обеспечением анонимности устройства. Чтобы вычислительное устройство осуществляло доступ к системе, которая требует доказательства, что вычислительное устройство представляет собой то устройство, каким оно заявляет себя, вычислительное устройство получает сертификат аттестации от доверенной третьей стороны. Эта доверенная третья сторона также упоминается как служба аттестации или орган сертификации. Вычислительное устройство отправляет запрос на сертификат аттестации в службу аттестации вместе с информацией касательно аппаратных средств вычислительного устройства и опционально программного обеспечения, работающего на вычислительном устройстве. Эта информация исходит от доверенного безопасного компонента вычислительного устройства и, таким образом, может признаваться доверенной со стороны службы аттестации. Вычислительное устройство также отправляет общедоступный ключ ключа шифрования в службу аттестации. Этот ключ шифрования представляет собой пару асимметричных ключей, которая находится в доверенном безопасном компоненте вычислительного устройства, который обеспечивает, что секретный ключ ключа шифрования не может быть добыт вредоносным программным обеспечением из вычислительного устройства и использоваться где–либо еще.
[0013] Служба аттестации обрабатывает запрос сертификата аттестации и верифицирует информацию, принятую от вычислительного устройства. Эта верификация может включать в себя различные действия, такие как верифицирование того, что вычислительное устройство включает в себя конкретные аппаратные средства, верифицирование того, что конкретное программное обеспечение работает на вычислительном устройстве, и так далее. После того, как служба аттестации верифицирует свойства аппаратных средств и/или программного обеспечения запроса сертификата аттестации, служба аттестации убеждается, что свойства являются подлинными, следовательно, она может верифицировать посредством индукции, что если подлинные свойства являются доказательством наличия ключа шифрования, принадлежащего доверенному безопасному компоненту, то что–либо, зашифрованное общедоступным ключом ключа шифрования, может быть дешифровано только доверенным безопасным компонентом.
[0014] Служба аттестации поддерживает совокупность неоднократно используемых пар общедоступного/секретного ключей. После верифицирования информации, принятой от вычислительного устройства, служба аттестации выбирает пару общедоступного/секретного ключей из совокупности неоднократно используемых пар общедоступного/секретного ключей и генерирует сертификат аттестации для вычислительного устройства и общедоступного ключа пары общедоступного/секретного ключей. Этот сертификат аттестации подписывается цифровым образом службой аттестации, сертифицируя, что общедоступный ключ выбранной пары общедоступного/секретного ключей ассоциирован с доверенным безопасным компонентом вычислительного устройства. Этот сертификат аттестации, таким образом, также упоминается как удостоверение аттестации или удостоверение аттестации ключа.
[0015] Служба аттестации возвращает сертификат аттестации на вычислительное устройство вместе с секретным ключом выбранной пары общедоступного/секретного ключей. Секретный ключ зашифрован ключом, связанным с доверенным безопасным компонентом вычислительного устройства, позволяя безопасно передавать секретный ключ на доверенный безопасный компонент вычислительного устройства. Доверенный безопасный компонент принимает и сохраняет сертификат аттестации, а также пару общедоступного/секретного ключей.
[0016] При последующем осуществлении связи с полагающейся (доверяющей) стороной, которая желает иметь доказательство, что вычислительное устройство представляет собой тот субъект, как оно заявляет себя, доверенный безопасный компонент обеспечивает доверяющей стороне доказательство обладания сертификатом аттестации и парой общедоступного/секретного ключей. Это доказательство может обеспечиваться различными способами, например, путем цифрового подписания, с использованием секретного ключа пары общедоступного/секретного ключей, значения данных (например, однократно используемого случайного числа), предоставляемого доверенному безопасному компоненту доверяющей стороной.
[0017] Служба аттестации может выбрать и выбирает одну и ту же пару общедоступного/секретного ключей из совокупности пар общедоступного/секретного ключей для множества разных вычислительных устройств, запрашивающих сертификат аттестации. Соответственно, множество разных вычислительных устройств будет использовать одну и ту же пару общедоступного/секретного ключей в одно и то же время. Разрешение множеству разных вычислительных устройств иметь одну и ту же пару общедоступного/секретного ключей препятствует разным доверяющим сторонам вступать в сговор и определять идентификационную информацию конкретного вычислительного устройства. Например, если доступ к двум разным доверяющим сторонам осуществляется одним или несколькими вычислительными устройствами с использованием одной и той же пары общедоступного/секретного ключей и сертификата аттестации, две разные доверяющие стороны не могут знать, осуществляется ли доступ одним и тем же вычислительным устройством к обеим из них или двумя разными вычислительными устройствами, которым была дана та же самая пара общедоступного/секретного ключей. Это обеспечивает анонимность для вычислительных устройств, поскольку доверяющие стороны не могут вступать в сговор и совместно использовать информацию касаемо конкретного вычислительного устройства, поскольку доверяющие стороны не могут быть уверены, что они осуществляют связь с тем же самым вычислительным устройством.
[0018] Дополнительно, доверенный безопасный компонент может опционально использовать пару общедоступного/секретного ключей, принятую от службы аттестации, чтобы сгенерировать свои собственные пары общедоступного/секретного ключей и сертификаты аттестации, которые привязываются к службе аттестации. Это позволяет доверенному безопасному компоненту генерировать новые пары общедоступного/секретного ключей и сертификаты аттестации для использования с разными доверяющими сторонами. Более того, каждая из этих новых пар общедоступного/секретного ключей привязывается к ключу службы аттестации, который был предоставлен множеству разных вычислительных устройств, таким образом позволяя доверенному безопасному компоненту быстро генерировать новые пары общедоступного/секретного ключей (без необходимости доступа к службе аттестации), в то же время по–прежнему обеспечивая анонимность тех же самых пар общедоступного/секретного ключей, выбираемых для разных вычислительных устройств.
[0019] Здесь делаются ссылки на криптографию на основе симметричного ключа, криптографию на основе общедоступного ключа и пары общедоступного/секретного ключей. Хотя такая криптография на основе ключей хорошо известна специалистам в данной области техники, краткий обзор такой криптографии включен здесь, чтобы помочь читателю. В криптографии на основе общедоступного ключа (также называемой криптографией на основе пары асимметричных общедоступного/секретного ключей), субъект (такой как пользователь, компонент аппаратных средств или программного обеспечения, устройство, область и так далее) имеет ассоциированную с ним пару общедоступного/секретного ключей. Эта пара общедоступного/секретного ключей также называется парой асимметричных ключей. Общедоступный ключ может делаться публично доступным, но субъект сохраняет секретный ключ тайным. Без секретного ключа вычислительно очень сложно дешифровать данные, которые зашифрованы с использованием общедоступного ключа. Поэтому, данные могут быть зашифрованы любым субъектом при помощи общедоступного ключа и дешифрованы только субъектом с соответствующим секретным ключом. Дополнительно, цифровая подпись для данных может генерироваться с использованием данных и секретного ключа. Без секретного ключа вычислительно очень сложно создать подпись, которая может быть верифицирована с использованием общедоступного ключа. Любой субъект с общедоступным ключом может использовать общедоступный ключ, чтобы верифицировать цифровую подпись путем исполнения подходящего алгоритма верификации цифровой подписи на общедоступном ключе, подписи и данных, которые были подписаны.
[0020] В криптографии на основе симметричного ключа, с другой стороны, совместно используемый ключ (также упоминаемый как симметричный ключ) известен и сохраняется в секрете двумя субъектами. Любой субъект, имеющий совместно используемый ключ, обычно способен дешифровывать данные, зашифрованные с помощью этого совместно используемого ключа. Без совместно используемого ключа вычислительно очень сложно дешифровать данные, которые зашифрованы с помощью совместно используемого ключа. Поэтому, если два субъекта оба знают совместно используемый ключ, каждый может зашифровывать данные, которые могут быть дешифрованы другим, но другие субъекты не могут дешифровать данные, если эти другие субъекты не знают совместно используемый ключ. Аналогично, субъект с совместно используемым ключом может зашифровывать данные, которые могут быть дешифрованы тем же самым субъектом, но другие субъекты не могут дешифровать данные, если эти другие субъекты не знают совместно используемый ключ. Дополнительно, цифровые подписи могут генерироваться, основываясь на криптографии на основе симметричного ключа, например, с использованием механизма кода аутентификации сообщения с хешированием по ключу. Любой субъект с совместно используемым ключом может генерировать и верифицировать цифровую подпись. Например, доверенная третья сторона может генерировать симметричный ключ на основе идентификационной информации конкретного субъекта и затем может генерировать и верифицировать цифровые подписи для этого конкретного субъекта (например, путем шифрования или дешифрования данных с использованием симметричного ключа).
[0021] Фиг. 1 иллюстрирует примерную систему 100, реализующую генерирование удостоверения аттестации ключа, обеспечивающего анонимность устройства в соответствии с одним или несколькими вариантами осуществления. Система 100 включает в себя вычислительное устройство 102, которое может осуществлять связь со службой 104 аттестации и системой 106 доверяющей стороны через сеть 108. Сеть 108 может представлять собой разнообразные сети, включая Интернет, локальную сеть (LAN), телефонную сеть, интранет, другие общедоступные и/или проприетарные сети, их комбинации и так далее.
[0022] Вычислительное устройство 102 может представлять собой большое разнообразие разных типов устройств. Например, вычислительное устройство 102 может представлять собой настольный компьютер, серверный компьютер, ноутбук или нетбук, мобильное устройство (например, планшет или планшетофон, сотовый или другой беспроводной телефон (например, смартфон), компьютер–блокнот, мобильную станцию), носимое устройство (например, очки, наголовный дисплей, часы, браслет, устройства дополненной реальности, устройства виртуальной реальности (VR)), развлекательное устройство (например, развлекательную электронную технику, телевизионную приставку, коммуникативно связанную с устройством отображения, игровую консоль), устройства Интернета вещей (IoT) (например, объекты или вещи с программным обеспечением, прошивкой и/или аппаратными средствами для обеспечения возможности связи с другими устройствами), телевизор или другое устройство отображения, автомобильный компьютер и так далее. Таким образом, вычислительное устройство 102 может иметь диапазон от полно–ресурсного устройства с достаточными ресурсами памяти и процессора (например, персональные компьютеры, игровые консоли) до низко–ресурсного устройства с ограниченными ресурсами памяти и/или обработки (например, традиционные телевизионные приставки, портативные игровые консоли).
[0023] Служба 104 аттестации представляет собой службу или систему, реализуемую посредством одного или нескольких вычислительных устройств одного и того же или разных типов. Аналогично обсуждению вычислительного устройства 102, служба 104 аттестации может быть реализована посредством разнообразных типов устройств, в диапазоне от полно–ресурсных устройств с достаточными ресурсами памяти и процессора до низко–ресурсных устройств с ограниченными ресурсами памяти и/или обработки.
[0024] Система 106 доверяющей стороны реализуется посредством одного или нескольких вычислительных устройств одного и того же или разных типов. Аналогично обсуждению вычислительного устройства 102, система 106 доверяющей стороны может быть реализована посредством разнообразных типов устройств, в диапазоне от полно–ресурсных устройств с достаточными ресурсами памяти и процессора до низко–ресурсных устройств с ограниченными ресурсами памяти и/или обработки.
[0025] Фиг. 1 иллюстрирует примерную систему 100 с одним вычислительным устройством 102, одной службой 104 аттестации и одной системой 106 доверяющей стороны. Однако следует отметить, что система 100 может включать в себя множество вычислительных устройств 102, множество служб 104 аттестации и/или множество систем 106 доверяющей стороны.
[0026] Вычислительное устройство 102 включает в себя доверенный безопасный компонент 112, одно или несколько приложений 114 и операционную систему 116. Доверенный безопасный компонент 112 представляет собой компонент, который признается заслуживающим доверия со стороны службы 104 аттестации. Доверенный безопасный компонент 112 обсуждается более подробно ниже и может включать в себя конкретные компоненты аппаратных средств, конкретные компоненты программного обеспечения, загружающие или запускающие вычислительное устройство 102 конкретным образом или в конкретной последовательности, и т.д.
[0027] Операционная система 116 включает в себя одну или несколько программ, которые обеспечивают различную функциональность вычислительному устройству 102, включая обеспечение связи с компонентами аппаратных средств вычислительного устройства 102. Одно или несколько приложений 114 могут работать на операционной системе 116, такие как развлекательные приложения, образовательные приложения, приложения продуктивности и так далее. Программы операционной системы 116 и/или приложения 114 могут осуществлять доступ к системе 106 доверяющей стороны. Хотя проиллюстрированы как отдельные от доверенного безопасного компонента 112, одно или несколько приложений 114 могут быть включены в доверенный безопасный компонент 112, и/или по меньшей мере часть операционной системы 116 может быть включена в доверенный безопасный компонент 112.
[0028] Система 106 доверяющей стороны может представлять собой любую из разнообразных систем, которые обеспечивают информацию или функциональность вычислительному устройству 102. Они могут представлять собой, например, системы, которые позволяют вычислительному устройству 102 осуществлять доступ к различным типам развлекательного контента (например, аудио– и/или видео–контента), системы, которые позволяют вычислительному устройству 102 запускать различные образовательные приложения или приложения продуктивности, системы, которые позволяют вычислительному устройству 102 осуществлять доступ к безопасной или конфиденциальной информации, и т.д.
[0029] Чтобы осуществить доступ к системе 106 доверяющей стороны, доверенный безопасный компонент 112 получает сертификат аттестации от службы 104 аттестации. В одном или нескольких вариантах осуществления, сертификаты аттестации, обсуждаемые здесь, представляют собой сертификаты X.509 в соответствии с любым из стандартов сертификатов X.509 (например, Запрос на комментарии Сетевой рабочей группы 1422 (Февраль 1993)). Доверенный безопасный компонент 112 отправляет в службу 104 аттестации запрос на сертификат аттестации, который включает в себя информацию, описывающую вычислительное устройство 102, включая информацию, описывающую доверенный безопасный компонент 112.
[0030] Служба 104 аттестации включает в себя систему 122 сертификатов аттестации, поддерживающую анонимность клиента, и совокупность 124 ключей. Совокупность 124 ключей представляет собой совокупность множества пар общедоступного/секретного ключей. Совокупность 124 ключей может поддерживаться множеством разных способов, например, в устройстве хранения (например, магнитном накопителе, твердотельном накопителе) или в другой памяти (например, оперативном запоминающем устройстве (RAM)). Система 122 сертификатов аттестации, поддерживающая анонимность клиента, принимает запрос на сертификат аттестации от доверенного безопасного компонента 112 и верифицирует информацию, принятую в качестве части запроса на сертификат аттестации. Эта верификация обсуждается более подробно ниже и может включать в себя различные действия, такие как верифицирование того, что вычислительное устройство включает в себя конкретные аппаратные средства, верифицирование того, что конкретное программное обеспечение работает на вычислительном устройстве, и т.д. Способ, которым выполняется верификация, может варьироваться на основе способа, которым реализован доверенный безопасный компонент 112.
[0031] Если система 122 сертификатов аттестации, поддерживающая анонимность клиента, не может верифицировать информацию, принятую в качестве части запроса на сертификат аттестации, то система 122 сертификатов аттестации, поддерживающая анонимность клиента, не издает сертификат аттестации для вычислительного устройства 102. Однако, если система 122 сертификатов аттестации, поддерживающая анонимность клиента, верифицирует информацию, принятую в качестве части запроса на сертификат аттестации, то система 122 сертификатов аттестации, поддерживающая анонимность клиента, выбирает пару общедоступного/секретного ключей из совокупности 124 ключей и генерирует сертификат аттестации для вычислительного устройства 102. Этот сертификат аттестации связывает доверенный безопасный компонент 112 с выбранной парой общедоступного/секретного ключей и подписывается цифровым образом системой 122 сертификатов аттестации, поддерживающей анонимность клиента.
[0032] Система 122 сертификатов аттестации, поддерживающая анонимность клиента, возвращает сертификат аттестации на вычислительное устройство 102 вместе с секретным ключом из выбранной пары общедоступного/секретного ключей. Система 122 сертификатов аттестации, поддерживающая анонимность клиента, зашифровывает секретный ключ при помощи ключа, связанного с доверенным безопасным компонентом 112, такого как общедоступный ключ пары общедоступного/секретного ключей доверенного безопасного компонента 112, позволяя безопасно передавать секретный ключ выбранной пары общедоступного/секретного ключей на доверенный безопасный компонент 112. Доверенный безопасный компонент 112 принимает и сохраняет сертификат аттестации, а также пару общедоступного/секретного ключей в хранилище 126 ключей.
[0033] Вычислительное устройство 102 может использовать систему 106 доверяющей стороны путем обеспечения доказательства системе 106 доверяющей стороны, что доверенному безопасному компоненту 112 был выдан сертификат аттестации службой 104 аттестации. При наличии сертификата аттестации и пары общедоступного/секретного ключей, выбранной для вычислительного устройства 102, это доказательство может быть предоставлено системе 106 доверяющей стороны множеством разных способов. Например, система 106 доверяющей стороны может предоставлять случайное число доверенному безопасному компоненту 112, и доверенный безопасный компонент 112 цифровым образом подписывает случайное число с использованием секретного ключа пары общедоступного/секретного ключей, принятой от службы 104 аттестации. Цифровая подпись службы 104 аттестации на сертификате аттестации может верифицироваться системой 106 доверяющей стороны с использованием общедоступного ключа службы 104 аттестации. Цифровая подпись на случайном числе может также верифицироваться системой 106 доверяющей стороны с использованием общедоступного ключа, включенного в сертификат аттестации, тем самым доказывая системе 106 доверяющей стороны, что сертификат аттестации (и общедоступный ключ, на который ссылается сертификат аттестации) был предоставлен вычислительному устройству 102 службой 104 аттестации.
[0034] Система 106 доверяющей стороны опционально включает в себя различные дополнительные проверки или верификации, чтобы позволять вычислительному устройству 102 использовать систему 106 доверяющей стороны. Например, система 106 доверяющей стороны может накладывать ограничение, что доверенный безопасный компонент 112 вычислительного устройства 102 должен по меньшей мере представлять собой конкретный номер версии.
[0035] Фиг. 2 иллюстрирует примерную службу 104 аттестации в соответствии с одним или несколькими вариантами осуществления. Служба 104 аттестации включает в себя систему 122 сертификатов аттестации, поддерживающую анонимность клиента, и совокупность 124 ключей. Система 122 сертификатов аттестации, поддерживающая анонимность клиента, включает в себя модуль 202 связи, модуль 204 верификации, модуль 206 выбора ключа и модуль 208 генерации сертификата аттестации.
[0036] Модуль 202 связи принимает запрос на сертификат аттестации от вычислительного устройства 102 согласно фиг. 1. Хотя обсуждается со ссылкой на вычислительное устройство 102 согласно фиг. 1, следует отметить, что служба 104 аттестации может принимать и обычно принимает запросы на сертификаты аттестации от множества разных вычислительных устройств 102. Запрос включает в себя информацию, описывающую вычислительное устройство 102, как обсуждается выше.
[0037] Модуль 204 верификации верифицирует информацию, описывающую вычислительное устройство 102. Конкретная информация, которая принимается от вычислительного устройства 102, может варьироваться, и способ, которым модуль 204 верификации верифицирует информацию, описывающую вычислительное устройство 102, также варьируется по меньшей мере частично на основе способа, которым реализован доверенный безопасный компонент 112.
[0038] Возвращаясь к фиг. 1, в общем, доверенный безопасный компонент 112 реализован так, что доверенный безопасный компонент 112 включает в себя аппаратные средства и/или программное обеспечение, которое позволяет вычислительному устройству 102 работать в состоянии, которое признано доверенным службой 104 аттестации. Состояние, которое признано доверенным службой 104 аттестации, представляет собой состояние, которое, например, защищено от вредоносного программного обеспечения, которое может атаковать вычислительное устройство 102, что позволяет службе 104 аттестации быть уверенной, что служба 104 аттестации осуществляет связь с вычислительным устройством 102 (или доверенным безопасным компонентом 112 вычислительного устройства 102), а не другим устройством, выдающим себя за вычислительное устройство 102 и/или доверенный безопасный компонент 112, и т.д.
[0039] В одном или нескольких вариантах осуществления, доверенный безопасный компонент 112 включает в себя безопасный криптопроцессор, который представляет собой модуль доверенной платформы (TPM). TPM включает в себя различную функциональность, такую как генерирование ключа, шифрование, дешифрование, безопасное хранение (например, регистры конфигурации платформы) и т.д. В одном или нескольких вариантах осуществления, TPM согласуется с версией 2.0 спецификации Модуля доверенной платформы Группы доверенного вычисления, опубликованной как спецификация Библиотеки модуля доверенной платформы, Семейство “2.0”, Уровень 00, Редакция 01.16 (30 октября, 2014), Части 1–4. Хотя ссылка здесь делается на TPM, доверенный безопасный компонент 112 может альтернативно использовать один или несколько других криптопроцессоров, которые обеспечивают функциональность, аналогичную TPM.
[0040] Доверенный безопасный компонент 112 имеет ассоциированную пару общедоступного/секретного ключей. Это позволяет другим устройствам или компонентам зашифровывать данные с использованием общедоступного ключа пары общедоступного/секретного ключей доверенного безопасного компонента, так что только доверенный безопасный компонент 112 может дешифровать данные. В одном или нескольких вариантах осуществления, доверенный безопасный компонент 112 может извлекать свою ассоциированную пару общедоступного/секретного ключей из TPM, только если вычислительное устройство 102 загрузилось в конкретный режим или запустило загрузку программного обеспечения в конкретном порядке. Это обеспечивает дополнительную защиту для доверенного безопасного компонента 112, позволяя доверенному безопасному компоненту 112 осуществлять доступ к своей ассоциированной паре общедоступного/секретного ключей, только если вычислительное устройство загрузилось в конкретный известный режим (например, безопасный или доверенный режим) или с помощью конкретного программного обеспечения (например, не вредоносного программного обеспечения).
[0041] В одном или нескольких вариантах осуществления, информация, описывающая вычислительное устройство 102, которая сопровождает запрос на сертификат аттестации, указывает работоспособность (или аттестацию работоспособности) вычислительного устройства 102. Работоспособность вычислительного устройства 102 может специфицироваться множеством разных способов, например, указанием, какие модули были загружены при начальной загрузке вычислительного устройства 102, указанием, были ли конкретный модуль или функциональность загружены при начальной загрузке вычислительного устройства 102, указанием, загрузилось ли вычислительное устройство 102 в конкретном режиме (например, в режиме безопасной начальной загрузки), указанием, включены ли или выключены конкретные функции безопасности, указанием, работает ли виртуальный безопасный режим (VSM) в вычислительном устройстве 102 (например, как часть доверенного безопасного компонента 112), и т.д.
[0042] Дополнительно или альтернативно, информация, описывающая вычислительное устройство 102, которая сопровождает запрос на сертификат аттестации, указывает, что доверенный безопасный компонент 112 представляет собой компонент (например, компонент аппаратных средств), который признан доверенным службой 104 аттестации (также упоминается как аттестация ключа). Доверенный безопасный компонент 112 может иметь пару общедоступного/секретного ключей, и общедоступный ключ этой пары общедоступного/секретного ключей может быть известен службе 104 аттестации. Таким образом, доверенный безопасный компонент 112 может обеспечивать указание, что он действительно является доверенным безопасным компонентом 112, путем цифрового подписания значения (например, случайного числа) с использованием секретного ключа пары общедоступного/секретного ключей доверенного безопасного компонента 112.
[0043] Возвращаясь к фиг. 2, модуль 204 верификации верифицирует информацию, описывающую вычислительное устройство 102, которая сопровождает запрос на сертификат аттестации. Например, для аттестации работоспособности, модуль 204 верификации может верифицировать, что информация, принятая от вычислительного устройства 102, указывает, что конкретные модули были загружены при начальной загрузке вычислительного устройства 102, что вычислительное устройство 102 загрузилось в конкретном режиме (например, в режиме безопасной начальной загрузки), что конкретные признаки безопасности включены или выключены, и т.д. В качестве другого примера, для аттестации ключа, модуль 204 верификации может верифицировать цифровую подпись на значении (например, случайном числе), подписанном цифровым образом доверенным безопасным компонентом 112.
[0044] Если модуль 204 верификации не верифицирует информацию, принятую от вычислительного устройства 102, то никакой ключ не выбирается для вычислительного устройства 102, и сертификат аттестации не генерируется для вычислительного устройства 102. Однако если модуль 204 верификации верифицирует информацию, принятую от вычислительного устройства 102, то модуль 206 выбора ключа выбирает пару асимметричных ключей (пару общедоступного/секретного ключей) из совокупности 124 ключей. Выбор может выполняться случайно, псевдослучайно или в соответствии с различными другими правилами или критериями.
[0045] Совокупность 124 ключей может иметь любое число пар асимметричных ключей, например, десятки, сотни, тысячи или более. Пары асимметричных ключей в совокупности 124 ключей могут быть сгенерированы предварительно (например, модулем 206 выбора ключа или другим модулем службы 104 аттестации до приема запроса на сертификат аттестации от вычислительного устройства 102) и поддерживаться в совокупности 124 ключей, затем выбираться, когда желательно, модулем 206 выбора ключа. Число пар асимметричных ключей, включенных в совокупность 124 ключей, может варьироваться на основе различных факторов. В одном или нескольких вариантах осуществления, число пар асимметричных ключей, включенных в совокупность 124 ключей, определяется балансированием анонимности вычислительных устройств по отношению к необходимости инвалидировать сертификаты аттестации, если ключ скомпрометирован (например, обнаружен или потенциально обнаружен вредоносным программным обеспечением). Например, меньше пар асимметричных ключей приводит к повышенной анонимности для вычислительных устройств, поскольку больше вычислительных устройств получают ту же самую пару асимметричных ключей, но также приводит к необходимости инвалидировать большое число сертификатов аттестации в случае, когда пара асимметричных ключей скомпрометирована, поскольку большое число вычислительных устройств получило скомпрометированную пару асимметричных ключей.
[0046] Следует также отметить, что пары асимметричных ключей, включенные в совокупность 124 ключей, могут изменяться по времени. Например, модуль 206 выбора ключа может генерировать новые пары асимметричных ключей для добавления в совокупность 124 ключей с регулярными или нерегулярными интервалами и может удалять пары асимметричных ключей из совокупности 124 ключей с регулярными или нерегулярными интервалами.
[0047] Модуль 208 генерации сертификата аттестации генерирует сертификат, который связывает сертификат с общедоступным ключом из выбранной пары общедоступного/секретного ключей. Сертификат аттестации также связывает доверенный безопасный компонент 112 (и/или вычислительное устройство 102) с общедоступным ключом из выбранной пары общедоступного/секретного ключей. Это связывание выполняется, например, тем, что сертификат, включающий в себя общедоступный ключ выбранной пары общедоступного/секретного ключей и секретный ключ выбранной пары общедоступного/секретного ключей, безопасно предоставляется на доверенный безопасный компонент 112 (например, зашифрован с использованием ключа доверенного безопасного компонента 112). Чтобы поддерживать анонимность доверенного безопасного компонента 112 (и/или вычислительного устройства 102), имя или другой идентификатор доверенного безопасного компонента 112 и/или вычислительного устройства 102 не требуется включать в генерируемый сертификат. Модуль 208 генерации сертификата аттестации цифровым образом подписывает сертификат с использованием общедоступного ключа пары общедоступного/секретного ключей службы 104 аттестации, создавая сертификат аттестации, который позволяет доверяющей стороне знать, что служба 104 аттестации верифицировала доверенный безопасный компонент 112 и выдала доверенному безопасному компоненту 112 выбранную пару общедоступного/секретного ключей.
[0048] Модуль 202 связи возвращает на доверенный безопасный компонент 112 сертификат аттестации, а также секретный ключ пары общедоступного/секретного ключей, выбранной модулем 206 выбора ключа. Секретный ключ выбранной пары общедоступного/секретного ключей зашифрован (например, с использованием общедоступного ключа пары общедоступного/секретного ключей доверенного безопасного компонента 112), так что секретный ключ безопасно передается на доверенный безопасный компонент 112 и не может быть считан какими–либо подслушивающими или другими промежуточными устройствами. Сертификат аттестации может также, но не обязательно, быть зашифрован, чтобы безопасно передаваться на доверенный безопасный компонент 112.
[0049] Таким образом, сертификат аттестации, сгенерированный модулем 208 генерации сертификата аттестации, включает в себя общедоступный ключ выбранной пары общедоступного/секретного ключей. Сертификат аттестации подписывается цифровым образом модулем 208 генерации сертификата аттестации, доказывая, что общедоступный ключ выбранной пары общедоступного/секретного ключей был выдан с этим сертификатом аттестации. Секретный ключ выбранной пары общедоступного/секретного ключей затем безопасно предоставляется на доверенный безопасный компонент 112. Когда вычислительное устройство 102 после этого желает осуществить доступ к доверяющей стороне 104, доверяющая сторона 104 может предоставить случайное число на доверенный безопасный компонент 112 вычислительного устройства. Доверенный безопасный компонент 112 цифровым образом подписывает случайное число с использованием секретного ключа выбранной пары общедоступного/секретного ключей и отправляет подписанное случайное число, а также сертификат аттестации доверяющей стороне 104. Доверяющая сторона 104 использует общедоступный ключ службы 104 аттестации, чтобы верифицировать, что модуль 208 генерации сертификата аттестации действительно цифровым образом подписал (и таким образом выдал) сертификат аттестации. Более того, доверяющая сторона 104 может использовать общедоступный ключ в сертификате аттестации, чтобы верифицировать, что случайное число было цифровым образом подписано доверенным безопасным компонентом, который был признан доверенным службой 104 аттестации (поскольку только доверенный безопасный компонент 112 имел бы секретный ключ, который является частью той же самой пары общедоступного/секретного ключей, что и общедоступный ключ в сертификате, если служба 104 аттестации доверяла доверенному безопасному компоненту 112 и выдала доверенному безопасному компоненту 112 секретный ключ). Доверяющая сторона 104 может таким образом верифицировать, что доверенный безопасный компонент 112 признан доверенным службой 104 аттестации, но сертификат, на который полагается доверяющая сторона 104, не обязательно должен иметь имя или другой идентификатор конкретного доверенного безопасного компонента 112 и/или вычислительного устройства 102.
[0050] Фиг. 3 иллюстрирует примерный доверенный безопасный компонент 112 в соответствии с одним или несколькими вариантами осуществления. Доверенный безопасный компонент 112 включает в себя хранилище 126 ключей, модуль 302 извлечения сертификата аттестации, модуль 304 генерации сертификата аттестации, модуль 306 генерации ключа и хранилище 308 сертификата.
[0051] Модуль 302 извлечения сертификата аттестации осуществляет связь со службой 104 аттестации, отправляя запрос на сертификат аттестации и принимая сертификат аттестации и зашифрованный секретный ключ от службы 104 аттестации. Пара общедоступного/секретного ключей (или по меньшей мере секретный ключ пары общедоступного/секретного ключей), принятая от службы 104 аттестации, сохраняется в хранилище 126 ключей. Сертификат аттестации, принятый от службы 104 аттестации, также сохраняется в хранилище 308 сертификата. Хранилище 126 ключей представляет собой безопасное хранилище, доступное только модулям доверенного безопасного компонента 112. Хранилище 308 сертификата может представлять собой, но не обязательно, безопасное хранилище. Дополнительно или альтернативно, сертификат аттестации может храниться вне доверенного безопасного компонента 112.
[0052] Доверенный безопасный компонент 112 признан доверенным службой 104 аттестации, и, таким образом, модуль 304 генерации сертификата аттестации может также генерировать сертификаты аттестации. Модуль 306 генерации ключа генерирует пары общедоступного/секретного ключей с использованием любого из разнообразных общедоступных или проприетарных методов. Модуль 304 генерации сертификата аттестации генерирует сертификат, который связывает сертификат с общедоступным ключом заново сгенерированной пары общедоступного/секретного ключей. Сертификат аттестации также связывает доверенный безопасный компонент 112 (и/или вычислительное устройство 102) с общедоступным ключом пары общедоступного/секретного ключей, заново сгенерированной модулем 306 генерации ключа. Это связывание выполняется, например, тем, что сертификат, включающий в себя общедоступный ключ заново сгенерированной пары общедоступного/секретного ключей и секретный ключ заново сгенерированной пары общедоступного/секретного ключей, поддерживается безопасным образом доверенным безопасным компонентом 112 (например, хранится в хранилище 126 ключей). Чтобы поддерживать анонимность доверенного безопасного компонента 112 (и/или вычислительного устройства 102), имя или другой идентификатор доверенного безопасного компонента 112 и/или вычислительного устройства 102 не требуется включать в заново сгенерированный сертификат. Модуль 304 генерации сертификата аттестации цифровым образом подписывает сертификат с использованием общедоступного ключа пары общедоступного/секретного ключей, принятой от службы 104 аттестации, создавая сертификат аттестации, который привязывается к службе 104 аттестации, и, таким образом, позволяет доверяющей стороне знать, что служба 104 аттестации верифицировала доверенный безопасный компонент 112. Более того, поскольку сертификаты аттестации, сгенерированные модулем 304 генерации сертификата аттестации, цифровым образом подписываются с использованием общедоступного ключа пары общедоступного/секретного ключей, принятой от службы 104 аттестации, и привязываются к службе 104 аттестации на основе этого общедоступного ключа, и множество разных вычислительных устройств будут принимать тот же самый общедоступный ключ и генерировать сертификаты аттестации на основе того же самого общедоступного ключа, анонимность вычислительного устройства 102 поддерживается, несмотря на генерирование вычислительным устройством 102 своих собственных сертификатов аттестации.
[0053] Пара общедоступного/секретного ключей (или по меньшей мере секретный ключ пары общедоступного/секретного ключей), сгенерированная модулем 306 генерации ключа, сохраняется в хранилище 126 ключей. Сертификат аттестации, сгенерированный модулем 304 генерации сертификата аттестации, сохраняется в хранилище 308 сертификата.
[0054] Модуль 304 генерации сертификата аттестации и модуль 306 генерации ключа могут генерировать новые ключи и сертификаты аттестации по желанию. Это позволяет генерировать новые ключи и сертификаты аттестации без осуществления доступа к сети 108 и службе 104 аттестации для каждого нового ключа и сертификата аттестации, сокращая количество времени, необходимого для получения нового ключа и сертификата аттестации. В качестве примера, новая пара общедоступного/секретного ключей и сертификат аттестации могут генерироваться для каждой новой системы 106 доверяющей стороны, доступ к которой осуществляется вычислительным устройством 102, для каждого нового веб–сайта, доступ к которому осуществляется веб–браузером, работающим на вычислительном устройстве 102, и т.д.
[0055] Фиг. 4 представляет собой блок–схему последовательности операций, иллюстрирующую примерный процесс 400 для реализации генерирования удостоверения аттестации ключа, обеспечивая анонимность устройства в соответствии с одним или несколькими вариантами осуществления. Процесс 400 выполняется службой аттестации, такой как служба 104 аттестации согласно фиг. 1 или фиг. 2, и может быть реализован в программном обеспечении, прошивке, аппаратных средствах или их комбинациях. Процесс 400 показан как набор действий и не ограничен показанным порядком для выполнения операций различных действий. Процесс 400 представляет собой примерный процесс для реализации генерирования удостоверения аттестации ключа с обеспечением анонимности устройства; дополнительные обсуждения реализации генерации удостоверения аттестации ключа с обеспечением анонимности устройства включены в настоящий документ со ссылкой на разные чертежи.
[0056] В процессе 400, принимается запрос на сертификат аттестации для вычислительного устройства (действие 402). Запрос включает в себя информацию, описывающую программное обеспечение и/или аппаратные средства вычислительного устройства. Информация может указывать работоспособность вычислительного устройства, и/или что доверенный безопасный компонент представляет собой компонент, который признан доверенным службой аттестации, как обсуждается выше.
[0057] Принятая информация верифицируется (действие 404). Способ, которым служба аттестации верифицирует информацию, варьируется, основываясь, по меньшей мере отчасти, на информации, которая принимается, как обсуждается выше.
[0058] Пара асимметричных ключей выбирается из совокупности асимметричных ключей (действие 406). Каждый из асимметричных ключей в совокупности ключей представляет собой пару общедоступного/секретного ключей, и одна из пар ключей выбирается различными способами, как обсуждается выше, например, случайно или псевдослучайно.
[0059] Генерируется сертификат аттестации для вычислительного устройства и выбранной пары ключей (действие 408). Сертификат аттестации связывает общедоступный ключ из выбранной пары ключей с сертификатом аттестации.
[0060] Секретный ключ из выбранной пары ключей также зашифровывается для вычислительного устройства (действие 410). Выбранная пара асимметричных ключей может зашифровываться, или только секретный ключ из выбранной пары асимметричных ключей может зашифровываться. Секретный ключ из выбранной пары ключей зашифровывается с использованием общедоступного ключа пары общедоступного/секретного ключей доверенного безопасного компонента вычислительного устройства. Общедоступный ключ доверенного безопасного компонента может быть включен в информацию, описывающую вычислительное устройство, принятую в действии 402, или может быть получен иным образом.
[0061] Зашифрованный секретный ключ выбранной пары ключей и сертификат аттестации возвращаются на вычислительное устройство (действие 412). Зашифрованный секретный ключ выбранной пары ключей и сертификат аттестации могут возвращаться различными способами, например, передаваться на вычислительное устройство через сеть.
[0062] Фиг. 5 представляет собой блок–схему последовательности операций, иллюстрирующую примерный процесс 500 для реализации генерации удостоверения аттестации ключа, обеспечивая анонимность устройства в соответствии с одним или несколькими вариантами осуществления. Процесс 500 выполняется вычислительным устройством, таким как вычислительное устройство 102 согласно фиг. 1, и может быть реализован в программном обеспечении, прошивке, аппаратных средствах или их комбинациях. Процесс 500 показан как набор действий и не ограничен показанным порядком для выполнения операций различных действий. Процесс 500 представляет собой примерный процесс для реализации генерирования удостоверения аттестации ключа с обеспечением анонимности устройства; дополнительные обсуждения реализации генерирования удостоверения аттестации ключа с обеспечением анонимности устройства включены в настоящий документ со ссылкой на разные чертежи.
[0063] В процессе 500, запрос на сертификат аттестации для вычислительного устройства отправляется в службу аттестации (действие 502). Запрос включает в себя информацию, описывающую программное обеспечение и/или аппаратные средства вычислительного устройства. Информация может указывать техническое состояние вычислительного устройства, и/или что доверенный безопасный компонент представляет собой компонент, который признан доверенным службой аттестации, как обсуждается выше.
[0064] В ответ на запрос, пара общедоступного/секретного ключей и сертификат аттестации принимается от службы аттестации (действие 504). Пара общедоступного/секретного ключей и сертификат аттестации принимаются, если информация для вычислительного устройства, отправленная на службу аттестации в действии 502, верифицирована службой аттестации. Сертификат аттестации связывает общедоступный ключ из принятой пары общедоступного/секретного ключей с вычислительным устройством (и/или доверенным безопасным компонентом вычислительного устройства). Это связывание выполняется тем, что, например, сертификат аттестации, включающий в себя общедоступный ключ принятой пары общедоступного/секретного ключей и секретный ключ принятой пары общедоступного/секретного ключей, безопасно предоставляется на вычислительное устройство (например, зашифрован с использованием ключа доверенного безопасного компонента вычислительного устройства).
[0065] Принятая пара общедоступного/секретного ключей и сертификат аттестации сохраняются (действие 506). Секретный ключ принятой пары общедоступного/секретного ключей сохраняется в безопасном хранилище доверенного безопасного компонента вычислительного устройства. Общедоступный ключ принятой пары общедоступного/секретного ключей и сертификат аттестации могут сохраняться в безопасном хранилище или альтернативно где–либо еще.
[0066] Генерируются одна или несколько дополнительных пар общедоступного/секретного ключей и сертификатов аттестации, которые привязаны к службе аттестации (действие 508). Эти дополнительные пары общедоступного/секретного ключей и сертификаты аттестации генерируются доверенным безопасным компонентом без осуществления доступа к службе аттестации.
[0067] Хотя конкретная функциональность обсуждается здесь со ссылкой на конкретные модули, следует отметить, что функциональность отдельных модулей, обсуждаемых здесь, может разделяться на множество модулей, и/или по меньшей мере некоторая функциональность множества модулей может комбинироваться в один модуль. Дополнительно, конкретный модуль, обсуждаемый здесь как выполняющий действие, включает в себя сам этот конкретный модуль, выполняющий действие, или альтернативно, этот конкретный модуль вызывает или иным образом осуществляет доступ к другому компоненту или модулю, который выполняет действие (или выполняет действие во взаимосвязи с этим конкретным модулем). Таким образом, конкретный модуль, выполняющий действие, включает в себя конкретный модуль, сам выполняющий действие, и/или другой модуль, который вызван или к которому иным образом осуществлен доступ этим конкретным модулем, выполняющим действие.
[0068] Фиг. 6 иллюстрирует примерную систему, обозначенную в общем 600, которая включает в себя примерное вычислительное устройство 602, которое представляет одну или несколько систем и/или устройств, которые могут реализовывать различные методы, описанные здесь. Вычислительное устройство 602 может представлять собой, например, сервер провайдера услуг, устройство, ассоциированное с клиентом (например, клиентское устройство), систему на чипе и/или любое другое подходящее вычислительное устройство или вычислительную систему.
[0069] Примерное вычислительное устройство 602, как проиллюстрировано, включает в себя систему 604 обработки, один или несколько считываемых компьютером носителей 606 и один или несколько интерфейсов 608 I/O, которые коммуникативно связаны друг с другом. Хотя не показано, вычислительное устройство 602 может дополнительно включать в себя системную шину или другую систему переноса данных и команд, которая связывает различные компоненты друг с другом. Системная шина может включать в себя любую одну или комбинацию разных шинных структур, таких как шина памяти или контроллер памяти, периферийная шина, универсальная последовательная шина и/или процессор или локальная шина, которая использует любую из разнообразных шинных архитектур. Возможны также различные другие примеры, например, линии управления и данных.
[0070] Система 604 обработки представляет функциональность для выполнения одной или нескольких операций с использованием аппаратных средств. Соответственно, система 604 обработки проиллюстрирована как включающая в себя элементы 610 аппаратных средств, которые могут быть сконфигурированы как процессоры, функциональные блоки и т.д. Это может включать в себя реализацию в аппаратных средствах как специализированную интегральную схему или другое логическое устройство, сформированное с использованием одного или нескольких полупроводников. Элементы 610 аппаратных средств не ограничены материалами, из которых они сформированы, или механизмами обработки, используемыми в них. Например, процессоры могут состоять из полупроводника(ов) и/или транзисторов (например, электронных интегральных схем (IC)). В таком контексте, исполняемые процессором инструкции могут представлять собой электронно–исполняемые инструкции.
[0071] Считываемые компьютером носители 606 проиллюстрированы как включающие в себя память/хранилище 612. Память/хранилище 612 представляет емкость памяти/хранилища, ассоциированную с одним или несколькими считываемыми компьютером носителями. Память/хранилище 612 может включать в себя энергозависимые носители (такие как оперативное запоминающее устройство (RAM)) и/или энергонезависимые носители (такие как постоянное запоминающее устройство (ROM), резистивное ОЗУ (ReRAM), флэш–память, оптические диски, магнитные диски и так далее). Память/хранилище 612 может включать в себя фиксированные носители (например, RAM, ROM, фиксированный жесткий диск и т.д.), а также съемные носители (например, флэш–память, съемный жесткий диск, оптический диск и т.д.). Память/хранилище 612 может включать в себя память класса хранения (SCM), такую как память 3D Xpoint, доступную от Intel Corporation, Santa Clara, шт. Калифорния, или Micron Technology, Inc., Boise, шт. Айдахо. Считываемые компьютером носители 606 могут быть сконфигурированы множеством других способов, как дополнительно описано ниже.
[0072] Один или несколько интерфейсов 608 ввода/вывода представляют функциональность, позволяющую пользователю вводить команды и информацию в вычислительное устройство 602, а также позволять представлять информацию пользователю и/или другим компонентам или устройствам с использованием различных устройств ввода/вывода. Примеры устройств ввода включают в себя клавиатуру, устройство управления курсором (например, мышь), микрофон (например, для голосовых вводов), сканер, функциональность касания (например, емкостные или другие датчики, которые сконфигурированы, чтобы обнаруживать физическое касание), камеру (которая может использовать диапазон видимых или невидимых длин волн, например, инфракрасных частот, для обнаружения движения, которое не использует касание в качестве жестов) и т.д. Примеры устройств вывода включают в себя устройство отображения (например, монитор или проектор), динамики, принтер, сетевую карту, устройство тактильного отклика и т.д. Таким образом, вычислительное устройство 602 может быть сконфигурировано множеством способов, как дополнительно описано ниже, для поддержки пользовательского взаимодействия.
[0073] В одном или нескольких вариантах осуществления, вычислительное устройство 602 представляет собой вычислительное устройство 102 согласно фиг. 1 и включает в себя доверенный безопасный компонент 614. Доверенный безопасный компонент 614 получает сертификат аттестации от службы аттестации и также генерирует дополнительные пары общедоступного/секретного ключей и сертификаты аттестации, которые привязаны к службе аттестации, как обсуждается выше. Доверенный безопасный компонент 614 может реализовывать, например, доверенный безопасный компонент 112 согласно фиг. 1 или фиг. 3.
[0074] Альтернативно, вычислительное устройство 602 представляет собой вычислительное устройство, которое реализует по меньшей мере часть службы 104 аттестации согласно фиг. 1 или фиг. 2. В таких ситуациях вычислительное устройство 602 не обязательно включает в себя доверенный безопасный компонент 614. Напротив, вычислительное устройство 602 включает в себя систему сертификатов аттестации, поддерживающую анонимность клиента, такую как система 122 сертификатов аттестации, поддерживающая анонимность клиента, согласно фиг. 1 или фиг. 2.
[0075] Различные методы могут быть описаны здесь в общем контексте программного обеспечения, элементов аппаратных средств или программных модулей. В общем, такие модули включают в себя подпрограммы, программы, объекты, элементы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. Термины “модуль”, “функциональность” и “компонент”, как использовано здесь, в общем представляют программное обеспечение, прошивку, аппаратные средства или их комбинацию. Свойства методов, описанных здесь, не зависят от платформы, что означает, что методы могут быть реализованы на различных вычислительных платформах, имеющих различные процессоры.
[0076] Реализация описанных модулей и методов может храниться или передаваться на считываемых компьютером носителях некоторой формы. Считываемые компьютером носители могут включать в себя различные носители, доступ к которым может осуществляться вычислительным устройством 602. В качестве примера, но не для ограничения, считываемые компьютером носители могут включать в себя “считываемые компьютером носители информации” и “считываемые компьютером носители сигнала”.
[0077] “Считываемые компьютером носители информации” относятся к носителям и/или устройствам, которые обеспечивают возможность постоянного хранения информации и/или хранения, которое является осязаемым, в противоположность к просто передаче сигнала, несущим волнам или сигналам как таковым. Таким образом, считываемые компьютером носители информации относятся к не несущим сигнал носителям. Считываемые компьютером носители информации включают в себя аппаратные средства, такие как энергозависимые и энергонезависимые, съемные и несъемные носители и/или устройства хранения, реализуемые способом или технологией, подходящей для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули, логические элементы/схемы или другие данные. Примеры считываемых компьютером носителей могут включать в себя, но без ограничения, RAM, ROM, EEPROM, флэш–память или другую технологию памяти, CD–ROM, цифровые универсальные диски (DVD) или другое оптическое хранилище, жесткие диски, магнитные кассеты, магнитную ленту, хранилище на магнитном диске или другие магнитные устройства хранения или другое устройство хранения, осязаемые носители или продукт производства, подходящий для хранения желательной информации и доступ к которому может осуществляться компьютером.
[0078] “Считываемые компьютером носители сигнала” относятся к несущему сигнал носителю, который сконфигурирован, чтобы передавать инструкции на аппаратные средства вычислительного устройства 602, например, через сеть. Носители сигнала обычно могут воплощать считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущие волны, сигналы данных или другой транспортный механизм. Носители сигнала также включают в себя любые носители доставки информации. Термин “модулированный сигнал данных” означает сигнал, который имеет одну или несколько из своих характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, носители (среды) связи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, RF, инфракрасные и другие беспроводные среды.
[0079] Как описано ранее, элементы 610 аппаратных средств и считываемые компьютером носители 606 представляют инструкции, модули, программируемую логику устройства и/или фиксированную логику устройства, реализованные в форме аппаратных средств, которые могут применяться в некоторых вариантах осуществления для реализации по меньшей мере некоторых аспектов описанных методов. Элементы аппаратных средств могут включать в себя компоненты интегральной схемы или системы на чипе, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), сложное программируемое логическое устройство (CPLD) и другие реализации в кремнии или другие аппаратные устройства. В этом контексте, элемент аппаратных средств может работать в качестве устройства обработки, которое выполняет программные задачи, определенные инструкциями, модулями и/или логикой, воплощенными посредством элемента аппаратных средств, а также аппаратного устройства, используемых для хранения инструкций для исполнения, например, вышеописанных считываемых компьютером носителей.
[0080] Комбинации вышеописанного также могут применяться, чтобы реализовывать различные методы и модули, описанные в настоящем документе. Соответственно, программное обеспечение, аппаратные средства или программные модули и другие программные модули, могут быть реализованы как одна или несколько инструкций и/или логика, воплощенная на считываемом компьютером носителе некоторой формы и/или посредством одного или нескольких элементов 610 аппаратных средств. Вычислительное устройство 602 может быть сконфигурировано, чтобы реализовывать конкретные инструкции и/или функции, соответствующие модулям программного обеспечения и/или аппаратных средств. Соответственно, реализация модулей в качестве модуля, который исполняется вычислительным устройством 602 как программное обеспечение, может быть осуществлена, по меньшей мере отчасти, в аппаратных средствах, например, с использованием считываемых компьютером носителей и/или элементов 610 аппаратных средств системы обработки. Инструкции и/или функции могут исполняться/приводиться в действие одним или несколькими продуктами производства (например, одним или несколькими вычислительными устройствами 602 и/или системами 604 обработки), чтобы реализовывать методы, модули и примеры, описанные в настоящем документе.
[0081] Как дополнительно проиллюстрировано на фиг. 6, примерная система 600 позволяет реализовать повсеместные среды для обеспечения непрерывного пользовательского опыта при выполнении приложений на персональном компьютере (PC), телевизионном устройстве и/или мобильном устройстве. Услуги и приложения работают по существу аналогично во всех трех средах для обычного пользовательского опыта при переходе от одного устройства к другому при использовании приложения, участии в видеоигре, просмотре видео и так далее.
[0082] В примерной системе 600, множество устройств соединены между собой через центральное вычислительное устройство. Центральное вычислительное устройство может быть локальным для множества устройств или может быть расположено удаленно от множества устройств. В одном или нескольких вариантах осуществления, центральное вычислительное устройство может представлять собой облако из одного или нескольких серверных компьютеров, которые соединены с множеством устройств через сеть, Интернет или другую линию связи данных.
[0083] В одном или нескольких вариантах осуществления, эта архитектура взаимного соединения позволяет доставлять функциональность по множеству устройств для обеспечения общего и непрерывного опыта работы пользователю множества устройств. Каждое из множества устройств может иметь разные физические требования и возможности, и центральное вычислительное устройство использует платформу, чтобы обеспечивать опыт работы на устройстве, который является как приспособленным к устройству, так и общим для всех устройств. В одном или нескольких вариантах осуществления, создается класс целевых устройств, и опыты работы приспосабливаются к родовому классу устройств. Класс устройств может идентифицироваться физическими признаками, типами использования или другими общими характеристиками устройств.
[0084] В различных реализациях, вычислительное устройство 602 может предполагать разнообразные конфигурации, например, для использований компьютера 616, мобильного телефона 618 и телевизора 620. Каждая из этих конфигураций включает в себя устройства, которые могут иметь в общем разные конструкции и возможности, и, таким образом, вычислительное устройство 602 может быть сконфигурировано в соответствии с одним или несколькими разными классами устройств. Например, вычислительное устройство 602 может быть реализовано как устройство класса компьютера 616, который включает в себя персональный компьютер, настольный компьютер, компьютер с множеством экранов, ноутбук, нетбук и так далее.
[0085] Вычислительное устройство 602 может также быть реализовано как устройство класса мобильных устройств 618, который включает в себя мобильные устройства, такие как мобильный телефон, портативный музыкальный проигрыватель, портативное игровое устройство, планшет, компьютер с множеством экранов и так далее. Вычислительное устройство 602 может также быть реализовано как устройство класса телевизора 620, который включает в себя устройства, имеющие или соединенные с большими экранами в обычных средах просмотра. Эти устройства включают в себя телевизоры, телевизионные приставки, игровые консоли и т.д.
[0086] Методы, описанные в настоящем документе, могут поддерживаться этими различными конфигурациями вычислительного устройства 602 и не ограничены конкретными примерами описанных методов. Эта функциональность может также быть реализована полностью или частично через использование распределенной системы, например, по “облаку” 622 посредством платформы 624, как описано ниже.
[0087] Облако 622 включает в себя и/или представляет платформу 624 для ресурсов 626. Платформа 624 абстрагирует основополагающую функциональность аппаратных средств (например, серверов) и ресурсы программного обеспечения облака 622. Ресурсы 626 могут включать в себя приложения и/или данные, которые могут использоваться, в то время как компьютерная обработка исполняется на серверах, которые удалены от вычислительного устройства 602. Ресурсы 626 могут также включать в себя услуги, обеспечиваемые по Интернету и/или через абонентскую сеть, такую как сотовая или Wi–Fi сеть.
[0088] Платформа 624 может абстрагировать ресурсы и функции для соединения вычислительного устройства 602 с другими вычислительными устройствами. Платформа 624 может также служить, чтобы абстрагировать масштабирование ресурсов для обеспечения соответствующего уровня масштаба для возникающих потребностей в ресурсах 626, которые реализуются посредством платформы 624. Соответственно, в варианте осуществления взаимосвязанного устройства, реализация описанной функциональности может быть распределена по всей системе 600. Например, функциональность может быть реализована частично на вычислительном устройстве 602, а также посредством платформы 624, которая абстрагирует функциональность облака 622.
[0089] В обсуждениях здесь описаны различные варианты осуществления. Следует понимать, что каждый вариант осуществления, описанный в настоящем документе, может использоваться самостоятельно или в соединении с одним или несколькими другими описанными вариантами осуществления. Другие аспекты методов, обсуждаемых в настоящем документе, относятся к одному или нескольким из следующих вариантов осуществления.
[0090] Способ, реализуемый в службе аттестации, причем способ содержит: прием, от первого вычислительного устройства, первого запроса на сертификат аттестации для первого вычислительного устройства, причем запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение первого вычислительного устройства; верифицирование принятой информации; выбор пары асимметричных ключей из совокупности пар асимметричных ключей, причем выбранная пара ключей также выбирается для множества дополнительных вычислительных устройств; генерирование сертификата аттестации для первого вычислительного устройства, связывающего общедоступный ключ выбранной пары ключей с сертификатом аттестации; шифрование секретного ключа выбранной пары ключей для первого вычислительного устройства; и возврат зашифрованного секретного ключа выбранной пары ключей и сертификата аттестации на первое вычислительное устройство.
[0091] Альтернативно или в дополнение к любому из способов, систем или вычислительных устройств, описанных здесь, любое одно или комбинация следующего: причем шифрование секретного ключа выбранной пары ключей для первого вычислительного устройства содержит шифрование секретного ключа выбранной пары ключей с использованием общедоступного ключа пары общедоступного/секретного ключей доверенного безопасного компонента первого вычислительного устройства; причем выбор пары асимметричных ключей содержит случайный или псевдослучайный выбор пары асимметричных ключей из совокупности пар асимметричных ключей; дополнительно содержит генерирование, перед приемом первого запроса, пар асимметричных ключей в совокупности пар асимметричных ключей; дополнительно содержит изменение пар асимметричных ключей в совокупности пар асимметричных ключей с одним или несколькими интервалами; дополнительно содержит прием, от второго вычислительного устройства, второго запроса на сертификат аттестации для второго вычислительного устройства, причем второй запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение второго вычислительного устройства, верифицирование принятой информации, описывающей аппаратные средства и/или программное обеспечение второго вычислительного устройства, выбор, из совокупности пар асимметричных ключей, той же самой пары ключей, что и была выбрана для первого вычислительного устройства, генерирование сертификата аттестации для второго вычислительного устройства, связывающего общедоступный ключ выбранной пары ключей с сертификатом аттестации для второго вычислительного устройства, шифрование секретного ключа выбранной пары ключей для второго вычислительного устройства и возврат зашифрованного секретного ключа выбранной пары ключей и сертификата аттестации для второго вычислительного устройства на второе вычислительное устройство; причем сертификат аттестации не имеет имени или идентификатора первого вычислительного устройства.
[0092] Способ, реализуемый в вычислительном устройстве, причем способ содержит: отправку, на службу аттестации, запроса на сертификат аттестации для вычислительного устройства, причем запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение вычислительного устройства; прием, от службы аттестации, пары общедоступного/секретного ключей и сертификата аттестации, который связывает пару общедоступного/секретного ключей с доверенным безопасным компонентом вычислительного устройства; сохранение, в безопасном хранилище доверенного безопасного компонента, секретного ключа пары общедоступного/секретного ключей; и генерирование, без осуществления доступа к службе аттестации, одной или нескольких дополнительных пар общедоступного/секретного ключей и одного или нескольких дополнительных сертификатов аттестации, причем все дополнительные сертификаты аттестации привязаны к службе аттестации.
[0093] Альтернативно или в дополнение к любому из способов, систем или вычислительных устройств, описанных здесь, любое одно или комбинация следующего: принятая пара общедоступного/секретного ключей является той же самой, что и пара общедоступного/секретного ключей, которая обеспечивается службой аттестации на множество других вычислительных устройств; дополнительно содержит генерирование одного из одной или нескольких дополнительных пар общедоступного/секретного ключей и одного или нескольких дополнительных сертификатов аттестации для каждого веб–сайта, доступ к которым осуществляется веб–браузером вычислительного устройства; дополнительно содержит генерирование одного из одной или нескольких дополнительных пар общедоступного/секретного ключей и одного или нескольких дополнительных сертификатов аттестации для каждой из множества разных систем доверяющей стороны, доступ к которым осуществляется вычислительным устройством; дополнительно содержит дешифрование пары общедоступного/секретного ключей, принятой от службы аттестации с использованием секретного ключа доверенного безопасного компонента; причем доверенный безопасный компонент содержит модуль доверенной платформы.
[0094] Система, содержащая: один или несколько процессоров; и считываемый компьютером носитель, имеющий сохраненное на нем множество инструкций, которые, в ответ на исполнение одним или несколькими процессорами, побуждают один или несколько процессоров: принимать, от первого вычислительного устройства, первый запрос на сертификат аттестации для первого вычислительного устройства, причем запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение первого вычислительного устройства; верифицировать принятую информацию; выбирать пару асимметричных ключей из совокупности пар асимметричных ключей, причем выбранная пара асимметричных ключей также выбирается для множества дополнительных вычислительных устройств; генерировать сертификат аттестации для первого вычислительного устройства, связывающий общедоступный ключ выбранной пары ключей с сертификатом аттестации; зашифровывать секретный ключ выбранной пары ключей для первого вычислительного устройства; и возвращать зашифрованный секретный ключ выбранной пары ключей и сертификат аттестации на первое вычислительное устройство.
[0095] Альтернативно или в дополнение к любому из способов, систем или вычислительных устройств, описанных здесь, любое одно или комбинация следующего: зашифровывать секретный ключ выбранной пары ключей для первого вычислительного устройства значит зашифровывать секретный ключ выбранной пары ключей с использованием общедоступного ключа пары общедоступного/секретного ключей доверенного безопасного компонента первого вычислительного устройства; доверенный безопасный компонент содержит модуль доверенной платформы; выбирать пару асимметричных ключей значит случайно или псевдослучайно выбирать пару асимметричных ключей из совокупности пар асимметричных ключей; множество инструкций дополнительно побуждают один или несколько процессоров изменять ключи в совокупности пар асимметричных ключей с одним или несколькими интервалами; множество инструкций дополнительно побуждают один или несколько процессоров принимать, от второго вычислительного устройства, второй запрос на сертификат аттестации для второго вычислительного устройства, второй запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение второго вычислительного устройства, верифицировать принятую информацию, описывающую аппаратные средства и/или программное обеспечение второго вычислительного устройства, выбирать, из совокупности пар асимметричных ключей, ту же самую пару ключей, что и была выбрана для первого вычислительного устройства, генерировать сертификат аттестации для второго вычислительного устройства, связывающий общедоступный ключ выбранной пары ключей с сертификатом аттестации для второго вычислительного устройства, зашифровывать секретный ключ выбранной пары ключей для второго вычислительного устройства, и возвращать зашифрованный секретный ключ выбранной пары ключей и сертификат аттестации для второго вычислительного устройства на второе вычислительное устройство; причем сертификат аттестации не имеет имени или идентификатора первого вычислительного устройства.
[0096] Вычислительное устройство, содержащее: один или несколько процессоров; и считываемый компьютером носитель, имеющий сохраненные на нем множество инструкций которые, в ответ на исполнение одним или несколькими процессорами, побуждают один или несколько процессоров выполнять действия, содержащие: отправку, на службу аттестации, запроса на сертификат аттестации для вычислительного устройства, причем запрос включает в себя информацию, описывающую аппаратные средства и/или программное обеспечение вычислительного устройства; прием, от службы аттестации, пары общедоступного/секретного ключей и сертификата аттестации, который связывает пару общедоступного/секретного ключей с доверенным безопасным компонентом вычислительного устройства; сохранение, в безопасном хранилище доверенного безопасного компонента, секретного ключа пары общедоступного/секретного ключей; и генерирование, без осуществления доступа к службе аттестации, одной или нескольких дополнительных пар общедоступного/секретного ключей и одного или нескольких дополнительных сертификатов аттестации, причем все дополнительные сертификаты аттестации привязаны к службе аттестации.
[0097] Хотя заявленное изобретение было описано в терминах, специфических для структурных признаков и/или методологических действий, следует понимать, что объем, определяемый прилагаемой формулой изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Напротив, конкретные признаки и действия, описанные выше, раскрыты в качестве примерных форм реализации формулы изобретения.
Изобретение относится к генерированию удостоверения аттестации ключа с обеспечением анонимности устройства. Технический результат заключается в сохранении конфиденциальности информации, обеспечении анонимности устройств при генерировании аттестации ключа. Вычислительное устройство отправляет запрос на сертификат аттестации на службу аттестации вместе с информацией касательно аппаратных средств и/или программного обеспечения устройства. Служба аттестации обрабатывает запрос и верифицирует информацию, принятую от устройства. После верифицирования информации служба аттестации выбирает пару общедоступного/секретного ключей из совокупности неоднократно используемых пар общедоступного/секретного ключей и генерирует сертификат аттестации для устройства и общедоступный ключ пары общедоступного/секретного ключей. Этот сертификат аттестации подписывается цифровым образом службой аттестации и возвращается на устройство. Секретный ключ выбранной пары общедоступного/секретного ключей также зашифровывается в доверенный безопасный компонент устройства, обеспечивая, что ключ не может быть украден вредоносным программным обеспечением и повторно использован на другом устройстве, и возвращается на устройство. Устройство использует этот сертификат аттестации для осуществления доступа к доверяющим сторонам и опционально генерирует дополнительные пары общедоступного/секретного ключей и сертификаты аттестации. 3 н. и 17 з.п. ф-лы, 6 ил.
Способ доверенного сетевого соединения для совершенствования защиты