ПРЕДПОСЫЛКИ И РЕЛЕВАНТНЫЙ УРОВЕНЬ ТЕХНИКИ
[0001] Современные компьютерные системы требуют обязательного обеспечения безопасности для компьютерных систем. Вирусы и другие способы использовались, чтобы скомпрометировать вычислительные системы. Поэтому были реализованы меры противодействия для предотвращения атак или снижения их эффективности.
[0002] Один тип защиты относится к защите, обеспечиваемой модулями доверительной платформы (ТРМ). ТРМ обеспечивают функциональность для защиты аппаратных устройств путем интеграции криптографических ключей непосредственно в аппаратные устройства. В упрощенном примере, ТРМ может хранить секрет, такой как ключ дешифрования. Секрет может быть использован, чтобы разблокировать секретные данные. Например, жесткий диск на компьютере может быть зашифрован секретным образом, чтобы предотвратить компрометацию секретных данных на жестком диске.
[0003] Секрет может быть запечатан. ʺСкрепление печатьюʺ означает, что секрет зашифрован способом, который требует от TPM обеспечить возможность дешифрования, и предоставление посредством ТРМ секрета на внешние субъекты связано с определенным условием. Таким образом, TPM будет расшифровывать и/или предоставлять секрет, только если определенные условия удовлетворяются. Другими словами, запечатывание, как правило, определяется как зашифровывание для определенного условия, тогда как распечатывание (вскрытие) включает в себя дешифрование и приведение в исполнение условия.
[0004] Условие, в ТРМ, часто связано с целостностью аппаратных средств или операционной системы. Например, в процессе загрузки, различные субъекты выполняют различные функции последовательно. Таким образом, субъект (например, загрузочный модуль) будет выполнять проверку целостности, и если проверка целостности проходит, то субъект будет выполнять определенные функции и передавать обработку следующему субъекту в процессе. Следующий субъект будет выполнять проверку целостности и далее передавать обработку еще одному субъекту. Это продолжается до тех пор, пока все субъекты не пройдут проверки целостности и выполнят желательную обработку. Обработка или проверки целостности могут накапливаться вдоль пути, например, посредством итерационных процессов добавления и хеширования с сохранением результатов в регистре проверки. В конце обработки регистр проверки будет иметь вычисленное значение условия. Это значение условия может сравниваться с известным хорошим значением условия. Известное хорошее значение условия может генерироваться во время известного хорошего процесса начальной загрузки. Если эти два значения совпадают, то секрет расшифровывается и предоставляется внешнему субъекту. Так, например, операционная система может получить секрет для дешифрования жесткого диска и обеспечения возможности использовать вычислительную систему.
[0005] Однако, если значения условия не совпадают (что обычно является указанием на то, что субъект был фальсифицирован), секрет не будет разблокирован посредством ТРМ. Это обычно является желательным результатом. Однако если загрузочные субъекты обновляются легитимным процессом, это, тем не менее, приводит к рассогласованности между вычисленным значением условия и известным хорошим значением условия. Это вызовет то, что секрет будет сохраняться посредством ТРМ, так что жесткий диск, в иллюстрируемом примере, невозможно будет расшифровать, в результате чего вычислительную систему по существу невозможно использовать, несмотря на то, что система не скомпрометирована, если только известное значение условия не сможет быть обновлено.
[0006] Заявленное здесь изобретение не ограничивается вариантами осуществления, которые преодолевают какие-либо недостатки или которые работают только в средах, таких как те, которые описаны выше. Скорее, эти предпосылки предоставлены только для иллюстрации одной примерной области технологии, где некоторые варианты осуществления, описанные здесь, могут быть практически реализованы.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0007] Один вариант осуществления, проиллюстрированный здесь, включает в себя компьютерно-реализуемый способ получения запечатанного секрета. Способ включает дешифрование одного или нескольких больших двоичных объектов (блобов, BLOB) в вычислительной системе среди множества различных больших двоичных объектов. Каждый из больших двоичных объектов во множестве больших двоичных объектов содержит секрет. Каждый из больших двоичных объектов во множестве больших двоичных объектов запечатан для различного условия среди множества условий. Данное условие является отражением состояния системы, где состояние системы указывает на то, может ли система быть доверительной для получения секрета. Способ дополнительно включает в себя оценивание одного или нескольких условий, чтобы определить, удовлетворяется ли по меньшей мере одно из одного или нескольких условий. Способ дополнительно включает в себя, если по меньшей мере одно из одного или нескольких условий удовлетворяется, предоставление тогда секрета на внешний субъект.
[0008] Это краткое описание сущности изобретения предусмотрено для введения подборки концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Это краткое описание сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения, а также не предназначено для использования в качестве помощи при определении объема заявленного изобретения.
[0009] Дополнительные признаки и преимущества будут изложены в описании, которое следует ниже, и частично будут очевидны из описания или могут быть изучены при практической реализации раскрытых здесь решений. Признаки и преимущества настоящего изобретения могут быть реализованы и получены посредством инструментов и комбинаций, конкретно указанных в прилагаемой формуле изобретения. Признаки настоящего изобретения станут более очевидными из последующего описания и прилагаемой формулы изобретения или могут быть изучены при практической реализации изобретения, как изложено ниже.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0010] Для того чтобы описать способ, в котором могут быть получены вышеописанные и другие преимущества и признаки, более конкретное описание изобретения, кратко описанного выше, будет представлено со ссылкой на конкретные варианты осуществления, которые проиллюстрированы на прилагаемых чертежах. Принимая во внимание, что эти чертежи изображают только типичные варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие объем, варианты осуществления будут описаны и пояснены с дополнительной спецификой и детализацией посредством использования прилагаемых чертежей, на которых:
[0011] Фиг. 1 иллюстрирует устройство, поддерживающее измеряемые операции загрузки;
[0012] Фиг. 2 иллюстрирует различные большие двоичные объекты, запечатывающие один и тот же секрет соответственно различным условиям;
[0013] Фиг. 3 иллюстрирует блок-схему, показывающую, каким образом секрет может быть запечатан, когда происходят изменения в системе;
[0014] Фиг. 4 иллюстрирует способ получения секрета и
[0015] Фиг. 5 иллюстрирует способ запечатывания секрета.
ПОДРОБНОЕ ОПИСАНИЕ
[0016] Варианты осуществления, проиллюстрированные здесь, могут позволить предоставлять запечатанный секрет, например, ключ, даже когда условие, связанное с уплотнением не выполняется. Это может быть сделано путем запечатывания секрета во множество различных больших двоичных объектов (блобов), каждый из больших двоичных объектов запечатан для различного условия. Таким образом, до тех пор, пока одно из условий удовлетворяется, секрет может предоставляться из большого двоичного объекта, ассоциированного с этим условием. Как таковые, могут быть реализованы различные обновления, которые влияют на условия системы, влияя, таким образом, на вычисленные значения условий системы, но до тех пор, пока по меньшей мере одно известное значение условия совпадает с вычисленным значением условия, секрет все еще может быть вскрыт и предоставлен.
[0017] Кроме того, когда вычисленные значения условий не совпадают с известными значениями условий, это может быть использовано в качестве указателя, что известные значения условий может потребоваться обновить в связи с обновлением системы, и/или что обновления системы должны быть оценены, чтобы определить, действительны ли обновления системы.
[0018] В некоторых случаях известные системные значения могут обновляться автоматически на несовпадающие вычисленные значения условий до тех пор, пока по меньшей мере одно известное значение условия не совпадет с одним вычисленным значением условия.
[0019] Однако, следует понимать, что известные значения условий не обязательно автоматически обновляются. В частности, иногда обновление может быть оценено как результат идентификации несогласованности известного значения условия и вычисленного значения условия, чтобы гарантировать, что обновление является доверительным или иным образом действительным.
[0020] Детальные примеры теперь проиллюстрированы со ссылкой на фиг. 1.
[0021] В случае, когда вычислительное устройство 100 реализует поддержку для измеряемой загрузки (например, как определено в спецификации TCG), тогда можно использовать средство целостности кода с целью защиты секретных данных 114 от неавторизованного раскрытия между перезагрузками системы. Это достигается за счет шифрования сначала секретных данных 114, таких как данные в хранилище 102 данных, секретом 104, например, случайным симметричным ключом (ключом защиты данных), а затем дополнительного запечатывания секрета системным модулем доверительной платформы (TPM) 106 с использованием того, что обычно называют операцией ʺзапечатыванияʺ. Набор TPM регистров конфигурации платформы (PCR) 108 используется для приведения в исполнение состояния системы во время последующего дешифрования, и ТРМ 106 не будет вскрывать секрет 104, если любой один из выбранных PCR в наборе PCR 108 не совпадает с ожидаемым значением. Когда TPM PCR 108 содержат связанное или накопленное хеш-значение всех загруженных модулей, а также конфигурацию процесса загрузки, этот способ гарантирует, что секрет 104 будет вскрыт, только если вычислительное устройство загружено в то же состояние, как было предусмотрено операцией запечатывания. Как отмечено, любое изменение в конфигурации и/или любом загруженном модуле приведет к измененному значению PCR и будет, следовательно, препятствовать вскрытию секрета 104 посредством ТРМ 106 во время цикла загрузки, если используется только одна операция запечатывания. Однако в некоторых вариантах осуществления, проиллюстрированных здесь, несколько операций запечатывания или несколько запечатанных больших двоичных объектов, таких как большие двоичные объекты от 110-1 до 110-n, содержащие секрет 104, могут быть использованы, чтобы увеличить вероятность того, что секрет 104 может быть предоставлен.
[0022] В случае, когда вычислительное устройство 100 также реализует поддержку безопасной загрузки (по спецификации UEFI), то тогда можно ограничить набор используемых TPM PCR для защиты секретных данных. Например, варианты осуществления могут ограничить регистры только до тех, которые содержат данные конфигурации баз данных безопасной загрузки. В качестве альтернативы или дополнительно, варианты осуществления могут ограничивать регистры только теми, в которые включен орган подписания загружаемых модулей. Это позволяет осуществлять любые обновления модулей 112, запускаемых во время конкретного цикла загрузки, пока эти модули 112 по-прежнему подписаны тем же самым исходным органом, указанным операцией запечатывания. В качестве альтернативы или дополнительно, варианты осуществления могут способствовать вариантам, где содержание баз данных безопасной загрузки само становится обновленным (в то же время позволяя предоставлять секрет 104), что является редкой, но очень важной операцией, используемой для поддержания баз данных обновленными с известным списком вредоносных модулей и подписавших сторон.
[0023] Варианты осуществления облегчают сохранение секрета 104, защищаемого посредством ТРМ, запечатывающего обновление содержимого базы данных безопасной загрузки. В проиллюстрированном примере, секретные данные в хранилище данных 104 зашифровываются с помощью секрета 104, который в данном случае представляет собой случайный симметричный ключ (ключ защиты данных или DPK), и секрет 104 запечатывается с помощью TPM 106 с использованием первого условия, которое в данном случае отражается поднабором набора PCR 108, отражающих состояние безопасной загрузки и стороны, подписавшие модули. Дополнительно, в проиллюстрированном примере, варианты осуществления создают дополнительный запечатанный большой двоичный объект, содержащий ключ защиты данных, запечатанный в набор PCR 108, отражающих хеши загружаемых модулей, но не включающих состояние безопасной загрузки. В то время как два запечатанных больших двоичных объекта 110-1 и 110-n проиллюстрированы в данном примере, следует иметь в виду, что в других вариантах осуществления дополнительные запечатанные большие двоичные объекты могут быть созданы с использованием различных условий.
[0024] В изображенном примере, проиллюстрированном на фиг. 2, при вскрытии секрета 104 исходный запечатанный большой двоичный объект 110-1 испытывается первым. Если этот этап успешен, секрет 104 становится доступным сразу же. Резервный запечатанный большой двоичный объект 110-2 верифицируется для его целевых значений PCR на совпадение с текущим циклом загрузки, чтобы определить, следует ли обновлять запечатывание для резервного большого двоичного объекта 110-2. Если резервные значения PCR не совпадают с текущим циклом, это указывает на то, что один или несколько модулей были обновлены, будучи подписанными тем же органом, и резервный запечатанный большой двоичный объект 110-2 затем обновляется, чтобы отражать накопленный хеш текущих загруженных модулей. Если исходный запечатанный большой двоичный объект 110-1 не может быть вскрыт, это указывает на возможное изменение в конфигурации безопасной загрузки, и тогда испытывается резервный большой двоичный объект 110-2. Когда тот же набор модулей загружается во время цикла загрузки, резервный большой двоичный объект 110-1 будет успешно вскрыт, предоставляя секрет 104, например, ключ защиты данных, и это позволяет осуществлять дешифрование секретных данных 114. Первоначальный запечатанный большой двоичный объект 110-1 затем обновляется, чтобы отражать новую конфигурацию баз данных безопасной загрузки. Пока содержание базы данных безопасной загрузки обновляется отдельно от каких-либо модулей, используемых как часть защиты секретных данных 114, это обеспечит возможность сохранения секретных данных 114 по обновлению конфигурации безопасной загрузки.
[0025] Таким образом, варианты осуществления могут быть сконфигурированы, чтобы создавать и поддерживать данные большого двоичного объекта, содержащего секрет 104, такой как ключ защиты данных для секретных данных 114, и запечатываться для условия, такого как состояние набора PCR 108, не включающих состояние конфигурации безопасной загрузки, но включающих накопленный хеш загруженных модулей, чтобы служить в качестве резервной защиты для исходного большого двоичного объекта, содержащего тот же самый ключ защиты данных, запечатанный для одного или нескольких других условий, таких как состояние набора PCR 108, отражающих состояние конфигурации безопасной загрузки и стороны, подписавшие модули, но не включающих накопленный хеш загруженных модулей.
[0026] Варианты осуществления могут включать в себя функциональность для обновления запечатанных больших двоичных объектов, чтобы всегда отражать условие, как в случае резервного большого двоичного объекта 110-2, показанного выше, накопленный хеш загруженных модулей в текущем цикле перезагрузки.
[0027] В проиллюстрированном примере, варианты осуществления могут использовать резервный запечатанный большой двоичный объект 110-2, чтобы вскрыть секрет 104 (например, ключ защиты данных), когда исходный запечатанный большой двоичный объект 110-1 безуспешен для вскрытия из-за изменений в состоянии безопасной загрузки или других условий.
[0028] Варианты осуществление могут обновлять исходный запечатанный большой двоичный объект 110-1 после использования резервного большого двоичного объекта 110-2, чтобы вскрыть секрет 104.
[0029] В примере, проиллюстрированном на фиг. 2, секретные данные 114 зашифрованы с помощью секрета 104, который в этом примере является случайным симметричным ключом защиты данных (DPK), и DPK затем запечатывается в 2 различных набора TPM PCR: главный запечатанный большой двоичный объект 110-1 содержит зашифрованные секретные данные 114 (хотя зашифрованные секретные данные 114 могут храниться в других местах, альтернативно или дополнительно) вместе с DPK, запечатанным в PCR 7 и 11, в то время как резервный запечатанный большой двоичный объект содержит тот же DPK, запечатанный в PCR 0, 2, 4 и 11, в примере, проиллюстрированном на фиг. 2. По спецификации TCG измеряемой загрузки и спецификации UEFI, PCR 7 отражает конфигурацию безопасной загрузки на устройстве, а PCR 4 содержит накопленный хеш модуля менеджера загрузки. Остальные PCR используются для других целей, которые не охватываются здесь. Каждый из двух запечатанных больших двоичных объектов также включает в себя целевое накопленное хеш-значение, то есть вычисленное значение условия своего соответствующего набора PCR.
[0030] Фиг. 3 иллюстрирует блок-схему, показывающую этапы, в одном конкретном варианте осуществления, выполняемые, чтобы сохранить секретные данные 114 по изменениям в конфигурации безопасной загрузки. В точке исполнения, где секретные данные 114 должны быть получены, управление сначала пытается вскрыть DPK с использованием главного большого двоичного объекта (блоба) (как иллюстрируется в 301). Если конфигурация безопасной загрузки изменилась после последнего цикла загрузки, то этот этап, как ожидается, будет безуспешным, и управление будет затем пытаться вскрыть DPK с использованием резервного большого двоичного объекта (как иллюстрируется в 302). Неуспех на этом этапе указывает на то, что как конфигурация безопасной загрузки, так и модуль менеджера перезагрузки изменились с момента последнего цикла загрузки, и это приводит к неуспеху в сохранении секретных данных 114. Хотя в других вариантах осуществления, дополнительные двоичные объекты могут быть использованы для увеличения вероятности того, что секретные данные 114 могут быть восстановлены.
[0031] Однако, в данном примере, в котором модуль менеджера загрузки не изменился с момента последнего цикла загрузки, этот этап будет успешным и будет предоставлять DPK. Затем управление переходит на этап 303, где главный большой двоичный объект 110-1 обновляется посредством повторного запечатывания DPK, только что полученного относительно настоящих значений PCR 7 и 11. Затем управление переходит на этап 304, где только что полученный DPK используется для дешифрования секретных данных 114, которые теперь доступны для текущего и будущих циклов загрузки.
[0032] В случае, если главный большой двоичный объект 110-1 успешно вскрывает на этапе 301, то следующим этапом является проверить накопленное в целевом PCR хеш-значение резервного большого двоичного объекта по отношению к текущим ТРМ PCR (как иллюстрируется в 305) и обновить резервный большой двоичный объект путем повторного запечатывания DPK, если накопленное в целевом PCR хеш-значение не совпадает с текущими TPM PCR 108 (указывая, что модуль менеджера загрузки, скорее всего, был обновлен с момента последнего цикла загрузки) (как иллюстрируется в 306). Затем управление переходит на этап 304, где DPK, полученный на этапе 301, используется для дешифрования секретных данных.
[0033] Следующее обсуждение относится теперь к ряду способов и действий способов, которые могут быть выполнены. Хотя действия способа могут быть рассмотрены в определенном порядке или проиллюстрированы на блок-схеме последовательности действий, как происходящие в определенном порядке, никакое конкретное упорядочение не требуется, если это специально не оговорено или требуется, поскольку действие зависит от другого действия, завершаемого перед действием, которое должно быть выполнено.
[0034] Со ссылкой теперь на фиг.4, иллюстрируется способ 400. Способ 400 представляет собой компьютерно-реализуемый способ получения запечатанного секрета. Способ включает в себя дешифрование одного или нескольких больших двоичных объектов (блобов) в вычислительной системе среди множества различных больших двоичных объектов (действие 402). Каждый из больших двоичных объектов в множестве больших двоичных объектов содержит секрет. Каждый из больших двоичных объектов в множестве больших двоичных объектов запечатан для различного условия из множества условий. Данное условие является отражением состояния системы, где состояние системы является указателем того, может ли система быть доверительной, чтобы получать секрет. Например, такое состояние системы может включать в себя список сторон, подписавших большой двоичный объект или компонент системы. В качестве альтернативы или дополнительно, состояние системы может включать в себя набор компонентов операционной системы.
[0035] Способ 400 дополнительно включает в себя оценку одного или нескольких условий, чтобы определить, удовлетворено ли по меньшей мере одно из одного или нескольких условий (действие 404). В некоторых вариантах осуществления, это может быть сделано путем вскрытия большого двоичного объекта, как описано выше. Так, например, накопленное хеш-значение может вычисляться и сравниваться с ранее полученным накопленным хеш-значением.
[0036] Если по меньшей мере одно из одного или нескольких условий удовлетворяется, то способ далее включает в себя предоставление секрета внешнему субъекту (действие 406). Например, ключ может быть разблокирован, что позволяет разблокировать зашифрованный жесткий диск. Ключ может быть предусмотрен для операционной системы, которая является субъектом, внешним по отношению к TPM. Другой пример может включать в себя разблокирование ключа, который используется для дешифрования конкретного потока медиа на устройстве, например, потока медиа, предоставленного от коммерческого поставщика потокового медиа, такого как различные поставщики видео по требованию.
[0037] Способ 400 может дополнительно включать в себя, в результате определения того, что по меньшей мере одно из одного или нескольких условий не удовлетворяется, определение того, следует ли обновить один или несколько из больших двоичных объектов. Например, действительное изменение компонентов операционной системы может привести к одному из условий, не совпадающих с ранее известными условиями. Условие может затем быть обновлено, чтобы отражать это изменение, и секрет повторно запечатывается для обновленного условия.
[0038] Способ 400 может дополнительно включать в себя определение не обновлять большой двоичный объект, для которого соответствующее условие не удовлетворяется в результате определения того, что изменения в вычислительной системе, вызывающие условие, которое не удовлетворяется, являются неприемлемыми изменениями. Например, может быть выполнено определение, что изменения в операционной системе не разрешаются, или что некоторые подписи не являются достаточными. Варианты осуществления могут предотвратить повторное запечатывание для обновленного условия, если в любом случае потребуется выполнить откат (возврат в прежнее состояние) для условия.
[0039] Способ 400 может дополнительно включать в себя, в результате определения того, что по меньшей мере одно из одного или нескольких условий не удовлетворяется, обновление тогда одного или нескольких больших двоичных объектов, ассоциированных с условиями, которые не удовлетворяются. Так, например, когда одно условие удовлетворяется, позволяя предоставлять секрет, но другое условие не удовлетворяется, то условие, которое не удовлетворяется, может быть обновлено таким образом, что условие будет удовлетворяться, и секрет повторно запечатывается для обновленного условия.
[0040] Способ 400 может быть практически реализован так, что по меньшей мере одно из условий относится к списку подписавших сторон, таких как, например, органы, подписавшие модули, загружаемые в операционную систему. В качестве альтернативы или дополнительно, способ 400 может быть практически реализован так, что по меньшей мере одно из условий относится к списку компонентов операционной системы.
[0041] Способ 400 может дополнительно включать в себя обновление условий для множества больших двоичных объектов. В некоторых таких вариантах осуществления, обновление условий выполняется итеративно, так что два или более различных условий обновляются с промежуточными операциями перезагрузки между обновлением условий. В качестве альтернативы или дополнительно, способ 400 может дополнительно включать в себя определение того, что обновление было запрошено для всех условий во множестве условий без промежуточной операции перезагрузки, и в результате отклонение выполнения по меньшей мере одного обновления для одного условия. В частности, обновления выполняются таким образом, что все условия изменяются, при следующей перезагрузке, не будет иметься никаких условий, которые могут быть удовлетворены, чтобы позволить получить секрет. Таким образом, некоторые варианты осуществления могут препятствовать изменению всех условий без промежуточной перезагрузки между по меньшей мере двумя из условий. Перезагрузка позволит измененным условиям обновляться, оставаясь способными восстановить секрет на основе одного или нескольких неизмененных условий. После того как перезагрузка произошла, и измененные условия были обновлены, неизмененные условия могут тогда быть изменены, но секрет все еще мог бы быть восстановлен, потому что ранее измененные условия должны были быть обновлены, чтобы обеспечить возможность удовлетворения условий.
[0042] Со ссылкой на фиг. 5, иллюстрируется компьютерно-реализуемый способ 500 запечатывания секрета. Способ 500 включает в себя получение секрета (действие 502). Например, в некоторых вариантах осуществления, жесткий диск вычислительной системы может быть зашифрован ключом дешифрования. Ключ дешифрования может быть секретом. Ключ дешифрования может быть предоставлен в TPM.
[0043] Способ 500 может дополнительно включать в себя запечатывание секрета в каждый различный большой двоичный объект (блоб) во множестве больших двоичных объектов в вычислительной системе, так что каждый из больших двоичных объектов во множестве больших двоичных объектов содержит секрет, и каждый из больших двоичных объектов во множестве больших двоичных объектов запечатан для отличающегося от других условия среди множества условий (действие 504). Данное условие является отражением состояния системы. Состояние системы указывает на то, может ли система быть доверительной, чтобы получать секрет.
[0044] Способ 500 может дополнительно включать в себя, в результате определения того, что по меньшей мере одно из одного или нескольких условий изменилось, обновление тогда одного или нескольких больших двоичных объектов, ассоциированных с условиями, которые были изменены.
[0045] Способ 500 может быть практически реализован, где по меньшей мере одно из условий относится к списку подписавших сторон. В качестве альтернативы или дополнительно, способ 500 может быть практически реализован, где по меньшей мере одно из первого условия и второго условия относится к списку компонентов операционной системы.
[0046] Кроме того, способы могут быть практически реализованы компьютерной системой, включающей в себя один или несколько процессоров и считываемых компьютером носителей, таких как компьютерная память. В частности, компьютерная память может хранить исполняемые компьютером инструкции, которые при исполнении одним или несколькими процессорами вызывают выполнение различных функций, которые должны выполняться, таких как действия, перечисленные в вариантах осуществления.
[0047] Варианты осуществления настоящего изобретения могут содержать или использовать компьютер специального назначения или общего назначения, включая компьютерные аппаратные средства, как описано более подробно ниже. Варианты осуществления в пределах объема настоящего изобретения также включают в себя физические и другие считываемые компьютером носители для переноса или хранения исполняемых компьютером инструкций и/или структур данных. Такие считываемые компьютером носители могут быть любыми доступными носителями, к которым может получать доступ компьютерная система общего назначения или специального назначения. Считываемые компьютером носители, которые хранят исполняемые компьютер инструкции, являются физическими носителями. Считываемые компьютером носители (среды), которые переносят исполняемые компьютером инструкции, являются средами передачи. Таким образом, в качестве примера, но не ограничения, варианты осуществления настоящего изобретения могут содержать по меньшей мере два совершенно разных вида считываемых компьютером носителей (сред): физические считываемые компьютером носители хранения и считываемые компьютером среды передачи.
[0048] Физические считываемые компьютером носители хранения включают в себя RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптических дисках (например, CD, DVD и т.д.), хранилище на магнитных дисках или другие магнитные устройства хранения или любой другой носитель, который может быть использован для хранения желательного средства программного кода в форме исполняемых компьютером инструкций или структур данных, и к которому может получить доступ компьютер общего назначения или специального назначения.
[0049] ʺСетьʺ определяется как один или несколько каналов передачи данных, которые позволяют осуществлять перенос электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация переносится или предоставляется по сети или другому коммуникационному соединению (проводному, беспроводному или комбинации проводного или беспроводного) к компьютеру, этот компьютер должным образом рассматривает соединение как среду передачи. Среды передачи могут включать в себя сеть и/или каналы передачи данных, которые могут использоваться для переноса желательного средства программного кода в форме исполняемых компьютером инструкций или структур данных, и к которым может получать доступ компьютер общего назначения или специального назначения. Комбинации упомянутого выше также включены в объем считываемых компьютером носителей.
[0050] Кроме того, при достижении различных компонентов компьютерной системы, средство программного кода в форме исполняемых компьютером инструкций или структур данных может передаваться автоматически от считываемых компьютером сред передачи на физические считываемые компьютером носители (или наоборот). Например, исполняемые компьютером инструкции или структуры данных, принимаемые по сети или каналу передачи данных, могут быть буферизованы в RAM в модуле сетевого интерфейса (например, ʺNICʺ), а затем в конечном итоге переданы в RAM компьютерной системы и/или менее энергозависимые считываемые компьютером физические носители хранения в компьютерной системе. Таким образом, считываемые компьютером физические носители хранения могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют среды передачи.
[0051] Исполняемые компьютером команды содержат, например, инструкции и данные, которые побуждают компьютер общего назначения, компьютер специального назначения или устройство обработки специального назначения выполнять определенную функцию или группу функций. Исполняемые компьютером инструкции могут представлять собой, например, двоичные файлы, инструкции промежуточных форматов, например, на языке ассемблера или даже исходный код. Хотя заявленное изобретение было описан в терминах, характерных для структурных признаков и/или методологических действий, должны быть понятно, что объем, определяемый прилагаемой формулой изобретения, не обязательно ограничен описанными признаками или действиями, описанными выше. Скорее, описанные признаки и действия раскрыты как примерные формы реализации пунктов формулы изобретения.
[0052] Специалистам в данной области техники будет понятно, что изобретение может быть практически реализовано в сетевых вычислительных средах со многими типами конфигураций компьютерных систем, включая персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры сообщений, портативные устройства, многопроцессорные системы, микропроцессорные или программируемые потребительские электронные устройства, сетевые РС, миникомпьютеры, универсальные компьютеры, мобильные телефоны, PDA, пейджеры, маршрутизаторы, коммутаторы и тому подобное. Изобретение также может быть практически реализовано в распределенных средах, где локальные и удаленные компьютерные системы, которые связаны (проводными каналами передачи данных, беспроводными каналами передачи данных или комбинацией проводных и беспроводных каналов передачи данных) через сеть, выполняют задачи. В распределенной системной среде, программные модули могут быть расположены как на локальных, так и на удаленных устройствах хранения данных.
[0053] В качестве альтернативы или в дополнение, функциональные возможности, описанные здесь, могут выполняться, по меньшей мере частично, одним или несколькими аппаратными логическими компонентами. Например, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, включают в себя программируемые вентильные матрицы (FPGA), специализированные интегральные схемы (ASIC), специализированные стандартные продукты (ASSP), однокристальные системы (SOC), сложные программируемые логические устройства (CPLD) и т.д.
[0054] Настоящее изобретение может быть реализовано в других конкретных формах без отклонения от его сущности или характеристик. Описанные варианты осуществления следует рассматривать во всех отношениях только как иллюстративные, а не ограничительные. Объем настоящего изобретения, таким образом, определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые находятся в пределах значения и диапазона эквивалентности пунктов формулы изобретения, должны быть включены в их объем.
название | год | авторы | номер документа |
---|---|---|---|
АБСТРАКТНАЯ ИДЕНТИФИКАЦИЯ АНКЛАВА | 2017 |
|
RU2762141C2 |
ЗАПЕЧАТЫВАНИЕ ДАННЫХ С ПОМОЩЬЮ АНКЛАВА ЗАПЕЧАТЫВАНИЯ | 2017 |
|
RU2759329C2 |
АТТЕСТАЦИЯ ХОСТА, СОДЕРЖАЩЕГО ДОВЕРИТЕЛЬНУЮ СРЕДУ ИСПОЛНЕНИЯ | 2015 |
|
RU2679721C2 |
КРОСС-ПЛАТФОРМЕННАЯ ИДЕНТИФИКАЦИОННАЯ ИНФОРМАЦИЯ АНКЛАВА | 2018 |
|
RU2759302C2 |
РАСПЕЧАТЫВАНИЕ ДАННЫХ С ЗАПЕЧАТЫВАЮЩИМ АНКЛАВОМ | 2017 |
|
RU2759331C2 |
МЕХАНИЗМ ПРОТИВ МОШЕННИЧЕСТВА НА ОСНОВЕ ДОВЕРЕННОГО ОБЪЕКТА | 2010 |
|
RU2541879C2 |
БЕЗОПАСНЫЙ ТРАНСПОРТ ЗАШИФРОВАННЫХ ВИРТУАЛЬНЫХ МАШИН С НЕПРЕРЫВНЫМ ДОСТУПОМ ВЛАДЕЛЬЦА | 2015 |
|
RU2693313C2 |
АДРЕСАЦИЯ ДОВЕРЕННОЙ СРЕДЫ ИСПОЛНЕНИЯ С ИСПОЛЬЗОВАНИЕМ КЛЮЧА ПОДПИСИ | 2017 |
|
RU2756040C2 |
ПРЕДСТАВЛЕНИЕ КОНТЕКСТА ОПЕРАЦИОННОЙ СИСТЕМЫ В ДОВЕРЕННОМ ПЛАТФОРМЕННОМ МОДУЛЕ | 2015 |
|
RU2702276C2 |
УПРАВЛЕНИЕ ЦИФРОВЫМИ ПРАВАМИ С ИСПОЛЬЗОВАНИЕМ МЕТОДИК ДОВЕРИТЕЛЬНОЙ ОБРАБОТКИ | 2007 |
|
RU2419235C2 |
Заявленное изобретение относится к обеспечению безопасности компьютерных систем, а также к мерам противодействия для предотвращения атак или снижения их эффективности. Заявленный способ включает в себя дешифрование одного или нескольких больших двоичных объектов (блобов) в вычислительной системе среди множества различных больших двоичных объектов. Каждый из больших двоичных объектов во множестве больших двоичных объектов содержит секрет. Каждый из больших двоичных объектов во множестве больших двоичных объектов запечатан для различного условия из множества условий. Данное условие является отражением состояния системы, где состояние системы указывает на то, может ли система быть доверительной для получения секрета. Способ дополнительно включает в себя оценивание одного или нескольких из условий, чтобы определить, удовлетворяется ли по меньшей мере одно из одного или нескольких условий. Способ дополнительно включает в себя, если по меньшей мере одно из одного или нескольких условий удовлетворяется, то предоставление секрета на внешний субъект. Заявленное изобретение обеспечивает снижение эффективности атак. 3 н. и 17 з.п. ф-лы, 5 ил.
1. Вычислительная система, выполненная с возможностью сохранения защищенных секретов по обновлению безопасной начальной загрузки, при этом система содержит:
один или более процессоров; и
одно или более машиночитаемых запоминающих устройств, на которых сохранены инструкции, которые исполняются одним или более процессорами для конфигурирования вычислительной системы получать запечатанный секрет, включая инструкции, которые исполняются для конфигурирования вычислительной системы выполнять, по меньшей мере, следующее:
поддерживать множество больших двоичных объектов (BLOB), причем каждый большой двоичный объект из множества больших двоичных объектов содержит зашифрованные данные и запечатанный секрет, при этом каждый запечатанный секрет в каждом большом двоичном объекте запечатан для отличающегося от других условия, причем каждое условие является отражением состояния системы, указывающим, может ли система быть доверительной для приема секрета;
осуществлять попытку распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, используя первое условие;
на основе того, что попытка распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, является успешной, определять, требуется ли обновить второй большой двоичный объект, и, если это так, обновлять второй большой двоичный объект;
на основе того, что попытка распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, является неуспешной, осуществлять попытку распечатать запечатанный секрет, содержащийся во втором большом двоичном объекте, используя второе условие; и
на основе того, что любая из попытки распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, и попытки распечатать запечатанный секрет, содержащийся во втором большом двоичном объекте, является успешной, предоставлять распечатанный секрет в субъект, причем распечатанный секрет обеспечивает этому субъекту возможность осуществлять доступ к зашифрованным данным.
2. Вычислительная система по п.1, в которой определяется, что один или более из больших двоичных объектов нужно обновить, и в результате по меньшей мере один большой двоичный объект обновляется.
3. Вычислительная система по п.2, в которой на одном или более машиночитаемых запоминающих устройствах дополнительно сохранены инструкции, которые исполняются одним или более процессорами для конфигурирования вычислительной системы для определения не обновлять большой двоичный объект, для которого соответствующее условие не удовлетворяется в результате определения того, что изменения в вычислительной системе, вызывающие то, что это условие не удовлетворяется, являются неприемлемыми изменениями.
4. Вычислительная система по п.1, в которой на одном или более машиночитаемых запоминающих устройствах дополнительно сохранены инструкции, которые исполняются одним или более процессорами для конфигурирования вычислительной системы, чтобы в результате определения того, что по меньшей мере одно из условий не удовлетворяется, обновлять тогда один или более из больших двоичных объектов, связанных с условиями, которые не удовлетворяются.
5. Вычислительная система по п.1, при этом по меньшей мере одно из условий относится к списку подписавших сторон.
6. Вычислительная система по п.1, при этом по меньшей мере одно из первого условия и второго условия относится к списку компонентов операционной системы.
7. Вычислительная система по п.1, в которой на одном или более машиночитаемых запоминающих устройствах дополнительно сохранены инструкции, которые исполняются одним или более процессорами для конфигурирования вычислительной системы обновлять условия для нескольких больших двоичных объектов из множества больших двоичных объектов, каковое обновление условий выполняется итеративно, так что два или более разных условий обновляются с промежуточными операциями перезагрузки между обновлением условий.
8. Вычислительная система по п.1, в которой на одном или более машиночитаемых запоминающих устройствах дополнительно сохранены инструкции, которые исполняются одним или более процессорами для конфигурирования вычислительной системы определять, что обновления были запрошены для множества условий без промежуточной операции перезагрузки, и в результате отклонять выполнение по меньшей мере одного обновления для одного условия.
9. Компьютерно-реализуемый способ получения запечатанного секрета, содержащий этапы, на которых:
осуществляют доступ к одному или более большим двоичным объектам (BLOB) в вычислительной системе среди множества разных больших двоичных объектов, причем каждый из больших двоичных объектов во множестве больших двоичных объектов содержит секрет, при этом каждый из больших двоичных объектов во множестве больших двоичных объектов запечатан для отличающегося от других условия среди множества условий, причем конкретное условие является отражением состояния системы, где состояние системы указывает на то, может ли система быть доверительной для приема секрета;
осуществляют попытку распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, используя первое условие;
на основе того, что попытка распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, является успешной, определяют, требуется ли обновить второй большой двоичный объект, и, если это так, обновляют второй большой двоичный объект;
на основе того, что попытка распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, является неуспешной, осуществляют попытку распечатать запечатанный секрет, содержащийся во втором большом двоичном объекте, используя второе условие; и
на основе того, что любая из попытки распечатать запечатанный секрет, содержащийся в первом большом двоичном объекте, и попытки распечатать запечатанный секрет, содержащийся во втором большом двоичном объекте, является успешной, предоставляют распечатанный секрет в субъект, причем распечатанный секрет обеспечивает этому субъекту возможность осуществлять доступ к зашифрованным данным.
10. Способ по п.9, дополнительно содержащий этап, на котором, в результате определения того, что по меньшей мере одно из множества условий не удовлетворяется, определяют тогда, нужно ли обновить один или более из множества больших двоичных объектов.
11. Способ по п.10, дополнительно содержащий этап, на котором определяют не обновлять большой двоичный объект, для которого соответствующее условие не удовлетворяется в результате определения того, что изменения в вычислительной системе, вызывающие то, что это условие не удовлетворяется, являются неприемлемыми изменениями.
12. Способ по п.9, дополнительно содержащий этап, на котором в результате определения того, что по меньшей мере одно из множества условий не удовлетворяется, обновляют тогда один или более из больших двоичных объектов, связанных с условиями, которые не удовлетворяются.
13. Способ по п.9, в котором по меньшей мере одно из условий относится к списку подписавших сторон.
14. Способ по п.9, в котором по меньшей мере одно из первого условия и второго условия относится к списку компонентов операционной системы.
15. Способ по п.9, дополнительно содержащий этап, на котором обновляют условия для нескольких больших двоичных объектов из множества больших двоичных объектов, каковое обновление условий выполняется итеративно, так что два или более разных условий обновляются с промежуточными операциями перезагрузки между обновлением условий.
16. Способ по п.9, дополнительно содержащий этап, на котором определяют, что обновления были запрошены для всех условий из множества условий без промежуточной операции перезагрузки, и в результате отклонять выполнение по меньшей мере одного обновления для одного условия.
17. Компьютерно-реализуемый способ запечатывания секрета, содержащий этапы, на которых:
получают секрет; и
запечатывают секрет в первый большой двоичный объект (BLOB) из множества больших двоичных объектов в вычислительной системе таким образом, чтобы первый большой двоичный объект содержал секрет, и таким образом, чтобы первый большой двоичный объект запечатывался для первого условия из множества условий, причем каждое условие из множества условий является отражением состояния системы, указывающим, может ли система быть доверительной для приема секрета; и
запечатывают секрет во второй большой двоичный объект из множества больших двоичных объектов таким образом, чтобы второй большой двоичный объект содержал секрет и таким образом, чтобы второй большой двоичный объект запечатывался для второго условия из множества условий.
18. Способ по п.17, дополнительно содержащий этап, на котором, в результате определения того, что по меньшей мере одно из множества условий изменилось, обновляют тогда один или более из множества больших двоичных объектов, связанных с этим по меньшей мере одним изменившимся условием.
19. Способ по п.17, в котором по меньшей мере одно из условий относится к списку подписавших сторон.
20. Способ по п.17, в котором по меньшей мере одно из первого условия и второго условия относится к списку компонентов операционной системы.
US 2013086383 A1, 04.04.2013 | |||
US 2015172054 A1, 18.06.2015 | |||
US 2007226505 A1, 27.09.2007 | |||
US 2003233644 A1, 18.12.2003. |
Авторы
Даты
2021-05-25—Публикация
2017-08-25—Подача