RU2142674C1 - Управление доступом с использованием параметризированной хэш-функции - Google Patents

Управление доступом с использованием параметризированной хэш-функции Download PDF

Info

Publication number
RU2142674C1
RU2142674C1 RU98105209A RU98105209A RU2142674C1 RU 2142674 C1 RU2142674 C1 RU 2142674C1 RU 98105209 A RU98105209 A RU 98105209A RU 98105209 A RU98105209 A RU 98105209A RU 2142674 C1 RU2142674 C1 RU 2142674C1
Authority
RU
Russia
Prior art keywords
unit
key
executable program
signature
executable
Prior art date
Application number
RU98105209A
Other languages
English (en)
Inventor
В.Оксмит Дэвид
К.Науэрхейз Роберт
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Application granted granted Critical
Publication of RU2142674C1 publication Critical patent/RU2142674C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Abstract

Изобретение относится к управлению доступом в вычислительной системе. Блок хранения получает блок данных, включающий в себя зашифрованный исполняемый модуль и сигнатурный компонент. Блок разделения, связанный с блоком хранения, отделяет сигнатурный компонент от зашифрованного исполняемого модуля. Блок дешифрирования, соединенный с блоком разделения, дешифрирует зашифрованный исполняемый модуль, используя сигнатурный компонент в качестве ключа. Это приводит к получению дешифрированной исполняемой программы. Блок идентификации, связанный с блоком дешифрирования, находит идентификационную метку в дешифрированной исполняемой программе и идентифицирует составной ключ, присвоенный идентификационной метке. Блок формирования сигнатуры, связанный с блоком идентификации, выполняет ключевой криптографический хэш-алгоритм для дешифрированной исполняемой программы, используя составной ключ в качестве ключа. Технический результат изобретения заключается в повышении надежности системы за счет обнаружения скрытых ошибок в интерфейсах между составляющими подсистемы. 5 c. и 7 з.п. ф-лы, 7 ил.

Description

Настоящее изобретение относится к управлению доступом в компьютерной системе. Более конкретно, настоящее изобретение относится к устройству и способу идентификации происхождения исполняемого модуля и использованию этой идентификации для определения уровня прав доступа, предоставляемых исполняемому модулю.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Нарушение защиты в компьютерных системах можно подразделить на преднамеренные и случайные. К видам преднамеренного доступа относятся несанкционированное считывание данных, несанкционированное изменение данных и несанкционированное разрушение данных. Большинство операционных систем предоставляют процессам средства для порождения других процессов. В такой среде возможно создание ситуации, при которой ресурсы операционной системы и файлы пользователя используются некорректно. Вормы и вирусы - два обычных способа некорректного использования. Защита компьютерной системы зависит от способности идентифицировать источник программ, которые должны быть выполнены, и проверять, что эти программы не были изменены таким образом, что могут представлять угрозу защите системы.
В дополнение к проверке подлинности источника программы также необходимо убедиться, что файлы, сегменты памяти, ЦПУ и другие ресурсы компьютерной системы могут быть использованы только теми процессами, которые получили соответствующее санкционирование от операционной системы. Существует несколько причин для обеспечения такой защиты. Наиболее очевидное - это потребность предотвратить вредное намеренное нарушение ограничения доступа. Самое важное - необходимость гарантировать, что каждый программный компонент, действующий в системе, использует системные ресурсы способами, согласующимися с установленными правилами для использования этих ресурсов. Защита может улучшить надежность, обнаруживая скрытые ошибки в интерфейсах между составляющими подсистемами. Раннее обнаружение ошибок в интерфейсе может предотвратить вывод из строя исправных подсистем другими подсистемами, которые неправильно функционируют.
Процесс в типовом случае работает в рамках области защиты. Эта область определяет ресурсы, к которым процесс может иметь доступ. Каждая область определяет набор объектов и типы операций, которые могут быть вызваны для каждого объекта. Способность выполнять операцию над объектом определяется как право доступа. Область - это набор прав доступа, каждое из которых в типовом случае представляет собой упорядоченную пару вида: "имя объекта, набор прав". Например, если область D имеет право доступа "файл F, {чтение, запись}", то процесс, исполняющийся в области D, может осуществлять как считывание, так и запись в файл F. Однако выполнение других операций над этим объектом не будет разрешено. Области могут быть разделены или они могут совместно использовать право доступа. Связь между процессом и областью также может быть статической или динамической. Таким образом, важно ограничить области защиты, доступные каждому процессу.
Таким образом существует необходимость в устройстве и способе предоставления защищенной от подделки сигнатуры исполняемого модуля, которая может быть использована, чтобы идентифицировать происхождение исполняемого модуля, определить, было ли сделано какое-либо изменение исполняемого модуля, уровень прав доступа и разрешение использования исполняемого модуля операционной системой.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Описаны способ и устройство для управления доступом в компьютерной системе. Первый вариант осуществления контроллера доступа включает блок хранения. Блок хранения хранит блок данных, включающий в себя сигнатурный компонент и зашифрованный исполняемый модуль. Блок разделения связан с блоком хранения. Блок разделения получает блок данных и отделяет сигнатурный компонент от зашифрованного исполняемого модуля. Блок дешифрования связан с блоком разделения. Блок дешифрования получает зашифрованный исполняемый модуль и расшифровывает зашифрованный исполняемый модуль, преобразуя его в исполняемую программу. Это достигается выполнением алгоритма дешифрования, который использует сигнатурный компонент в качестве ключа для того, чтобы расшифровать зашифрованный исполняемый модуль. Блок идентификации связан с блоком дешифрования. Блок идентификации получает исполняемую программу, которую нужно использовать, и идентифицирует ключ, указанной идентификационной метки в исполняемой программе для вычисления криптографически зашифрованного по ключу хэшированного значения исполняемой программы. Блок генерации сигнатуры связан с блоком дешифрирования. Блок генерации сигнатуры получает исполняемую программу и вычисляет криптографически зашифрованное по ключу хэшированное значение для исполняемой программы с использованием заполненного ключа, идентифицированного блоком идентификации. Блок проверки связан с блоком хэширования. Блок проверки сравнивает ключевое хэшированное значение с сигнатурным компонентом, чтобы проверить источник блока данных и не была ли сделана какая-либо модификация блока данных. Блок назначения прав связан с блоком хэширования. Блок назначения прав получает ключ, используемый для вычисления ключевого хэшированного значения исполняемой программы, и присваивает права исполняемой программе в соответствии с правами, связанными с ключом.
Второй вариант осуществления настоящего изобретения раскрывает способ управления доступом в компьютерной системе. Сначала принимают блок данных, включающий в себя сигнатурный компонент и зашифрованный исполняемый модуль. После того, как блок данных получен, сигнатурный компонент отделяют от зашифрованного исполняемого модуля. Затем исполняемый модуль расшифровывают посредством выполнения алгоритма дешифрования, который использует сигнатурный компонент в качестве ключа. Идентифицируют составной ключ, соответствующий идентифицированной метке в исполняемой программе. Составной ключ используют, чтобы вычислить ключевое хэшированное значение исполняемой программы. После того, как ключевое хэшированное значение вычислено, ключевое хэшированное значение сравнивывают с сигнатурным компонентом, чтобы проверить источник блока данных. Исполняемой программе присваивают права в соответствии с правами, предварительно назначенными для ключа.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение поясняется в нижеследующем подробном описании, иллюстрируемым чертежами. Описание и чертежи не предназначаются для ограничения изобретения конкретным вариантом осуществления, а приведены для пояснения, облегчения понимания сущности изобретения.
Фиг. 1 иллюстрирует первый вариант осуществления контроллера доступа, используемого в компьютерной системе.
Фиг. 2 иллюстрирует структурную схему первого варианта осуществления блока кодирования, соответствующего настоящему изобретению.
Фиг. 3 иллюстрирует процедуру кодирования блока информации с использованием блока кодирования, соответствующего настоящему изобретению.
Фиг. 4 иллюстрирует структурную схему второго варианта осуществления контроллера доступа, соответствующего настоящему изобретению.
Фиг. 5 иллюстрирует структурную схему третьего варианта осуществления системы обработки видеосигнала, соответствующего настоящему изобретению.
Фиг. 6 - блок-схема, иллюстрирующая способ кодирования.
Фиг. 7 - блок-схема, иллюстрирующая способ управления доступом в компьютерной системе.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Предложен новый блок контроллера доступа. Ниже изложены различные конкретные детали примеров осуществления изобретения. Однако специалистам в данной области техники должно быть понятно, что настоящее изобретение может быть осуществлено без использования этих конкретных деталей. Кроме того, общеизвестные методы, процедуры, компоненты и схемы не описываются подробно, чтобы не затенять сущность настоящего изобретения.
Некоторые части нижеследующего подробного описания представлены в терминах алгоритмов и символических представлениях операций над битами данных в памяти компьютерной системы. Эти алгоритмические описания и представления являются средствами, используемыми специалистами в данной области обработки данных для того, чтобы наиболее эффективно передать сущность их работы другим специалистам в данной области техники. Алгоритм представляет собой последовательность операций, ведущую к желаемому результату. Операции - это действия, осуществляемые над материальными объектами с помощью материальных средств. Обычно, хотя не обязательно, эти материальные объекты представляют собой электрические и магнитные сигналы, которые можно хранить, перемещать, объединять, сравнивать и подвергать другим манипуляциям. Как оказалось, иногда удобно, преимущественно по причинам общепринятого словоупотребления, ссылаться на эти сигналы как на биты, значения, элементы, символы, знаки, выражения, числа или подобное. Нужно помнить, однако, что все эти и подобные термины должны быть связаны с соответствующими физическими величинами и просто являются удобными обозначениями, относящимися к этим величинам. Если специально не оговорено другое, должно быть принято во внимание, что во всем настоящем изобретении такие термины, как "обработка", "вычисление", "расчет", "определение", "отображение" или подобные, относятся к действиям и процессам компьютерной системы или подобного электронного вычислительного устройства, которое манипулирует данными или преобразует данные, представляемые в виде физических (электронных) величин в регистрах компьютерной системы и запоминающих устройствах, в другие данные, также представленные в виде физических величин в запоминающих устройствах компьютерной системы или регистрах или других устройствах, таких, как устройство хранения информации или устройства передачи или отображения.
Фиг. 1 иллюстрирует в виде структурной схемы вычислительную систему первого варианта осуществления настоящего изобретения. Вычислительная система включает шину 100, интерфейс клавиатуры 101, внешнюю память 102, массовое запоминающее устройство 103, процессор 104, контроллер устройства отображения 105. Шина 100 соединена с контроллером устройства отображения, интерфейсом клавиатуры 101, микропроцессором 104, памятью 102 и массовым запоминающим устройством 103. Контроллер устройства отображения может быть соединен с устройством отображения. Интерфейс клавиатуры 101 может быть соединен с клавиатурой.
Шина 100 может быть отдельной шиной или комбинацией нескольких шин. Например, шина 100 может включать шину ISA (промышленной стандартной архитектуры), шину EISA (расширенной промышленной стандартной архитектуры), системную шину, Х-шину, параллельную системную шину PS/2, шину PCI (межсоединений периферийных компонентов), шину PCMCIA (платы памяти персональных компьютеров Международной Ассоциации) или другие шины. Шина 100 может также включать комбинацию любых этих шин. Шина 100 обеспечивает коммуникационные связи между компонентами компьютерной системы. Интерфейс клавиатуры 101 может быть контроллером клавиатуры или другим интерфейсом клавиатуры. Интерфейс клавиатуры 101 может быть специализированным устройством или частью другого устройства - такого, как контроллер шины или другой контроллер. Интерфейс клавиатуры 101 обеспечивает соединение клавиатуры с компьютерной системой и передает сигналы от клавиатуры к компьютерной системе. Внешняя память 102 может включать динамическое оперативное запоминающее устройство (ДОЗУ), статистическое запоминающее устройство (СОЗУ) или другие запоминающие устройства. Внешняя память 102 хранит информацию и данные, полученные из массового запоминающего устройства 103 и процессора 104 для использования процессором 104. Массовое запоминающее устройство 103 может быть накопителем на жестком диске, накопителем на гибком диске, накопителем CDROM, флэш (сверхбыстродействующее) - ПЗУ или другим массовым запоминающим устройством. Массовое запоминающее устройство 103 обеспечивает информацией и данными внешнюю память 102.
Процессор 104 обрабатывает информацию и данные из внешней памяти 102 и сохраняет информацию и данные во внешней памяти 102. Процессор 104 также принимает сигналы от контроллера клавиатуры 101 и передает информацию и данные контроллеру устройства отображения 105 для отображения на дисплее. Процессор 104 также передает видеоизображения контроллеру устройства отображения для отображения на дисплее. Процессор 104 может быть микропроцессором с полным набором команд (CISC-процессором), микропроцессором с сокращенным набором команд (RISC-процессором), микропроцессором со сверхдлинным словом команды (VLIW-процессором) или другим процессорным устройством. Контроллер устройства отображения 105 обеспечивает соединение устройства отображения с вычислительной системой и действует как интерфейс между устройством отображения и вычислительной системой. Контроллер устройства отображения может быть монохромным адаптером (MDA), цветным графическим адаптером (CGA), цветным графическим адаптером (MCGA), графическим адаптером (EGA), видеоадаптером (VGA), видеоадаптером (XGA) или другим контроллером устройства отображения. Устройство отображения может быть телевизионным приемником, компьютерным монитором, плоской индикаторной панелью или другим устройствам отображения. Устройство отображения принимает информацию и данные от процессора 104 через контроллер устройства отображения 105 и отображает информацию и данные для пользователя вычислительной системы.
Вычислительная система также включает блок контроллера доступа 106. Блок контроллера доступа 106 соединен с шиной 100. Набор ключей, которые связаны с правами доступа в компьютерной системе, хранится в блоке контроллера доступа 106. Каждый ключ определяет область, в которой программа функционирует. Ключи также определяют один или более составных ключей, которые используются в качестве параметров криптографической хэш-функции для генерации сигнатуры программы. Сигнатура программы в дальнейшем используется в качестве ключа шифрования для шифрования исполняемой программы.
Блок контроллера доступа 106 получает процесс, который должен быть выполнен процессором 104 из массового запоминающего устройства 103 или другого устройства ввода-вывода, подсоединенного к шине 100. Процесс включает в себя зашифрованный исполняемый модуль и сигнатурный компонент. Прежде чем вычислительная система исполнит программу, блок контроля доступа 106 проверяет, правильно ли построена сигнатура программы, из известного составного ключа. Проверяя сигнатурный компонент процесса, блок контроля доступа 106 идентифицирует происхождения процесса, проверяет, не был ли процесс модифицирован таким образом, что стал представлять угрозу компьютерной системе, и определяет уровень доступа, который операционная система должна предоставить процессу. Затем блок контроллера доступа 106 позволяет исполняемой программе выполняться с правами, присвоенными ключам, используемым при получении составного ключа.
Фиг. 2 иллюстрирует структурную схему первого варианта осуществления блока кодирования файла настоящего изобретения. Блок кодирования файла 210 включает генератор сигнатур 221 и блок шифрования 230. Генератор сигнатур 221 выполняет операции по созданию сигнатур исполняемой программы, которая будет выполнена процессором 104. Блок шифрования 230 шифрует файл, содержащий исполняемую программу, используя сигнатуру в качестве ключа. Генератор сигнатур 221 выполняет криптографическую ключевую хэш-функцию на открытом тексте исполняемой программы, генерируя зашифрованный текст. Генератор сигнатур 221 использует ключи, которые являются составными ключами тех ключей, которые хранятся в блоке управления доступом 106. Каждый из составных ключей, используемых в криптографической хэш-функции, связан с набором прав доступа. Эти права присваиваются исполняемой программе перед ее выполнением.
Генератор сигнатур 221 включает блок вычисления 222 и блок шифрования 223. Генератор сигнатур 221 может использовать блок вычисления и блок шифрования 223 для выполнения любого числа криптографических ключевых хэш-функций или алгоритмов шифрования на открытом тексте исполняемой программы. Ключи могут быть индивидуальными симметричными ключами или общими асимметричными ключами. Различие состоит в степени защиты, требуемой копией ключа операционной системы. Генератор сигнатур 221 может использовать такие стандартные алгоритмы как Lucifer, Madryga, NewDES, FEAL, REDOC, LOKI, Khufu, Khafre или IDEA, с тем, чтобы генерировать криптографическое ключевое хэшированное значение для исполняемой программы. В первом варианте осуществления настоящего изобретения блок вычисления 222 и блок шифрования 223 используют формирование Цепочки Шифрованных Блоков (ФЦШБ) Стандарта Шифрования Данных (СШД) для того, чтобы генерировать криптографическое ключевое хэшированное значение для исполняемой программы.
Фиг. 3 иллюстрирует операции, выполняемые блоком вычисления 222 и блоком шифрования 223, когда он использует ФЦШБ, чтобы генерировать ключевое хэшированное значение для исполняемой программы. Формирование цепочки использует механизм обратной связи. Результаты шифрования предыдущих блоков поступают обратно на шифрование текущего блока. Другими словами, предыдущий блок используется для изменения шифрования следующего блока. Каждый блок зашифрованного текста зависит и от блока открытого текста, который его породил, и от предыдущих блоков открытого текста. В ФЦШБ открытый текст обрабатывается согласно операции "исключающее ИЛИ" совместно с предыдущим блоком зашифрованного текста прежде, чем он будет зашифрован.
В этом примере блок кодирования 210 получает файл, содержащий исполняемую программу, с размером 24 байта. Генератор сигнатур 221 разбивает файл в 24 байта на три раздела по 8 байтов. Первые 8 байтов открытого текста представляются как Р1 в блоке 301. P1 подвергается обработке по процедуре "исключающее ИЛИ" с инициирующим вектором (IV), хранящимся в блоке вычисления 222. Это приводит к получению первого результата. Инициирующий вектор является функцией первого составного ключа, связанного с набором прав доступа, которые будут присвоены исполняемой программе. После этого Р1 обрабатывается по процедуре "исключающее ИЛИ" с IV; блок шифрования 223 выполняет ключевой алгоритм шифрования, используя второй составной ключ для первого результата, формируя первый зашифрованный результат C1. Ключевой алгоритм шифрования может быть одним из ряда различных ключевых алгоритмов шифрования, включая любой из ключевых алгоритмов шифрования, перечисленных ранее. Блок вычисления 222 обрабатывает по процедуре "исключающее ИЛИ" первый зашифрованный результат со вторым 8-байтовым разделом, представляемым как Р2, чтобы получить второй 8-байтовый результат. Блок шифрования 223 выполняет ключевой алгоритм шифрования, используя второй составной ключ для второго результата и формируя второй зашифрованный результат C2. Блок вычисления 222 обрабатывается по процедуре "исключающее ИЛИ" второй зашифрованный результат с третьим 8-байтовым разделом, чтобы сформировать третий 8-байтовый результат. Блок шифрования 223 выполняет ключевой алгоритм шифрования, используя второй составной ключ для третьего результата. Это приводит к получению третьего зашифрованного результата C3, который используется в качестве сигнатуры исполняемой программы.
Блок генерации сигнатуры 221 генерирует сигнатуру исполняемой программы, которая является функцией всех символов в файле. Таким образом, если исполняемая программа изменяется, можно будет обнаружить модификацию, повторно вычисляя криптографическое ключевое хэш-значение и сравнивая повторно вычисленное значение с первоначальной сигнатурой.
Блок шифрования 230 выполняет операции по шифрованию исполняемой программы посредством выполнения алгоритма шифрования с использованием сигнатуры, созданной в результате работы ключевого криптографического хэш-алгоритма в качестве ключа. Это приводит к получению зашифрованного исполняемого модуля. Шифрование исполняемой программы обеспечивает дополнительный уровень защиты, чтобы предотвратить несанкционированное считывание исполняемой программы третьим лицом. Блок шифрования 230 может использовать все разнообразие алгоритмов шифрования. Зашифрованный исполняемый модуль и сигнатура посылаются в виде файла вычислительной системе для исполнения.
Фиг. 4 иллюстрирует структурную схему второго варианта осуществления контроллера доступа настоящего изобретения. Блок управления доступом 400 включает блок хранения 410, блок разделения 420, блок дешифрования 430, блок идентификации 440, блок генерации сигнатуры 450, блок проверки 460 и блок назначения прав 470.
Блок хранения 410 получает блок данных, включающий зашифрованный исполняемый модуль и сигнатурный компонент. Блок хранения 410 может включать ДОЗУ, СОЗУ или другие виды оперативной памяти. Блок хранения 410 использует признак, чтобы указать компьютерной системе, является ли хранящийся файл исполняемым модулем или исполняемой программой. Признак указывает компьютерной системе на то, что блок хранения 410 используется в качестве временной памяти, когда хранящийся файл - исполняемый модуль. Признак указывает компьютерной системе на то, что блок хранения 410 используется в качестве места исполнения, когда файл - исполняемая программа.
Блок разделения 420 соединен с блоком хранения 410. Блок разделения 420 получает блок данных из блока хранения 410 и отделяет зашифрованный исполняемый модуль от сигнатурного, компонента. Это позволяет блоку управления доступом 400 обрабатывать зашифрованный исполняемый модуль и сигнатурный компонент независимо.
Блок дешифрования 430 соединен с блоком хранения 420 и блоком хранения 410. Блок дешифрования 430 получает зашифрованный исполняемый модуль в форме зашифрованного текста и сигнатурного компонента из блока разделения 420. Блок дешифрования 430 расшифровывает зашифрованный исполняемый модуль, используя сигнатурный компонент в качестве ключа дешифрования. Блок дешифрования 430 преобразует зашифрованный исполняемый модуль в дешифрованную исполняемую программу.
Блок идентификации 440 соединен с блоком дешифрования 430 и блоком хранения 410. Блок идентификации 440 получает исполняемую программу от блока дешифрования 430. Блок идентификации 440 считывает идентификационную метку в исполняемой программе и идентифицирует соответствующий составной ключ, который присвоен идентификационной метке. Этот составной ключ - обычно тот же самый ключ, который используется блоком генерации сигнатуры 221, чтобы генерировать ключевое хэшированное значение для исполняемой программы. В первом варианте осуществления настоящего изобретения, идентифицирующий процессор 440 содержит поисковую таблицу, согласовывающую различные идентификационные метки с различными составными ключами. Составной ключ связан со специфическими правами доступа, которые предоставляются исполняемой программе.
Блок генерации сигнатуры 450 соединен с блоком идентификации 440 и блоком хранения 410. Блок генерации 450 получает идентификацию составного ключа, присвоенного идентификационной метке исполняемой программы. Блок генерации сигнатуры 450 выполняет операции по вычислению криптографического ключевого хэш-значения дешифрованной исполняемой программы, полученной блоком идентификации 440, используя идентификацию составного ключа, полученную блоком идентификации 440. Блок генерации сигнатуры 450 хранит множество ключей, которым соответствуют специфические права доступа в компьютерной системе. Эти ключи используются для формирования множество составных ключей для кодирования и декодирования исполняемых программ и дешифрированных исполняемых программ.
Блок проверки 460 связан с блоком генерации сигнатуры 450 и блоком хранения 410. Блок проверки 460 получает сигнатурный компонент исполняемого модуля из блока хранения 410 и ключевое хэшированное значение дешифрованной исполняемой программы из блока генерации сигнатуры 450. Блок проверки 460 сравнивает ключевое хэшированное значение дешифрованной исполняемой программы с сигнатурным компонентом исполняемого модуля. Если они совпадают, блок проверки 460 разрешает выполнение дешифрированной исполняемой программы компьютерной системой. Если они не совпадают, блок проверки 460 принимает решение, что исполняемый модуль был изменен, и не разрешает его выполнения компьютерной системой.
В первом варианте осуществления настоящего изобретения блок генерации сигнатуры 450 не получает идентификацию составного ключа, используемого для вычисления ключевой хэш-функции дешифрированной исполняемой программы. Вместо этого блок генерации сигнатуры 450 вычисляет несколько ключевых хэшированных значений дешифрированной исполняемой программы, используя составные ключи, полученные перестановками ключей, хранящихся в блоке генерации сигнатуры 450. Эти ключевые хэшированные значения принимаются блоком проверки 460, который определяет, соответствует ли любой из ключевых хэшированных значений первоначальному сигнатурному компоненту. Точно так же, если имеется соответствие между сигнатурным компонентом исполняемого модуля и любым из вычисленных ключевых хэшированных значений дешифрованной исполняемой программы, блок проверки 460 позволяет осуществлять выполнение дешифрированной исполняемой программы компьютерной системой. Если нет никаких совпадений, блок проверки 460 принимает решение, что исполняемый модуль был изменен и не должен выполняться компьютерной системой.
Блок назначения прав 470 соединен с блоком проверки 460 и блоком хранения 410. Блок назначения прав 470 получает идентификацию составного ключа, используемого для вычисления соответствующего ключевого хэшированного значения для сигнатурного компонента исполняемого модуля. Когда блок назначения прав 470 получает сигнал от блока проверки 460, показывающий, что дешифрированная исполняемая программа должна быть выполнена компьютерной системой, блок назначения прав 470 выполняет операции, необходимые для присвоения прав, доступных программе, идентифицируя права, связанными со специфическими составными ключами, используемыми для вычисления соответствующего ключевого хэшированного значения. В первом варианте осуществления настоящего изобретения блок назначения прав 470 может содержать поисковую таблицу, согласовывающие различные составные ключи с различными уровнями прав доступа. После того, как блок назначения прав 470 присвоит соответствующие права дешифрированной исполняемой программе, блок назначения прав 470 изменяет признак в блоке хранения 410, чтобы указать компьютерной системе, что блок хранения 410 используется в качестве исполняемого модуля. Компьютерная система воспринимает указания, что блок хранения 410 содержит исполняемую программу, и переходит к ее выполнению.
Фиг. 5 иллюстрирует в форме структурной схемы типовую компьютерную систему для четвертого варианта осуществления настоящего изобретения. Компьютерная система включает шину 500, микропроцессор 510, память 520, устройство хранения данных 530, контроллер клавиатуры 540 и контроллер устройства отображения 550.
Микропроцессор 510 может представлять собой микропроцессор с полным набором команд (CISC-процессор), микропроцессор с сокращенным набором команд (RISC-процессор) или другое процессорное устройство. Микропроцессор выполняет команды или код, хранящиеся в памяти 520, и выполняет операции над данными, хранящимися в памяти 520. Кроме того, компьютерная система 500 включает устройство хранения данных 530 (такое, как накопитель на жестком, гибком или оптическом диске), которое соединено с шиной 515. Контроллер устройства отображения 550 также соединен с шиной 515. Контроллер устройства отображения 550 обеспечивает соединение устройства отображения с компьютерной системой. Контроллер клавиатуры 540 обеспечивает соединение клавиатуры с компьютерной системой и передает сигналы от клавиатуры к компьютерной системе.
Память, 520 соединена с микропроцессором 510 через шину 500. Память 520 может быть динамическим запоминающим устройством (ДОЗУ), статическим оперативным запоминающим устройством (СОЗУ) или другим запоминающим устройством. Память 520 может хранить команды или код, исполняемые процессором 510 и являющиеся частью прикладных программ, программ операционной системы или других компьютерных программ. Память 520 включает модуль хранения 521, модуль разделения 522, модуль дешифрования 523, модуль идентификации 524, модуль генерации сигнатуры 525, модуль проверки 526 и модуль назначения прав 527. Модуль хранения 521 включает первое множество исполняемых команд процессора, которое выполняются процессором 510 так, как показана фиг. 7. Модуль хранения выполняет функции, подобные тем, что выполняет блок хранения 410 на фиг. 4. Модуль разделения 522 включает второе множество исполняемых команд процессора, которые выполняются процессором 510 так, как показано на фиг. 7. Модуль разделения 522 выполняет функции, подобные тем, что выполняет блок разделения 420 на фиг. 4. Модуль дешифрования 523 включает третье множество исполняемых команд процессора, которое выполняются процессором 510 так, как показано на фиг. 7. Модуль дешифрования 523 выполняет функции, подобные тем, что выполняет блок дешифрования 430 на фиг.4. Модуль идентификации 524 включает четвертое множество исполняемых команд процессора, которые выполняются процессором 510 так, как показано на фиг.7. Модуль идентификации 524 функционирует аналогично блоку идентификации 440 на фиг.4. Модуль генерации сигнатуры 525 включает пятое множество исполняемых команд процессора, которое выполняются процессором 510 так, как показано на. фиг.7. Модуль генерации сигнатуры 525 выполняет функции, подобные тем, что выполняет блок генерации сигнатуры 450 на фиг.4. Модуль проверки 526 включает шестое множество исполняемых команд процессора, которые выполняются процессором 510 так, как показано на фиг.7. Модуль проверки 526 выполняет функции, подобные тем, что выполняет блок проверки 460 на фиг. 4. Модуль назначения прав 527 включает седьмое множество исполняемых команд процессора, которые выполняются процессором 510 так, как показано на фиг.7. Модуль назначения прав 527 функционирует аналогично блоку назначения прав 470 на фиг. 4.
Фиг. 6 - блок-схема, иллюстрирующая способ кодирования исполняемой программы, которая должна быть выполнена компьютерной системой. Сначала получают исполняемую программу, как показано в блоке 601. Затем получают составной ключ, определяющий связанные права, которые будут присвоены исполняемой программе, как показано в блоке 602. Выполняют ключевой криптографический хэш-алгоритм для исполняемой программы. Используемый составной ключ может быть или индивидуальными симметричными ключами или общими асимметричными ключами. Это приводит к получению зашифрованного ключевого хэшированного значения которое, служит в качестве сигнатуры для исполняемой программы. Это показано в блоке 603.
Затем зашифровывают исполняемую программу, используя зашифрованное ключевое хэшированное значение в качестве ключа. В результате этого получают исполняемый модуль. Это показано в блоке 604. После того, как исполняемая программа зашифрована в исполняемый модуль, посылают исполняемый модуль и сигнатурный компонент в компьютерную систему на обработку и выполнение. Это показано в блоке 605.
Фиг. 7 - блок-схема, иллюстрирующая способ управления доступом в компьютерной системе. Сначала получают блок данных, включающий в себя сигнатурный компонент и исполняемый модуль, как показано в блоке 701. Отделяют сигнатурный компонент от исполняемого модуля, как показано в блоке 702. Расшифровывают исполняемый модуль, используя сигнатурный компонент в качестве ключа. Это приводит к получению дешифрованной исполняемой программы, что показано в блоке 703.
Затем определяют идентификационную метку в дешифрированной исполняемой программе, как показано в блоке 704. Идентифицируют составной ключ, связанный с идентификационной меткой, как показано в блоке 705. Вычисляют ключевое криптографическое хэш-значение для дешифрированной исполняемой программы, используя составной ключ, связанный с идентификационной меткой, как показано в блоке 706. Затем проверяют источник блока данных и был ли идентифицирован блок, сравнивая сигнатурный компонент в блоке данных с вычисленным ключевым криптографическим хэш-значением для дешифрированной исполняемой программы. Это показано в блоке 707. Если сигнатурный компонент в блоке данных не соответствует вычисленному ключевому криптографическому хэш-значению, то дешифрированную исполняемую программу не выполняют, что показано в блоке 708. Если сигнатурный компонент в блоке данных соответствует вычисленному ключевому криптографическому хэш-значению, то присваивают соответствующие права дешифрированной исполняемой программе, как определено составным ключом. Это показано в блоке 709. Наконец, выполняют дешифрированную исполняемую программу, как показано в блоке 710.
В предшествующем описании изобретения приведены ссылки на конкретные варианты его осуществления. Очевидно, однако, что могут быть сделаны различные модификации и изменения изобретения без изменения сущности и объема изобретения, определяемого формулой изобретения, которая прилагается.
Соответственно описания и чертежи носят скорее иллюстративный, чем ограничительный характер.
Специалистам в данной области техники при рассмотрении предшествующего описания должны быть очевидны различные изменения и модификации настоящего изобретения, поэтому конкретные варианты осуществления, показанные в описании, никоим образом не предназначены для ограничения. Следовательно, ссылки на подробности специфических вариантов осуществления не предназначены для ограничения объема формулы изобретения, которая содержит только существенные признаки изобретения.

Claims (12)

1. Способ формирования закодированного исполняемого модуля, включающий выполнение криптографической ключевой хэш-функции для исполняемой программы для генерирования сигнатурного компонента с использованием первого ключа, имеющего связанный набор прав доступа, присваиваемых исполняемой программе, и выполнение алгоритма шифрования для исполняемой программы с использованием сигнатурного компонента в качестве второго ключа.
2. Способ по п.1, отличающийся тем, что при выполнении криптографической ключевой хэш-функции осуществляют выполнение алгоритма формирования цепочки шифрованных блоков стандарта шифрования данных.
3. Способ управления доступом, включающий отделение сигнатурного компонента от исполняемого модуля в блоке данных, дешифрирование исполняемого модуля в исполняемую программу с использованием сигнатурного компонента, вычисление криптографического ключевого хэш-значения исполняемой программы с использованием ключа и проверку источника блока данных путем сравнения сигнатурного компонента с криптографическим ключевым хэш-значением.
4. Способ по п.3, отличающийся тем, что включает нахождение идентификационной метки в исполняемой программе и поиск ключа, соответствующего идентификационной метке, для выполнения криптографический ключевой хэш-функции для исполняемой программы.
5. Способ по п. 3, отличающийся тем, что включает назначение прав исполняемой программе в соответствии с правами, связанными с ключом.
6. Блок для кодирования исполняемой программы, содержащий блок генерации сигнатуры для выполнения криптографической ключевой хэш-функции для исполняемой программы для генерирования сигнатурного компонента с использованием первого ключа, имеющего связанный набор прав доступа, присваиваемых исполняемой программе, и первый блок шифрования, связанный с блоком генерации сигнатуры, для шифрования исполняемой программы с использованием сигнатурного компонента в качестве второго ключа.
7. Блок для кодирования исполняемой программ по п.6, отличающийся тем, что блок генерации сигнатуры дополнительно включает блок вычисления и второй блок шифрования, который выполняет алгоритм формирования цепочки зашифрованных блоков стандарта шифрования данных.
8. Блок управления доступом, включающий блок разделения для отделения сигнатурного компонента, полученного в результате выполнения ключевой хэш-функции для исполняемой программ, от зашифрованного исполняемого модуля в блоке данных, блок дешифрирования, связанный с блоком разделения, для дешифрирования зашифрованного исполняемого модуля с преобразованием его в дешифрированную исполняемую программу с сигнатурным компонентом, блок генерации сигнатуры, соединенный с блоком дешифрирования, для вычисления криптографического ключевого хэш-значения для дешифрированной исполняемой программы с использованием ключа, и блок проверки, соединенный с блоком генерации сигнатуры, для сравнения криптографического ключевого хэш-значения с сигнатурным компонентом.
9. Блок управления доступом по п.8, отличающийся тем, что блок генерации сигнатуры дополнительно содержит компонент для хранения ключа, предназначенный для хранения ключа, используемого блоком генерации сигнатуры.
10. Блок управления доступом по п.8, отличающийся тем, что дополнительно содержит блок идентификации, соединенный с блоком дешифрирования, предназначенный для идентификации ключа, указывающего на идентификационную метку в исполняемой программе, для вычисления криптографического хэш-значения для дешифрированной исполняемой программы.
11. Блок управления доступом по п.8, отличающийся тем, что содержит блок назначения прав, связанный с блоком генерации сигнатуры, для присвоения права дешифрированной исполняемой программе в соответствии с правами, связанными с ключом.
12. Компьютерная система, содержащая шину, память, соединенную с шиной, блок разделения, предназначенный для отделения сигнатурного компонента от зашифрованного исполняемого модуля в блоке данных, блок дешифрирования, связанный с блоком разделения, для дешифрирования зашифрованного исполняемого модуля с преобразованием его в исполняемую программу с сигнатурным компонентом, блок генерации сигнатуры, связанный с блоком дешифрирования, для вычисления криптографического ключевого хэш-значения для исполняемой программы с использованием ключа, и блок проверки, связанный с блоком генерации сигнатуры, предназначенный для сравнения криптографического ключевого хэш-значения с сигнатурным компонентом.
RU98105209A 1995-08-25 1996-07-19 Управление доступом с использованием параметризированной хэш-функции RU2142674C1 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/519,307 1995-08-25
US08/519,307 US5757915A (en) 1995-08-25 1995-08-25 Parameterized hash functions for access control
PCT/US1996/011925 WO1997007657A2 (en) 1995-08-25 1996-07-19 Parameterized hash functions for access control

Publications (1)

Publication Number Publication Date
RU2142674C1 true RU2142674C1 (ru) 1999-12-10

Family

ID=24067740

Family Applications (1)

Application Number Title Priority Date Filing Date
RU98105209A RU2142674C1 (ru) 1995-08-25 1996-07-19 Управление доступом с использованием параметризированной хэш-функции

Country Status (11)

Country Link
US (2) US5757915A (ru)
EP (1) EP0860064B1 (ru)
JP (1) JP4087442B2 (ru)
CN (1) CN1124719C (ru)
AU (1) AU6501196A (ru)
BR (1) BR9610127A (ru)
DE (1) DE69635209T2 (ru)
HK (1) HK1015987A1 (ru)
IL (1) IL123198A (ru)
RU (1) RU2142674C1 (ru)
WO (1) WO1997007657A2 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006022566A1 (fr) * 2004-07-26 2006-03-02 Stochasto Asa Procede de protection de systemes informatiques contre des virus chiffres et polymorphes
RU2533061C1 (ru) * 2013-06-26 2014-11-20 Закрытое акционерное общество "Научно-производственное предприятие "Информационные технологии в бизнесе" Система контроля доступа к шифруемым создаваемым файлам

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
EP2270687A2 (en) * 1995-04-11 2011-01-05 Kinetech, Inc. Identifying data in a data processing system
KR100250803B1 (ko) * 1995-09-05 2000-04-01 다니구찌 이찌로오 데이타 변환장치 및 데이타 변환방법
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
JP3747520B2 (ja) * 1996-01-30 2006-02-22 富士ゼロックス株式会社 情報処理装置及び情報処理方法
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
AU2003203649B2 (en) * 1996-08-12 2006-03-02 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
AU2004240210B2 (en) * 1996-08-12 2008-03-06 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
JP3570114B2 (ja) * 1996-10-21 2004-09-29 富士ゼロックス株式会社 データ検証方法およびデータ検証システム
US6253323B1 (en) 1996-11-01 2001-06-26 Intel Corporation Object-based digital signatures
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US6021491A (en) * 1996-11-27 2000-02-01 Sun Microsystems, Inc. Digital signatures for data streams and data archives
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
JP3781874B2 (ja) * 1997-09-05 2006-05-31 富士通株式会社 画像指示による電子情報管理装置、秘密鍵管理装置及び方法、並びに、秘密鍵管理プログラムを記録した記録媒体
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US7110984B1 (en) * 1998-08-13 2006-09-19 International Business Machines Corporation Updating usage conditions in lieu of download digital rights management protected content
WO2000011551A1 (de) * 1998-08-19 2000-03-02 Siemens Aktiengesellschaft Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess
US6320964B1 (en) 1998-08-26 2001-11-20 Intel Corporation Cryptographic accelerator
DE19847943A1 (de) * 1998-10-09 2000-04-13 Deutsche Telekom Ag Verfahren zum Generieren von digitalen Wasserzeichen für elekronische Dokumente
US6802006B1 (en) * 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6567917B1 (en) * 1999-02-01 2003-05-20 Cisco Technology, Inc. Method and system for providing tamper-resistant executable software
JP4238410B2 (ja) * 1999-04-09 2009-03-18 ソニー株式会社 情報処理システム
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
EP1055990A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
EP1056010A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
FI110565B (fi) * 1999-06-08 2003-02-14 Nokia Corp Menetelmä ja järjestelmä puhelinkeskusjärjestelmässä
US6560599B1 (en) * 1999-06-30 2003-05-06 Microsoft Corporation Method and apparatus for marking a hash table and using the marking for determining the distribution of records and for tuning
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
JP2001066986A (ja) * 1999-08-26 2001-03-16 Sony Corp 送信装置および方法、受信装置および方法、通信システム、並びにプログラム格納媒体
US6976165B1 (en) * 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
US6868405B1 (en) * 1999-11-29 2005-03-15 Microsoft Corporation Copy detection for digitally-formatted works
EP1256042B1 (en) * 2000-02-17 2005-07-20 General Instrument Corporation Method and system for secure downloading of software
KR100430147B1 (ko) * 2000-03-15 2004-05-03 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 액세스 제어
US6760441B1 (en) * 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US20010042204A1 (en) * 2000-05-11 2001-11-15 David Blaker Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database
US7117371B1 (en) * 2000-06-28 2006-10-03 Microsoft Corporation Shared names
JP2002016596A (ja) * 2000-06-29 2002-01-18 Oki Electric Ind Co Ltd 画像伝送装置及び画像受信装置
US6952477B1 (en) * 2000-07-03 2005-10-04 International Business Machines Corporation Fault intolerant cipher chaining
US7096493B1 (en) * 2000-12-21 2006-08-22 Gary G. Liu Internet file safety information center
US6738932B1 (en) * 2000-12-22 2004-05-18 Sun Microsystems, Inc. Method and system for identifying software revisions from memory images
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
EP1223696A3 (en) * 2001-01-12 2003-12-17 Matsushita Electric Industrial Co., Ltd. System for transmitting digital audio data according to the MOST method
US20020112163A1 (en) * 2001-02-13 2002-08-15 Mark Ireton Ensuring legitimacy of digital media
GB2372595A (en) 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
GB2372594B (en) * 2001-02-23 2004-10-06 Hewlett Packard Co Trusted computing environment
GB2372591A (en) * 2001-02-23 2002-08-28 Hewlett Packard Co Method of investigating transactions in a data processing environment
GB2372592B (en) * 2001-02-23 2005-03-30 Hewlett Packard Co Information system
IL142487A0 (en) * 2001-04-05 2003-09-17 Hexalock Ltd Method and system for protecting data
WO2002084590A1 (en) * 2001-04-11 2002-10-24 Applied Minds, Inc. Knowledge web
US7136840B2 (en) 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7424747B2 (en) * 2001-04-24 2008-09-09 Microsoft Corporation Method and system for detecting pirated content
EP1393170A4 (en) * 2001-04-27 2008-07-30 Quinn Inc W FILTER DRIVER FOR DISK FILE IDENTIFICATION, BY CONTENT ANALYSIS
WO2002093502A1 (en) * 2001-05-17 2002-11-21 Nokia Corporation Remotely granting access to a smart environment
US20030105961A1 (en) * 2001-11-30 2003-06-05 Peter Zatloukal Avoiding attachment of an ineligible smart interchangeable cover to an electronic device
US7246235B2 (en) * 2001-06-28 2007-07-17 Intel Corporation Time varying presentation of items based on a key hash
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7036020B2 (en) * 2001-07-25 2006-04-25 Antique Books, Inc Methods and systems for promoting security in a computer system employing attached storage devices
US7925894B2 (en) * 2001-07-25 2011-04-12 Seagate Technology Llc System and method for delivering versatile security, digital rights management, and privacy services
GB2378013A (en) * 2001-07-27 2003-01-29 Hewlett Packard Co Trusted computer platform audit system
US8117450B2 (en) * 2001-10-11 2012-02-14 Hewlett-Packard Development Company, L.P. System and method for secure data transmission
KR20030075018A (ko) * 2002-03-15 2003-09-22 주식회사 셈틀로미디어 변조 방지용 소프트웨어 파일 생성 장치와 그 소프트웨어파일의 자가 무결성 검증 방법 및 클라이언트-서버환경에서의 소프트웨어 파일의 자가 무결성 검증 방법
US20030196094A1 (en) * 2002-04-10 2003-10-16 Hillis W. Daniel Method and apparatus for authenticating the content of a distributed database
US8069175B2 (en) * 2002-04-10 2011-11-29 Google Inc. Delegating authority to evaluate content
US20030195834A1 (en) * 2002-04-10 2003-10-16 Hillis W. Daniel Automated online purchasing system
US7844610B2 (en) 2003-12-12 2010-11-30 Google Inc. Delegated authority evaluation system
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6851056B2 (en) * 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US7089419B2 (en) 2002-04-18 2006-08-08 International Business Machines Corporation Control function with multiple security states for facilitating secure operation of an integrated system
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US20030217275A1 (en) * 2002-05-06 2003-11-20 Bentley Systems, Inc. Method and system for digital rights management and digital signatures
JP2004013608A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd プログラムの実行および転送の制御
US7243231B2 (en) 2002-07-31 2007-07-10 Intel Corporation Sensory verification of shared data
US7444522B1 (en) * 2002-09-18 2008-10-28 Open Invention Network, Llc Dynamic negotiation of security arrangements between web services
US8012025B2 (en) * 2002-12-13 2011-09-06 Applied Minds, Llc Video game controller hub with control input reduction and combination schemes
US7765206B2 (en) 2002-12-13 2010-07-27 Metaweb Technologies, Inc. Meta-Web
EP1489517B1 (fr) * 2003-04-03 2006-09-06 STMicroelectronics S.A. Protection d'un programme en attente d'exécution dans une mémoire utilisée par un microprocesseur
US7353397B1 (en) 2003-04-30 2008-04-01 Adobe Systems Incorporated Repurposing digitally signed information
CA2776354A1 (en) * 2003-06-05 2005-02-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US7272228B2 (en) * 2003-06-12 2007-09-18 International Business Machines Corporation System and method for securing code and ensuring proper execution using state-based encryption
US20050033700A1 (en) * 2003-08-04 2005-02-10 Vogler Dean H. Method and apparatus for creating and rendering an advertisement
US8661559B2 (en) * 2003-08-18 2014-02-25 Riverside Research Institute Software control flow watermarking
US20050055312A1 (en) * 2003-08-18 2005-03-10 Wilson Kelce Steven Software control flow watermarking
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
US7516331B2 (en) * 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
US20050131918A1 (en) * 2003-12-12 2005-06-16 W. Daniel Hillis Personalized profile for evaluating content
JP2005346182A (ja) * 2004-05-31 2005-12-15 Fujitsu Ltd 情報処理装置、耐タンパ方法、耐タンパプログラム
US7461268B2 (en) * 2004-07-15 2008-12-02 International Business Machines Corporation E-fuses for storing security version data
US7712135B2 (en) * 2004-08-05 2010-05-04 Savant Protection, Inc. Pre-emptive anti-virus protection of computing systems
US9313214B2 (en) * 2004-08-06 2016-04-12 Google Technology Holdings LLC Enhanced security using service provider authentication
EP2194476B1 (en) 2005-03-22 2014-12-03 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a record of a software-verification attestation
US20060236122A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
US8521752B2 (en) * 2005-06-03 2013-08-27 Osr Open Systems Resources, Inc. Systems and methods for arbitrary data transformations
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
JP4901164B2 (ja) * 2005-09-14 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US8135958B2 (en) * 2005-11-22 2012-03-13 International Business Machines Corporation Method, system, and apparatus for dynamically validating a data encryption operation
US20070180210A1 (en) * 2006-01-31 2007-08-02 Seagate Technology Llc Storage device for providing flexible protected access for security applications
JP5190800B2 (ja) * 2006-02-21 2013-04-24 日本電気株式会社 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US8429724B2 (en) 2006-04-25 2013-04-23 Seagate Technology Llc Versatile access control system
US8028166B2 (en) * 2006-04-25 2011-09-27 Seagate Technology Llc Versatile secure and non-secure messaging
US7539890B2 (en) * 2006-04-25 2009-05-26 Seagate Technology Llc Hybrid computer security clock
US8099629B2 (en) * 2006-07-14 2012-01-17 Marvell World Trade Ltd. System-on-a-chip (SoC) test interface security
US7512748B1 (en) 2006-08-17 2009-03-31 Osr Open Systems Resources, Inc. Managing lock rankings
US8539228B1 (en) * 2006-08-24 2013-09-17 Osr Open Systems Resources, Inc. Managing access to a resource
EP2082523B1 (en) * 2006-11-13 2014-03-19 Certicom Corp. Compressed ecdsa signatures
US8024433B2 (en) * 2007-04-24 2011-09-20 Osr Open Systems Resources, Inc. Managing application resources
US8386608B1 (en) * 2007-08-03 2013-02-26 Alex Rankov Service scripting framework
US7949693B1 (en) 2007-08-23 2011-05-24 Osr Open Systems Resources, Inc. Log-structured host data storage
US20090064134A1 (en) * 2007-08-30 2009-03-05 Citrix Systems,Inc. Systems and methods for creating and executing files
US8667597B2 (en) * 2008-06-25 2014-03-04 Lockheed Martin Corporation Systems, methods, and products for secure code execution
JP2010191665A (ja) * 2009-02-18 2010-09-02 Sony Corp 情報処理装置、情報処理方法、およびプログラム、並びに記録媒体
EP2486509B1 (en) * 2009-10-09 2022-11-02 Nokia Technologies Oy Platform security
EP2438511B1 (en) 2010-03-22 2019-07-03 LRDC Systems, LLC A method of identifying and protecting the integrity of a set of source data
US9772834B2 (en) * 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
US8903874B2 (en) 2011-11-03 2014-12-02 Osr Open Systems Resources, Inc. File system directory attribute correction
US8918881B2 (en) 2012-02-24 2014-12-23 Appthority, Inc. Off-device anti-malware protection for mobile devices
US8713684B2 (en) 2012-02-24 2014-04-29 Appthority, Inc. Quantifying the risks of applications for mobile devices
US10402393B2 (en) * 2012-03-02 2019-09-03 Pure Storage, Inc. Slice migration in a dispersed storage network
US11232093B2 (en) 2012-03-02 2022-01-25 Pure Storage, Inc. Slice migration in a dispersed storage network
FR2992083B1 (fr) * 2012-06-19 2014-07-04 Alstom Transport Sa Calculateur, ensemble de communication comportant un tel calculateur, systeme de gestion ferroviaire comportant un tel ensemble, et procede de fiabilisation de donnees dans un calculateur
US8819772B2 (en) * 2012-06-25 2014-08-26 Appthority, Inc. In-line filtering of insecure or unwanted mobile device software components or communications
US8856519B2 (en) 2012-06-30 2014-10-07 International Business Machines Corporation Start method for application cryptographic keystores
US9106411B2 (en) 2012-09-30 2015-08-11 Apple Inc. Secure escrow service
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US20150039872A1 (en) * 2013-08-05 2015-02-05 Caterpillar Inc. Multiple Signed Filesystem Application Packages
US9830329B2 (en) 2014-01-15 2017-11-28 W. Anthony Mason Methods and systems for data storage
US10491398B2 (en) 2014-09-12 2019-11-26 Salesforce.Com, Inc. Facilitating dynamic end-to-end integrity for data repositories in an on-demand services environment
US9904629B2 (en) 2015-05-31 2018-02-27 Apple Inc. Backup system with multiple recovery keys
CN108416224B (zh) * 2018-02-13 2019-10-15 北京梆梆安全科技有限公司 一种数据加解密方法及装置
US11055426B2 (en) * 2018-07-16 2021-07-06 Faro Technologies, Inc. Securing data acquired by coordinate measurement devices
US11108545B2 (en) * 2019-05-31 2021-08-31 Advanced New Technologies Co., Ltd. Creating a blockchain account and verifying blockchain transactions

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4715034A (en) * 1985-03-04 1987-12-22 John Fluke Mfg. Co., Inc. Method of and system for fast functional testing of random access memories
FR2596177B1 (fr) * 1986-03-19 1992-01-17 Infoscript Procede et dispositif de sauvegarde qualitative de donnees numerisees
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US5052040A (en) * 1990-05-25 1991-09-24 Micronyx, Inc. Multiple user stored data cryptographic labeling system and method
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5412718A (en) * 1993-09-13 1995-05-02 Institute Of Systems Science Method for utilizing medium nonuniformities to minimize unauthorized duplication of digital information
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5530757A (en) * 1994-06-28 1996-06-25 International Business Machines Corporation Distributed fingerprints for information integrity verification

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006022566A1 (fr) * 2004-07-26 2006-03-02 Stochasto Asa Procede de protection de systemes informatiques contre des virus chiffres et polymorphes
RU2533061C1 (ru) * 2013-06-26 2014-11-20 Закрытое акционерное общество "Научно-производственное предприятие "Информационные технологии в бизнесе" Система контроля доступа к шифруемым создаваемым файлам

Also Published As

Publication number Publication date
EP0860064A2 (en) 1998-08-26
US5757915A (en) 1998-05-26
HK1015987A1 (en) 1999-10-22
JPH11511576A (ja) 1999-10-05
DE69635209T2 (de) 2006-06-22
BR9610127A (pt) 1999-10-26
WO1997007657A3 (en) 1997-04-17
CN1124719C (zh) 2003-10-15
IL123198A0 (en) 1998-09-24
EP0860064A4 (en) 1999-10-06
JP4087442B2 (ja) 2008-05-21
DE69635209D1 (de) 2006-02-02
US5940513A (en) 1999-08-17
WO1997007657A2 (en) 1997-03-06
EP0860064B1 (en) 2005-09-21
CN1194072A (zh) 1998-09-23
AU6501196A (en) 1997-03-19
IL123198A (en) 2001-06-14

Similar Documents

Publication Publication Date Title
RU2142674C1 (ru) Управление доступом с использованием параметризированной хэш-функции
EP1695169B1 (en) Method and apparatus for incremental code signing
KR101798672B1 (ko) 코드 불변식을 이용한 스테가노그래픽 메시징 시스템
KR101702545B1 (ko) 데이터 인증방법 및 그 장치
US11281769B2 (en) Software integrity verification
CN110825672B (zh) 用于联机加密处理的高性能自主硬件引擎
US20110202996A1 (en) Method and apparatus for verifying the integrity of software code during execution and apparatus for generating such software code
CN115104096A (zh) 使用硬件安全区域保护商业现成程序二进制文件免受盗版
KR20050056204A (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
CN110245466B (zh) 软件完整性保护和验证方法、系统、设备及存储介质
CN112115491A (zh) 一种对称加密密钥保护方法、装置、设备及存储介质
US7464406B2 (en) System and method for user determination of secure software
KR102017379B1 (ko) 이미지 벡터 처리를 이용한 해시 암호화 방법 및 장치
KR101999209B1 (ko) 가상 함수 테이블 포인터 암호화 시스템 및 그 방법
CN116781265A (zh) 一种数据加密的方法和装置
KR20020071274A (ko) Pc기반의 암호칩 및 플래시 메모리를 이용한 유.에스.비보안보조기억장치
CN114520740B (zh) 一种加密方法、装置、设备及存储介质
CN116451185A (zh) 一种应用程序的保护方法及装置
CryptoCore Security Policy

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20100720