УСТАНОВЛЕНИЕ ВЗАИМНОГО ФИЗИЧЕСКОГО МЕСТОПОЛОЖЕНИЯ ЗАЩИЩЕННЫХ СРЕД ВЫПОЛНЕНИЯ
ESTABLISHING PHYSICAL LOCALITY BETWEEN SECURE EXECUTION ENVIRONMENTS

Уровень техники
Область техники, к которой относится изобретение
Настоящее изобретение относится к области обработки информации, а более конкретно, к области безопасности в системах обработки информации.
Описание уровня техники
Конфиденциальную информацию хранят, передают и используют многие системы обработки информации. Поэтому были разработаны технологии для обеспечения безопасной обработки, передачи и хранения конфиденциальной информации. Эти технологии включают в себя различные подходы к созданию и поддерживанию безопасного, защищенного или изолированного контейнера, раздела или среды выполнения в системе обработки информации, и различные подходы к передаче информации между приложениями или агентами, работающими с такими контейнерами, разделами или средами выполнения.
Например, если первый агент получает услугу от второго агента, то второй агент может потребовать подтверждения полномочий и аутентичности первого агента до предоставления услуги. Второму агенту требуется гарантия того, что первый агент не присвоит информацию, не атакует систему или не нанесет ущерб каким-либо иным способом. Когда такая гарантия получена, то может быть выработан сеансовый ключ, при этом сеансовый ключ обеспечивает конфиденциальность, целостность или и то, и другое для запрашиваемых и предоставляемых услуг.
Краткое описание чертежей
Настоящее изобретение проиллюстрировано на неограничивающем примере, показанном на прилагаемых чертежах.
На фиг. 1 показана система установления взаимного физического местоположения защищенных сред выполнения в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 2 показан способ установления взаимного физического местоположения защищенных сред выполнения в соответствии с вариантом осуществления настоящего изобретения.
Подробное описание изобретения
Описаны варианты осуществления изобретения для установления взаимного физического местоположения защищенных сред выполнения. В этом описании для более полного понимания настоящего изобретения могут быть изложены многочисленные специфические детали, такие как конфигурации компонента и системы. Тем не менее, специалистам в данной области техники будет понятно, что изобретение может быть реализовано на практике без таких специфических деталей. Кроме того, некоторые хорошо известные структуры, схемы и другие признаки не были подробно показаны, чтобы без надобности не делать настоящее изобретение менее понятным.
В последующем описании выражения "один вариант осуществления", "вариант осуществления", "пример осуществления", "различные варианты осуществления" и т.д. означают, что вариант(ы) осуществления изобретения, описанный таким образом, включает в себя особые признаки, структуры или характеристики, но особые признаки, структуры или характеристики могут включать в себя более одного варианта осуществления, но не обязательно, чтобы их включал в себя каждый вариант осуществления. Помимо этого, в некоторых вариантах осуществления могут содержаться некоторые признаки, все признаки, описанные для других вариантов осуществления, или могут вовсе не содержаться.
Как в формуле изобретения, если иное специально не указано, использование порядковых числительных "первый", "второй", "третий" и т.д. при описании элемента означает только, что упоминают конкретный экземпляр элемента или различные экземпляры одинаковых элементов, и не подразумевается, что описанные таким образом элементы должны быть расположены в определенной последовательности по времени, в пространстве, в соответствии с иерархией или как-либо еще.
Были разработаны различные подходы к созданию и поддержанию доверенного, безопасного, защищенного или изолированного контейнера, раздела или среды выполнения в системе обработки информации. Один такой подход включает в себя защищенные области, описанные, например, в находящейся в процессе одновременного рассмотрения заявке на патент США "Способ и устройство для обеспечения защищенного выполнения приложения" от 19.06.2012, №13/527547, в которой представлена информация, касающаяся, по меньшей мере, одного варианта осуществления доверенного, безопасного, защищенного или изолированного контейнера, раздела или среды выполнения. Тем не менее, не предполагается, что эти ссылки каким-либо образом ограничивают объем вариантов осуществления настоящего изобретения, и можно применять другие варианты осуществления, оставаясь при этом в рамках сущности и объема настоящего изобретения.
Более того, можно применять вместе различные подходы. Например, действие или выполнение механизма управления, механизма управляемости, модуля конвергенции безопасности и т.п., например, системного контроллера, логической схемы системы или платформы, можно рассматривать в качестве доверенной или безопасной среды выполнения, которая может осуществлять связь с другой формой доверенной или безопасной среды выполнения, такой как защищенная область. Поэтому, любой экземпляр доверенного, безопасного, защищенного или изолированного контейнера, раздела или среды выполнения, используемый в любом варианте осуществления настоящего изобретения, можно назвать защищенной средой выполнения.
Варианты осуществления настоящего изобретения могут быть использованы для того, чтобы установить взаимное физическое местоположение защищенных сред выполнения, для которых может быть желательно, чтобы они подавляли атаки на линии связи между защищенными средами выполнения. Например, защищенный канал связи между первой и второй конечными точками может быть установлен с использованием криптографических протоколов, таких как протокол сигма, в котором обмен ключами с аутентификацией позволяет обеим конечным точкам удостовериться в подлинности другой конечной точки. Варианты осуществления настоящего изобретения могут предусматривать, чтобы обе конечные точки также проверяли, что они находятся на той же аппаратной платформе. Поэтому, варианты осуществления настоящего изобретения могут быть использованы для предотвращения того, чтобы вредоносная программа, заразившая вторую конечную точку (например, аппаратное устройство ввода/вывода (I/O) или другое периферийное устройство), перенаправила канал на третью конечную точку, которая не разделяет физическое местоположение с первой конечной точкой (например, третья конечная точка может быть на уделенной компьютерной системе или платформе).
На фиг. 1 показана система 100 обработки информации, обеспечивающая установление взаимного физического местоположения защищенных сред выполнения в соответствии с вариантом осуществления настоящего изобретения. Система 100 может представлять собой систему обработки информации любого типа, как, например, сервер, настольный компьютер, портативный компьютер, приставку, карманное устройство, такое как планшет или смартфон, или встроенную систему управления. Система 100 включает в себя процессоры 110 и 130, агент 142 управления периферийным оборудованием (PCA) и устройство 152 ввода/вывода.
Системы, реализующие настоящее изобретения, могут включать в себя любое число каждых из этих компонентов и любые другие компоненты или другие элементы, такие как системная память, компоненты системного контроллера, другое периферийное оборудование и т.д. Любые или все другие компоненты или другие элементы в любом варианте осуществления системы могут быть соединены, сопряжены или иным способом сообщаться друг с другом через любое число шин, соединений, или иных проводных или беспроводных интерфейсов или соединений. Любые компоненты или другие участки системы 100, либо показанные на фиг. 1, либо не показанные на фиг. 1, могут быть интегрированы или иным образом расположены на одной микросхеме или включены в одну микросхему (однокристальная система или SoC), кристалл, подложку или корпус.
Каждый из процессоров 110 и 130 может представлять собой один или несколько процессоров, интегрированных на одной подложке или упакованные в одном корпусе, каждый из которых может включать в себя многопоточные ядра и/или множество исполнительных ядер в любом сочетании. Каждый процессор, представленный в виде процессора 110 или процессора 130, может быть процессором любого типа, включая микропроцессор общего назначения, такой как процессор семейства Intel Core, Intel Atom или другого семейства процессоров корпорации Intel, или другим процессором другой компании, или процессором специального назначения или микроконтроллером, и не обязательно должен принадлежать одному и тому же семейству процессоров.
Каждый из процессоров 110 и 130 может функционировать в соответствии со структурой системы команд, которая включает в себя первую команду для создания защищенной среды выполнения, вторую команду для добавления содержимого в защищенную среду выполнения, третью команду для измерения содержимого защищенной среды выполнения, четвертую команду для инициализации защищенной среды выполнения, пятую команду для выработки отчета о содержимом защищенной среды выполнения и/или подлинности, и шестую команду для получения ключа, предназначенного для использования защищенной средой выполнения. Хотя варианты осуществления настоящего изобретения могут быть реализованы на практике с процессором, имеющим любую структуру системы команд, и не ограничены архитектурой семейства процессоров от компании Intel, команды могут являться частью набора расширений к существующей архитектуре для защиты программного обеспечения, и могут именоваться в этом документе как команда ECREATE, команда EADD, команда EEXTEND, команда EINIT, команда EREPORT и команда EGETKEY соответственно. Поддержка этих команд может быть реализована в процессоре с использованием любого сочетания схем и/или логики, внедренной в аппаратную часть, в микрокод, прошивку и/или другие структуры.
Процессоры 110 и 130 могут быть соединены или сопряжены друг с другом посредством межпроцессорной связи 120, которая может представлять собой любой тип шины, соединения, или иного проводного или беспроводного интерфейса или соединения, включая связь в соединительной структуре, такой как Intel Quick Path Interconnect, или вариант осуществления соединения высокой производительности, описанного в находящейся в процессе одновременного рассмотрения заявке на патент США "Способ, устройство, система для архитектуры соединения высокой производительности" от 22.10.2012, №61/717091, или любой другой тип соединения в соответствии с любой архитектурой связи.
PCA 142 может представлять собой любой компонент, включая логическую схему, цепь или другое оборудование для управления логической схемой системы, периферийным оборудованием и адаптерами ввода-вывода и устройствами в системе 100 обработки информации, причем любой из вышеприведенных элементов может быть интегрирован в РСА 142 и/или может сообщаться с PCA 142, и чтобы управлять и/или переводить передачу информации между этими устройствами и любым другим компонентом в системе 100 обработки информации, такими как процессоры 110 и 130, системная память и/или контроллер системной памяти (который может быть интегрирован в процессор 110 и/или 130). РСА 142 может быть соединен или сопряжен с процессором 130 через интерфейс 140, который может представлять собой любой тип шины, соединения или иного проводного или беспроводного интерфейса или соединения, включая шину взаимодействия периферийных компонент типа экспресс (PCIe) или шину Direct Media Interface (DMI).
В этом варианте осуществления РСА 142 включает в себя механизм 144 управления, который может включать в себя любое оборудование или микропрограммное обеспечение для предоставления и/или поддерживания функциональности мониторинга, поддержания, обновления, модернизации и/или ремонта системы 100, что может включать в себя инициализацию ключа и установление защищенного канала связи с удаленной платформой, либо может представлять собой любой другой механизм управляемости, модуль конвергенции безопасности или иной системный контроллер, логическую схему системы или платформы, функционирование или выполнение которых можно рассматривать в качестве доверенной или защищенной среды выполнения.
РСА 142 также включает в себя ячейку 146 памяти для метки местоположения, которая может представлять собой регистр или хранилище любого другого типа любого размера, предназначенное для хранения метки местоположения. Метка местоположения может быть сохранена в ячейке 146 памяти для метки местоположения процессором, инициирующим или запускающим доверенную или защищенную среду выполнения, или работающим в доверенной среде выполнения или защищенной среде выполнения посредством специального сообщения по шине или в соответствии с другим протоколом, или иным образом, как может быть дополнительно объяснено ниже.
Устройство 152 ввода-вывода может представлять собой любое устройство ввода-вывода или периферическое устройство и/или контроллер или адаптер для любого такого устройства. Устройство 152 ввода-вывода может быть интегрировано в любой компонент, такой как системный контроллер, или может быть отдельным от него. Устройство 152 ввода-вывода может быть соединено или сопряжено с процессором 110 через интерфейс 150, который может представлять собой любой тип шины, соединения или иного проводного или беспроводного интерфейса или соединения, включая шину взаимодействия периферийных компонент типа экспресс (PCIe) или шину Direct Media Interface (DMI). Более того, интерфейс 150 может представлять собой интерфейс или соединение с любым другим компонентом, таким как агент управления периферийным оборудованием, межшинный мост, компонент системного контроллера и/или адаптер или контроллер ввода-вывода, который, в свою очередь, может быть соединен или сопряжен с процессором 110.
Возвращаясь к процессорам 110 и 130, каждый из них включает в себя пару исполнительных ядер (ядра 112 и 114 в процессоре и ядра 132 и 134 в процессоре 130), модуль связи (119 и 139 соответственно) и интерфейсный модуль (118 и 138 соответственно). Каждый модуль связи 119 и 139 может включать в себя любую схему или другое оборудование, при помощи которого процессор 110 или процессор 130 (соответственно) могут осуществлять связь друг с другом и/или с другим процессором или процессорами в системе 100, например, через соединение 120. Каждый интерфейсный модуль 118 и 138 может включать в себя любую схему или другое оборудование, при помощи которого процессор 110 или процессор 130 (соответственно) могут осуществлять связь с любыми другими компонентами в системе 100, такими как устройство 152 ввода-вывода (напр., через интерфейс 150) и РСА 142 (напр., через интерфейс 140) соответственно.
В ядрах 112 и 132 изображены защищенные области 111 и 131 соответственно. Каждая из них может представлять собой защищенную область, созданную, скомпонованную и инициализированную с использованием команд ECREATE, EADD, EEXTEND и EINIT, выполненных ядрами 112 и 132 соответственно, или может представлять собой любой другой тип доверенной или защищенной среды выполнения.
Также в процессорах 110 и 130 изображены ячейки памяти для метки местоположения 116 и 136 соответственно. Каждая из них может представлять собой регистр или хранилище любого другого типа любого размера, предназначенное для хранения метки местоположения. Ячейки памяти для метки местоположения 116 и 136, а также любые другие ячейки памяти для метки местоположения в системе 100, такие как ячейка 146 памяти для метки местоположения, заполняют выборкой из генератора случайных чисел во время каждой загрузки системы 100 и распределяют случайное или псевдослучайное значение по всем компонентам в системе 100, имеющим ячейку памяти для метки местоположения. Поэтому, во время работы системы 100 каждая ячейка 116, 136 и 146 памяти для метки местоположения, а также любые другие ячейки памяти для метки местоположения в системе 100 хранят одну и ту же метку местоположения.
Каждая метка местоположения обозначает область местоположения оборудования во время загрузки. Поэтому, метка местоположения может быть использована микропрограммой и программным обеспечением, запущенным в этой области, для доказательства местоположения, например, как часть установления криптографического канала.
Метку местоположения заменяют каждый раз при загрузке системы 100, чтобы допустить добавление или замену оборудования системы, чтобы снизить эффективность атаки методом грубой силы, и чтобы снизить риск того, что одна успешная атака приведет к постоянной компрометации безопасности системы 100.
Для защиты ячеек 116, 136 и 146 памяти для метки местоположения можно применять любой известный подход. Например, может быть ограничен доступ на запись для микрокода или встроенного программного обеспечения защищенной системы во время процесса загрузки, а доступ на чтение может быть ограничен для микрокода через команду EGETKEY.
В одном репрезентативном варианте осуществления устройство 152 ввода-вывода может представлять собой адаптер дисплея, через который конфиденциальную информацию могут передавать на дисплей системы 100. Защищенная область 111 может обеспечивать защищенное выполнение пользовательского приложения, которому был предоставлен доступ на просмотр конфиденциального документа (напр., приложением управления корпоративными правами) через устройство 152 ввода-вывода. Протокол установления защищенного канала связи между защищенной областью 131 и/или механизмом 144 управления в соответствии с вариантом осуществления настоящего изобретения может включать в себя проверку того, что обе конечные точки имеют одну и ту же метку местоположения и, поэтому, расположены на одной и той же аппаратной платформе, чтобы минимизировать возможность атаки, которая могла бы допустить перенаправление передачи конфиденциального документа на удаленную платформу.
На фиг. 2 показан способ 200 установления взаимного физического местоположения защищенных сред выполнения в соответствии с вариантом осуществления настоящего изобретения. Более конкретно, способ 200 показывает протокол удостоверенного обмена ключами для установления защищенного сеанса между областью служб платформы (PSE) и модулем конвергенции безопасности (CSE). В дополнение к обеспечению аутентичности, конфиденциальности и целостности, протокол включает в себя подтверждение установления связи методом "запрос-ответ" с использованием метки местоположения для определения области местоположения в соответствии с вариантом осуществления настоящего изобретения.
Хотя варианты осуществления способа изобретения не ограничены в этом отношении, можно сослаться на элементы на фиг. 1, чтобы помочь описать вариант осуществления способа на фаг.2. Способ 200 может обращаться к одной или нескольким защищенным областям, которые могут быть созданы, скомпонованы и инициализированы с использованием команд ECREATE, EADD, EEXTEND и EINIT, использовать отчет о содержимом защищенной области и/или подлинности с применением команды EREPORT, и запрашивать ключ с использованием команды EGETKEY; тем не менее, варианты осуществления настоящего изобретения не ограничены этими специально названными командами.
В блоке 210 способа 200 загружают систему обработки информации. В блоке 212 берут результат работы генератора случайных числе и распространяют случайное или псевдослучайное значение по регистрам для метки местоположения в различных компонентах системы обработки информации, включая первый регистр для метки местоположения в первом процессоре и второй регистр для метки местоположения, связанный с CSE. В блоке 214 создают, компонуют и инициализируют первую защищенную область (напр., PSE) на первом процессоре.
CSE
CSE
CSE
CSE
В блоке 220 способа 200 PSE отправляет сообщение (M1) на CSE, чтобы начать сеанс. В блоке 222, CSE вырабатывает случайное или псевдослучайное значение (R). В блоке 224 CSE отправляет сообщение (М2) на PSE, при этом М2 включает в себя конкатенацию R и ID, где ID - значение, устанавливающее подлинность CSE.
CSE
PSE
PSE
CSE
CSE
PSE
PSE
В блоке 230 PSE использует ID из М2, чтобы проверить подлинность CSE, напр., что она соответствует ожидаемой подлинности CSE. В блоке 232 PSE вырабатывает случайное или псевдослучайное значение (R). В блоке 234 PSE отправляет сообщение (M3) на CSE, при этом M3 включает в себя конкатенацию ID, ID, R и R, где LD - отчет о содержимом и/или подлинности родительской области (напр., выработанный с помощью команды EREPORT). Конкатенация в M3 может быть защищена кодом (НМАС) аутентификации сообщения на основе хэш-функции с использованием мастер-ключа в стандартном алгоритме шифрования (напр., SHA-256), где мастер-ключ может представлять собой симметричный ключ, известный и PSE, и CSE.
PSE
CSE
CSE
CSE
CSE
В блоке 240 CSE использует ID из M3, чтобы проверить подлинность PSE, напр., что она соответствует ожидаемой подлинности PSE. В блоке 242 CSE проверяет, что значение R, полученное в M3, совпадает со значением R, отправленным в М2. В блоке 244 CSE проверяет, что значение ID, полученное в M3, совпадает со значением ID, отправленным в М2. В блоке 246 CSE использует мастер-ключ, чтобы проверить MAC, отправленный в M3.
CSE
CSE
PSE
CSE
В блоке 250 CSE считывает метку местоположения (LN) из второго регистра для метки местоположения. В блоке 252 CSE отправляет сообщение (М4) на PSE, при этом М4 включает в себя конкатенацию ID, R и LN. Конкатенация в М4 может быть защищена посредством НМАС с использованием мастер-ключа в SHA-256.
PSE
PSE
CSE
CSE
PSE
PSE
CSE
В блоке 260 PSE проверяет, что значение R, полученное в М4, совпадает со значением R, отправленным в M3. В блоке 262 PSE проверяет, что значение ID, полученное в М4, совпадает со значением ID, отправленным в М2. В блоке 264 PSE считывает метку местоположения (LN) из первого регистра для метки местоположения, например, используя команду EGETKEY. В блоке 266 PSE проверяет, что значение LN совпадает со значением LN, полученным в М4. В блоке 268 PSE использует мастер-ключ, чтобы проверить MAC, отправленный в М4.
PSE
CSE
PSE
CSE
В блоке 270 CSE получает временный сеансовый ключ из HMAC-SHA256 конкатенации R и R. В блоке 272 CSE получает тот же временный сеансовый ключ из HMAC-SHA256 конкатенации R и R. В блоке 274 PSE и CSE начинают обмен сообщениями, зашифрованными на временном сеансовом ключе.
В различных вариантах осуществления настоящего изобретения способ, показанный на фиг. 2, может быть выполнен в другом порядке, когда изображенные блоки комбинируют или пропускают, с добавлением новых блоков или с сочетанием переупорядоченных, скомбинированных, пропущенных или дополнительных блоков. Более того, варианты осуществления способа настоящего изобретения не ограничены способом 200 или его вариациями. В рамках объема настоящего изобретения возможно множество других вариантов осуществления способа (а также устройства, системы и других вариантов осуществления), не описанных в этом документе.
Варианты осуществления или части вариантов осуществления настоящего изобретения, как было описано выше, могут быть сохранены на машинно-читаемом носителе информации любого вида. Например, весь способ 200 или его часть может быть выполнена в виде команд программного или микропрограммного обеспечения, которые хранят на носителе информации, который может считывать процессор 110 и/или 130, и при исполнении которых процессором 110 и/или 130, процессор 110 и/или 130 выполняет вариант осуществления настоящего изобретения. Также, аспекты настоящего изобретения могут быть реализованы в виде данных, сохраненных на машинно-читаемом носителе информации, где данные отображают конструкцию или другую информацию, пригодную для изготовления всего процессора 110 и/или 130 или его части.
Таким образом, были описаны варианты осуществления изобретения для установления взаимного физического местоположения защищенных сред выполнения. Хотя были описаны и показаны на сопровождающих чертежах некоторые варианты осуществления, следует понимать, что такие варианты осуществления являются только иллюстративными, а не ограничивающими широкое изобретение, и что изобретение не ограничено специфическими показанными и описанными конструкциями и устройствами, так как по изучении этого описания специалисты в области техники могут получить различные другие модификации. В области технологии, такой как данная, где происходит быстрое развитие, а дополнительные преимущества нелегко предвидеть, устройство и подробности описанных вариантов осуществления могут быть легко модифицированы, что позволяет совершенствовать технику, не отклоняясь от принципов настоящего описания или объема сопровождающей формулы изобретения.