УРОВЕНЬ ТЕХНИКИ
[0001] Большинство операционных систем стремятся обеспечить безопасную среду обработки, в которой процессы аутентифицируются и где определяются и принудительно применяются разрешения доступа к системным ресурсам. В качестве основного примера, операционная система может предоставлять два типа уровней разрешений: один для администраторов и один для пользователей. Администраторы могут иметь доступ ко всем системным ресурсам, включая файлы, каталоги и настройки конфигурации системы. В отличие от этого пользователь может иметь ограниченный доступ к строгому подмножеству системных ресурсов. Что касается аутентификации процессов, многие модели полагаются на достоверность канала, через который получается программное обеспечение.
[0002] В типичной среде операционная система для задания уровней разрешений на ресурсы использует концентрическую модель, где разные уровни разрешений соответствовали бы разным концентрическим окружностям в концентрической модели, так что увеличивающиеся уровни разрешения унаследуют все разрешения всех более низких уровней. Такая концентрическая модель разрешений предусматривает очень быстрые определения разрешений.
[0003] В другой типичной среде операционная система может использовать систему специализированных разрешений, где отдельные пользователи задаются конкретным набором разрешений. Такая модель предусматривает очень персонализированное определение разрешений, однако эта модель страдает от потребности в способе с большим объемом вычислений для проверки запросов разрешений на доступ к системным ресурсам.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Методики и системы, описанные в этом документе, представляют различные реализации безопасной модели обработки для аутентификации процессов для исполнения, а также для задания и принудительного применения ограничений разрешений на системные ресурсы для процессов и пользователей.
[0005] В некоторых реализациях исполняемый файл можно аутентифицировать на основе цифровой подписи, включенной в исполняемый файл, так что перед созданием процесса операционная система использует ключ расшифрования для проверки, что исполняемый файл принимается от издателя программного обеспечения таким, как он запланирован издателем программного обеспечения. Например, исполняемый файл для приложения, программы или процесса можно дополнить для включения в него цифровой подписи, зашифрованной ключом шифрования, так что операционная система может аутентифицировать цифровую подпись, используя соответствующий ключ расшифрования. Как только аутентифицирован исполняемый файл, операционная система может создавать процесс для исполнения исполняемого файла.
[0006] Кроме того, операционная система может пометить процесс метаданными, указывающими, какой тип разрешений допустим для процесса на основе цифровой подписи для соответствующего исполняемого файла. Метаданные могут соответствовать информации о разрешениях на ресурсы, которая определяется в виде измерений и уровней, так что для заданного уровня необязательно, что разрешения на более высоком уровне наследуют разрешения более низкого уровня.
[0007] Данное краткое изложение сущности изобретения предоставляется, чтобы представить подборку идей в упрощенном виде, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено ни для определения ключевых признаков или существенных признаков заявленного изобретения, ни для использования в ограничении объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Фиг. 1 иллюстрирует примерную вычислительную среду, в которой устройство реализует безопасный модуль обработки, который включает в себя компонент аутентификации процессов и компонент разрешений на ресурсы.
[0009] Фиг. 2 иллюстрирует первое примерное отношение между измерениями и уровнями, которое может использоваться для задания разрешений доступа к ресурсам, в соответствии с некоторыми реализациями.
[0010] Фиг. 3 иллюстрирует второе примерное отношение между измерениями и уровнями, которое может использоваться для задания разрешений доступа к ресурсам, в соответствии с некоторыми реализациями.
[0011] Фиг. 4 иллюстрирует пример измерений и уровней, изображающих различные наборы разрешений доступа к ресурсам, в соответствии с некоторыми реализациями.
[0012] Фиг. 5 иллюстрирует блок-схему алгоритма, изображающую способ для предоставления процессу доступа к системному ресурсу, когда измерение и уровень доверия к процессу удовлетворяют заданным требованиям, в соответствии с некоторыми реализациями.
[0013] Фиг. 6 иллюстрирует блок-схему алгоритма способа для назначения измерения и уровня некоему процессу после аутентификации этого процесса, в соответствии с некоторыми реализациями.
[0014] Фиг. 7 иллюстрирует вычислительное устройство, которое может конфигурироваться для реализации безопасного модуля обработки, который включает в себя компонент аутентификации процессов и компонент разрешений на ресурсы, в соответствии с некоторыми реализациями.
ПОДРОБНОЕ ОПИСАНИЕ
[0015] Методики и системы, описанные в этом документе, ориентированы на различные реализации безопасной системы обработки для аутентификации процессов для исполнения и для задания и принудительного применения ограничений разрешений на системные ресурсы для процессов и/или пользователей. В безопасной системе обработки компонент аутентификации процессов может служить для аутентификации процессов, тогда как компонент разрешений на ресурсы может служить для задания и принудительного применения ограничений разрешений с использованием сочетаний измерений и уровней.
[0016] В некоторых случаях, если операционная система должна просто создать процесс для исполняемого файла без какого-либо типа аутентификации, то существует опасность, что исполняемый файл был изменен с включением в него вируса. В этом сценарии, когда операционная система создает процесс для исполнения исполняемого файла, вирус попал бы в операционную систему. Для решения этой проблемы в некоторых реализациях для определения, принят ли исполняемый файл от поставщика или издателя программного обеспечения без какой-либо фальсификации или модификаций, издатель программного обеспечения может снабдить исполняемый файл цифровой подписью, чтобы операционная система могла аутентифицировать исполняемый файл. Цифровая подпись может создаваться издателем программного обеспечения с использованием ключа шифрования. Кроме того, в некоторых реализациях идентичность издателя программного обеспечения можно определить из ключа шифрования или расшифрования. В свою очередь операционная система может использовать ключ расшифрования, соответствующий ключу шифрования, чтобы аутентифицировать исполняемый файл на основе расшифрования цифровой подписи. В некоторых реализациях могут использоваться методики асимметричного шифрования при определении, что программное обеспечение из данного источника заслуживает доверия. Например, цифровую подпись можно создать с использованием секретного ключа, и цифровую подпись можно расшифровывать с использованием открытого ключа.
[0017] Для понимания, чтобы защитить систему от повреждения или защитить конфиденциальную или ограниченную информацию пользователя, операционная система может пытаться препятствовать некоторым системным процессам в выполнении вредоносных действий, например записи кода в защищенный процесс, или в отключении программного обеспечения для обнаружения вредоносных программ. Кроме того, для обеспечения в операционной системе конфиденциальности или безопасности операционная система не может разрешить каждому пользователю или процессу обращаться или изменять любой или каждый системный ресурс. Системный ресурс может быть файлом, каталогом или любым типом программного элемента. Кроме того, системный ресурс также может быть любым аппаратным элементом, например, среди прочего, портом ввода/вывода, конкретным блоком обработки, запоминающим устройством или областью памяти.
[0018] В некоторых реализациях операционная система может ограничивать даже пользователей с наивысшими возможными уровнями пользовательского доступа в доступе к некоторым системным ресурсам. Более того, операционная система может резервировать измерение и уровень доступа к ресурсам некоторым набором системных процессов и препятствовать равному уровню доступа к ресурсам у любого пользователя. При использовании в данном документе измерение, в дополнение к наборам уровней, обеспечивает компонент разрешений на ресурсы возможностью задавать наборы разрешений для доступа к системным ресурсам, которые гибче, чем при использовании концентрически или иерархически унаследованных уровней разрешений. Кроме того, в некоторых реализациях конкретное сочетание измерения и уровня может называться уровнем доверия или кортежем. В реализации, использующей два измерения, можно определить кортеж, например {ИЗМЕРЕНИЕ,УРОВЕНЬ}, в соответствии с двумя параметрами: (1) измерение и (2) уровень. Вообще, уровень доверия, или кортеж, может определяться в соответствии с дополнительными измерениями. Например, в реализации, использующей два измерения, соответствующий кортеж может называться двумерным кортежем. Аналогичным образом в реализации, использующей N измерений, соответствующий кортеж может называться N-мерным кортежем, который может определяться в соответствии с N параметрами.
[0019] В других реализациях посредством использования сочетаний измерений и уровней компонент разрешений на ресурсы может задавать наборы разрешений на ресурсы, которые выходят за концентрически и иерархически унаследованные разрешения на ресурсы. Другими словами, компонент разрешений на ресурсы может задавать многомерные и дополнительные концентрические наборы разрешений. Кроме того, наборы разрешений могут определяться так, что один набор разрешений необязательно включает в себя все разрешения из набора разрешений на более низком уровне. Вместо этого в других реализациях процессы в операционной системе могут помечаться информацией о разрешениях на ресурсы, так что отдельные, но связанные наборы разрешений не наследуют все разрешения из набора разрешений на более низком уровне.
[0020] В некоторых реализациях использование измерений и уровней при задании разрешений доступа к ресурсам значительно уменьшает вычислительную сложность определения, предоставлять ли доступ к системному ресурсу, потому что компоненту разрешений на ресурсы может понадобиться только два сравнения для определения, имеет ли пользователь или процесс достаточное разрешение на доступ к системному ресурсу. Другими словами, используя измерения и уровни, наследование наборов разрешений объединяется со связанными, но отдельными наборами разрешений, которые не наследуют все разрешения из наборов разрешений более низкого уровня. В некоторых реализациях измерения служат для задания связанности разных наборов уровней разрешений.
[0021] Другими словами, в некоторых реализациях то, может ли процесс или пользователь обращаться к ресурсу, не является просто рассмотрением иерархического или концентрического набора, и различные сочетания измерения и уровней в отношении наличия доступа к другому измерению и уровням могут конфигурироваться разными способами.
Примерные реализации
[0022] Фиг. 1 иллюстрирует вычислительную среду 100, включающую в себя устройство 102, которое включает в себя компьютерную систему 104, которая может конфигурироваться для реализации безопасного модуля 106 обработки, компонента 108 аутентификации процессов и компонента 110 разрешений на ресурсы. В этой реализации устройство 102 может предоставить операционную систему, которая позволяет пользователям устанавливать новое программное обеспечение, например, с использованием интернет-магазина приложений, или по беспроводной линии связи, или сменной карты памяти, или посредством некоторого другого способа для доступа к программному обеспечению.
[0023] В конкретной реализации устройство 102 может обращаться к программному обеспечению по сети, например сети 112, которая может предоставляться издателем программного обеспечения. В этом примере издатель программного обеспечения может предоставлять сервер 114 издателя программного обеспечения, который может осуществлять связь с устройством 102, чтобы предоставлять программное обеспечение. Сервер 114 издателя программного обеспечения может хранить исполняемые файлы для программного обеспечения в хранилище 116 данных издателя программного обеспечения. В этом примере исполняемый файл, предоставленный издателем программного обеспечения, может быть исполняемым файлом 118. Обычно исполняемый файл может быть любым файлом, который может использоваться в качестве основы для создания программного процесса для исполнения в операционной системе. Исполняемый файл также может называться, помимо прочих специальных терминов, двоичным файлом, двоичной или исполняемой программой, динамически загружаемым модулем.
[0024] Как обсуждалось выше, исполняемый файл может включать в себя цифровую подпись, например цифровую подпись 120. Хотя в этом примере цифровая подпись внедряется в исполняемый файл, в других примерах цифровая подпись может предоставляться отдельно от исполняемого файла либо в ответ на запрос исполняемого файла, либо в ответ на отдельный и специальный запрос цифровой подписи. Кроме того, в некоторых реализациях ключ шифрования, используемый при создании цифровой подписи, и ключ расшифрования, используемый при аутентификации исполняемого файла с использованием цифровой подписи, могут управляться центром сертификации, например центром 122 сертификации. Центр 122 сертификации, в свою очередь, может хранить ключ (ключи) 126 шифрования и ключ (ключи) 128 расшифрования в хранилище 124 данных центра сертификации.
[0025] В пояснительной реализации пользователь, который может управлять устройством 102, может инициировать загрузку программного приложения или иным образом выбрать установку компьютерной программы. Например, пользователь может посредством веб-обозревателя перейти на заданный веб-сайт, обеспечивающий загрузку программного обеспечения. В иных случаях пользователь может использовать интерфейс магазина приложений для нахождения и инициирования установок программного обеспечения, либо пользователь может обратиться к физическим носителям, либо по прямой беспроводной линии связи. Однако способ, которым обращаются к программному обеспечению, не важен для аутентификации исполняемого файла.
[0026] В этом примере в ответ на инициирование пользователем загрузки и установки программного приложения сервер 114 издателя программного обеспечения может передать исполняемый файл 118, сохраненный в хранилище 116 данных издателя программного обеспечения. Кроме того, в этом примере исполняемый файл 118 может включать в себя цифровую подпись 120. В этом примере издатель программного обеспечения или разработчик программного обеспечения при создании исполняемого файла может создать цифровую подпись, используя ключ шифрования.
[0027] В этом примере используется стратегия асимметричного шифрования с открытым и секретным ключами, однако можно использовать разные типы методик шифрования. В этой реализации издатель или разработчик программного обеспечения может использовать секретный ключ в качестве ключа шифрования, чтобы создать цифровую подпись с предположением, что операционная система, в которую нужно установить исполняемый файл, использует открытый ключ в качестве ключа расшифрования цифровой подписи, чтобы проверить аутентичность исполняемого файла.
[0028] Как изображено в пояснительной реализации из фиг. 1, центр 122 сертификации может использоваться в качестве доверенного посредника для хранения и предоставления ключей шифрования и/или расшифрования, например ключа (ключей) 126 шифрования и ключа (ключей) 128 расшифрования. Например, центр 130 сертификации может предоставить устройству 102 необходимый ключ расшифрования, соответствующий ключу шифрования, использованному издателем программного обеспечения при создании цифровой подписи. Однако в других сценариях операционная система в устройстве 102 и сервер 114 издателя программного обеспечения могут получать необходимые ключи шифрования и расшифрования иными способами, например без использования центра сертификации.
[0029] В этой реализации, как только у компонента 110 разрешений на ресурсы в устройстве 102 есть открытый ключ для применения к цифровой подписи в загруженном исполняемом файле, компонент 110 разрешений на ресурсы в устройстве 102 на основе цифровой подписи и успешного расшифрования может определить, является ли исполняемый файл подлинным и/или неподдельным. Кроме того, в некоторых реализациях безопасной системы обработки можно реализовать только компонент аутентификации процессов, и такая автономная реализация обеспечила бы безопасность, потому что процесс для исполнения исполняемого файла не создавался бы, пока не аутентифицирован соответствующий исполняемый файл.
[0030] Другими словами, компонент аутентификации процессов может минимизировать любую фальсификацию, которая в противном случае может возникнуть, когда исполняемый файл передается по сети, которая может включать в себя одну или несколько вредоносных точек прохождения. Такая автономная реализация компонента аутентификации процессов может дополнительно служить для проверки, что программное обеспечение поступает от фактического издателя программного обеспечения, а не другого лица, например злоумышленника или мошенника. Однако в этом пояснительном примере аутентификация двоичного файла служит в качестве одного этапа общей безопасной системы обработки.
[0031] В частности, в этом пояснительном примере соответствующая двоичному файлу цифровая подпись может создаваться с помощью одного из нескольких разных ключей шифрования, где каждый разный ключ шифрования может соответствовать разному объему или типу доступа к ресурсам в операционной системе, создающей соответствующий процесс. Например, издатель программного обеспечения может использовать один из трех разных ключей шифрования для создания цифровой подписи для включения в исполняемый файл для приложения или включения вместе с исполняемым файлом. В этом случае каждый из разных ключей шифрования соответствовал бы разному объему или типу доступа к ресурсам. Например, может быть три уровня доступа к ресурсам: низкий, средний и высокий уровни доступа к ресурсам.
[0032] Таким образом, когда безопасная система обработки принимает или обращается к исполняемому файлу, безопасная система обработки может создать процесс с уровнем доступа, который зависит от того, какой ключ расшифрования успешно аутентифицирует исполняемый файл. Кроме того, в этом примере конкретный ключ расшифрования, соответствующий заданному уровню доступа, может успешно аутентифицировать исполняемый файл. Для иллюстрации этого, если бы ключ расшифрования, соответствующий низкому уровню доступа к ресурсам, служил для успешного расшифрования цифровой подписи для двоичного файла, то в ответ безопасная система обработки создала бы процесс, соответствующий исполняемому файлу, который обладает низким уровнем доступа к ресурсам. Аналогичным образом, если бы ключ расшифрования, соответствующий среднему уровню доступа к ресурсам, служил для успешного расшифрования цифровой подписи для двоичного файла, то в ответ безопасная система обработки создала бы процесс, соответствующий исполняемому файлу, который обладает средним уровнем доступа к ресурсам. Аналогичным образом, если бы ключ расшифрования, соответствующий высокому уровню доступа к ресурсам, служил для успешного расшифрования цифровой подписи для двоичного файла, то в ответ безопасная система обработки создала бы процесс, соответствующий исполняемому файлу, который обладает высоким уровнем доступа к ресурсам.
[0033] В некоторых реализациях безопасной системы обработки использование разных ключей шифрования и расшифрования для соответствия разным уровням доступа к ресурсам может предоставить обоснованную методику для аутентификации исполняемых файлов и для назначения соответствующему процессу или процессам подходящего уровня доступа к ресурсам. В этом случае каждый увеличивающийся иерархический уровень доступа к ресурсам охватывал бы каждый уровень доступа к ресурсам ниже по иерархии. Этот строго увеличивающийся объем доступа к ресурсам может описываться концентрическими наборами доступа.
[0034] Однако в этом пояснительном примере компонент 110 разрешений на ресурсы в безопасной системе обработки может предоставлять более гибкие разрешения доступа к ресурсам. Другими словами, безопасный компонент 110 разрешений на ресурсы может устанавливать отдельные, но связанные измерения в концентрических наборах разрешений так, что любой заданный набор разрешений на более высоком уровне необязательно наследует разрешения из набора разрешений на более низком уровне. Вместо этого объединенное задание уровней и измерений используется при определении привилегий ресурсов.
[0035] Для иллюстрации этого вместо использования трех пар ключей шифрования и расшифрования для определения трех концентрических уровней привилегий ресурсов каждая отличная пара ключей шифрования/расшифрования может соответствовать конкретному измерению и уровню привилегий ресурсов, и количество отличных пар ключей шифрования/расшифрования может зависеть от количества измерений и количества уровней привилегий ресурсов. Кроме того, для установки уровня доступа, достаточного для доступа к конкретному ресурсу, можно задать, что процесс имеет по меньшей мере данное измерение и уровень разрешения на ресурсы перед установкой достаточного разрешения для доступа к ресурсу по меньшей мере в измерение и уровень доступа, ассоциированные с процессом. Другими словами, конкретный пользователь или процесс не может устанавливать разрешение на ресурсы выше разрешений на ресурсы, выданных конкретному пользователю или процессу.
[0036] Фиг. 2 предоставляет пояснительную реализацию использования измерений и уровней при задании привилегий доступа к ресурсам. В этом примере существует три уровня привилегий ресурсов, так что в данном измерении привилегии ресурсов каждого увеличивающегося уровня включают в себя все привилегии ресурсов всех более низких уровней. В этом примере уровень 1 может соответствовать наименьшему уровню привилегий доступа к ресурсам, уровень 2 может соответствовать среднему уровню привилегий доступа к ресурсам, который включает в себя все привилегии доступа к ресурсам уровня 1, включая дополнительные привилегии доступа к ресурсам, и уровень 3 может соответствовать среднему уровню привилегий доступа к ресурсам, который включает в себя все привилегии доступа к ресурсам уровней 1 и 2, включая дополнительные привилегии доступа к ресурсам не с более низких уровней.
[0037] Как проиллюстрировано, фиг. 2 изображает один пример с двумя измерениями, где каждое измерение включает в себя три уровня. А именно измерение 1, изображенное по ссылке 202, с соответствующими уровнями 3, 2 и 1, изображенными соответственно по ссылкам 204, 206 и 208, и измерение 2, изображенное по ссылке 210, и соответствующие уровни 3, 2 и 1, изображенные соответственно по ссылкам 212, 214 и 216. В этом примере задаются два измерения, но в других примерах может использоваться другое количество измерений.
[0038] В этой пояснительной реализации того, что конкретный уровень привилегии доступа к ресурсам больше другого уровня, недостаточно, чтобы операционная система предоставила привилегии доступа к ресурсам, соответствующие более низким уровням. Другими словами, уровень 3 необязательно включает в себя разрешения для уровня 2. Вместо этого компонент разрешений на ресурсы использует некоторое количество измерений в сочетании с уровнем, чтобы решить, предоставляется ли конкретному ресурсу доступ к процессу или пользователю.
[0039] Как изображено на фиг. 2, имеется шесть разных возможных предоставлений привилегий доступа к ресурсам, соответствующих двухэлементному кортежу {измерение, уровень}, которые в этом случае можно представить с помощью {D1,L1}, {D1,L2}, {D1,L3}, {D2,L1}, {D2,L2} и {D2,L3}, где D1 относится к измерению 1, D2 относится к измерению 2, а L1-L3 относятся к уровням 1-3. Как отмечалось выше, в других реализациях могут быть дополнительные измерения.
[0040] В этой реализации каждый кортеж измерения/уровня соответствует соответствующему набору привилегий доступа к ресурсам. Другими словами, данный уровень доверия может включать в себя конкретный набор разрешений доступа к ресурсам в дополнение к возможному включению других разрешений доступа к ресурсам. В частности, {D1,L1} соответствует одному или нескольким наборам привилегий доступа к ресурсам; {D1,L2} соответствует одному или нескольким наборам привилегий доступа к ресурсам, которые охватывают привилегии доступа к ресурсам из {D1,L1}; {D1,L3} соответствует одному или нескольким наборам привилегий доступа к ресурсам, которые охватывают привилегии доступа к ресурсам из {D1,L2} и {D1,L1}; {D2,L1} соответствует одному или нескольким наборам привилегий доступа к ресурсам, которые охватывают привилегии доступа к ресурсам из {D1,L1}; {D2,L2} соответствует одному или нескольким наборам привилегий доступа к ресурсам, которые охватывают привилегии доступа к ресурсам из {D2,L1}, {D1,L2} и {D1,L1}; и {D2,L3} соответствует одному или нескольким наборам привилегий доступа к ресурсам, которые охватывают привилегии доступа к ресурсам из {D2,L2}, {D2,L1}, {D1,L3}, {D1,L2} и {D1,L1}. Кроме того, в некоторых реализациях, когда данный уровень доверия соответствует одному или нескольким данным наборам привилегий доступа к ресурсам, может быть так, что подмножество одного или нескольких наборов охватывает привилегии доступа к ресурсам с другим уровнем доверия.
[0041] В некоторых реализациях, когда данный уровень доверия соответствует одному или нескольким наборам разрешений доступа к ресурсам, которые охватывают наборы разрешений доступа к ресурсам с другим уровнем доверия, можно сказать, что данный уровень доверия "преобладает" над другим уровнем доверия. В задании измерения и уровня из фиг. 2 вышеприведенное описание также можно записать как {D1,L1}, не преобладающий над другим уровнем доверия; {D1,L2}, преобладающий над {D1,L1}; {D1,L3}, преобладающий над {D1,L2} и {D1,L1}; {D2,L1}, преобладающий над {D1,L1}; {D2,L2}, преобладающий над {D2,L1}, {D1,L2} и {D1,L1}; {D2,L3}, преобладающий над {D2,L2}, {D2,L1}, {D1,L3}, {D1,L2} и {D1,L1}.
[0042] Другими словами, в этом примере имеются наборы привилегий доступа к ресурсам на более высоких уровнях, которые не включают в себя или не охватывают все привилегии доступа к ресурсам более низких уровней. Например, {D1,L3} не включает в себя привилегии доступа к ресурсам ни из какого кортежа, включающего в себя измерение 2, включая кортежи с измерением 2 на более низких уровнях, включающих {D2,L2} и {D2,L1}.
[0043] При наличии такого набора разрешений доступа к ресурсам, соответствующего измерениям и уровням из фиг. 2, компонент аутентификации процессов и компонент разрешений на ресурсы могут обращаться к одной и той же инфраструктуре для задания разрешений на ресурсы. Другими словами, привилегии доступа к ресурсам, предоставленные процессу, который может создаваться соответствующим аутентифицированному исполняемому файлу, могут зависеть от того, какой ключ расшифрования используется для аутентификации двоичного файла. В примерных измерениях и уровнях, проиллюстрированных на фиг. 2, может быть шесть разных пар ключей шифрования/расшифрования, соответствующих шести кортежам {D1,L1}, {D1,L2}, {D1,L3}, {D2,L1}, {D2,L2} и {D2,L3}. В таком задании набора привилегий доступа к ресурсам пары ключей шифрования/расшифрования необязательно имеют относительное ранжирование, потому что некоторые наборы разрешений доступа к ресурсам на более высоких уровнях могут не охватывать наборы разрешений доступа к ресурсам с более низких уровней.
[0044] Фиг. 3 иллюстрирует другое задание измерений и уровней, которое может использоваться при реализации компонента разрешений на ресурсы. Как проиллюстрировано на фиг. 3, разные измерения могут иметь разные уровни, ассоциированные с конкретным измерением. Как проиллюстрировано, измерение 1 может иметь пять уровней, изображенных с помощью 302, 304, 306, 308 и 310, а измерение 2 может иметь три уровня, изображенных с помощью 312, 314 и 316. В этой реализации для более простого описания операций сравнения уровни измерения 1 последовательно обозначаются как 1-5, а уровни измерения 2 обозначаются как 2, 3 и 5. Более общее описание соотнесения между уровнями доверия обсуждается ниже. Однако даже в такой реализации определение, обладает ли пользователь или процесс достаточным доступом к системному ресурсу, может выполняться на основе двух сравнений в случае, когда используются два измерения, аналогично реализации, описанной в отношении фиг. 2. Вообще, для N-мерного кортежа разрешение может определяться с помощью N сравнений. В частности, при реализации из фиг. 3, когда одно измерение и уровень соответствует нескольким уровням другого измерения, определение, преобладает ли одно измерение и уровень над каким-нибудь из нескольких уровней в другом измерении, может выполняться с помощью двух сравнений.
[0045] В этой реализации {D1,L1} может соответствовать набору привилегий доступа к ресурсам; {D1,L2} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D1,L1}; {D1,L3} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D1,L2} и {D1,L1}; {D1,L4} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D1,L1}, {D1,L2} и {D1,L3}; {D1,L5} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D1,L1}, {D1,L2}, {D1,L3} и {D1,L4}; {D2,L2} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D1,L2} и {D1,L1}; {D2,L3} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D2,L2}, {D1,L3}, {D1,L2} и {D1,L1}; {D2,L5} может соответствовать набору привилегий доступа к ресурсам, который охватывает привилегии доступа к ресурсам из {D2,L3}, {D2,L2}, {D1,L5}, {D1,L4}, {D1,L3}, {D1,L2} и {D1,L1}. Например, чтобы определить, преобладает ли {D2,L2} над любым другим уровнем доверия, можно провести вычисление с двумя сравнениями: сравнение D2 с другим измерением и сравнение L2 с другим измерением, где выясняется, больше либо равно D2 другому измерению, и больше либо равен L3 другому уровню.
[0046] Хотя определено, что уровни в измерении 2 не используют соотнесение и сохраняют простое сравнение значений для определения, преобладает ли уровень в одном измерении над уровнем другого измерения, обычно уровни могут задаваться в соответствии с любым произвольным маркером, где таблица соотнесения может задавать относительные указания "больше" или "меньше" между любыми двумя данными маркерами. Например, в отношении фиг. 3 уровни 2, 3 и 5 можно переопределить соответственно как уровни "C", "B" и "A", где можно определить соотнесение для задания того, что {D2,A} преобладает над {D2,B}, {D2,C}, {D1,L5}, {D1,L4}, {D1,L3}, {D1,L2} и {D1,L1}; {D2,B} преобладает над {D2,C}, {D1,L3}, {D1,L2} и {D1,L1}; {D2,C} преобладает над {D1,L2} и {D1,L1}; {D1,L5} преобладает над {D1,L4}, {D1,L3}, {D1,L2} и {D1,L1}; {D1,L4} преобладает над {D1,L3}, {D1,L2} и {D1,L1}; {D1,L3} преобладает над {D1,L2} и {D1,L1}; {D1,L2} преобладает над {D1,L1}; и {D1,L1} не преобладает над другим уровнем доверия.
[0047] В некоторых реализациях в отношении использования измерений и уровней при задании разрешений доступа к ресурсам данный процесс в операционной системе может изменять измерение и/или уровень для задания разрешений доступа к ресурсам у другого процесса или ресурса. Например, процесс может быть системным процессом с разрешениями доступа к ресурсам, соответствующими {D2,L3}, а другой процесс может быть пользовательским процессом с разрешениями доступа к ресурсам, соответствующими {D1,L4}. В этом примере системный процесс может изменить разрешения доступа к ресурсам для пользовательского процесса с {D1,L4} на любое сочетание измерения и уровня, потому что системный процесс находится на высшем сочетании доверия или высшем сочетании измерения и уровня. В некоторых случаях системный процесс может уменьшить объем разрешений доступа к ресурсам у пользовательского процесса с {D1,L4}, например, до {D1,L2}. В иных случаях системный процесс может изменить (возможно, увеличить) объем разрешения доступа к ресурсам у пользовательского процесса с {D1,L4}, например, до {D2,L2}.
[0048] Фиг. 4 иллюстрирует визуальное представление измерений и уровней, используемых при задании разрешений доступа к ресурсам, так что визуальное представление занимает пространство xyz. Однако это визуальное представление предназначено для пояснительных целей и служит для углубления понимания измерений и уровней, которые используются компонентом разрешений на ресурсы. В этом визуальном представлении наборов разрешений на ресурсы плоскость x-y может представлять наборы разрешений на ресурсы, которые возможны без использования измерений. В частности, если бы можно было использовать только плоскость x-y, то наборы разрешений на ресурсы были бы концентрическими, и наборы разрешений на ресурсы меньшего или более низкого уровня были бы охвачены наборами разрешений на ресурсы большего или более высокого уровня.
[0049] В этом пояснительном визуальном представлении проекции прямоугольников измерения/уровня, которые находились бы исключительно на плоскости x-y, могут соответствовать концентрическим наборам разрешений, причем каждый более крупный набор разрешений наследует или охватывает разрешения из меньшего набора разрешений. В таком случае не было бы измерений, только уровни. Другими словами, проекции трех прямоугольников измерения/уровня образуют три концентрических набора, причем наименьший, самый глубокий набор соответствует первому уровню, который может быть охвачен следующим наибольшим набором, соответствующим второму уровню, который может быть охвачен наибольшим набором, соответствующим третьему уровню. Однако при использовании измерений в дополнение к использованию уровней уровень доступа к ресурсам необязательно включает в себя более низкий уровень разрешения доступа к ресурсам.
[0050] В этом визуальном представлении, соответствующем измерениям и уровням из фиг. 2, примерные наборы разрешений доступа к ресурсам можно задать с помощью двух измерений и трех уровней в каждом измерении. В частности, в данном измерении, например измерении 1, может быть три концентрических набора разрешений, где каждый более крупный набор охватывает (то есть наследует) привилегии или разрешения доступа из меньшего набора. В этом визуальном представлении набор разрешений, представленный в виде измерений, занятых в плоскости x-y, соответствует уровням в одном измерении. Однако, когда рассматривается второе измерение, набор разрешений в одном измерении на одном уровне необязательно может наследовать все разрешения из набора разрешений в другом измерении на более низком уровне.
[0051] В этом визуальном представлении измерение 1 занимает плоскость x-y и включает в себя концентрические квадраты, изображенные с помощью {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 1} 402, {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 2} 404 и {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 3} 406, где каждый более высокий уровень в измерении наследует привилегии доступа к ресурсам с охваченного более низкого уровня. В этом визуальном представлении объем наборов разрешений, визуально представленных как 402, 404 и 406, может не распространяться на ось z и поэтому не иметь разрешений из визуально представленных наборов разрешений, которые могут распространяться на ось z.
[0052] Однако, когда рассматривается второе измерение, наборы разрешений можно представить как визуальное распространение на ось z, посредством этого придавая объем представлениям наборов разрешений. Другими словами, в этом примере добавленное измерение допускает {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 1} 408, который охватывал бы набор разрешений, представленный в виде {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 1} 402, включая при этом разрешения на ресурсы, которые не входят в {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 1}; где {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 2} 410 охватывал бы наборы разрешений, представленные в виде {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 1} 408, {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 2} 404 и {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 1} 401; и где {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 3} 412 охватывал бы набор разрешений, представленный в виде {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 2} 410, {ИЗМЕРЕНИЕ 2, УРОВЕНЬ 1} 408, {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 3} 406, {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 2} 404 и {ИЗМЕРЕНИЕ 1, УРОВЕНЬ 1} 402.
Пояснительный компонент аутентификации процессов
[0053] Фиг. 5 иллюстрирует блок-схему 500 алгоритма, изображающую избранные операции при реализации компонента аутентификации процессов. Как обсуждалось раньше в отношении фиг. 1, компонент аутентификации процессов может определять аутентичность исполняемого файла перед созданием процесса, соответствующего исполняемому файлу.
[0054] Как обсуждалось выше, большинство вычислительных устройств предоставляют операционную систему, которая позволяет пользователю устанавливать дополнительное программное обеспечение или приложения либо с физических носителей, либо по беспроводной связи. Однако в некоторых случаях операционная система может самостоятельно устанавливать дополнительное программное обеспечение без прямого указания пользователя. В любом случае существуют различные способы, которыми компонент аутентификации процессов может получать доступ, загружать, считывать или принимать исполняемый файл.
[0055] Как изображено по ссылке 502, компонент аутентификации процессов может принять исполняемый файл, который включает в себя зашифрованную цифровую подпись. Хотя в этом примере исполняемый файл изменен с включением в него цифровой подписи, в других случаях цифровая подпись может предоставляться отдельно или в ответ на специальный запрос цифровой подписи.
[0056] Как изображено по ссылке 504, компонент аутентификации процессов может выбрать или определить ключ расшифрования, который соответствует цифровой подписи для исполняемого файла. В некоторых реализациях ключ расшифрования может быть открытым ключом, предоставленным из центра сертификации, где издатель программного обеспечения или поставщик программного обеспечения использует соответствующий секретный ключ для создания цифровой подписи. В других реализациях издатель программного обеспечения или поставщик программного обеспечения может использовать открытый ключ для создания цифровой подписи, и компонент аутентификации процессов использовал бы секретный ключ для расшифрования цифровой подписи. Кроме того, в разных реализациях издатель программного обеспечения и компонент аутентификации процессов могут использовать разные способы для получения их соответствующих ключей шифрования и расшифрования.
[0057] Как изображено по ссылке 506, как только выбран или определен ключ расшифрования, компонент аутентификации процессов может аутентифицировать исполняемый файл на основе цифровой подписи, исполняемого файла и на основе ключа расшифрования. Например, успешное расшифрование указывало бы подлинный или неподдельный исполняемый файл, а неуспешное расшифрование указывало бы исполняемый файл, который может быть некоторым образом поврежден.
[0058] Как изображено по ссылке 508, в ответ на успешную аутентификацию исполняемого файла компонент аутентификации процессов может создать или инициировать создание системного процесса, соответствующего исполнению исполняемого файла, - где процессу назначается измерение и уровень, которые основываются на ключе расшифрования, который использовался для аутентификации исполняемого файла. Другими словами, созданному процессу приписывается уровень безопасности или уровень доверия на основе идентичности исполняемого файла, определенной в соответствии с цифровой подписью. Например, издатель программного обеспечения может использовать несколько разных ключей шифрования для создания цифровой подписи в зависимости от того, какой тип разрешений на ресурсы можно назначить процессу для исполнения исполняемого файла.
[0059] В некоторых реализациях для обеспечения целостности созданного системного процесса измерение, ассоциированное с цифровой подписью, можно поместить в контекст аутентификации созданного процесса. Кроме того, созданный процесс можно защитить с помощью дескриптора безопасности, который ограничивает доступ к измерению созданного процесса. В других реализациях эта аутентификация процессов может применяться к динамически загружаемым модулям. В некоторых реализациях в случае, когда созданный процесс сам создает дополнительные процессы или системные ресурсы, дополнительно созданным процессам или системным ресурсам назначался бы такой же уровень доверия, как и уровень доверия у созданного процесса. Другими словами, созданный процесс не может создавать процесс или системный ресурс с уровнем доверия, который преобладает над уровнем доверия созданного процесса. В других реализациях, например, когда операционная система реализует олицетворение аутентификации, то созданный процесс может вызвать службу для выполнения некоторой функции от лица созданного процесса, и уровень доверия у процесса, исполняющего вызов службы, является минимальным уровнем доверия из исходного созданного процесса и службы. Таким образом, вызванная служба не работала бы или не исполнялась на уровне доверия, который преобладал бы над вызывающей службой, посредством этого препятствуя воздействию службы на какие-либо системные ресурсы или процессы на большем уровне доверия. Поэтому в этом примере одна и та же служба может исполняться в разных экземплярах на разных уровнях доверия в зависимости от уровня доверия у вызывающего процесса.
[0060] В этой реализации компонент аутентификации процессов может использовать наборы разрешений на ресурсы в соответствии с измерениями и уровнями, проиллюстрированными на фиг. 2. В частности, в этом примере издатель программного обеспечения может использовать один из шести разных ключей шифрования для создания цифровой подписи, где каждый из шести разных ключей шифрования может соответствовать одному из шести разных кортежей измерения и уровня {D1,L1}, {D1,L2}, {D1,L3}, {D2,L1}, {D2,L2} или {D2,L3}. Таким образом, компонент аутентификации процессов в зависимости от того, какой ключ расшифрования соответствует ключу шифрования, после успешной аутентификации исполняемого файла может создать процесс для исполнения исполняемого файла с уровнем доверия для разрешения доступа к ресурсам, соответствующим одному из шести разных кортежей измерения и уровня {D1,L1}, {D1,L2}, {D1,L3}, {D2,L1}, {D2,L2} или {D2,L3}. Кроме того, в некоторых реализациях каждый набор или наборы разрешений доступа к ресурсам, характерные для ресурса, можно отобразить в заданный уровень доверия, например, в соответствии с соотнесением, предоставленным от системного администратора с достаточными привилегиями.
[0061] Кроме того, созданный процесс можно пометить метаданными, задающими измерение и уровень, соответствующие привилегиям доступа к ресурсам. В некоторых реализациях компонент аутентификации процессов может иным образом ассоциировать процесс с измерением и уровнем, соответствующими привилегиям доступа к ресурсам.
Пояснительный компонент разрешений на ресурсы
[0062] Фиг. 6 иллюстрирует блок-схему 600 алгоритма, изображающую избранные операции при реализации компонента разрешений на ресурсы, работающего в безопасной системе обработки в операционной системе. Компонент разрешений на ресурсы может использоваться в безопасной системе обработки всякий раз, когда к системному ресурсу обращаются для чтения, перемещения, редактирования или любого типа модификации от текущего состояния для системного ресурса. Термин "системный ресурс" можно понимать как потенциально включающий в себя ресурсы дополнительных приложений, установленных в систему в любое время во время или после начальной установки системы.
[0063] В этой пояснительной реализации в различных сценариях данный процесс в операционной системе в некоторый момент может попытаться обратиться к системному ресурсу, а компонент разрешений на ресурсы может определить, можно ли предоставить процессу доступ к системному ресурсу. Например, процесс может запросить доступ к конкретному системному ресурсу. Как изображено по ссылке 602, от процесса можно принять запрос доступа к ресурсу. В ответ, как изображено по ссылке 604, можно определить минимальное измерение и минимальный уровень, достаточные для доступа к системному ресурсу.
[0064] В других реализациях информация об измерении и уровне может храниться в метаданных, ассоциированных с системным ресурсом. Как обсуждалось в отношении фиг. 3, может предоставляться соотнесение, которое задает отношение преобладания между каждой парой уровней доверия. В случае, когда системный ресурс является программным элементом, метаданные могут храниться как часть системного ресурса. Однако в некоторых случаях метаданные могут храниться в таблице или другом типе структуры данных, который ассоциирует разрешения доступа к ресурсам с системным ресурсом.
[0065] Как изображено по ссылке 606, определяется информация об измерении и уровне, соответствующая процессу, выполняющему запрос ресурса. В других реализациях можно менять местами операции, связанные с 604 и 606. Информация об измерении и уровне для данного процесса может храниться в системном файле, или регистре, или некоторой другой структуре данных, которая ассоциирует процессы с метаданными, задающими разрешения доступа к ресурсам.
[0066] В некоторых реализациях компонент разрешений на ресурсы может выполнять два сравнения для определения, предоставлять ли запрошенный доступ процессу или пользователю. Одно сравнение может состоять в определении, является ли достаточным ассоциированное с процессом измерение, а другое сравнение может состоять в определении, является ли достаточным ассоциированный с процессом уровень. Другими словами, как изображено по ссылке 608, если ассоциированное с процессом измерение преобладает над измерением, достаточным для доступа к системному ресурсу, и если ассоциированный с процессом уровень преобладает над уровнем, достаточным для доступа к системному ресурсу, то предоставляется доступ к системному ресурсу.
Пояснительный безопасный модуль обработки
[0067] Фиг. 7 иллюстрирует вычислительное устройство 102, описанное выше в отношении фиг. 1, вместе с дополнительными вычислительными элементами, где вычислительное устройство 102 может конфигурироваться для реализации безопасной системы обработки. В частности, вычислительное устройство 102 может включать в себя компьютерную систему 104, которая может конфигурироваться для исполнения различных реализаций безопасной системы обработки. В свою очередь, безопасную систему обработки можно реализовать с помощью безопасного модуля 106 обработки, который включает в себя компонент 108 авторизации процессов и компонент 110 разрешений на ресурсы.
[0068] Как обсуждалось выше в отношении разных реализаций, компонент аутентификации процессов может работать для выполнения проверки подписи и соотнесения данной цифровой подписи с соответствующим уровнем доверия, который можно отобразить с помощью компонента разрешений на ресурсы в характерные наборы разрешений. В этом примере модуль 702 проверки подписи, как часть компонента 108 аутентификации процессов, может служить для определения подходящего ключа расшифрования для аутентификации исполняемого файла, соответствующего цифровой подписи. Кроме того, в зависимости от того, какой ключ расшифрования служит для аутентификации исполняемого файла, модуль 704 соотнесения подписи в компоненте 108 аутентификации процессов может определить измерение и уровень, соответствующие цифровой подписи, и пометить процесс, созданный для исполнения исполняемого файла. В памяти 706 могут храниться различные ключи шифрования и/или расшифрования, например ключ (ключи) 126 шифрования и/или ключ (ключи) 128 расшифрования.
[0069] Как обсуждалось выше в отношении разных реализаций, компонент 110 разрешений на ресурсы может - в ответ на запрос от процесса на доступ к системному ресурсу - определить минимальные разрешения, достаточные для доступа к ресурсу, и определить, достаточны ли для доступа к ресурсу разрешения по измерению и уровню для ресурса. В этой реализации модуль 708 проверки уровня, как часть компонента 110 разрешений на ресурсы, может служить для выполнения вычислений для определения, может ли процесс с данным измерением и уровнем разрешений обращаться к данному ресурсу. В некоторых случаях эти сравнительные вычисления могут выполняться параллельно. Например, компьютерная система 104 может реализовать специализированную команду, так что специализированная команда задает операнды для измерения и уровня процесса и для измерения и уровня, достаточных для доступа к ресурсу. Кроме того, операнды для специализированной команды могут служить в качестве входа в аппаратный элемент, который одновременно выполняет сравнения измерения и уровня и выводит флаговое значение, указывающее, предоставляется ли разрешение для ресурса. В этом примере это параллельное вычисление измерения и уровня может выполняться с помощью блока 710 сравнения измерения/уровня (D/L).
[0070] В некоторых реализациях задания для определения, достаточно ли данного измерения и уровня для процесса, чтобы получить доступ к ресурсу, который требует по меньшей мере заданного измерения и уровня, могут храниться в задании (заданиях) 712 набора разрешений на ресурсы.
[0071] Фиг. 7, кроме того, иллюстрирует дополнительные компоненты вычислительного устройства 102. В других реализациях компьютерная система может быть любым из различных типов устройств, включая, но не только, персональную вычислительную систему, настольный компьютер, переносной компьютер, ноутбук или нетбук, мэйнфрейм, карманный компьютер, рабочую станцию, сетевой компьютер, камеру, телевизионную приставку, мобильное устройство, бытовой прибор, игровую приставку, карманное игровое устройство, сервер приложений, запоминающее устройство, телевизор, устройство видеозаписи, периферийное устройство, например коммутатор, модем, маршрутизатор, или вообще любой тип вычислительного или электронного устройства.
[0072] В одной реализации компьютерная система 104 включает в себя один или несколько процессоров 714, соединенных с системной памятью 716. Один или несколько процессоров 714 могут конфигурироваться для обработки данных, сохраненных на машиночитаемых носителях. Машиночитаемые носители включают в себя по меньшей мере два типа машиночитаемых носителей, а именно компьютерные носители информации и средства связи.
[0073] Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не ограничены, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, компакт-диск, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой непередающий носитель, который может быть использован для хранения информации для доступа с помощью вычислительного устройства 102.
[0074] В отличие от этого средства связи могут воплощать машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая или другой механизм передачи. Как определено в этом документе, компьютерные носители информации не включают в себя средства связи.
[0075] Компьютерная система 104 также может включать в себя память 716, которая доступна одному или нескольким процессорам 714. Память 716, включающая в себя хранилище 718 данных, является примером компьютерных носителей информации. Кроме того, компьютерная система 104 может включать в себя один или несколько интерфейсов 720 связи, которые могут упростить связь между вычислительным устройством 102 и другими вычислительными устройствами. В частности, интерфейсы 720 связи могут включать в себя один или несколько проводных сетевых интерфейсов связи, один или несколько беспроводных интерфейсов связи или оба типа интерфейсов связи для упрощения связи по одной или нескольким сетям, представленным сетью 112. Сеть 112 может соответствовать любому типу или сочетанию нескольких разных типов проводных и беспроводных сетей, таких как Интернет, кабельные сети, спутниковые сети, глобальные сети беспроводной связи, проводные локальные сети, беспроводные локальные сети, коммутируемые телефонные сети общего пользования (PSTN) и т. п.
[0076] Более того, компьютерная система 104 может включать в себя устройства 722 ввода/вывода. Устройства 722 ввода/вывода могут включать в себя клавиатуру, указательное устройство (например, мышь или перо), сенсорный экран, одно или несколько устройств захвата изображений (например, одну или несколько камер), один или несколько микрофонов, дисплей, динамики и так далее.
[0077] В некоторых реализациях предполагается, что изобретение можно реализовать с использованием одного экземпляра компьютерной системы, тогда как в других реализациях его можно реализовать в нескольких таких системах, либо несколько узлов, составляющих компьютерную систему, могут конфигурироваться для размещения разных частей или экземпляров реализаций. Например, в одной реализации некоторые элементы можно реализовать посредством одного или нескольких узлов компьютерной системы, которые отличаются от тех узлов, реализующих другие элементы.
[0078] Память в компьютерной системе может включать в себя команды 724 программ, сконфигурированные для осуществления каждой из описанных в этом документе реализаций. В одной реализации команды программ могут включать в себя программные элементы реализаций модулей, обсуждаемых в этом документе. Хранилище данных в компьютерной системе может включать в себя данные, которые могут использоваться в других реализациях.
[0079] Как правило, исполняемые компьютером команды могут включать в себя процедуры, программы, объекты, компоненты, структуры данных и т. п., которые выполняют конкретные функции или реализуют конкретные абстрактные типы данных. Порядок, в котором описываются операции, не нужно толковать как ограничение, и любое количество описанных этапов может объединяться в любом порядке или параллельно для реализации процессов.
Заключение
[0080] Несмотря на то что предмет изобретения описан на языке, характерном для структурных признаков, необходимо понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, необязательно ограничивается описанными конкретными признаками. Точнее, характерные признаки раскрываются в качестве пояснительных видов реализации формулы изобретения.
Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении безопасности передачи данных. Система содержит: один или более процессоров; запоминающее устройство, подключенное к одному или более процессорам с возможностью осуществления связи; и компонент аутентификации процессов, сохраненный в запоминающем устройстве и содержащий инструкции, которые при их исполнении одним или более процессорами предписывают одному или более процессорам: принимать исполняемый файл, который включает в себя цифровую подпись; выбирать открытый ключ расшифрования, соответствующий закрытому ключу шифрования, использованному для генерирования цифровой подписи; аутентифицировать исполняемый файл посредством проверки цифровой подписи с помощью открытого ключа расшифрования; создавать процесс для исполнения аутентифицированного исполняемого файла и назначать этому процессу совместно измерение и уровень на основе открытого ключа расшифрования, причем уровень представляет собой один из множества ранжированных уровней разрешений доступа к системным ресурсам, а измерение представляет собой одно из множества ранжированных измерений, служащих для задания связанности разных наборов уровней разрешений доступа. 3 н. и 14 з.п. ф-лы, 7 ил.
1. Система для предоставления процессу доступа к системному ресурсу, содержащая: один или более процессоров; запоминающее устройство, подключенное к одному или более процессорам с возможностью осуществления связи; и компонент аутентификации процессов, сохраненный в запоминающем устройстве и содержащий инструкции, которые при их исполнении одним или более процессорами предписывают одному или более процессорам: принимать исполняемый файл, который включает в себя цифровую подпись; выбирать открытый ключ расшифрования, соответствующий закрытому ключу шифрования, использованному для генерирования цифровой подписи; аутентифицировать исполняемый файл посредством проверки цифровой подписи с помощью открытого ключа расшифрования; создавать процесс для исполнения аутентифицированного исполняемого файла и назначать этому процессу совместно измерение и уровень на основе открытого ключа расшифрования, причем уровень представляет собой один из множества ранжированных уровней разрешений доступа к системным ресурсам, а измерение представляет собой одно из множества ранжированных измерений, служащих для задания связанности разных наборов уровней разрешений доступа, при этом, исходя, по меньшей мере, из того, что уровни из множества ранжированных уровней находятся на по меньшей мере двух разных измерениях из множества ранжированных измерений, более высокий уровень, который находится на более низком измерении, не наследует разрешения на ресурсы любых уровней, находящихся на более высоком измерении, более высокий уровень, который находится на более высоком низком измерении, наследует разрешения на ресурсы уровней, равных или меньших этого более высокого уровня, которые находятся на более низком измерении, и исходя, по меньшей мере, из того, что уровни из множества ранжированных уровней находятся на одном измерении, более высокий уровень наследует все разрешения на ресурсы более низких уровней; и компонент разрешений на ресурсы, сохраненный в запоминающем устройстве и содержащий инструкции, которые при их исполнении одним или более процессорами предписывают одному или более процессорам: принимать от упомянутого процесса запрос доступа к системному ресурсу; определять минимальное измерение и минимальный уровень, достаточные для доступа к этому системному ресурсу; и предоставлять или запрещать доступ к данному системному ресурсу на основе, по меньшей мере, упомянутого определения.
2. Система по п. 1, в которой выбор открытого ключа расшифрования содержит определение из множества открытых ключей расшифрования того, что упомянутый открытый ключ расшифрования является конкретным открытым ключом расшифрования, который расшифровывает упомянутую цифровую подпись.
3. Система по п. 1, в которой выбор открытого ключа расшифрования содержит: определение идентификационных данных издателя исполняемого файла; передачу, в центр сертификации, запроса на множество открытых ключей расшифрования; прием, из центра сертификации, ответа, включающего в себя множество открытых ключей расшифрования; и определение из множества открытых ключей расшифрования того, что упомянутый открытый ключ расшифрования является конкретным открытым ключом расшифрования, который расшифровывает упомянутую цифровую подпись.
4. Система по п. 1, в которой выбор открытого ключа расшифрования содержит: определение идентификационных данных издателя исполняемого файла; передачу, в центр сертификации, запроса на открытый ключ расшифрования, соответствующий упомянутой цифровой подписи, причем данный запрос включает в себя эту цифровую подпись; и прием, из центра сертификации, ответа, включающего в себя упомянутый открытый ключ расшифрования.
5. Система по п. 1, в которой цифровая подпись создается с помощью одного из множества закрытых ключей шифрования, при этом каждый из этого множества закрытых ключей шифрования соотнесен с отличающейся от других комбинацией измерения и уровня.
6. Система по п. 1, в которой по меньшей мере один уровень на измерении зарезервирован для системных операций и не предоставляется ни одному из пользователей-людей.
7. Система по п. 1, в которой назначение процессу измерения и уровня дополнительно содержит помечание процесса в операционной системе метаданными, задающими измерение и уровень.
8. Компьютерно-реализуемый способ предоставления процессу доступа к системному ресурсу, содержащий этапы, на которых: принимают исполняемый файл, который включает в себя цифровую подпись; выбирают открытый ключ расшифрования, соответствующий цифровой подписи; аутентифицируют исполняемый файл посредством проверки цифровой подписи с помощью открытого ключа расшифрования; и в качестве реакции на аутентификацию исполняемого файла: создают процесс для исполнения аутентифицированного исполняемого файла; назначают этому процессу совместно измерение и уровень на основе открытого ключа расшифрования, причем уровень представляет собой один из множества ранжированных уровней разрешений доступа к системным ресурсам, а измерение представляет собой одно из множества ранжированных измерений, служащих для задания связанности разных наборов уровней разрешений доступа, при этом, исходя, по меньшей мере, из того, что уровни из множества ранжированных уровней находятся на по меньшей мере двух разных измерениях из множества ранжированных измерений,более высокий уровень, который находится на более низком измерении, не наследует разрешения на ресурсы любых уровней, находящихся на более высоком измерении, более высокий уровень, который находится на более высоком низком измерении, наследует разрешения на ресурсы уровней, равных или меньших этого более высокого уровня, которые находятся на более низком измерении, и исходя, по меньшей мере, из того, что уровни из множества ранжированных уровней находятся на одном измерении, более высокий уровень наследует все разрешения на ресурсы более низких уровней; принимают от упомянутого процесса запрос доступа к системному ресурсу; определяют минимальное измерение и минимальный уровень, достаточные для доступа к этому системному ресурсу; и предоставляют или запрещают доступ к данному системному ресурсу на основе, по меньшей мере, упомянутого определения.
9. Способ по п. 8, в котором измерение, назначенное процессу, представляет собой первое измерение из двух измерений, при этом первое измерение соответствует первому множеству уровней, а второе измерение из этих двух измерений соответствует второму множеству уровней, причем во втором множестве уровней больше уровней, чем в первом множестве уровней.
10. Способ по п. 9, в котором по меньшей мере один уровень на первом измерении из упомянутых двух измерений зарезервирован для системных операций и не предоставляется ни одному из пользователей-людей.
11. Способ по п. 8, в котором цифровая подпись создается с помощью одного из множества закрытых ключей шифрования, при этом каждый из этого множества закрытых ключей шифрования соотнесен с отличающейся от других комбинацией измерения и уровня.
12. Способ по п. 8, в котором выбор открытого ключа расшифрования содержит определение из множества открытых ключей расшифрования того, что упомянутый открытый ключ расшифрования является конкретным открытым ключом расшифрования, который расшифровывает упомянутую цифровую подпись.
13. Способ по п. 8, в котором имеется множество измерений и множество уровней, при этом по меньшей мере один уровень на первом измерении из данного множества измерений зарезервирован для системных операций и не предоставляется ни одному из пользователей-людей.
14. Способ по п. 8, в котором назначение процессу измерения и уровня дополнительно содержит помечание процесса в операционной системе метаданными, задающими измерение и уровень.
15. Машиночитаемый носитель, на котором сохранены машиноисполняемые инструкции, которые при их исполнении одним или более процессорами предписывают одному или более процессорам выполнять действия для предоставления процессу доступа к системному ресурсу, в соответствии с которыми: принимают исполняемый файл, который включает в себя цифровую подпись; определяют из множества открытых ключей расшифрования открытый ключ расшифрования, соответствующий закрытому ключу шифрования, использованному для генерирования цифровой подписи, причем каждый из множества открытых ключей расшифрования соотнесен с отличающимся от других уровнем доверия, при этом уровень доверия представлен кортежем, заданным в соответствии с параметром измерения и параметром уровня как {D, L}, причем уровень представляет собой один из множества уровней разрешений доступа к системным ресурсам, а измерение представляет собой одно из множества измерений, служащих для задания связанности разных наборов уровней разрешений доступа, при этом, исходя, по меньшей мере, из того, что уровни из множества уровней находятся на по меньшей мере двух разных измерениях из множества измерений, более высокий уровень, который находится на более низком измерении, не наследует разрешения на ресурсы любых уровней, находящихся на более высоком измерении, более высокий уровень, который находится на более высоком низком измерении, наследует разрешения на ресурсы уровней, равных или меньших этого более высокого уровня, которые находятся на более низком измерении, и исходя, по меньшей мере, из того, что уровни из множества уровней находятся на одном измерении, более высокий уровень наследует все разрешения на ресурсы более низких уровней; и аутентифицируют исполняемый файл посредством проверки цифровой подписи с помощью открытого ключа расшифрования; и в качестве реакции на аутентификацию исполняемого файла: создают процесс для исполнения аутентифицированного исполняемого файла; назначают процессу уровень доверия, основываясь на том, что открытый ключ расшифрования соотнесен с конкретным уровнем доверия; принимают от процесса запрос доступа к системному ресурсу; предоставляют доступ к системному ресурсу на основе, по меньшей мере, того, что уровень доверия {Dp, Lp}, назначенный процессу, удовлетворяет уровню доверия {Da, La}, достаточному для доступа к системному ресурсу, при этом уровень доверия, назначенный процессу, удовлетворяет уровню доверия, достаточному для доступа к системному ресурсу, на основе, по меньшей мере, того, что Dp ≥ Da и Lp ≥ La; и запрещают доступ к системному ресурсу на основе, по меньшей мере, того, что уровень доверия {Dp, Lp}, назначенный процессу, не удовлетворяет уровню доверия {Da, La}, достаточному для доступа к системному ресурсу, при этом уровень доверия, назначенный процессу, не удовлетворяет уровню доверия, достаточному для доступа к системному ресурсу, на основе, по меньшей мере, того, что Dp < Da или Lp < La.
16. Машиночитаемый носитель по п. 15, при этом назначение процессу уровня доверия дополнительно содержит помечание процесса в операционной системе метаданными, задающими измерение и уровень.
17. Машиночитаемый носитель по п. 15, при этом цифровая подпись создается с помощью одного из множества закрытых ключей шифрования, при этом каждый из этого множества закрытых ключей шифрования соотнесен с отличающейся от других комбинацией измерения и уровня.
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Авторы
Даты
2017-12-07—Публикация
2013-09-21—Подача