Микропроцессорная схема для носителя данных и способ для обеспечения доступа к данным, загруженным в память

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

 

Настоящее изобретение относится к микропроцессорной схеме, а также к способу обеспечения доступа к загруженным в память данным или программам.

Микропроцессорные схемы вышеуказанного вида находят преимущественное применение в так называемых чип-картах (картах с микросхемами), т.е. картах, удостоверяющих личность, кредитных картах, расчетных картах и других подобным им картах, которые оснащены интегральной схемой. Микропроцессорные схемы также применяются в так называемых модулях платежного оборота, которые осуществляют информационный обмен с вышеназванными картами через соответствующие интерфейсы. В общем случае микропроцессорные схемы могут использоваться в персональных оконечных устройствах, таких как мобильные телефоны, персональные компьютеры или персональные электронные помощники, которые пригодны для применения в платежном обороте.

Одним из существенных преимуществ подобных карт для из владельцев является возможность разнообразного их применения. Содержащийся в интегральной схеме микропроцессор и относящееся к нему средство памяти обеспечивают возможность разнообразной обработки данных, осуществляемой на самой карте.

Изготовитель карты может оснастить микропроцессор постоянно находящейся в нем операционной системой, которая берет на себя выполнение основополагающих функций, например, процедур сравнения введенного внешним образом кода с сохраненным кодом и других подобных процедур. Относящиеся к микропроцессору блоки памяти служат, помимо хранения операционной системы, также для хранения определенных прикладных программ (приложений), которые могут состоять из многих функций, а также параметров, которые, например, необходимы для проверки защищенности, и на всякий случай должны сохраняться в секрете.

Разностороннее применение карт обеспечивается, когда исходят из операционной системы с соответствующими программами, определяют некоторые интерфейсы и резервируют память или область памяти для посторонней программы. Изготовитель карты предоставляет тогда пользователю, т.е. организации, выдающей карты, память или соответственно область памяти для программирования своих посторонних программ. В этой посторонней программе организация может тогда установить конкретные операции, которые независимы от операционной системы и которые касаются только этой конкретной организации.

Возможный сценарий мог бы состоять в том, что не только одна единственная организация загружает свою постороннюю программу на подготовленную чип-карту, но и несколько различных организаций сохраняют на чип-карте свои соответствующие программы. В этом случае необходимо обеспечить то, чтобы релевантные с точки зрения защищенности данные, которые являются составной частью операционной системы или отдельных посторонних программ, защищались от несанкционированного доступа.

Возможен вариант, когда посторонняя программа вызывает программную часть, также называемую библиотекой программ, другой посторонней программы. На основе обычной организации памяти все части программ могут находиться в так называемой одинаковой логической адресной зоне. В адресном пространстве области памяти находятся как коды, так и данные посторонней программы. Сам код может вновь состоять из множества частей программ, библиотек или функций. Если, например, посторонняя программа А, называемая также приложением, вызывает попеременно библиотеку программ В посторонней программы В, а также библиотеку программ С другой посторонней программы С в одном и том же логическом адресном пространстве, то защитный механизм без особого труда может разрушить библиотеку программ В процессом записи данных библиотеки программ С или процессом считывания разведать секретные данные библиотеки программ С. Библиотека программ С была бы в этом случае непригодна для дальнейшего применения и в других посторонних программах, вследствие чего значимость библиотеки программ С была бы уничтожена.

Для решения этой проблемы известно разделение частей программ, т.е. библиотек программ друг от друга в памяти с использованием аппаратных механизмов и обеспечение возможности доступа к данным между библиотеками программ только через операционную систему. Обеспеченная тем самым защита достигается за счет высоких затрат программирования, а также требующих высоких затрат аппаратных средств. К тому же эффективность снижается по сравнению с прямым информационным обменом между библиотеками программ. Высокая защищенность достигается ценой снижения эффективности.

Из ЕР 0512542В1 известна микропроцессорная схема для предотвращения возможности доступа к загруженным в память данным или программам, которая имеет по меньшей мере микропроцессор, память для операционной системы и по меньшей мере память для свободного программирования с индивидуальными посторонними программами. При этом предусматривается множество свободно программируемых областей памяти, адресные пространства которых одинаковы вплоть до по меньшей мере самого старшего разряда. Микропроцессорная схема имеет, кроме того, средства, которые загружают в первый вспомогательный регистр соответствующие самые старшие соотнесенные с областью памяти разряды перед адресацией области памяти, и загружают во второй вспомогательный регистр соответственно самые старшие разряды адресованной области памяти, и затем осуществляют сравнение первых и вторых вспомогательных регистров. При изменении содержания вспомогательных регистров вырабатывается сигнал блокирования, чтобы тем самым установить, не выполняется ли посторонняя программа, которая получает доступ к неразрешенному адресу.

Недостатком этого способа является то, что принципиально пресекается доступ к другой посторонней программе. Невозможно двустороннее использование определенных частей другой посторонней программы. Тем самым в определенных случаях многие посторонние программы должны содержать идентичные части программы с одинаковой функциональностью. В случае портативных носителей данных, которые, как правило, имеют только ограниченную область памяти, это является существенным недостатком.

В основе изобретения лежит задача создания устройства и способа, которые обеспечивают простыми средствами доступ к посторонним программам.

Эта задача решается в соответствии с изобретением признаками, указанными в пунктах 1 и 14 соответственно.

В соответствии с изобретением эта задача решается тем, что с каждым адресным пространством области памяти соотнесена по меньшей мере одна битовая последовательность, содержащая права доступа. Иначе говоря, это означает, что каждое логическое адресное пространство подразделено по меньшей мере на один адресный блок, которому соответствует битовая последовательность, содержащая права доступа.

Тем самым изобретение предусматривает аппаратный защитный механизм, который обеспечивает возможность прямого информационного обмена между частями различных посторонних программ, которые находятся в одном и том же логическом адресном пространстве. При этом, однако, нет необходимости ни в каком контроле посредством операционной системы.

В предпочтительном варианте осуществления изобретения с каждым адресом адресного пространства соотнесена битовая последовательность, содержащая права доступа. Иными словами, это означает, что как кодовой последовательности, так и слову данных соответствует битовая последовательность, содержащая права доступа. Тем самым можно определенным областям данных селективно присваивать желательное право.

Предпочтительным образом, битовые последовательности, содержащие права доступа, вместе с адресами или блоками адресов и идентификаторами программ, сохраняются в таблице, сохраненной в памяти. Блок адресов может при этом характеризоваться своим началом адресов и концом адресов и длиной блока адресов. Альтернативным образом, также возможно охарактеризовать адресный блок нижним и верхним адресами. Каждому адресному блоку может тогда соответствовать битовая последовательность, содержащая права доступа. Если блок адресов содержит только единственный адрес, каждой отдельной команде или каждому отдельному адресу может соответствовать одна битовая последовательность, содержащая права доступа.

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

Содержащая права доступа битовая последовательность содержит первое и второе право доступа, причем первое право доступа регулирует доступ между двумя областями памяти, а второе право доступа регулирует доступ внутри области памяти.

В предположении, что в различные области памяти загружены различные посторонние программы, можно тем самым очень селективно регулировать доступ к частям посторонней программы. Тем самым можно отказывать в доступе или обеспечивать возможность доступа. Собственно доступ может предусматривать право на считывание или право на запись, если речь идет о данных, которые использует посторонняя программа. При попытках вызова кода посторонней программы из другой посторонней программы и в этом случае может существовать регулирование права доступа.

В предпочтительном варианте осуществления третье право доступа (к данным) в битовой последовательности регулирует доступ внутри области памяти, т.е. внутри единственной программы. Это связано с вторым правом доступа собственной программы. В частности, в этом случае критичные данные, например данные и переменные инициализации, можно защитить от доступа для считывания или записи определенных частей программы внутри собственной программы, если второе право доступа исполняемого кода в собственной программе не установлено. Другие области данных, которые содержат только те данные, которые возникают во время исполнения, могут, однако записываться или считываться, например, другими частями программы.

В другом предпочтительном варианте осуществления предусмотрена промежуточная память прав, которая содержит дополнительные права доступа, относящиеся к двум областям памяти, причем права доступа могут считываться и записываться посредством операционной системы. Предпочтительным образом, промежуточная память содержит разрешенные назначения, т.е. разрешенные права, относящиеся к двум различным областям памяти. Этот вариант осуществления предусматривает введение таблицы доступа, которая может быть реализована в форме кэша. Назначения в таблице реализуются либо посредством идентификаторов программ, либо посредством таблицы перекодировки, с помощью которой могут определяться соответствующие идентификаторы.

Приложение А, которое состоит из множества частей программ, может тем самым предоставить больше прав доступа части В программы, чем, например, части С программы. Промежуточная память или соответственно таблица, сохраненная в промежуточной памяти, содержит для этого, например, два столбца и число строк, соответствующее сложности или частям программ. В строке в первом столбце предусмотрена метка части программы, к которой осуществляется доступ, а во втором столбце - метка для части программы, которой должен разрешаться доступ. В простейшей реализации эти метки идентичны идентификаторам программ. В альтернативном варианте, однако, также может быть предусмотрена таблица перекодировки, с помощью которой можно определять идентификаторы программ из других записей таблицы.

Реализованная в промежуточной памяти прав таблица доступа может быть реализована различным образом. В случае таблицы с двумя столбцами каждая комбинация из различных частей программ может встречаться максимально однократно. В альтернативном варианте, таблица может состоять из некоторого числа столбцов, соответствующих числу частей программ. Разрешенные доступы определяются тогда посредством дополнительных столбцов в таблице.

В другом предпочтительном варианте осуществления предусмотрена область памяти, управляемая исключительно операционной системой. Эта область памяти, управляемая операционной системой, которая определяется как «контекстно безопасная область», служит для того, чтобы сохранять промежуточным образом критичные данные, которые никакой другой посторонней программой или частями программы не могут оттуда считываться или записываться. Управляемая исключительно операционной системой область памяти представляет собой, таким образом, стек, который применяется в особенности тем кодом, третье право доступа которого предоставляется только особым образом выбранным частям программ.

В другом варианте осуществления каждой области памяти должна соответствовать адресная область к промежуточной памяти данных; эта адресная область может управляться только программой, загруженной в соответствующую область памяти. Также эта промежуточная память (стек) служит для того, чтобы промежуточным образом сохранять особенно критичные данные, которые ни в коем случае не должны считываться другими посторонними программами.

Изложенное ниже описание способа дополнительно поясняет описанное выше выполнение микропроцессорной схемы.

Соответствующий изобретению способ обеспечения доступа к загруженным в память данным или программам с помощью по меньшей мере одного микропроцессора, памяти для операционной системы и по меньшей мере одной памяти для свободного программирования с использованием индивидуальных посторонних программ, причем в памяти для свободного программирования предусмотрено множество областей памяти с соответствующими адресными пространствами, каждому адресному пространству поставлена в соответствие метка (идентификатор (ИД) программы), и в каждой области памяти предусмотрена точно одна посторонняя программа, включающий следующие этапы:

а) определение первого ИД программы выполняемой в данный момент кодовой команды посторонней программы с помощью метки текущего адреса(РС),

b) определение второго ИД программы адресуемой области памяти,

с) сравнение первого и второго ИД программ,

d) выбор первого или второго права доступа в зависимости от результата сравнения на этапе (с),

е) оценка права доступа,

f1) продолжение выполнения программного кода, если доступ или соответственно кодовая команда на адресуемую область памяти разрешены,

f2) вызов подпрограммы обработки ошибок, если доступ или соответственно кодовая команда на адресуемую область памяти не разрешены.

С помощью меток (далее также называемых ИД программ), например, старшего разряда или разрядов может тем самым определяться, осуществляется или нет доступ к той же или другой области памяти и, тем самым, к другой посторонней программе. В зависимости от этой оценки, определяется и оценивается первое или второе право доступа. На основе этого способа можно определенные части программ (библиотеки программ) сделать доступными для использования другими посторонними программами.

В этом варианте осуществления соответствующего изобретению способа, при одинаковом первом и втором ИД программ, в зависимости от права доступа текущей выполняемой кодовой команды, выбирается второе или третье право доступа. Соотнесенные с кодовой командой права доступа указывают, может ли она получать доступ также к критичным областям программного кода. Если это имеет место, то адрес, соответствующий выбранному третьему праву доступа, далее оценивается и определяет, может ли осуществляться доступ для записи или только для считывания. Тем самым обеспечивается защита, которая предотвращает разрушение критичных данных библиотеками программ текущей выполняемой посторонней программы.

В другом предпочтительном варианте осуществления способа, соответствующего изобретению, после этапа (f2) выполняются следующие этапы:

g) проверка промежуточной памяти прав на наличие записи, представляющей разрешенный доступ области памяти с первым ИД программы (PIDPC) к области памяти, обозначенной вторым ИД программы (PIDAdr),

h) продолжение выполнения программного кода, если упомянутая запись имеется в промежуточной памяти прав,

i) вызов подпрограммы обработки ошибок, если упомянутой записи не имеется.

Этот предпочтительный вариант соответствующего изобретению способа обеспечивает возможность, посредством промежуточной памяти программ, предоставлять больше прав доступа, например, части В программы, чем части С программы.

Если часть А программы осуществляет доступ к части В программы, прежде всего проверяются первое, второе и третье права доступа. Если доступ разрешен, то он реализуется согласно соответствующим правам. Однако если доступ не разрешен, то затем проверяется содержание промежуточной памяти прав, имеется ли в ней запись для доступа части А программы к части В программы. В случае наличия такой записи, части А программы, например, предоставляется расширенное право доступа к части В программы. В случае, если подобная запись в промежуточной памяти прав отсутствует, то запускается подпрограмма обработки ошибок.

В предпочтительном варианте осуществления соответствующего изобретению способа кодовая команда этапа (а) представляет собой команду перехода, причем выполняются следующие этапы:

b) определение второго ИД программы адресуемой области памяти,

с) сравнение первого и второго ИД программы,

d) переход к вызываемому адресу,

е1) продолжение выполнения программного кода в адресуемой области памяти, если первый и второй ИД программы одинаковы,

е2) считывание адресованного содержания, если первый и второй ИД программы не одинаковы,

аа) вызов подпрограммы обработки ошибок, если считанное адресованное содержание не является командой входа,

bb) продолжение выполнения программного кода, если считанное адресованное содержание является командой входа.

За счет такого осуществления способа обеспечивается то, что переходы между библиотеками программ могут происходить только на заранее установленные адреса входа, которые определены посредством установленной команды входа. Благодаря этому невозможен неконтролируемый вход в любое место программного кода. Тем самым становится невозможной как разведка, так и разрушение данных.

В другом варианте осуществления способа адрес, по которому сохранена команда перехода, сохранен в промежуточной памяти.

В случае этой промежуточной памяти речь идет предпочтительным образом о памяти, управляемой исключительно операционной системой, т.е. вышеназванной «контекстно безопасной области».

Предпочтительным образом, команда входа представляет собой постоянно заданную битовую последовательность. С помощью нее можно различить, идет ли речь об адресе входа, или нет.

Кроме того, целесообразно, если для кодовых команд, которым соответствует первое право выполнения, обеспечена в качестве промежуточной памяти промежуточная память открытого доступа (стек). В случае этих кодовых команд речь идет о программном коде, который не получает или не может получать доступ к критичным данным программы.

С другой стороны, предпочтительным образом, кодовыми командами, которым соответствует второе право выполнения, применяется соотнесенная с соответствующей областью памяти промежуточная память, которая может управляться только программой, загруженной в соответствующую область памяти. Эта промежуточная память, которая обозначается как «стек критичных данных», служит для промежуточного хранения данных, которые ни в каком случае не могут считываться или перезаписываться другими библиотеками программ или посторонними программами.

Со ссылками на последующие чертежи изобретение поясняется ниже более подробно. На чертежах представлено:

Фиг. 1 - подразделение линейного адресного пространства с двумя программами А и В,

Фиг. 2 - первый пример осуществления таблицы, содержащей права доступа,

Фиг. 3 - второй пример осуществления таблицы, содержащей права доступа,

Фиг. 4 - принцип построения адресной области, причем каждому адресу соответствует битовая последовательность, содержащая права доступа,

Фиг. 5 - таблица с возможными правами доступа,

Фиг. 6 - соответствующий изобретению способ в форме блок схемы алгоритма программы и

Фиг. 7 - пример выполнения соответствующей изобретению микропроцессорной схемы.

Фиг. 1 поясняет на примере лежащую в основе изобретения проблему. В линейном адресном пространстве находятся две программы А и В. Исходят из того, что принадлежащие программе А части программы, например библиотеки программ с относящимися к ним не сохраняющими информацию при выключении питания и жестко заданными данными, имеют такие свойства, что они взаимными вызовами и взаимным управлением не приводят к саморазрушению. В представленном на фиг. 1 примере программа А содержит область, включающую в себя только командный код и обозначенную как код А. Она может содержать несколько независимых друг от друга функций А1, А2. Они могут осуществлять взаимные вызовы друг друга. Кроме того, программа А содержит, например, две области данных А1, А2, которые могут содержать не сохраняющие информацию при выключении питания и постоянные данные. Все находящиеся в программе А данные могут полностью управляться и контролироваться командным кодом или функциями.

Соответствующим образом построена программа В, причем на фиг. 1 для примера показана только область данных В. Также и находящиеся в программе В функции могут вызываться взаимным образом и управлять и контролировать данные, загруженные в область данных В.

В соответствии с изобретением программа А и программа В находятся в соответственно предварительно заданной области памяти, которая отличается либо самым старшим разрядом (разрядами), либо соответственно соотнесенным ИД программы (PID). Внутри этой области памяти, разумеется, нет необходимости, чтобы командные коды, а также данные располагались блоками в том виде, как показано на фиг. 1.

Изобретение обеспечивает, таким образом, возможность того, каким образом функция программы В может получить доступ к данным программы А. Например, на фиг.1 изображены два подобных доступа. Функция В1 обращается к области данных А2, в то время как функция В2 обращается к области данных А1. Программа А, которая предоставляет данные в распоряжение программы В, может согласно изобретению давать права доступа селективным образом к определенным областям других программ. Возможные права доступа изображены на фиг.5. Возможны права записи-считывания (W), только право считывания (R), а также отсутствие какого-либо права доступа, т.е. ни считывание, ни запись (-). Так называемые права выполнения xn, а также xs соотносятся с командным кодом и содержат информацию о том, разрешен или нет доступ текущей выполняемой команде к желательной области памяти.

Доступ к данным со стороны программы В к программе А может проверяться аппаратными средствами путем сравнения ИД программы (например, старшего разряда или разрядов) текущей выполняемой кодовой команды, и адреса, к которому осуществляется доступ.

В зависимости от сравнения ИД программ может устанавливаться, производится ли доступ к данным из функции внутри текущей выполняемой программы или из функции другой программы. В соответствии с изобретением тем самым каждой области данных (как кодовым командам, так и данным) соответствует битовая последовательность, содержащая права доступа.

Эта битовая последовательность может быть частью последовательности кодового слова, как показано на фиг. 4. Дополнительно к адресу и содержащемуся в нем значению, подобная последовательность кодового слова удлиняется на битовую последовательность прав доступа (ACR). Альтернативным образом, в памяти может быть предусмотрена таблица, которая определяет область памяти и соотнесенную с этой областью памяти битовую последовательность с правами доступа. Адресная область может при этом определяться посредством ее нижнего и верхнего адреса (фиг. 2) или, альтернативно, ее началом адреса и длиной блока адресов (фиг. 3).

Битовая последовательность, содержащая права доступа, включает в себя по меньшей мере два права доступа: первое право доступа, которое регулирует доступ между двумя программами, и второе право доступа, которое регулирует доступ внутри программы. Последовательность, в которой находятся права доступа в пределах битовой последовательности (ACR), может выбираться любым образом. Предпочтительным образом, битовая последовательность, содержащая права доступа, содержит дополнительное, третье право доступа, которая регулирует доступ внутри программы. В отличие от второго права доступа, тем самым маркируются адресные области, которые содержат критичные данные, например, данные инициализации. Для того чтобы кодовая команда могла считывать или записывать подобные данные, соответствующая кодовая команда требует особой маркировки.

Битовая последовательность, содержащая права доступа, показанная на фиг. 2, содержит первое, второе и третье права доступа, которые введены в названной последовательности справа налево в столбец ACR. Область данных А2, которая, например, содержит данные инициализации, может тем самым считываться из функции посторонней программы (первое право доступа: R), в то время как функции внутри текущей исполняемой программы пользуются даже правом записи. Это справедливо как для таких кодовых команд, которые маркированы обычным первым правом выполнения (xn), так и для таких, которые обладают правом на выполнение с использованием критических данных (xs) (второе право выполнения).

Из таблицы на фиг. 2, кроме того, следует, что область данных А1 может записываться функциями как внутри, так и извне текущей выполняемой программы А (первое, второе и третье права доступа: W).

Тем самым, посредством прав доступа, соотнесенных с отдельными областями данных линейного адресного пространства, можно простым способом обеспечивать доступ к данным или функциям других программ. Если желательный доступ из посторонней программы не разрешен, что может быть установлено с помощью прав доступа, то запускается подпрограмма обработки ошибок. Программист сам может таким путем защитить кодовые команды и выбранные данные программы от доступа для записи из другой программы.

Другой соответствующий изобретению защитный механизм касается контроля вызова функций из посторонней программы. Чтобы предотвратить неконтролируемый программный поток в программе и, тем самым, возможное разрушение путем перезаписи собственных данных, к функции внутри программы из другой программы можно перейти только по определенному адресу входа. Такие адреса входа маркируются посредством заданной битовой последовательности. В случае команды перехода проверяется указанный адрес на ожидаемую битовую последовательность. Если таковой не имеется, то запускается процедура обработки ошибок. Если ожидаемая битовая последовательность обнаружена, то вызываемая функция может выполняться.

Так как функции внутри программы могут вызываться с любого места, при каждом вызове функции необходимо сохранять адрес обратного перехода. Если при обработке кодовой команды функции обнаруживается команда обратного перехода, счетчик программы устанавливается на запомненный перед тем адрес обратного перехода. За счет манипулирования адресами обратного перехода поток программы мог бы внутри программы подвергаться нежелательным изменениям.

Для решения этой проблемы, в изобретении предлагается защищать адреса обратного перехода от доступа для записи из других программ тем, что адреса обратного перехода при вызове функции автоматически сохраняются в промежуточной памяти, к которой имеет доступ только операционная программа. При этом достаточно считывать в защищенную от записи промежуточную память только те адреса обратного перехода, для которых осуществляется вызов функции из другой программы. При вызовах функции внутри той же самой программы можно, в противоположность этому, применять обычную доступную промежуточную память. Однако при этом должно гарантироваться, что эти адреса обратного перехода не выведут из текущей выполняемой программы. В качестве еще одной альтернативы, адреса обратного перехода при вызове функции можно автоматически сохранять в промежуточном регистре, причем старое значение промежуточного регистра загружается в отдельный стек с адресами обратного перехода. Доступ к промежуточному регистру для вызываемой программы должен тогда ограничиваться так же, как доступ к промежуточному регистру, управляемому операционной системой.

Соответствующий изобретению способ поясняется со ссылками на фиг. 6. Команда из кэша инструкций загружается в центральный процессорный блок (ЦПБ), а ИД программы (PIDPC) заранее имеется во внутреннем регистре ЦПБ. На следующем этапе проверяется, является ли кодовая команда командой перехода. Если это так, то ИД программы определяет вызываемый адрес (PIDJ). При совпадении обоих ИД программ производится переход к вызываемому адресу, и программа продолжает выполняться. Одинаковые ИД программ означают, что выполняется переход внутри текущей действующей программы. При различных ИД программ происходит переход к вызываемому адресу, и находящееся в нем содержание считывается. Если в случае этого содержания адреса речь идет об ожидаемой команде входа, т.е. о жестко заданной битовой последовательности, то программный код продолжает выполняться. В противном случае вызывается подпрограмма обработки ошибок.

Если в случае такой кодовой команды речь идет не о команде перехода, а о команде с доступом к данным, то ИД программы вызываемого адреса выгружается из кэша данных в ЦПБ и определяется. Если ИД программ PIDPC и PIDAdr не совпадают, то речь идет о попытке доступа к данным посторонней программы. При этом определяется и оценивается первый бит доступа из адреса кэша данных или из соответствующей таблицы. Если доступ разрешен, например, попытка считывания данных, причем первое право доступа представляет собой R (считывание) или W (запись), то программный код продолжает выполняться. Если первый бит доступа в названном примере не соответствует ни праву на считывание, ни праву на запись, то вызывается программа обработки ошибок.

Вместо вызова программы обработки ошибок, на данном этапе можно выполнить дополнительную проверку прав. В таблице, сохраненной в промежуточной памяти прав, осуществляется проверка ее записей на наличие пары прав для вызываемой и вызывающей частей программ. Если это имеет место, то для части программы с ИД программы PIDPC, предоставляется, например, расширенный доступ к части программы с ИД программы PIDAdr. Тем самым возможно одной части программы предоставить больше прав доступа, чем другой части программы с равными правами доступа. Для критических прав доступа (третий бит доступа) существует описанное выше различие в правах в еще большей степени. Если в промежуточной памяти прав отсутствует запись с ИД программ PIDPC и PIDAdr, то запускается подпрограмма обработки ошибок.

Описанная вначале проверка прав доступа может производиться также параллельно с описываемой здесь расширенной проверкой прав. Доступ к вызываемой части программы разрешается в том случае, если нормальная или расширенная проверка прав дала положительный результат. Если результат обеих проверок отрицательный, то запускается подпрограмма обработки ошибок.

В случае совпадающих ИД программ PIDPC и PIDAdr обеспечивается доступ внутри текущей выполняемой программы. Если предусматривается кодовая команда с правом выполнения, которая разрешает только доступ к нормальным данным, то из кэша данных считывается и оценивается второй бит доступа в адресе. Если кодовая команда обладает правом на обработку также критических данных, что обозначается вторым правом на выполнение (хs), то из битовой последовательности, содержащей права доступа, считывается и оценивается третье право доступа. При разрешенном доступе в обоих названных случаях продолжается выполнение программного кода. В противном случае осуществляется вызов подпрограммы обработки ошибок.

На фиг. 7 схематично представлена структура соответствующей изобретению микропроцессорной схемы. Микропроцессор 1 содержит блок 3 управления, который через линию 10 управления связан с памятью 2. Память содержит область 21, предусмотренную для операционной системы, например, три области 22, 23, 24 памяти для посторонних программ соответственно, промежуточную память 24, управляемую исключительно операционной системой, промежуточную память 26, используемую для всех программ, а также промежуточные блоки памяти 27, 28, 29 (так называемые «стеки критичных данных»), которым соответствуют области 22, 23, 24 памяти и которые управляются посредством последних. Микропроцессор также содержит центральный процессорный блок (ЦПБ) 6, кэш 4 инструкций, кэш 5 данных, а также вычислительные блоки 7, 8 с соответствующими им вспомогательными регистрами 72, 83. Кроме того, имеется блок 9 оценки, который связан с вычислительными блоками 7, 8 и с арифметико-логическим блоком 6.

Посредством вычислительного блока 7 определяется ИД программы адреса текущей выполняемой кодовой команды и сохраняется во вспомогательном регистре 72. На него подается адрес из кэша 4 инструкций через арифметико-логический вычислительный блок вычислительного блока 7. С помощью вычислительного блока 8 соответствующим образом определяется ИД программы вызываемого адреса и загружается во вспомогательный регистр 82. Вызываемый адрес подается на вычислительный блок 8 через арифметико-логический блок 6 из кэша данных. Содержание вспомогательных регистров 72, 82 подается на блок 9 оценки и там сравнивается. Тем самым получают вывод о том, должен ли осуществляться доступ между двумя программами или внутри одной программы. На блок 9 оценки также подаются еще права доступа кодовой команды, а также вызываемый адрес. С помощью этой информации блок 9 оценки может осуществить процесс, показанный на фиг. 6, и принять решение о том, должен ли быть разрешен доступ, или в доступе должно быть отказано. Этот результат подается на ЦПБ.

1. Микропроцессорная схема для обеспечения доступа к данным или программам, загруженным в память (2), содержащая по меньшей мере один микропроцессор (1), запоминающее устройство (21) для операционной системы и по меньшей мере одну память (22, 23, 24) для свободного программирования с индивидуальными посторонними программами, причем в памяти (22, 23, 24) для свободного программирования предусмотрено множество областей памяти с соответствующими адресными пространствами, при этом каждому адресному пространству соответствует метка (идентификатор (ИД) программы), и средства (7, 8), которые метку (ИД программы), соотнесенную с соответствующей областью памяти, при доступах к памяти перед адресацией области памяти загружают в первый вспомогательный регистр (72), а метку (ИД программы) адресованной области памяти загружают во второй вспомогательный регистр (82), и блок (9) оценки, который осуществляет сравнение первого и второго вспомогательных регистров (72, 82), отличающаяся тем, что каждому адресному пространству области памяти соответствует по меньшей мере одна битовая последовательность (ACR), содержащая права доступа, и предусмотрена таблица доступа в форме промежуточной памяти прав, при этом на основе прав доступа области памяти и вызываемого адреса блок (9) оценки принимает решение о том, должен ли быть разрешен доступ или в доступе должно быть отказано.

2. Микропроцессорная схема по п.1, отличающаяся тем, что каждому адресу адресного пространства соответствует битовая последовательность (ACR), содержащая права доступа.

3. Микропроцессорная схема по п.1, отличающаяся тем, что битовые последовательности (ACR), содержащие права доступа, вместе с адресными блоками и метками (ИД программ) сохранены в таблице, загруженной в память.

4. Микропроцессорная схема по п.2, отличающаяся тем, что битовые последовательности (ACR), содержащие права доступа, вместе с адресами или адресными блоками и метками (ИД программ) сохранены в таблице, загруженной в память.

5. Микропроцессорная схема по п.3, отличающаяся тем, что адресный блок обозначается его началом адреса или концом адреса и длиной адресного блока.

6. Микропроцессорная схема по п.3, отличающаяся тем, что адресный блок обозначается нижним и верхним адресами.

7. Микропроцессорная схема по п.1, отличающаяся тем, что каждое адресное пространство снабжено битовой последовательностью (ACR), содержащей права доступа.

8. Микропроцессорная схема по п.2, отличающаяся тем, что каждое адресное пространство или каждый адрес снабжен битовой последовательностью (ACR), содержащей права доступа.

9. Микропроцессорная схема по п.1, отличающаяся тем, что битовая последовательность, содержащая право доступа, содержит первое и второе права доступа, причем первое право доступа регулирует доступы между двумя областями памяти (22, 23, 24), а второе право доступа регулирует доступы внутри одной области памяти (22, 23, 24).

10. Микропроцессорная схема по п.9, отличающаяся тем, что в битовой последовательности предусмотрено третье право доступа, которое регулирует доступы внутри одной области памяти (22, 23, 24).

11. Микропроцессорная схема по п.1, отличающаяся тем, что предусмотрена промежуточная память прав, которая содержит дополнительные права доступа между двумя областями памяти, причем права доступа могут считываться или записываться посредством операционной системы.

12. Микропроцессорная схема по п.11, отличающаяся тем, что промежуточная память содержит разрешенные распределения (доступы) между соответствующими двумя областями памяти.

13. Микропроцессорная схема по п.12, отличающаяся тем, что распределения реализованы в таблице с помощью меток (ИД программ) или с помощью таблицы перекодировки, с помощью которой определяются соответствующие метки.

14. Микропроцессорная схема по п.1, отличающаяся тем, что предусмотрена область памяти (25), управляемая исключительно операционной системой.

15. Микропроцессорная схема по п.1, отличающаяся тем, что каждой области памяти (22, 23, 24) соответствует адресная область (27, 28, 29) для промежуточного хранения данных, которая может управляться только программой, загруженной в соответствующую область памяти (22, 23, 24).

16. Способ обеспечения доступа к данным или программам, загруженным в память (2), с использованием по меньшей мере одного микропроцессора (1), памяти (21) для операционной системы и по меньшей мере одной памяти (22, 23, 24) для свободного программирования с индивидуальными посторонними программами, причем в памяти (22, 23, 24) для свободного программирования предусмотрено множество областей памяти с соответствующими адресными пространствами, при этом каждому адресному пространству соответствует метка (идентификатор (ИД) программы) и в каждой области памяти (22, 23, 24) предусмотрена точно одна посторонняя программа, включающий следующие этапы: а) определение первого ИД программы (PIDPC) текущей выполняемой кодовой команды посторонней программы на основе метки текущего адреса, b) определение второго ИД программы (PIDAdr) адресованной области памяти, с) сравнение первого и второго ИД программ, d) выбор первого или второго права доступа (ACR) в зависимости от результата сравнения на этапе (с), е) оценка права доступа, f1) продолжение выполнения программного кода, если доступ и соответственно кодовая команда к адресованной области памяти разрешены, f2) вызов подпрограммы обработки ошибок, если доступ и соответственно кодовая команда к адресованной области памяти не разрешены.

17. Способ по п.16, отличающийся тем, что при одинаковых первом и втором ИД программ в зависимости от права доступа текущей выполняемой кодовой команды выбирается второе право доступа или третье право доступа.

18. Способ по п.16, отличающийся тем, что после этапа (f2) выполняются следующие этапы: g) проверка промежуточной памяти прав на наличие записи, характеризующей разрешенный доступ из области памяти с первым ИД программы (PIDPC) к области памяти, маркированной вторым ИД программы (PIDAdr), h1), продолжение выполнения программного кода при наличии упомянутой записи в промежуточной памяти прав, h2), вызов подпрограммы обработки ошибок, если упомянутая запись отсутствует.

19. Способ по п.16, отличающийся тем, что кодовая команда этапа (а) представляет собой команду перехода, при этом выполняются следующие этапы: b) определение второго ИД программы (PIDAdr) адресованной области памяти, с) сравнение первого и второго ИД программ, d) переход к вызываемому адресу, е1) продолжение выполнения программного кода в адресованной области памяти, если первый и второй ИД программ одинаковы, е2) считывание адресованного содержания, если первый и второй ИД программ неодинаковы, аа) вызов подпрограммы обработки ошибок, если считанное адресованное содержание не является командой входа, bb) продолжение выполнения программного кода, если считанное адресованное содержание является командой входа.

20. Способ по п. 19, отличающийся тем, что перед этапом (d) выполняется этап сохранения адреса текущей выполняемой команды перехода в промежуточной памяти (25 ... 29).

21. Способ по п.19, отличающийся тем, что команда входа представляет собой жестко заданную битовую последовательность.

22. Способ по п.16, отличающийся тем, что промежуточная память (25) управляется исключительно от операционной системы.

23. Способ по п.16, отличающийся тем, что кодовые команды, которым соответствует первое право выполнения, в качестве промежуточной памяти используют промежуточную память (26) открытого доступа.

24. Способ по п.16, отличающийся тем, что кодовые команды, которым соответствует второе право выполнения, используют соотнесенную с областью памяти промежуточную память (27, 28, 29), которая может управляться только программой, загруженной в соответствующую область памяти, или операционной системой.



 

Похожие патенты:

Изобретение относится к вычислительной технике, в частности к системе приема, хранения и считывания данных конкурсных предложений в государственных закупках. .

Изобретение относится к системам и способу программного управления доступом между одним или более узлов и множеством связанных с ними устройств. .

Изобретение относится к цифровым системам связи и может быть использовано в средствах поиска информации с целью мониторинга безопасности автоматизированных систем и оперативной идентификации применяемого в цифровых системах связи, таких как Интернет, семейства коммуникационных протоколов TCP/IP.
Изобретение относится к способу защиты программного обеспечения от несанкционированного доступа. .

Изобретение относится к электросвязи и может быть использовано в средствах защиты информации. .

Изобретение относится к средствам защиты от несанкционированного доступа к информации, хранимой в персональной ЭВМ. .

Изобретение относится к области защиты данных при обмене информацией. .

Изобретение относится к электросвязи и может быть использовано в автоматизированных технических средствах защиты информации с целью мониторинга безопасности автоматизированных систем и оперативной идентификации применяемого в цифровых системах связи, в частности в сети передачи данных типа "Internet" семейства коммуникационных протоколов TCP/IP.

Изобретение относится к средствам защиты для обеспечения доступа к устройству или информации в устройстве. .

Изобретение относится к средствам защиты информационных систем от несанкционированного доступа. .

Изобретение относится к электросвязи и может быть использовано в системах обнаружения атак

Изобретение относится к электросвязи и может быть использовано в автоматизированных технических средствах защиты информации для мониторинга безопасности автоматизированных систем и оперативной идентификации применяемого в цифровых системах связи и, в частности, в сети передачи данных типа «Internet» семейства коммуникационных протоколов TCP/IP

Изобретение относится к электросвязи и может быть использовано в системах обнаружения атак с целью оперативного выявления и блокирования несанкционированных воздействий в вычислительных сетях, в частности в сети передачи данных (СПД) типа "Internet"

Изобретение относится к электросвязи и может быть использовано для распознавания искажения информационного цифрового потока, циркулирующего в цифровых сетях связи, в частности, в сети передачи данных (СПД) типа "Internet", основанных на семействе коммуникационных протоколов TCP/IP (Transmission Control Protocol/Internet Protocol)
Изобретение относится к технике секретной связи и может быть использовано для передачи, распределения и смены криптографических ключей для пользователей в территориально разнесенной системе

Изобретение относится к системам и способу управления передачей ключей расшифровки или доступа к зашифрованной информации

Изобретение относится к области накопления и защиты информации от несанкционированного доступа

Изобретение относится к способу входа в систему по меньшей мере в двух элементах сети в пределах коммуникационной сети и устройству для входа в такую систему

Изобретение относится к способам и устройствам ограничения доступа к записанным цифровым данным на носителе информации
Наверх