Проверка данных с использованием аттестации в анклаве
Иллюстрации
Показать всеИзобретение относится к сетевой безопасности. Технический результат заключается в расширении арсенала средств того же назначения. Устройство выполнено с возможностью приема ненадежных входных данных в анклаве в электронном устройстве, изоляции ненадежных данных по меньшей мере от участка анклава, передачи по меньшей мере части ненадежных данных в модуль проверки целостности с использованием канала аттестации и приема проверки целостности данных для ненадежных данных от модуля проверки целостности. Модуль проверки целостности может выполнять функции аттестации целостности данных для проверки ненадежных данных, причем функции аттестации целостности данных включают в себя политику аттестации данных и белый список. 4 н. и 21 з.п. ф-лы, 9 ил.
Реферат
Область техники, к которой относится изобретение
Данное раскрытие, в общем, относится к области информационной безопасности и, более конкретно, к проверке данных, используя аттестацию в анклаве.
Уровень техники
Область сетевой безопасности становится все более и более важной в современном обществе. Интернет обеспечил возможность взаимного соединения с разными компьютерными сетями во всем мире. В частности, Интернет обеспечивает среду для обмена данными между разными пользователями, соединенными с разными компьютерными сетями через разного типа устройства клиентов. В то время как использование Интернет преобразовало деловое общение и персональную передачу данных, злонамеренные операторы также используют его, как средство для получения несанкционированного доступа к компьютерам и компьютерным сетям и для намеренного или непреднамеренного раскрытия чувствительной информации.
Вредоносное программное обеспечение ("malware"), которое заражает главный компьютер, может быть выполнено с возможностью выполнения любого количества злонамеренных действий, таких как кража чувствительной информации у бизнеса или у отдельных лиц, имеющих дело с главным компьютером, распространение на другие главные компьютеры, и/или помощь при распределенном отказе в атаках на услугу, пересылая спам или злоумышленные послания по электронной почте из главного компьютера и т.д. Следовательно, остаются нерешенными существенные административные проблемы для защиты компьютеров и компьютерных сетей от злоумышленной и непреднамеренной эксплуатации со стороны вредоносного программного обеспечения.
Краткое описание чертежей
Для обеспечения более полного понимания настоящего раскрытия и его свойств, и преимуществ, ссылка будет сделана на следующее описание, которое следует рассматривать совместно с приложенными чертежами, на которых одинаковые номера ссылочных позиций представляют одинаковые части, на которых:
на фиг. 1 показана упрощенная блок-схема системы передачи данных для проверки данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления настоящего раскрытия;
на фиг. 2 показана упрощенная блок-схема части системы передачи данных для проверки данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления настоящего раскрытия;
на фиг. 3 показана упрощенная блок-схема последовательности операций, поясняющая потенциальные операции, которые могут быть ассоциированы с системой передачи данных, в соответствии с вариантом осуществления;
на фиг. 4 показана упрощенная блок-схема последовательности операций, поясняющая потенциальные операции, которые могут быть ассоциированы с системой передачи данных, в соответствии с вариантом осуществления;
на фиг. 5 показана упрощенная блок-схема последовательности операций, поясняющая потенциальные операции, которые могут быть ассоциированы с системой передачи данных, в соответствии с вариантом осуществления;
на фиг. 6 показана упрощенная блок-схема последовательности операций, поясняющая потенциальные операции, которые могут быть ассоциированы с системой передачи данных, в соответствии с вариантом осуществления;
на фиг. 7 показана блок-схема, поясняющая пример вычислительной системы, которая выполнена в конфигурации "из точки-в-точку" в соответствии с вариантом осуществления;
на фиг. 8 показана упрощенная блок-схема, ассоциированная с примером системы экосистемы ARM на кристалле (SOC), в соответствии с настоящим раскрытием; и
на фиг. 9 показана блок-схема, поясняющая пример ядра процессора, в соответствии с вариантом осуществления.
Фигуры не обязательно вычерчены в масштабе, поскольку их размеры могут значительно различаться, без выхода за пределы настоящего раскрытия.
Подробное описание изобретения
Примеры вариантов осуществления
На фиг. 1 показана упрощенная блок-схема системы передачи данных для проверки данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления настоящего раскрытия. Система 10a передачи данных может включать в себя электронное устройство 12a, сервер 14 и облако 16. Электронное устройство 12a может включать в себя анклав 20a, ненадежное приложение 24 и модуль 26a проверки целостности. Анклав 20a может включать в себя доверенное приложение 22. Модуль 26a проверки целостности может включать в себя библиотеку 30 аттестации входных данных. Анклав 20a может быть соединен с модулем 26a проверки целостности, используя канал 28a аттестации. Сервер 14 может включать в себя модуль 26b проверки целостности. Анклав 20a может быть соединен с модулем 26b проверки целостности на сервере 14, используя канал 28b аттестации. Облако 16 может включать в себя модуль 26c проверки целостности. Анклав 20a может быть соединен с модулем 26c проверки целостности в облаке 16, используя канал 28c аттестации. Анклав 20a может представлять собой доверенную исполнительную среду (TEE). Каналы 28a, 28b, и 28c аттестации могут представлять собой защищенные каналы передачи данных.
В примерных вариантах осуществления система 10a передачи данных (и 10b, описанная ниже) может быть сконфигурирована так, что она будет включать в себя систему для обеспечения проверки данных, используя аттестацию в анклаве, и для выполнения аттестации значений данных, подаваемых в анклав. Удаленный сервер проверки в анклаве может применять политику целостности данных, которая может динамически обновляться для постоянного отслеживания атак в отношении входных данных. Система 10a (и 10b) передачи данных может использовать канал аттестации для выполнения функции аттестации целостности данных и для предоставления политики аттестации целостности данных, где политика является доступной для анклава. Ненадежные входные данные (например, данные из ненадежного приложения 24) могут быть изолированы до использования приложением в анклаве (например, доверенным приложением 22), и проверка целостности данных может быть выполнена либо локально, используя локальный модуль проверки целостности, или удаленно, используя удаленный модуль проверки целостности. Модуль проверки целостности может быть выполнен с возможностью использования библиотеки, которая может обеспечивать возможность проверок диапазона данных, проверок типа данных и сканирования данных для встроенного кода или другого вредоносного программного обеспечения и т.д.
Элементы на фиг. 1 могут быть соединены друг с другом через один или больше интерфейсов, использующих любые соответствующие соединения (проводные или беспроводные), которые обеспечивают разные пути к сетям (например, сети 18) передачи данных. Кроме того, любой один или больше из этих элементов по фиг. 1 может быть скомбинирован или удален из архитектуры на основе конкретных требований конфигурации. Система 10a (и 10b) передачи данных может включать в себя конфигурацию, позволяющую выполнять передачу данных, в соответствии с протоколом управления передачей/протоколом Internet (TCP/IP) для передачи или приема пакетов в сети. Система 10a (и 10b) передачи данных также может работать в связи с протоколом дейтаграмм пользователя/IP (UDP/IP) или любым другим соответствующим протоколом, тогда, когда это необходимо и основано на конкретной потребности.
С целью иллюстрации определенного примера технологий системы 10a (и 10b) передачи данных важно понять передачу данных, которая может происходить в сетевой среде. Следующую основополагающую информацию можно рассматривать, как основу, на которой можно правильно пояснить настоящее раскрытие. Термин "анклав" является инклюзивным и относится к доверенной исполнительной среде (TEE) и представляет ее защищенную область памяти, доступ к которой обычно осуществляется только в самом анклаве или через программный интерфейс доверенного приложения для предоставления услуг. В общем, другие процессы не могут считывать, записывать или по-другому осуществлять доступ к данным, сохраненным в анклаве, и анклав позволяет защищать доверенное приложение во время его исполнения.
В существующих системах ненадежный загрузчик может устанавливать код в анклав, и содержание анклава (например, загруженный код) может проверяться удаленно, используя аттестацию. Удаленное проверяющее устройство должно иметь белый список, в соответствии с которым выполняется оценка степени доверительности кода и назначается аттестационное значение. Однако анклав все еще может быть уязвимым перед атаками во время исполнения, когда данные, вводимые в анклав, используются для эксплуатации слабости кода, или приводят к нарушению целостности защищенных в анклаве данных. Разработчики анклава ожидали потенциал ненадежных источников входных данных, обеспечивая в анклаве возможность использования специфичного для анклава ключа, который может использоваться для установления надежного канала передачи данных со входным источником. Как правило, требуется способ, работающий вне полосы для установления доверия во входном источнике. Однако все еще возможно злоумышленное поведение входного источника, поскольку на практике анклавы развернуты в гетерогенных средах, содержащих смесь систем, осведомленных об анклаве и игнорирующих анклав. Требуются система и способ проверки целостности данных, используя аттестацию анклава и надежный канал аттестации при передаче данных.
Система передачи данных для проверки данных, используя аттестацию в анклаве, как представлено на фиг. 1, может решать эти проблемы (и другие). В системе 10a передачи данных по фиг. 1, для выполнения проверки данных, используя аттестацию в анклаве, система может быть выполнена с возможностью включения в себя модуля проверки целостности (например, модулей 26a, 26b или 26c проверки целостности) и API, как логики для предоставления инструмента для приложения анклава в виде услуг аттестации входных данных. Модуль проверки целостности может использовать канал TEE для исходной аттестации, где входные данные могут быть переданы в сервер (например, сервер 14) или в "облачные" услуги (например, облако 16) для анализа. Специфичные для приложения или специфичные для домена политики могут использоваться серверами или услугами "облака", как часть анализа. В качестве альтернативы, политика или часть политики могут быть предоставлены в локальный модуль проверки целостности, где целостность входных данных и проверку диапазона данных можно выполнять локально в пределах анклава.
Предоставление инструмента для входных данных может быть специфичным для приложения. Например, приложение может ожидать входных значений, которые имеют только четные номера. Политика аттестации данных может устанавливать это ограничение или другие аналогичные ограничения, специфичные для приложения. Проверка входных данных также может быть более обобщенной. Например, политика аттестации данных может требовать, чтобы входные данные находились в пределах диапазона от 32 бита или 64 битов целых чисел. Проверка входных данных также может вовлекать сложный анализ, разработанный для детектирования блоков кода, замаскированных, как данные. Например, простое приложение сценария Java может быть кодировано, как входная строка, такая, как имя человека или место его пребывания. Модуль проверки на целостность может анализировать строку для поиска структур, характеристик или кода, сценариев и т.д. В примерах, где было бы более эффективно обрабатывать проверку целостности данных в электронном устройстве, политика аттестации данных может быть предоставлена по каналу аттестации в электронное устройство. Локальная обработка может происходить, и может приводить к тому, что результаты обработки могут передавать обратно через канал аттестации.
Под приложением анклава может подразумеваться, что анклавы будут соединены только с доверенными входными источниками, используя зашифрованный канал или специально выделенный канал вне пределов полосы. Система 10a передачи данных может обеспечивать возникновение ненадежного входа, без нарушения целостности кода анклава. Например, приложения анклава могут быть записаны для выполнения локальной или удаленной проверки диапазона данных и других проверок целостности данных. Кроме того, электронное устройство может использовать канал аттестации, для выполнения проверок целостности данных для удаленного сервера, или облако, для выполнения проверок целостности для локального анклава, используя динамически предоставленную политику. Кроме того, результаты локальных проверок целостности можно передавать в виде отчета по каналу аттестации. Статический анализ приложения анклава может позволять устанавливать, используются или нет библиотеки входных данных. Обычная аттестация устанавливает, что в анклав загружено ненарушенное приложение. Предоставление инструмента для пути кода может использоваться, как услуга проверки целостности (например, модуль 26a, 26b или 26c проверки целостности) для помощи при конструировании политики, которая может использоваться для фокусирования на проверку входных данных.
В примерном варианте осуществления ненадежное приложение (например, ненадежное приложение 24) вводит ненадежные данные в приложение анклава. Ненадежные данные могут превышать пределы размера буфера, могут нарушать правила печати данных, могут содержать код атаки и т.д. Доверенное приложение (например, доверенное приложение 22) в анклаве, который включает в себя или имеет доступ к библиотекам аттестации входных данных, перехватывает ненадежные данные прежде, чем они могли бы достичь других частей анклава. Ненадежные данные перенаправляют в модуль проверки целостности, используя канал аттестации, где может выполняться проверка анализа целостности данных. Проверки анализа целостности данных могут включать в себя, но не ограничены этим, проверку диапазона данных и проверку типа, проверку значений данных и сканирование содержания данных, которые могут включать в себя сканирование для встроенного кода или сценария. Если ненадежные данные будут проверены, проверенные (и, возможно, обеззараженные) данные возвращаются в анклав для обработки.
В варианте осуществления политика проверки может быть предусмотрена в приложении анклава, которое включает в себя или которое имеет доступ к библиотеке аттестации данных, где могут применяться некоторые или все проверки целостности данных. Политика может предоставляться, используя канал аттестации. Результаты проверки могут быть переданы в сервер или в "облачные" услуги, где может выполняться проверка аудита, и результаты могут быть зарегистрированы для анализа.
Возвращаясь к инфраструктуре на фиг. 1, здесь показана система 10a (и 10b) передачи данных, в соответствии с примерным вариантом осуществления. В общем, система 10a (и 10b) передачи данных может быть воплощена в любом типе или топологии сетей. Сеть 18 представляет собой последовательность точек или узлов, взаимно соединенных путей передачи данных для приема и передачи пакетов информации, которые распространяются через систему 10a (и 10b) передачи данных. Сеть 18 предлагает создавать интерфейс передачи данных между узлами, и может быть выполнена, как любая локальная вычислительная сеть (LAN), виртуальная локальная вычислительная сеть (VLAN), широкополосная вычислительная сеть (WAN), беспроводная локальная вычислительная сеть (WLAN), городская вычислительная сеть (MAN), Интранет, Экстранет, виртуальная частная сеть (VPN), и любая другая соответствующая архитектура или система, которая способствует передаче данных в сетевой окружающей среде, или любая соответствующая ее комбинация, включая в себя проводную и/или беспроводную передачу данных.
В системе 10a (и 10b) передачи данных сетевой трафик, который включает в себя пакеты, фреймы, сигналы, данные и т.д., может быть передан и принят в соответствии с любыми соответствующими протоколами передачи коммуникационных сообщений. Соответствующие протоколы передачи коммуникационных сообщений могут включать в себя многоуровневую схему, такую как модель взаимного соединения открытых систем (OSI), или любые ее производные или варианты (например, протокол управления передачей/протокол Internet (TCP/IP), протокол датаграммы пользователя/IP (UDP/IP)). Кроме того, передача радиосигнала через сотовую сеть также может обеспечиваться в системе 10a (и 10b) передачи данных. Соответствующие интерфейсы и инфраструктура могут быть предусмотрены для обеспечения передачи данных в сотовой сети.
Термин "пакет", используемый здесь, относится к модулю данных, который может быть направлен между узлом источника и узлом назначения в сети переключения пакетов. Пакет включает в себя адрес сетевого источника и адрес сетевого назначения. Эти сетевые адреса могут представлять собой адреса соответствующего протокола Интернет (IP) и протокола передачи сообщений TCP/IP. Термин "данные", используемый здесь, относится к любому типу двоичных, цифровых, голосовых, видео данных, текстовых данных или данных сценария, или любому типу исходного или объектного кода, или любой другой соответствующей информации в любом соответствующем формате, которая может быть передана из одной точки в другую в электронных устройствах и/или сетях. Кроме того, сообщения, запросы, отклики и обращения представляют собой форму сетевого трафика и, поэтому, могут содержать пакеты, фреймы, сигналы, данные и т.д.
В примерном воплощении электронное устройство 12a, сервер 14 и облако 16 представляют собой сетевые элементы, которые предназначаются для охвата сетевых устройств, серверов, маршрутизаторов, коммутаторов, шлюзов, мостов, балансировщиков нагрузки, процессоров, модулей или любых соответствующих устройств, компонентов, элементов или объектов, работающих для обмена информацией в сетевой среде. Сетевые элементы могут включать в себя любые соответствующие аппаратные, программные модули, компоненты, модули или объекты, которые способствуют их работе, а также соответствующие интерфейсы для приема, передачи и/или другой передачи данных или информации в сетевой среде. Это может включать в себя соответствующие алгоритмы и протоколы передачи данных, которые позволяют выполнять эффективный обмен данными или информацией.
Что касается внутренней структуры, ассоциированной с системой 10a (и 10b) передачи данных, каждое электронное устройство 12a, сервер 14 и облако 16 может включать в себя элементы памяти для сохранения информации, предназначенной для использования в представленных здесь операциях. Каждое электронное устройство 12a, сервер 14 и облако 16 может содержать информацию в любом соответствующем элементе памяти (например, в оперативном запоминающем устройстве (RAM), постоянном запоминающем устройстве (ROM), стираемом программируемом ROM (EPROM), электрически стираемом программируемом ROM (EEPROM), специализированной интегральной схеме (ASIC) и т.д.), программном обеспечении, аппаратном обеспечении, встроенном программном обеспечении или в любом другом соответствующем компоненте, устройстве, элементе или объекте, в случае необходимости, и на основании определенных потребностей. Любой из элементов памяти, описанных здесь, следует рассматривать, как охватываемый широким термином "элемент памяти". Кроме того, используемая, отслеживаемая, передаваемая или принимаемая информация в системе 10a (и 10b) передачи данных может быть предусмотрена в любой базе данных, регистре, очереди, таблице, списке управления кэш или в другой структуре сохранения, все из которых могут называться любым соответствующим временным фреймом. Любые такие возможности сохранения также могут быть включены в пределах широкого термина "элемент памяти", используемого здесь.
В определенных примерных вариантах осуществления функции, представленные здесь, могут быть воплощены с помощью логики, кодированной на одном или больше материальных носителях информации (например, встроенная логика, предусмотренная в ASIC, инструкции цифрового сигнального процессора (DSP), программное обеспечение (потенциально включающее в себя объектный код и исходный код) для выполнения процессором или другим аналогичным устройством и т.д.), который может включать в себя непереходный, считываемый компьютером носитель информации. В некоторых из этих случаев элементы памяти могут сохранять данные, используемые для описанных здесь операций. Это включает в себя элементы памяти, которые позволяют сохранять программное обеспечение, логику, код или инструкции процессора, которые выполняются для выполнения действий, описанных здесь.
В примерном воплощении сетевые элементы системы 10a (и 10b) передачи данных, такие как электронное устройство 12a, сервер 14 и облако 16, могут включать в себя программные модули (например, модули 26a, 26b и 26c проверки целостности, соответственно) для достижения, или стимуляции описанных здесь операций. Такие модули могут быть соответствующим образом скомбинированы, используя любой соответствующий подход, который может быть основан на определенной конфигурации и/или потребностях предоставления. В примерных вариантах осуществления такие операции могут выполняться с помощью аппаратных средств, воплощенных во внешнем источнике для этих элементов, или включенных в некоторое другое сетевое устройство, для достижения предназначенной функции. Кроме того, модули могут быть воплощены, как программное обеспечение, аппаратное средство, встроенное программное обеспечение или любая их соответствующая комбинация. Эти элементы также могут включать в себя программное обеспечение (или рециркулирующее программное обеспечение), которое может координировать работу с другими сетевыми элементами для достижения описанных здесь операций.
Кроме того, каждое электронное устройство 12a, сервер 14 и облако 16 может включать в себя процессор, который может выполнять программное обеспечение или алгоритм для выполнения описанных здесь действий. Процессор может выполнять любой тип инструкций, ассоциированных с данными, для достижения представленных здесь детально операций. В одном примере процессор может преобразовывать элемент или изделие (например, данные) из одного состояния или вещи в другое состояние или вещь. В другом примере представленные здесь действия могут быть воплощены с фиксированной логикой или программируемой логикой (например, программное обеспечение/компьютерные инструкции, выполняемое процессором), и элементы, идентифицированные здесь, могут представлять собой определенный тип программируемого процессора, программируемой цифровой логики (например, программируемая пользователем вентильная матрица (FPGA), EPROM, EEPROM) или ASIC, которая включает в себя цифровую логику, программное обеспечение, код, электронные инструкции или любую их соответствующую комбинацию. Любой из этих потенциальных элементов обработки, модулей и устройств, описанных здесь, следует рассматривать, как охватываемый широким термином "процессор".
Электронное устройство 12a может представлять собой сетевой элемент и включает в себя, например, настольные компьютеры, переносные компьютеры, мобильные устройства, карманные персональные компьютеры, смартфоны, планшетные компьютеры или другие аналогичные устройства. Сервер 14 безопасности может представлять собой сетевой элемент, такой, как сервер или виртуальный сервер, и может быть ассоциирован с клиентами, потребителями, конечными точками или конечными пользователями, которые желают инициировать обмен данными в системе 10a (и 10b) передачи данных через некоторую сеть (например, сеть 18). Термин "сервер" включает устройства, используемые для обслуживания запросов клиентов и/или выполнения некоторых вычислительных задач от имени клиентов в системе 10a (и 10b) передачи данных. Хотя модули 26a, 26b и 26c проверки целостности представлены на фиг. 1, как расположенные в пределах электронного устройства 12a, сервера 14 безопасности и облака 16, соответственно, они представлены здесь только с целью иллюстрации. Модули 26a, 26b и 26c проверки целостности могут быть скомбинированы или разделены в любой соответствующей конфигурации. Кроме того, модули 26a, 26b и 26c проверки целостности могут быть интегрированы с или распределены в другой сети, доступ к которой осуществляется электронным устройством 12a. Облако 16 выполнено с возможностью предоставления услуг "облака" для электронного устройства 12a. Услуги "облака" могут быть, в общем, определены, как использование вычислительных ресурсов, которые предоставляют, как услугу через сеть, такую как Интернет. Как правило, расчет, сохранение и сетевые ресурсы предлагаются в инфраструктуре "облака", что эффективно сдвигает рабочую нагрузку из локальной вычислительной сети в сеть облака.
Возвращаясь к фиг. 2, на фиг. 2 показана упрощенная блок-схема системы 10b передачи данных для проверки данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления настоящего раскрытия. Система 10b передачи данных может включать в себя электронное устройство 12b. Электронное устройство 12b может включать в себя анклав 20b. Анклав 20b может включать в себя модуль 32 проверки целостности анклава. Модуль 32 проверки целостности анклава может включать в себя библиотеку 30 аттестации входных данных. Модуль 32 проверки целостности анклава аналогично выполнен, как модуль 26a проверки целостности и позволяет для анклава 20b выполнять проверку данных в анклаве 20b и может рассматриваться, как анклав в анклаве. Каналы 28b и 28c аттестации могут использоваться для обновления библиотеки 30 аттестации входных данных в модуле 32 проверки целостности анклава.
Возвращаясь к фиг. 3, на фиг. 3 показан пример блок-схемы последовательности операций, иллюстрирующий возможные операции потока 300, который может быть ассоциирован с проверкой данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления. В позиции 302 формируют приложение с флагом (или некоторым другим индикатором), который обозначает, что приложение должно использоваться при проверке целостности. Например, разработчик может формировать приложение, и разработчик может ожидать приложения, которое должно использоваться в анклаве для обеспечения проверки целостности. Вместо записи кода, для улучшения проверки целостности, разработчик может установить только флаг, и система распознает, что приложение должно использоваться при проверке целостности. В позиции 304, формируется белый список, ассоциированный с приложением. Белый список может включать в себя заверенные приложения, и обработку, ассоциированную с приложением. В позиции 306, приложение передают в анклав. В позиции 308 белый список передают в модуль проверки целостности. Например, белый список может быть сохранен в библиотеке 30 аттестации входных данных и может использоваться для проверки данных. Во время операции ненадежное приложение или услуга может подавать ненадежные данные в приложение. Анклав может использовать канал аттестации для проверки ненадежных данных перед использованием ненадежных данных анклавом.
Возвращаясь к фиг. 4, на фиг. 4 показан пример, с которым может быть ассоциирована блок-схема последовательности операций, иллюстрирующая возможные операции потока 400, который может быть ассоциирован с проверкой данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления. В варианте осуществления одна или больше операций потока 400 могут быть выполнены модулем 26a, 26b, 26c проверки целостности или модулем 32 проверки целостности анклава. В позиции 402 приложение загружают в анклав. В позиции 404 система определяет, имеет ли приложение флаг (или некоторый другой индикатор), который обозначает, что приложение должно использоваться с проверкой целостности. Если приложение не имеет флага, который обозначает, что приложение должно использоваться с проверкой целостности, тогда обработка заканчивается. Если приложение имеет флаг, который обозначает, что приложение должно использоваться с проверкой целостности, тогда канал аттестации устанавливают между анклавом и модулем проверки целостности, как в позиции 406. В позиции 408 ненадежные данные принимают с помощью приложения в анклаве. В позиции 410, используя канал аттестации, анклав запрашивает проверку ненадежных данных из модуля проверки целостности. В позиции 412, система определяет, были ли проверены ненадежные данные. Если ненадежные данные были проверены (модулем проверки целостности), тогда разрешено использовать ненадежные данные, как в позиции 414. Если ненадежные данные не были проверены (модулем проверки целостности), тогда ненадежные данные не будут разрешены, как в позиции 418, и генерируется отчет в отношении ненадежных данных, как в позиции 416.
Возвращаясь к фиг. 5, на фиг. 5 показан пример блок-схемы последовательности операций, иллюстрирующий возможные операции потока 500, которые могут быть ассоциированы с проверкой данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления. В варианте осуществления одна или больше операций потока 500 могут быть выполнены модулем 26a, 26b, 26c проверки целостности или модулем 32 проверки целостности анклава. В позиции 502, канал аттестации устанавливается между анклавом и модулем проверки целостности. В позиции 504 модуль проверки целостности принимает запрос проверки (ненадежных) данных из анклава. В позиции 506, система определяет, включены ли данные в белый список. Например, модуль проверки целостности может определить, включены ли данные в библиотеку аттестации входных данных. Если данные не включены в белый список, тогда данные не разрешены, как в 512, и генерируется отчет, как в 514. Если данные включены в белый список, тогда система определяет, удовлетворяют ли данные политике, относящейся к анклаву, как в 508. Например, система может определить, удовлетворяют ли данные одной или больше проверкам анализа целостности данных. Если данные не удовлетворяют политике, относящейся к анклаву, тогда данные не проверяют, как в 512. Если данные удовлетворяют политике, относящейся к анклаву, тогда данные проверяют, как в 510, и генерируют отчет, как в 514.
Возвращаясь к фиг. 6, на фиг. 6 показан пример блок-схемы последовательности операций, иллюстрирующий возможные операции потока 600, который может быть ассоциирован с проверкой данных, используя аттестацию в анклаве, в соответствии с вариантом осуществления. В варианте осуществления одна или больше операций потока 600 могут выполняться с помощью модуля 26a, 26b, 26c проверки целостности или модуля 32 проверки целостности анклава. В позиции 602, канал аттестации устанавливается между анклавом и модулем проверки целостности. В позиции 604, модуль проверки целостности формирует приложение проверки целостности, которое соответствует политике, ассоциированной с анклавом. В позиции 606, приложение проверки целостности передают в анклав, используя канал аттестации. Эта обработка позволяет выполнять проверку данных локально в электронном устройстве и позволяет легко обновлять проверку данных.
На фиг. 7 иллюстрируется вычислительная система 700, которая расположена в конфигурации из точки в точку (PtP), в соответствии с вариантом осуществления. В частности, на фиг. 7 показана система, где процессоры, память и устройства I/O взаимно соединены с помощью множества интерфейсов "из-точки-в-точку". В общем, один или больше сетевых элементов системы 10 передачи данных может быть выполнен таким же образом или аналогично, как и вычислительная система 700.
Как представлено на фиг. 7, система 700 может включать в себя несколько процессоров, из которых только два процессора 770 и 780, показаны, для ясности. В то время, как показаны два процессора 770 и 780, следует понимать, что вариант осуществления системы 700 также может включать в себя только один такой процессор. Процессоры 770 и 780 каждый может включать в себя набор ядер (то есть, ядер 774A и 774B процессора и ядер 784A и 784B процессора) для выполнения множества потоков программы. Ядра могут быть сконфигурированы для выполнения кода инструкции, используя подход, аналогичный описанному выше со ссылкой на фигуры 1-6. Каждый процессор 770, 780 может включать в себя, по меньшей мере, один совместно используемый кэш 771, 781. Совместно используемый кэш 771, 781 может сохранять данные (например, инструкции), которые используются одним или больше компонентами процессоров 770, 780, такими, как ядра 774 и 784 процессора.
Процессоры 770 и 780 также могут каждый включать в себя логику 772 и 782 интегрированного контроллера памяти (MC) для обмена данными с элементами 732 и 734 памяти. Элементы 732 и/или 734 памяти могут содержать различные данные, используемые процессорами 770 и 780. В альтернативных вариантах осуществления логика 772 и 782 контроллера памяти может представлять собой дискретную логику, отдельную от процессоров 770 и 780.
Процессоры 770 и 780 могут представлять собой процессор любого типа и могут выполнять обмен данными через интерфейс 750 из "точки-в-точку" (PtP), используя схемы 778 и 788 интерфейса из "точки-в-точку", соответственно. Процессоры 770 и 780 каждый может выполнять обмен данными с набором 790 микросхем через отдельные интерфейсы 752 и 754 из "точки-в-точку", используя схемы 776, 786, 794 и 798 интерфейса из "точки-в-точку". Набор 790 микросхем также может выполнять обмен данными с графической схемой 738 с высокой пропускной способностью через графический интерфейс 739 с высокой пропускной способностью, используя схему 792 интерфейса, которая может представлять собой схему интерфейса PtP. В альтернативных вариантах осуществления любые или все из соединений PtP, представленных на фиг. 7, могут быть воплощены, как многоточечная шина, а не как соединение PtP.
Набор 790 микросхем может находиться в режиме обмена данными с шиной 720 через схему 796 интерфейса. Шина 720 может иметь одно или больше устройств, которые связываются через нее, такие, как мост 718 шины и устройства 716 I/O. Через шину 710, мост 718 шины может связываться с другими устройствами, такими как клавиатура/мышь 712 (или другими устройствами ввода данных, такими, как сенсорный экран, шаровой указатель и т.д.), устройствами 726 передачи данных (такими как модемы, устройства сетевого интерфейса или другие типы устройств передачи данных, которые могут связываться через вычислительную сеть 760), устройствами 714 аудио I/O и/или устройством 728 сохранения данных. Устройство 728 сохранения данных может сохранять код 730, который может выполняться процессорами 770 и/или 780. В альтернативных вариантах осуществления любые части архитектур шины могут быть воплощены с использованием одного или больше соединений PtP.
Вычислительная система, представленная на фиг. 7, представляет собой схематичную иллюстрацию варианта осуществления вычислительной системы, которая может использоваться для воплощения различных вариантов осуществления, описанных здесь. Следует понимать, что различные компоненты представленной на фиг. 7 системы могут быть скомбинированы в виде архитектуры системы на кристалле (SoC) или в любой другой соответствующей конфигурации. Например, раскрытые здесь варианты осуществления могут быть внедрены в мобильные устройства, включающие в себя системы, такие, как сотовые смартфоны, планшетные компьютеры, карманные персональные компьютеры, портативные игровые устройства и т.д. Следует понимать, что в этих мобильных устройствах могут быть предусмотрены архитектуры SoC, по меньшей мере, в некоторых вариантах осуществления.
Возвращаясь к фиг. 8, на фиг. 8 представлена упрощенная блок-схема, ассоциированная с примером экосистемы SOC 800 ARM, в соответствии с настоящим раскрытием. По меньшей мере, один пример воплощения настоящего раскрытия может включать в себя свойства проверки данных, описанные здесь и компонента ARM. Например, пример фигуры 8 может быть ассоциирован с любым ядром ARM (например, A-9, A-15 и т.д.). Кроме того, архитектура может составлять часть любого типа планшетного устройства, смартфона (включая в себя телефоны Android™, iPhone™), iPad™, Google Nexus™, Microsoft Surface™, персональный компьютер, сервер, компоненты видеообработки, переносной компьютер (включая в себя любой тип ноутбуков), систему Ultra book™, любой тип входного устройства с сенсорным вводом и т.д.
В этом примере на фиг. 8 экосистема SOC 800 ARM может включать в себя множество ядер 806-807, управление 808 кэш L2, модуль 809 интерфейса шины, кэш 810 L2, модуль 815 графической обработки (GPU), взаимное соединение 802, видеокодек 820 и I/F 825 жидкокристаллического дисплея (LCD), который может быть ассоциирован с интерфейсом про