Способ защиты входных адресов

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Корреляция с программными данными в незарезервированных областях памяти. Это решение предусматривает в качестве обязательного условия то, что программные команды не превышают определенное максимальное число n байтов. Более длинные области данных в кодовом сегменте должны быть в данном случае исключены. Кроме того, данный способ в качестве обязательного условия предусматривает специальный холостой код, который никогда не вводится в регулярный код, а дополнительно добавляется компилятором или компоновщиком только для исключения случайных корреляций. Здесь можно выделить еще два различных типа решений: a) корреляция осуществляется между кодовыми данными, которые удалены друг от друга по меньшей мере на n байтов. Компилятор или соответственно компоновщик должен гарантировать, что любые случайные корреляции исключаются за счет ввода холостого промежуточного кода.

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

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

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

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

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

Формула изобретения

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

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

3. Способ по п. 1 или 2, отличающийся тем, что выполняют непосредственный переход к входному адресу.

4. Способ по любому из пп. 1-3, отличающийся тем, что при выполнении вызова функции автоматически проверяют, выполняется ли корреляция данных для соответствующего входного адреса.

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

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

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

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

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

10. Способ по любому из пп. 5-9, отличающийся тем, что выполняют непосредственный переход к входному адресу.



 

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

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

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

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

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

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

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

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

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

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

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

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

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

Изобретение относится к устройствам обмена данными с установлением разрешения на обмен данными

Изобретение относится к области вычислительной техники, а именно к средствам защиты информации от несанкционированного доступа в электронных вычислительных системах (машинах), локальных вычислительных сетях (ЛВС) на базе персональных электронных вычислительных машин (ПЭВМ)

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

Изобретение относится к области аутентификации объектов

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

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