Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Агафьин Сергей Сергеевич

Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти
<
Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Агафьин Сергей Сергеевич. Методика генерации случайных последовательностей для систем защиты информации путем измерения времени доступа к оперативной памяти: диссертация ... кандидата технических наук: 05.13.19 / Агафьин Сергей Сергеевич;[Место защиты: Национальный исследовательский ядерный университет «МИФИ»].- Москва, 2015.- 145 с.

Содержание к диссертации

Введение

1 Проблема генерации случайных последовательностей без использования дополнительного оборудования 14

1.1 Генераторы случайных последовательностей в системах защиты информации 14

1.1.1 Требование равенства энтропии 15

1.1.2 Требование непредсказуемости влево и вправо 16

1.1.3 Автокорреляционные свойства 17

1.2 Быстродействие генераторов случайных последовательностей 18

1.3 Генераторы псевдослучайных последовательностей 19

1.3.1 Генератор Fortuna 21

1.3.2 Генератор Linux 23

1.3.3 Генератор Windows 25

1.4 Основные методы построения генераторов случайных последовательностей 26

1.4.1 Внешние аппаратные генераторы случайных последовательностей 27

1.4.2 Биологические генераторы случайных последовательностей 28

1.4.3 Генераторы, встроенные в центральные процессоры 30

1.4.4 Фиксирование аппаратных прерываний 32

1.4.5 Измерение времени отклика оборудования 33

1.4.6 Измерение погрешности счетчиков времени 35

1.4.7 Измерение времени доступа к памяти 37

1.5 Тестирование генераторов случайных последовательностей 39

1.5.1 Постулаты Голомба 39 1.5.2 Тесты с использованием критерия/2 40

1.5.3 Спектральный критерий 43

1.5.4 Пакетные тесты DIEHARD 44

1.5.5 Пакетные тесты NIST 45

1.6 Сравнение подходов к генерации случайных последовательностей 48

1.7 Выводы 51

2 Построение методики генерации случайных последовательностей с помощью штатных средств вычислительной системы 52

2.1 Модель нарушителя 52

2.1.1 Возможности нарушителя 53

2.1.2 Меры противодействия нарушителю 54

2.1.3 Способы проникновения нарушителя 56

2.2 Предпосылки для поиска случайных величин 57

2.2.1 Автоматная модель ОЗУ 58

2.2.2 Анализ процесса доступа к ОЗУ 62

2.2.3 Принцип функционирования механизма кэширования 67

2.3 Методика генерации случайной последовательности 69

2.3.1 Алгоритм измерения времени доступа к памяти 69

2.3.2 Исключение периодической составляющей 76

2.3.3 Предлагаемая методика генерации случайных последовательностей на основе измерения времени доступа к памяти 81

2.4 Выводы 82

3 Архитектура генератора случайных последовательностей 84

3.1 Предлагаемая архитектура генератора 84

3.1.1 Управляющий блок 85

3.1.2 Измеритель времени 88

3.1.3 Фильтр 89

3.1.4 Преобразователь 92

3.1.5 Накопитель 94

3.2 Рекомендации по встраиванию генератора 96

3.3 Противодействие нарушителю 96

3.4 Выводы 98

4 Экспериментальная проверка предложенной методики генерации случайных последовательностей 99

4.1 Описание реализации методики 99

4.2 Выбор операционной системы для реализации 99

4.3 Реализация компонентов 100

4.4 Описание тестовых стендов 102

4.5 Характеристики последовательности измерений, проведенных с включенной кэш-памятью 103

4.6 Характеристики последовательности измерений, проведенных с включенной кэш-памятью 104

4.7 Исследование периодической составляющей полученных последовательностей 104

4.8 Применение метода фильтрации последовательности 105

4.9 Автокорреляционные свойства полученных последовательностей 109

4.10 Тестирование генератора случайных последовательностей при различных параметрах внешней среды 111

4.10.1 Тестирование зависимости характеристик ГСП от изменения нагрузки в сетях энергоснабжения 111

4.10.2 Тестирование зависимости характеристик ГСП от изменения напряжения процессора 112 4.11 Статистическое тестирование последовательностей 113

4.12 Тестирование производительности генератора 116

4.13 Внедрение предложенной методики генерации случайных последовательностей 117

4.13.1 Внедрение в КриптоПро CSP4.0 117

4.13.2 Внедрение в АО фирма «Актив» 118

4.13.3 Внедрение в учебный процесс кафедры «Криптология и дискретная математика» НИЯУ МИФИ 119

4.14 Выводы 120

Заключение 122

Список использованных источников

Введение к работе

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

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

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

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

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

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

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

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

Производительность генераторов случайных последовательностей,

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

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

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

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

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

Данной задачей в последние годы занималось большое количество исследователей из разных стран: Schneier В., Shamir A., Muller S., Попов В.О., Смышляев СВ., Tso Т. Lacharme P., Jim В., Engel J., LeBlank D.

В России проблемой построения генераторов случайных последовательностей занимаются такие организации как ООО «КРИПТО-ПРО», ООО «Код безопасности», ЗАО «ОКБ САПР», АО фирма «Актив».

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

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

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

Предметом исследования являются статистические свойства

последовательностей времени выполнения операций доступа к оперативному запоминающему устройству.

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

Методы исследования: теория временных автоматов, теория обработки сигналов, теория вероятностей и математическая статистика.

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

Для достижения поставленной цели необходимо:

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

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

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

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

провести оценку статистических свойств генерируемых случайных последовательностей.

Научная новизна работы состоит в следующем:

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

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

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

Практическая значимость результатов заключается в том, что предлагаемая методика генерации случайных последовательностей может применяться в системах защиты информации, решающих задачи обеспечения конфиденциальности в условиях противодействия нарушителю, соответствующему модели НЗ ФСБ России, для:

повышения эффективности СЗИ путем повышения скорости процесса генерации случайных последовательностей;

повышения стойкости СЗИ на различных аппаратных конфигурациях архитектуры х86 в связи с независимостью предлагаемой методики от вида конфигурации.

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

Внедрение результатов исследования. Полученная методика генерации случайных последовательностей для систем защиты информации была использована для разработки нового генератора случайных последовательностей в компании ООО «КРИПТО-ПРО».

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

Теоретические результаты исследования, полученные в процессе выполнения диссертационной работы, использованы в курсе «Разработка и эксплуатация защищенных автоматизированных систем» кафедры «Криптология и дискретная математика» НИЯУ МИФИ для создания лабораторных работ и лекционного материала.

Публикации и апробация работы: Результаты диссертации были изложены в 14 опубликованных и приравненных к ним работах, в том числе 6 статьях в журналах, входящих в Перечень рецензируемых научных журналов, рекомендованных ВАК РФ для публикации основных научных результатов диссертаций на соискание ученых степеней, одна в издании, индексируемом международной системой научного цитирования Scopus, а 7 являются свидетельствами о государственной регистрации программ для ЭВМ. Результаты работы докладывались на конференциях и семинарах различного уровня:

Международная конференция «SinConf», Глазго, Шотландия, Великобритания, 2014 г.;

Международная конференция «РусКрипто'15», Московская область, Солнечногорский район, 2015 г.;

Международный форум по практической безопасности «Positive Hack Days V», г. Москва, 2015 г.;

18-я Международная телекоммуникационная конференция студентов и молодых ученых «Молодежь и наука», г. Москва, 2015 г.;

XX Всероссийская научно-практическая конференция «Проблемы информационной безопасности в системе высшей школы», г. Москва, 2014 г.;

семинар в Московском Государственном Университете им. М.В.Ломоносова, г.Москва, 2015 г.

Основные положения, выносимые на защиту:

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

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

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

Структура и объем работы. Работа состоит из введения, четырех глав, заключения, списка литературы, включающего 126 наименований, и трех приложений. Текст диссертации изложен на 137 страницах, включая 12 рисунков и 15 таблиц.

Быстродействие генераторов случайных последовательностей

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

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

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

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

Для генерации случайных последовательностей в ядре операционной системы Linux [35] предусмотрен свой генератор псевдослучайных последовательностей [36-38]. Он состоит из трех основных частей: входной накопитель, блокирующий накопитель и неблокирующий накопитель. ГПСП подразумевает использование внешних источников случайности. Генератор собирает случайные значения из этих источников в процессе работы системы асинхронно и без отношения к запросам пользовательских приложений. Эти данные сохраняется во входном накопителе.

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

Обоснование стойкости этого генератора полностью опирается на стойкость криптографической хэш-функции SHA1 [39], которая используется для генерации выходной последовательности и передачи битов информации из входного накопителя в выходные накопители.

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

Из пользовательских приложений доступ к накопителям осуществляется через виртуальные устройства /dev/random и /dev/urandom. При чтении данных из /dev/random приложению возвращается последовательность из блокирующего накопителя, длина которой не может превышать общее количество накопленной энтропии. Если приложение запросит больше данных, чем может предоставить генератор, то устройство блокируется до тех пор, пока ГПСП не накопит достаточное число случайных бит.

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

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

Способы проникновения нарушителя

Защиту от несанкционированного воздействия на критические программные узлы средства защиты информации предполагается обеспечивать путем установления корректных политик разграничения доступа и полного их соблюдения. Система должна реализовывать разграничение доступа как минимум среди двух ролей: Администратор и Пользователь [89].

Администратор может выполнять следующие операции: - устанавливать, удалять и настраивать средство защиты и отдельные его компоненты; - устанавливать системные приложения, которые являются частью ядра операционной системы (драйвер, модуль ядра), в рамках которой функционирует СЗИ; - запускать произвольные приложения, функционирующие на одном уровне привилегий с СЗИ; - модифицировать настройки вычислительной машины путем настройки BIOS.

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

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

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

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

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

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

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

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

В классической архитектуре ЭВМ принято выделять 3 базовых компонента: центральный процессор, оперативное запоминающее устройство и блок ввода/вывода [92]. Эти компоненты осуществляют взаимодействие между собой через основную системную магистраль (системная шина).

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

Противодействие нарушителю

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

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

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

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

Измеритель времени был реализован в виде модуля ядра операционной системы Linux. Данный модуль был зарегистрирован в качестве устройства с именем "/dev/memrandom", для которого были реализованы 3 интерфейсные функции: memopen, memread, memclose.

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

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

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

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

В качестве фильтра, который выполнял преобразование полученной последовательности, используется скрипт, созданный с помощью языка программирования Python [118]. Выбор данного языка обусловлен простотой в реализации, а также тем, что в его расширениях SciPy [119] и NumPy [120] реализованы алгоритмы прямого и обратного дискретного преобразования Фурье. Также язык программирования Python имеет библиотеку mathplotlib [121], которая позволяет быстро и эффективно строить графики различных форматов.

Схема алгоритма набора последовательности измерений В качестве упрощенного управляющего блока используется программа, написанная на языке программирования Си [122], текст которой представлен в приложении Б. Это программное средство осуществляет системный вызов open на зарегистрированное устройство, а затем считывает полный массив измерений, проведенных в результате данного вызова.

Характеристики последовательности измерений, проведенных с включенной кэш-памятью

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

В рамках данной диссертационной работы было проведено внедрение методики генерации случайных последовательностей в процесс тестирования средств защиты, разрабатываемых компанией «Актив». Высокая скорость генерации и достаточные статистические свойства позволили проводить тестирование встроенных ГСП в аппаратных СЗИ.

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

Результаты и материалы исследования данной диссертационной работы были применены в учебном процессе в рамках предмета «Разработка и эксплуатация защищенных автоматизированных систем» кафедры №42 «Криптология и дискретная математика» НИЯУ МИФИ [126].

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

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

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

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

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

Описаны свойства тестовых стендов, на которых проводились эксперименты по реализации методики на реальных вычислительных машинах.

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

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

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

К полученным случайным последовательностям был применен набор статистических тестов NIST SP 800-22. Полученная последовательность успешно прошла все предложенные тесты и продемонстрировала статистическую неотличимость от случайной.

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

Результаты диссертационной работы были внедрены в компаниях ООО «КРИПТО-ПРО» и АО «Актив» для повышения эффективности процесса генерации случайных последовательностей и тестирование программно-аппаратных средств защиты информации. Теоретические результаты диссертационной работы были использованы при создании лабораторной работы и лекционного материала для курса «Разработка и эксплуатация защищенных автоматизированных систем», читаемого студентам факультета «Кибернетика и информационная безопасность» НИЯУ МИФИ.

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

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

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