Защищенная загрузка и конфигурирование подсистемы с нелокального запоминающего устройства
Иллюстрации
Показать всеИзобретение относится к системам обработки данных. Технический результат заключается в обеспечении защиты передачи данных внутри устройства. Устройство содержит: прикладной процессор, первое запоминающее устройство с произвольной выборкой (RAM), соединенное с прикладным процессором, с возможностью исполнения в нем первой операционной системы (OS), выполненной с возможностью создания операционной среды для прикладного процессора; энергонезависимое запоминающее устройство, соединенное с прикладным процессором и первым RAM, при этом указанное энергонезависимое запоминающее устройство хранит данные, доступные прикладному процессору посредством первой OS; процессор беспроводной связи, соединенный с прикладным процессором по внутренней шине; второе RAM, соединенное с процессором беспроводной связи, с возможностью исполнения в нем второй OS, выполненной с возможностью создания операционной среды для процессора беспроводной связи и указанное второе RAM выполнено с возможностью выполнения в нем криптографического модуля. У процессора беспроводной связи отсутствует необходимость в собственном отдельном энергонезависимом запоминающем устройстве для хранения данных. 3 н. и 10 з.п. ф-лы, 9 ил.
Реферат
Область техники, к которой относится изобретение
Варианты настоящего изобретения относятся в основном к области систем обработки данных, и более конкретно, к способам защищенных загрузки и конфигурирования подсистемы с нелокального запоминающего устройства.
Уровень техники
В последнее время популярными стали многофункциональные устройства, такие как смартфоны. Обычно многофункциональное устройство включает несколько процессоров с различными функциональными возможностями. Например, смартфон включает процессор общего назначения и процессор беспроводной связи. Каждый процессор обычно включает ассоциированную с ним энергонезависимую память для хранения какой-либо информации или данных, ассоциированных с соответствующим процессором, включая образ кода инициализации и т.п. Однако наличие такой энергонезависимой памяти может привести к повышению стоимости и увеличению размеров устройства.
Раскрытие изобретения
Согласно одному из аспектов многофункциональное вычислительное устройство, имеющее процессор беспроводной связи (например, процессор сотовой связи) и прикладной процессор (например, процессор общего назначения, такой как центральный процессор CPU), совместно использует запоминающее устройство, ассоциированное с прикладным процессором или связанное с ним. Примером такого многофункционального вычислительного устройства может быть смартфон, имеющий функции сотового телефона и карманного компьютера. Здесь нет какого-то специального запоминающего устройства, непосредственно ассоциированного с процессором беспроводной связи или соединенного с ним. Вместо этого процессор беспроводной связи поддерживает связь с прикладным процессором посредством высокоскоростной линии связи, такой как высокоскоростная межкристальная универсальная последовательная шина (USB-HSIC), для доступа к программным кодам и данным, записанным в устройстве хранения (например, устройстве флэш-памяти), ассоциированном с прикладным процессором.
Согласно другому аспекту в ответ на команду загрузки начинает работать загрузчик постоянного запоминающего устройства (ПЗУ (ROM)) из защищенного ПЗУ (ROM) процессора беспроводной связи, так что загрузчик ROM инициализирует аппаратуру, ассоциированную с процессором беспроводной связи портативного устройства. Загрузчик ROM устанавливает линию связи с прикладным процессором портативного устройства по внутренней шине, соединяющей процессор беспроводной связи с прикладным процессором. Указанный загрузчик ROM извлекает образ кода загрузки из энергонезависимого запоминающего устройства по этой линии связи, где это энергонезависимое запоминающее устройство ассоциировано с прикладным процессором, и получает к нему доступ посредством первой операционной системы (ОС (OS)), выполняемой в первом запоминающем устройстве с произвольной выборкой (ЗУПВ (RAM)), ассоциированном с прикладным процессором. Указанный загрузчик ROM аутентифицирует образ кода загрузки и после успешной аутентификации этого образа кода загрузки загрузчик ROM запускает выполнение образа кода загрузки во втором ЗУПВ (RAM), ассоциированном с процессором беспроводной связи, с целью установки второй ОС (OS) для процессора беспроводной связи. В результате, за счет доступа к энергонезависимому запоминающему устройству, ассоциированному с прикладным процессором, по линии связи, организованной на основе внутренней шины, процессору беспроводной связи нет необходимости иметь собственное отдельное энергонезависимое запоминающее устройство.
Согласно еще одному аспекту, в ответ на команду обновления компонента программного обеспечения для портативного устройства генерируют сеансовый ключ. Этот сеансовый ключ шифруют с использованием ключа защиты памяти, формируемого на основе уникального идентификатора (UID) портативного устройства. Далее генерируют восстановительный компонент, в который встроен сеансовый ключ, зашифрованный с использованием ключа защиты памяти. Кроме того, сеансовый ключ шифруют с применением открытого ключа из пары открытый/секретный ключи. После этого, восстановительный компонент и сеансовый ключ, зашифрованный открытым ключом, передают серверу авторизации, так что этот сервер авторизации конфигурирован для восстановления сеансового ключа путем дешифровки с использованием секретного ключа из пары открытый/секретный ключи. В последующем, в ответ на указанный компонент программного обеспечения и восстановительный компонент, загруженные от сервера подготовки, восстанавливают сеансовый ключ из восстановительного компонента путем дешифровки этого восстановительного компонента с использованием ключа защиты памяти, когда компонент программного обеспечения зашифрован сеансовым ключом, принятым сервером подготовки от сервера авторизации. После этого указанный компонент программного обеспечения восстанавливают с применением дешифровки зашифрованного компонента программного обеспечения с использованием сеансового ключа, извлеченного из восстановительного компонента, так что этот компонент программного обеспечения должен быть инсталлирован на портативном устройстве.
Другие признаки настоящего изобретения будут очевидны из прилагаемых чертежей и из последующего подробного описания.
Краткое описание чертежей
Варианты настоящего изобретения иллюстрированы примерами и не ограничиваются изображениями на прилагаемых чертежах, где аналогичные элементы отмечены сходными позиционными обозначениями.
Фиг.1 представляет блок-схему, иллюстрирующую многофункциональное компьютерное устройство согласно одному из вариантов настоящего изобретения.
Фиг.2 представляет блок-схему, иллюстрирующую образ памяти для процессора беспроводной связи согласно одному из вариантов.
Фиг.3 представляет логическую схему, иллюстрирующую способ загрузки процессора беспроводной связи согласно одному из вариантов настоящего изобретения.
Фиг.4 представляет блок-схему, иллюстрирующую многофункциональное компьютерное устройство согласно другому варианту настоящего изобретения.
Фиг.5 представляет логическую схему, иллюстрирующую способ генерирования данных ВЧ-калибровки согласно одному из вариантов настоящего изобретения.
Фиг.6 представляет логическую схему, иллюстрирующую способ обновления данных ВЧ-калибровки согласно одному из вариантов настоящего изобретения.
Фиг.7 представляет схему, иллюстрирующую конфигурацию системы для подготовки компьютерного устройства согласно одному из вариантов настоящего изобретения.
Фиг.8 представляет логическую схему, иллюстрирующую способ обновления данных подготовки согласно одному из вариантов настоящего изобретения.
Фиг.9 показывает пример системы обработки данных, которая может быть использована согласно одному из вариантов настоящего изобретения.
Осуществление изобретения
Разнообразные варианты и аспекты настоящего изобретения будут описаны со ссылками на подробности, обсуждаемые ниже, и прилагаемые чертежи, иллюстрирующие различные варианты. Последующее описание и чертежи являются только иллюстрацией изобретения и не могут быть истолкованы в качестве ограничений для изобретения. Приведенные многочисленные конкретные подробности предназначены для более полного понимания разнообразных вариантов настоящего изобретения. Однако в некоторых случаях хорошо известные или традиционные подробности здесь не рассмотрены, чтобы не загромождать обсуждение вариантов настоящего изобретения.
Ссылки в описании на «один вариант» или «некоторый вариант» означают, что конкретный признак, структура или характеристика, описываемые применительно к такому варианту, могут быть включены по меньшей мере в один вариант настоящего изобретения. Моменты появления фразы «в одном из вариантов» в разных местах настоящего описания совсем не обязательно все относятся к одному и тому же варианту.
Согласно некоторым вариантам многофункциональное компьютерное устройство содержит процессор беспроводной связи (например, процессор сотовой связи) и прикладной процессор (например, процессор общего назначения, такой как центральный процессор или CPU), совместно использующие запоминающее устройство (например, энергонезависимое запоминающее устройство), ассоциированное с прикладным процессором или соединенное с ним. Примером такого многофункционального компьютерного устройства может быть Смартфон, имеющий функции сотового телефона и карманного компьютера. Нет какого-либо конкретного запоминающего устройства, непосредственно ассоциированного с процессором беспроводной связи или соединенного с ним. Вместо этого, процессор беспроводной связи поддерживает связь с прикладным процессором по высокоскоростной линии связи, такой как высокоскоростная межкристальная универсальная последовательная шина (USB-HSIC), для доступа к исполняемым программным кодам и данным, записанным в запоминающем устройстве (например, устройстве флэш-памяти), ассоциированном с прикладным процессором.
В одном из вариантов, когда происходит загрузка процессора беспроводной связи, этот процессор беспроводной связи осуществляет защищенную выборку беспроводного кодового образа (например, исполняемого кодового образа) из запоминающего устройства прикладного процессора по указанной линии связи; аутентифицирует код загрузки; и исполняет код загрузки в ЗУПВ (RAM), ассоциированном с процессором беспроводной связи, чтобы создать операционную среду для процессора беспроводной связи. Беспроводный кодовый образ может включать несколько сегментов, причем каждый сегмент может быть отмечен цепочкой сертификатов. Корневой сертификат может быть записан в защищенном ПЗУ (ROM) процессора беспроводной связи, который может быть использован для аутентификации первого общего кодового сегмента, вызываемого из совместного используемого запоминающего устройства.
Сегменты кодового образа могут быть конфигурированы в виде последовательности сегментов. Текущий сегмент кодовой последовательности может аутентифицировать следующий сегмент этой кодовой последовательности с использованием цепочки сертификатов. Например, сегменты кода могут включать код загрузки низкого уровня, код загрузки промежуточного уровня и код загрузки высокого уровня. Код загрузки низкого уровня может быть первоначально аутентифицирован с применением корневого сертификата. После аутентификации или проверки кода загрузки низкого уровня может быть запущено исполнение этого кода загрузки низкого уровня. Во время работы загрузки низкого уровня код загрузки низкого уровня может (выбрать и) аутентифицировать код загрузки промежуточного уровня, который, в свою очередь, после успешной аутентификации и загрузки посредством кода загрузки низкого уровня может (выбрать и) аутентифицировать код загрузки высокого уровня, и т.д. Если попадается какой-либо сегмент из состава компонентов программного обеспечения, который не может быть успешно аутентифицирован и выполнен, устройство может быть принудительно переведено в режим восстановления (например, режим обновления встроенного программного обеспечения или DFU), в котором может быть загружена новая версия программного обеспечения от доверенного сервера через сеть связи.
В дополнение к этому, кодовый образ и/или данные могут быть зашифрованы ключом, полученным на основе уникального идентификатора (UID) процессора беспроводной связи. Иными словами, кодовый образ и/или данные могут быть персонализированы путем шифрования их с использованием ключа, полученного на основе идентификатора UID. Этот идентификатор UID может быть записан в защищенном ПЗУ (ROM) процессора беспроводной связи. В альтернативном варианте, идентификатор UID может быть реализован монтажным путем (например, посредством выжигаемых перемычек) в аппаратуре, ассоциированной с процессором беспроводной связи. В результате, каждый компонент программного обеспечения проходит аутентификацию и проверку перед выполнением, что гарантирует отсутствие дефектов в этом компоненте программного обеспечения.
Во время нормальной работы, когда процессор беспроводной связи должен прочитать или записать данные, то поскольку нет запоминающего устройства, непосредственно ассоциированного с этим процессором беспроводной связи, такой процессор беспроводной связи может обратиться и получить доступ к запоминающему устройству прикладного процессора по линии связи в пределах многофункционального компьютерного устройства, аналогично удаленной файловой системе, но на уровне устройства, а не через сеть. В результате, обычное запоминающее устройство, которое было бы специально ассоциировано с процессором беспроводной связи или соединено с ним, можно исключить. Это позволяет уменьшить стоимость и/или физические размеры устройства.
Кроме того, согласно одному из вариантов конкретные данные, ассоциированные с процессором беспроводной связи, такие как идентификатор ID сети беспроводной связи (например, номер IMEI (международный идентификатор аппаратуры мобильной связи) или идентификатор мобильного оборудования (MEID)) и данные высокочастотной (RF) калибровки, также хранятся в запоминающем устройстве приложения. В результате эти данные ВЧ-калибровки можно легко обновлять после выхода устройства с завода-изготовителя, не возвращая для такого обновления устройство на завод. Конфигурацию и работу устройства можно сделать более гибкими.
Фиг.1 представляет блок-схему, иллюстрирующую многофункциональное компьютерное устройство согласно одному из вариантов настоящего изобретения. Например, устройство 100 может представлять собой смартфон, такой как iPhone™ производства компании Apple Inc. из Купертино, Калифорния. В альтернативном варианте устройство 100 может представлять собой планшетный персональный компьютер, такой как iPad™ производства компании Apple Inc. Как показано на фиг.1, в одном из вариантов устройство 100 включает процессор 101 беспроводной связи и прикладной процессор 102, поддерживающие связь один с другим по внутренней шине 120. В качестве процессора 101 беспроводной связи можно использовать процессор беспроводной связи любого типа, например, процессор сотовой связи, процессор Wi-Fi, процессор Bluetooth и т.п. В качестве прикладного процессора 102 можно применить любой процессор общего назначения.
Кроме того, устройство 100 включает запоминающее устройство 103 с произвольной выборкой (ЗУПВ (RAM)), ассоциированное с процессором 101 беспроводной связи, и ЗУПВ (RAM) 104, ассоциированное с прикладным процессором 102. ЗУПВ (RAM) 103 используется процессором 101 беспроводной связи для исполнения любых компонентов программного обеспечения, ассоциированных с процессором 101 беспроводной связи, включая код загрузки, операционную систему (OS) и другие исполняемые приложения и/или данные и т.п. Аналогично, ЗУПВ (RAM) 104 используется прикладным процессором 102 для исполнения любых компонентов программного обеспечения, ассоциированных с этим прикладным процессором 102, включая операционную систему OS 115 и файловую систему (FS) 116 прикладного процессора 102, равно как и другие приложения и/или данные.
Кроме того, устройство 100 включает энергонезависимое запоминающее устройство 105, ассоциированное с прикладным процессором 102 или соединенное с ним. Например, это запоминающее устройство 105 может представлять собой устройство флэш-памяти, такое как флэш-память типа ИЛИ-НЕ (NOR) или типа И-НЕ (NAND). В альтернативном варианте, запоминающее устройство 105 может представлять собой запоминающее устройство большой емкости, такое как накопитель на жестком магнитном диске. В одном из вариантов, в отличие от традиционных многофункциональных устройств процессор 101 беспроводной связи не имеет какого-либо специального энергонезависимого запоминающего устройства, ассоциированного с этим процессором. В других вариантах с процессором беспроводной связи может быть ассоциировано энергонезависимое запоминающее устройство очень малой емкости, такое как защищенное ПЗУ 112, например, чтобы обеспечить процесс защищенной загрузки. В таких вариантах емкость энергонезависимого запоминающего устройства очень малой емкости недостаточна, однако для сохранения образа загрузки или другого программного обеспечения или данных, например, программ конфигурирования/калибровки и данных для процессора беспроводной связи. Вместо этого, какие-либо код или данные, ассоциированные с процессором 101 беспроводной связи, могут быть записаны в запоминающем устройстве 105. В одном из вариантов, процессор 101 беспроводной связи может обратиться и получить доступ к контенту, ассоциированному с процессором 101 беспроводной связи, в запоминающем устройстве 105 через линию связи по внутренней шине 120. В одном из вариантов внутренняя шина 120 может представлять собой шину, совместимую со стандартом USB-HSIC, так что процессор 101 беспроводной связи может обратиться и получить доступ к ассоциированному контенту, записанному в запоминающем устройстве 105, с использованием протокола высокоскоростной связи, такого как, например, потоковый некадрирующий протокол связи. В альтернативном варианте внутренняя шина 120 может быть высокоскоростной USB (USB-HS), полноскоростной USB (USB-FS) или какой-либо шиной, совместимой с универсальным асинхронным приеме/передающим последовательным интерфейсом периферийных устройств (UART SPI).
В одном из вариантов, хотя это и не требуется обязательно, запоминающее устройство 105 может включать раздельные секции для процессора 101 беспроводной связи и прикладного процессора 102. В этом примере секция 106 конфигурирована для записи кодовых образов 108 и данных 110, ассоциированных с процессором 101 беспроводной связи. Секция 107 конфигурирована для сохранения кодовых образов 109 и данных 111, ассоциированных с прикладным процессором 102. В результате, специализированное энергонезависимое запоминающее устройство, ассоциированное с процессором беспроводной связи, можно исключить. Вместо этого, процессор 101 беспроводной связи может обращаться и получать доступ к соответствующей секции 106 через прикладной процессор 102 и/или соответствующую операционную систему OS 115 и файловую систему (FS) 116 по внутренней шине 120. В этом варианте процессор 101 беспроводной связи может оказаться неспособен обращаться и получать доступ непосредственно к запоминающему устройству 105. Вместо этого, процессор 101 беспроводной связи должен передавать и принимать данные через прикладной процессор 102, операционную систему OS 115 и/или файловую систему FS 116 посредством линии связи по внутренней шине 120.
Пример секции 106 запоминающего устройства, ассоциированной с процессором 101 беспроводной связи, показан на фиг.2. Как изображено на фиг.2, секция 106 может быть использована для хранения кодового образа 201 процессора беспроводной связи, одной или более копий файлов 205 файловой системы и других рабочих данных, таких как регистрационные данные 206. Беспроводной кодовый образ 201 может быть аутентифицирован и загружен посредством загрузчика 117 ROM BL, показанной на фиг.1. В дополнение к этому секция 106 может включать защищенную или безопасную область 210 для сохранения каких-либо данных, критических для беспроводной связи, таких, например, как идентификатор ID сети беспроводной связи, ассоциированной с процессором беспроводной связи (например, IMEI или MEID) и данные 212 ВЧ-калибровки, и т.п. Идентификатор ID 211 сети беспроводной связи и данные 212 ВЧ-калибровки может быть сохранено в защищенной области 210, даже во время процесса восстановления, когда часть или все данные 201-206 может быть стерта.
Как показано на фиг.1, согласно одному из вариантов, процессор 101 беспроводной связи включает защищенное ПЗУ (ROM) 112, в котором записан загрузчик ROM BL 117, сертификат 118 и открытый ключ 119 в качестве опции. Процессор 101 беспроводной связи дополнительно включает внутреннее или выполненное на кристалле ЗУПВ (RAM) 113 и ключ 114 защиты памяти. Этот ключ 114 защиты памяти может быть сформирован на основе уникального идентификатора (UID) процессора 101 беспроводной связи. Ключ 114 защиты памяти и/или идентификатор UID (не показан) может быть «зашит» в аппаратуре (например, посредством выжженных перемычек) в процессе изготовления процессора 101 беспроводной связи. Ключ 114 защиты памяти может быть использован для шифрования какого-либо контента, генерируемого процессором 101 беспроводной связи, такого как, например, рабочих данных (например, данных регистрационных журналов, сообщений, принятых процессором 101 беспроводной связи, и т.п.). Сертификат 118 может быть использован для проверки или сертификации некоторых данных, отмеченных правильным сертификатом. Например, сертификат 118 может являться корневым сертификатом цепочки сертификатов (например, цепочка сертификатов, совместимая с Х.509). Открытый ключ 119 представляет собой открытый ключ из состава заданной пары открытый/секретный ключи, где соответствующий секретный ключ хранится в соответствующем органе или в объекте подготовки, предоставляющем данные процессору 101 беспроводной связи.
Согласно одному из вариантов, показанному на фиг.1 и 2, когда процессор 101 беспроводной связи принимает команду загрузки, происходит выполнение загрузчика ROM BL 117 из защищенного ПЗУ (ROM) 112. Загрузчик ROM BL 117 конфигурирован для инициализации некоторых аппаратных компонентов процессора 101 беспроводной связи, включая внутреннее ЗУПВ (RAM) 113 и линию или канал связи по внутренней шине 120. После инициализации внутреннего ЗУПВ (RAM) 113 и линии связи, загрузчик ROM BL 117 выбирает кодовый образ 201 процессора беспроводной связи из секции 106 запоминающего устройства 105 по линии связи. Этот кодовый образ 201 процессор беспроводной связи загружают во внутреннее ЗУПВ (RAM) 113 и/или внешнее ЗУПВ (RAM) 103.
Отметим, что в пределах этого приложения процессор 101 беспроводной связи может именоваться в целом, как чипсет, интегральная схема (1C) или специализированная интегральная схема 1C (ASIC), которая может включать один или несколько реальных процессоров, процессорных ядер, исполнительных модулей или функциональных модулей. Описанные здесь чипсет или интегральная схема включают защищенное ПЗУ (ROM) 112, внутреннее ЗУПВ (RAM) 113 и/или другие компоненты, такие как ключ 114 защиты памяти и т.п., согласно некоторым вариантам.
В дополнение к этому, загрузчик ROM BL 117 конфигурирован для аутентификации кодового образа 201 процессора беспроводной связи. В одном из вариантов, кодовый образ 201 процессора беспроводной связи отмечен сертификатом. Загрузчик ROM BL 117 конфигурирован для аутентификации кодового образа 201 процессора беспроводной связи с использованием сертификата 118. Если кодовый образ 201 процессора беспроводной связи не может быть успешно аутентифицирован, по меньшей мере процессор 101 беспроводной связи может быть принудительно переведен в режим DFU обновления, в котором могут быть предоставлены новые данные и загружены от доверенного сервера. После успешной аутентификации кодового образа 201 процессора беспроводной связи этот кодовый образ 201 процессора беспроводной связи запускают посредством загрузчика ROM BL 117 в ЗУПВ (RAM) 113 и/или ЗУПВ (RAM) 103 для установления операционной среды (например, операционной системы OS и/или файловой системы) для процессора 101 беспроводной связи.
Беспроводный кодовый образ 201 может включать несколько сегментов, так что каждый сегмент может быть отмечен одним из цепочки сертификатов. Сертификат 118 может быть использован для аутентификации первого общего кодового сегмента, вызываемого из совместно используемого запоминающего устройства. В одном из вариантов сегменты кодового образа могут быть конфигурированы в виде последовательности сегментов. Текущий сегмент кодовой последовательности может аутентифицировать следующий сегмент этой кодовой последовательности с использованием цепочки сертификатов. Например, сегменты кода могут включать код загрузки низкого уровня, код загрузки промежуточного уровня и код загрузки высокого уровня. Сначала код загрузки низкого уровня может быть аутентифицирован посредством корневого сертификата. После аутентификации или проверки кода загрузки низкого уровня может быть начато исполнение этого кода загрузки низкого уровня. В процессе загрузки низкого уровня код загрузки низкого уровня может (выбрать и) аутентифицировать код загрузки промежуточного уровня, который, в свою очередь, после успешной аутентификации и загрузки посредством кода загрузки низкого уровня, может (выбрать и) аутентифицировать код загрузки высокого уровня и т.д. Если имеется какой-либо сегмент компонента программного обеспечения, который не может быть успешно аутентифицирован и выполнен, устройство может быть принудительно переведено в режим DFU обновления, в котором новая версия программного обеспечения может быть загружена от доверенного сервера.
В одном из вариантов емкость памяти внутреннего ЗУПВ (RAM) 113 меньше емкости памяти внешнего ЗУПВ (RAM) 103. В одном конкретном варианте в процессе инициализации загрузчик 117 ROM выбирает первый кодовый сегмент (например, первый общий кодовый сегмент) из запоминающего устройства 105, аутентифицирует этот первый кодовый сегмент (например, с использованием сертификата 118) и запускает исполнение первого кодового сегмента во внутреннем ЗУПВ (RAM) 113. Первый кодовый сегмент после успешной аутентификации и исполнения из внутреннего ЗУПВ (RAM) 113 выбирает второй кодовый сегмент (например, следующий кодовый сегмент в последовательности кодовых сегментов), аутентифицирует этот второй кодовый сегмент (например, с использованием цепочки сертификатов, ассоциированной с сертификатом 118) и запускает исполнение второго кодового сегмента во внешнем ЗУПВ (RAM) 103.
Кроме того, согласно одному из вариантов кодовый образ и/или данные могут быть зашифрованы посредством ключа, созданного на основе идентификатора UID, который уникально идентифицирует процессор беспроводной связи. Иными словами, кодовый образ и/или данные могут быть персонализированы путем шифрования их с использованием ключа, созданного на основе идентификатора UID. В результате, в устройстве можно будет инсталлировать только компоненты программного обеспечения, специально разработанные или предоставленные для этого устройства. Указанный идентификатор UID может быть также записан в защищенном ПЗУ (ROM) процессора беспроводной связи. В альтернативном варианте этот идентификатор UID может быть «зашит» (например, посредством выжигаемых перемычек) в аппаратуре, ассоциированной с процессором беспроводной связи. В результате, каждый компонент программного обеспечения оказывается идентифицирован и восстановлен прежде, чем будет начато его исполнение, чтобы гарантировать, что этот компонент программного обеспечения не был скомпрометирован.
Дополнительную подробную информацию относительно аутентификации и загрузки компонентов программного обеспечения с целью создания операционной среды для процессора можно найти в одновременно рассматриваемой Заявке на выдачу Патента США №11/620,689, озаглавленной «Способ защищенной загрузки компьютерного устройства» ("Secure Booting A Computing Device"), поданной 7 января 2007 г. и включенной сюда во всей полноте посредством ссылки.
В дополнение к этому, некоторые кодовые образы и/или данные могут быть собраны в пакет согласно заданному формату и аутентифицированы с применением общей модели безопасности. Например, некоторые кодовые образы и/или данные могут быть собраны в пакет аналогично формату Image3. В такой версии каждый компонент программного обеспечения, который должен быть инсталлирован и загружен в систему, реализован или собран в пакет в виде объекта, имеющего заданный формат, так что для построения и проверки каждого из этих объектов достаточно иметь только один процессор безопасности (например, программу построения кода и/или программу загрузки кода) в качестве механизма для проверки, можно ли доверять каждому компоненту программного обеспечения и совместим ли он с заданными системными ограничениями и критериями, прежде, чем приступить к выполнению исполняемого кода, встроенного в соответствующий объект. По меньшей мере часть каждого объекта, такая как полезная нагрузка этого объекта, может быть зашифрована посредством ключа, созданного на основе идентификатора UID устройства (например, «привязана» или персонализирована), так что только целевое устройство сможет расшифровать объект.
Дополнительную подробную информацию относительно формата Image3 и/или общей модели безопасности можно найти в одновременно рассматриваемой Заявке на выдачу Патента США No. 12/103,685, озаглавленной «Единая модель безопасности при загрузке компьютерного устройства» ("Single Security Model in Booting a Computing Device"), поданной 15 апреля 2008 г. и включенной сюда во всей полноте посредством ссылки.
Фиг.3 представляет логическую схему, иллюстрирующую способ загрузки процессора беспроводной связи согласно одному из вариантов настоящего изобретения. Например, система 100, изображенная на фиг.1, может применять способ 300. Как показано на фиг.3, в ответ на команду загрузки в блоке 301 начинается выполнение загрузчика ROM BL из защищенного ПЗУ (ROM) процессора беспроводной связи. В блоке 302 загрузчик ROM BL инициализирует некое оборудование в составе процессора беспроводной связи, включая внутреннее ЗУПВ (RAM) и внешнее ЗУПВ (RAM). В блоке 303 загрузчик ROM BL устанавливает канал связи (например, USB-HSIC, USB-HS, USB-FS или UART SPI) с прикладным процессором. В одном из вариантов предполагается, что когда происходит загрузка процессора беспроводной связи, прикладной процессор уже загружен и работает. В блоке 304 загрузчик ROM BL выбирает, аутентифицирует и запускает кодовый образ процессора беспроводной связи из запоминающего устройства, ассоциированного с прикладным процессором посредством линии связи по внутренней шине, чтобы установить операционную среду для процессора беспроводной связи. В одном из вариантов этот кодовый образ процессора беспроводной связи может быть конфигурирован в виде или разделен на последовательность кодовых сегментов. Каждый из этих кодовых сегментов может быть выбран, аутентифицирован и загружен последовательно. Предыдущий кодовый сегмент последовательности может выбрать, аутентифицировать и запустить следующий кодовый сегмент последовательности. Если какие-либо из этих сегментов не удается аутентифицировать или исполнить, по меньшей мере процессор беспроводной связи может быть принудительно переведен в режим DFU обновления.
Фиг.4 представляет блок-схему, иллюстрирующую многофункциональное компьютерное устройство согласно другому варианту настоящего изобретения. В этом примере устройство 400 представляет изображенное на фиг.1 устройство 100, успешно прошедшее загрузку с использованием по меньшей мере некоторых способов из перечисленных выше. Как показано на фиг.4, после успешной загрузки процессора 101 беспроводной связи операционная система 151 оказывается инсталлирована и работает, причем эта система OS 151 организована на основе по меньшей мере кодового образа процессора беспроводной связи, аутентифицированного и инсталлированного с использованием рассмотренных выше способов. В дополнение к этому криптографический модуль 152 конфигурирован для шифрования рабочих данных, которые должны быть записаны в секции 106 запоминающего устройства 105, с использованием ключа 114 защиты памяти. Данные, генерируемые в процессе работы, могут включать какие-либо передаваемые по радио данные, принимаемые процессором беспроводной связи через сеть беспроводной связи, и/или специфичные для пользователя или конфиденциальные данные (например, сообщения электронной почты или другие сообщения, такие как SMS-сообщения, регистрация и/или файлы, связанные с файловой системой) и т.п.
Поскольку нет какого-либо собственного или специализированного энергонезависимого запоминающего устройства, ассоциированного с процессором 101 беспроводной связи, драйвер 153 файловой системы (FS) используется в качестве прокси-драйвера или «демона» файловой системы. В одном из вариантов, для любых данных, генерируемых процессором 101 и/или операционной системой OS 151 для записи в запоминающем устройстве 105, криптографический модуль 152 конфигурирован для шифрования этих данных с использованием ключа 114 защиты памяти и передачи зашифрованных данных FS-драйверу 153. Этот FS-драйвер 153, в свою очередь, передает зашифрованные данные FS-драйверу 154, расположенному на стороне прикладного процессора по линии связи (например, USB-HSIC). Указанный FS-драйвер 154 привлекает сервис файловой системы 116 для записи зашифрованных данных в соответствующей секции 106 запоминающего устройства 105.
Аналогично, когда процессор 101 и/или операционная система OS 151 должны вызвать данные из запоминающего устройства 105, эти процессор 101 и/или операционная система OS 151 могут передать команду считывания FS-драйверу 153. Указанный FS-драйвер 153 ретранслирует команду считывания в файловую систему FS 154 для вызова соответствующих данных (например, зашифрованных данных) от запоминающего устройства 105 через систему FS 116. Когда FS-драйвер 153 получит зашифрованные данные, криптографический модуль 152 конфигурирован для дешифровки зашифрованных данных с использованием ключа 114 защиты памяти и передачи дешифрованных данных процессору 101 и/или OS 151. Таким образом, FS-драйвер 153 может служить прокси или агентом, аналогично соответствующему элементу в удаленной файловой системе. В альтернативном варианте, FS-драйвер 153 может служить виртуальной файловой системой для операционной системы OS 151, где эта система OS 151 может и не знать, какой контент реально записан в запоминающем устройстве 105 прикладного процессора 102.
Отметим, что в некоторых ситуациях могут быть зашифрованы только критически важные или чувствительные данные. Другие данные, такие как данные регистрации, могут остаться незашифрованными. Это позволит повысить эффективность обращения и получения доступа к совместно используемому запоминающему устройству. Отметим также, что здесь может быть и не нужно поддерживать раздельные секции для процессора 101 беспроводной связи и прикладного процессора 102. Одну секцию можно также реализовать до тех пор, пока некоторые критически важные или конфиденциальные данные сохраняются защищенным образом, так что они могут оказаться недоступными для прикладного процессора 102.
Как описано выше, в обычных устройствах изготовитель генерирует данные ВЧ-калибровки и сохраняет их в собственном запоминающем устройстве процессора беспроводной связи. Кроме того, для обновления данных ВЧ-калибровки устройство, обычно, приходится возвращать изготовителю, который записывает новые данные ВЧ-калибровки в ассоциированном энергонезависимом запоминающем устройстве. В одном из вариантов, поскольку нет локального энергонезависимого запоминающего устройства, ассоциированного с процессором беспроводной связи, данные ВЧ-калибровки сохраняют в запоминающем устройстве 105 прикладного процессора 102. Поскольку указанные данные ВЧ-калибровки следует сохранять даже после разрушения устройства, эти данные ВЧ-калибровки могут быть записаны в безопасной или защищенной области запоминающего устройства, как показано на фиг.2.
В одном из вариантов данные ВЧ-калибровки могут быть также сохранены на сервере (например, авторизованном распределенном сервере или сервере подготовки) облачной сети, так что вместо того, чтобы возвращать устройство назад изготовителю, эти данные ВЧ-калибровки могут быть обновлены путем скачивания новых данных ВЧ-калибровки из облачной сети и сохранения их в запоминающем устройстве 105, ассоциированном с прикладным процессором 102. Данные ВЧ-калибровки могут быть специально подготовлены и ассоциированы с процессором 101 беспроводной связи путем шифрования этих данных ВЧ-калибровки с использованием идентификатора UID или ключа 114 защиты памяти от процессора 101 беспроводной связи, так что только этот процессор 101 беспроводной связи может восстановить данные ВЧ-калибровки путем дешифровки зашифрованных данных ВЧ-калибровки. В результате, такие данные ВЧ-калибровки можно легко обновлять в «полевых» условиях после того, как устройство выйдет с завода-изготовителя, что естественно предоставляет больше гибкости по срав