АРХИТЕКТУРА ВИРТУАЛЬНОГО МОДУЛЯ БЕЗОПАСНОСТИ
VIRTUAL SECURITY MODULE ARCHITECTURE

Подключенные мобильные вычислительные устройства и технологии беспроводной связи, используемые для бизнеса и коммерции, должны защищать данные и секреты пользователя. Архитектура может включать в себя механизмы обеспечения безопасности, предназначенные для воплощения операции цифровой подписи и обертывания ключа, операции хеширования и генерирования случайного числа, которые используют аппаратные средства и поддерживают программные средства, обеспечивающие возможность шифрования и дешифрования для обеспечения конфиденциальности данных и улучшения безопасности.
Архитектура этих систем ограничивает использование секретов таким образом, что только авторизованные приложения используют конкретные секреты, но в настоящее время каждая команда, которая использует секреты, проходит через проверку криптографической авторизации. Существует потребность в механизме, поддерживающем множество активных приложений, которые выполняются одновременно, что устраняет необходимость проверки авторизации для каждой команды.
Краткое описание чертежей
Предмет изобретения, в частности, указан и ясно заявлен в заключительном разделе описания. Однако изобретение как в отношении организации, так и в отношении способа работы вместе с его целями, свойствами и преимуществами лучше всего можно понять со ссылкой на следующее подробное описание, которое следует читать с рассмотрением прилагаемых чертежей, на которых:
на фиг.1 показана схема варианта воплощения беспроводного устройства, которая иллюстрирует виртуальный модуль безопасности и модуль доверия платформы при поддержке множества активных приложений, которые выполняют одновременно в соответствии с настоящим изобретением;
на фиг.2 показана блок-схема, иллюстрирующая систему отображения, которая дифференцирует и защищает секреты клиентов в соответствии с настоящим изобретением; и
на фиг.3 показана блок-схема последовательности операций, которая иллюстрирует способ идентификации команд, вырабатываемых определенным клиентом, и обработки алгоритма доступа к данным памяти для этого клиента в соответствии с настоящим изобретением.
Следует понимать, что для простоты и ясности иллюстрации элементы, представленные на чертежах, не обязательно вычерчены в масштабе. Например, размеры некоторых элементов могут быть преувеличены относительно других элементов для ясности представления. Кроме того, когда это считается соответствующим, номера ссылочных позиций повторяются на чертежах для обозначения соответствующих или аналогичных элементов.
Подробное описание изобретения
В следующем подробном описании изобретения различные специфичные детали представлены для обеспечения полного понимания изобретения. Однако для специалистов в данной области техники будет понятно, что настоящее изобретение может быть выполнено на практике без этих конкретных деталей. В других случаях хорошо известные способы, процедуры, компоненты и схемы не были подробно описаны для того, чтобы не делать настоящее изобретение неясным.
Как показано на фиг.1, варианты воплощения настоящего изобретения могут быть представлены в виде устройства 10, которое включают в себя радиоблок, обеспечивающий возможность связи в пространстве РЧ/размещения с другими устройствами. В соответствии с этим устройство 10 может представлять собой такое устройство связи, как смартфон, в котором установлена стандартизированная операционная система и который выполнен с возможностью многофункционального режима работы с выполнением различных приложений и работы в беспроводной сети связи, но следует понимать, что настоящее изобретение может быть воплощено в других устройствах кроме беспроводных устройств.
На чертеже иллюстрируется приемопередатчик 12, который как принимает, так и передает модулированный сигнал через одну или больше антенн. Процессор 14 принимает отфильтрованный сигнал, преобразованный с понижением частоты, которую преобразуют в основной сигнал в основной полосе пропускания. Процессор 14 обычно содержит функции алгоритма, которые выбирают инструкции, генерируют декодирование, находят операнды и выполняют соответствующие действия с последующим сохранением результатов. Процессор 14 может использовать множество ядер 16 и 18 для расчета как обработки функций в полосе пропускания, так и обработки приложений, в которых нагрузка при обработке может совместно распределяться между ядрами. Процессор 14 может передавать данные через интерфейс 22 памяти в системную память 24, которая может включать в себя комбинацию запоминающих устройств, таких как, например, оперативное запоминающее устройство (RAM, ОЗУ), постоянное запоминающее устройство (ROM, ПЗУ) и энергонезависимое запоминающее устройство, хотя ни тип, ни разновидность запоминающих устройств, включенных в системную память 24, не представляют ограничение настоящего изобретения.
В устройстве 10 используется модуль 20 виртуальной безопасности и доверия платформы, который включает в себя аппаратные средства, выполненный с возможностью выполнения криптографических функций, и программное средство для защиты секретов от проводящих атаку лиц. Обычно модуль 20 может формировать, сохранять криптографические ключи и управлять ими; выполнять операции цифровой подписи и привязывать цепочку сертификатов для ключей и цифровых сертификатов. Таким образом, модуль 20 предоставляет различные услуги для защиты файлов и папок и обеспечивает защищенное хранение и управление информацией пользователя, именами пользователя, паролями и персональной информацией.
На фиг.2 иллюстрируется в соответствии с настоящим изобретением участок модуля 20, который формирует ассоциацию между виртуальными машинами (VM, ВМ) или доменами безопасности (SD, ДБ) и различными наборами секретов, принадлежащих определенным клиентам. ВМ могут представлять собой группу ядер обработки или устройств обработки, администрирование которыми выполняют с использованием общих правил и процедур сети. Кроме того, ВМ или домены могут представлять собой программные объекты, имеющие ресурсы, которые обеспечивают возможность выполнения задач.
На чертеже показана система 208 отображения, которая отображает команды, вырабатываемые клиентом, на сигнал выбора объекта, который генерирует для идентификации этого клиента с командами. Команды и сигнал выбора объекта затем могут быть переданы в конфигурацию отдельных аппаратных и программных компонентов, которые вместе выполняют услугу. Виртуальные машины или клиенты 202, 204 или 206 могут вырабатывать команды в специфичные для платформы директивы для управления потоком информации и управления доступом. Например, после того как клиент 202 "X" выработает команду, система 208 отображения принимает эту команду и генерирует сигнал выбора объекта для ясной идентификации этой команды с клиентом 202. Команду и сигнал выбора объекта затем используют для конфигурирования защищенных исполнительных сред для выполнения алгоритмов и проведения расчетов с использованием только секретов, назначенных для клиента 210 "X". Другие секреты, например секреты клиента 212 "Y" и секреты клиента 214 "Z", относятся к другим клиентам (соответственно, к клиенту 204 "Y" и клиенту 206 "Z") и ограничены и недоступны для алгоритмов и расчетов, выполняемых для клиента 202 "X".
Таким образом, устройство 10 представляет собой систему обработки, обладающую возможностями аутентификации для поддержки множества активных приложений. Система 208 отображения принимает команды, вырабатываемые множеством клиентов 202, 204 и 206, передает эти команды в устройство обработки вместе с сигналами выбора объекта, которые специфично идентифицируют эти команды как ассоциированные с этим клиентом. Затем могут быть выполнены операции, при этом операции являются специфичными для клиента, идентифицированного по сигналу выбора объекта. Снова операции для идентифицированного клиента ограничены использованием команд и сохраненными данными, к которым прикреплены права, ранее назначенные этому клиенту. Данные, сохраненные с прикрепленными к ним правами, назначенными для других клиентов, представляют собой ограниченные данные, и они являются недоступными.
На чертеже показан блок 216 отображения номера клиента, который вырабатывает сигнал выбора объекта и команды от клиента, идентифицированные по этому сигналу, для обеспечения безопасности и управления операциями для запрашиваемых услуг. Система 208 отображения во взаимодействии с отображением 216 номера клиента упрощает управление доверием в крупных распределенных системах, обеспечивая гибкое развертывание защищенных услуг. Подборки секретов, специфичных для различных клиентов, поддерживаются и защищаются с предоставлением доступа к этим секретам только для специфичного клиента, идентифицированного системой 208 отображения и активированного отображением 216 номера клиента.
Модуль 20 виртуальной безопасности и доверия платформы в устройстве 10 предназначен для обеспечения явной и автономной защиты секретов, зарезервированных для конкретного клиента перед обработкой услуги. Разработчик приложений освобождается от необходимости воплощения и проверки относящихся к безопасности функций криптографической авторизации для каждой команды, вырабатываемой для обработки услуги. Вместо индивидуального определения для каждого пользователя приложения или для каждой системы, приложения или услуги, предназначенные для обработки, поддерживают ассоциацию между виртуальными машинами или доменами безопасности и обозначенным набором секретов для последующих команд, передаваемых в устройство, до тех пор, пока приложение не будет отделено от этих секретов.
На фиг.3 показана блок-схема последовательности операции, которая в соответствии с различными вариантами воплощения настоящего изобретения иллюстрирует способы идентификации команд, вырабатываемых конкретным клиентом, и обработку алгоритма, который обращается к данным в памяти для этого клиента в соответствии с настоящим изобретением. Таким образом, способ 300 можно использовать в компьютерной системе, которая поддерживает множество виртуальных машин или множество доменов безопасности для защиты секретов, разрешенных для использования этими приложениями. Способ 300 надежно поддерживает ассоциацию между виртуальными машинами или доменами безопасности и назначенным набором секретов для всех последующих команд, передаваемых в устройство, до тех пор, пока приложение не будет отделено от этих секретов.
В некоторых вариантах воплощения способ 300 или его части выполняют с помощью контроллера, процессора или электронной системы, варианты воплощения которых представлены на различных чертежах. Способ 300 не ограничивается конкретным типом устройства, программным элементом или системой, выполняющей этот способ. Различные действия в способе 300 могут быть выполнены в представленном порядке или могут быть выполнены в другом порядке. Кроме того, в некоторых вариантах воплощения некоторые действия, представленные на фиг.3, могут быть исключены из способа 300.
Способ 300 показан с началом в блоке 302, в котором блок монитора (такой, как система 208 отображения, показанная на фиг.1) отслеживает команды, вырабатываемые из множества виртуальных машин или множества доменов безопасности. Команды, поступающие от клиента, идентифицируют как выработанные этими специфичными клиентами. Способ, выполняемый в блоке 302, генерирует сигнал выбора объекта для идентификации ВМ/ДБ, в которых работает приложение, и передает эту идентификацию в периферийное устройство каждый раз, когда команду передают в устройство. Идентификатор предоставляют для отображения 218 номера клиента в устройстве.
Блок 304 представляет обработку устройством алгоритма для клиента с использованием команд, идентифицированных для этого клиента. При этом может выполняться обращение к данным, сохраненным в кэше и в системной памяти, но обращение к секретам, содержащимся в памяти, может осуществляться только с разрешения системы отслеживания клиента (отображение 218 номера клиента, см. фиг.2). Система 208 отображения и отображение 218 номера клиента управляют ресурсами, обеспечивая возможность безопасной передачи данных из операционной системы (OS, ОС) или гипервизора в устройство, секреты и команды которого должны быть разрешены для использования приложением устройства. В блоке 306 показано, что благодаря поддержке ассоциации между ВМ или ДБ и назначенными наборами секретов для всех последующих команд, передаваемых в устройство до тех пор, пока приложение не будет отделено от этих секретов, предотвращается использование приложениями секретов, которые могли бы нарушить безопасность системы.
Во время работы аппаратные средства в процессоре могут включать в себя биты состояния, которые уникально идентифицируют каждую ВМ или ДБ. В некоторых процессорах они могут представлять собой идентификатор процесса (PID, ИДП) или идентификатор пространства адреса (ASID, ИДПА). Когда приложение, работающее в ВМ или ДБ, передает команду в периферийное устройство, аппаратный процессор передает в периферийное устройство сигналы, информирующие периферийное устройство, какая ВМ или ДБ передает эту команду. Передача таких сигналов может быть выполнена через специально назначенные сигналы, выводимые процессором, или с использованием кодирования информации в другие сигналы, такие как сигналы шины адреса. Периферийное устройство затем обеспечивает то, что передаваемые команды и данные, используемые для выполнения этих команд, являются соответствующими для ВМ или ДБ, передающих эти команды.
От одного этапа обработки до следующего идентификатор, ассоциированный с ВМ или ДБ, в которых обрабатывается определенное приложение, может меняться для динамического отображения от идентификатора ДБ/ВМ до набора секретов. Когда запускают приложение, использующее секреты, ОС (или гипервизор) вначале аутентифицирует приложение, проверяя как его целостность, так и его идентичность. После аутентификации приложения ОС затем передает в периферийное устройство как идентификатор ВМ/ДБ, так и маркер, который разблокирует использование набора ассоциированных сохраненных секретов и набора разрешенных операций приложения. Когда приложение останавливают или приостанавливают его выполнение, ОС передает другую команду в периферийное устройство на отмену ассоциации. Приложение также может закончить ассоциацию самостоятельно, но только ассоциацию вместо нее самой. ОС может включать в себя специальный идентификатор ВМ/ДБ, который использует аппаратные средства таким образом, что только ОС может передавать команды на ассоциирование идентификатора ВМ/ДБ с набором секретов.
Следует отметить, что периферийное устройство одновременно может содержать множество ассоциаций между ВМ/ДБ и секретами. Кроме того, возможно одновременное ассоциирование множества ВМ или ДБ с одним и тем же набором секретов. Такая ситуация может возникать в случае, когда множества копий одной и той же программы работают под разными ВМ или ДБ или когда одна ВМ или ДБ должна быть ассоциирована с несколькими наборами секретов.
Таким образом, должно быть понятно, что были предусмотрены схема и способы для поддержки обработки множества активных приложений в процессоре. Варианты воплощения изобретения сдвигают обеспечение безопасности на уровень аппаратных средств, совместно с программными средствами, используя систему отображения, которая идентифицирует команды, вырабатываемые первым клиентом, отличая их от команд, вырабатываемых другими клиентами. Сигнал выбора объекта, генерируемый системой отображения, передает в процессор сигналы на обработку алгоритма для первого клиента, используя команды, идентифицированные для первого клиента, и данные, разрешенные системой отслеживания клиента для этого первого клиента. Другие обращения к данным и команды, идентифицированные для других клиентов, ограничены при обработке этого алгоритма.
Хотя здесь были представлены и описаны определенные свойства изобретения, множество модификаций, замен, изменений и эквивалентов будут понятны для специалистов в данной области техники. Таким образом, следует понимать, что приложенная формула изобретения предназначена для охвата всех таких модификаций и изменений, которые попадают в пределы истинной сущности изобретения.