Принцип работы и реализация

Принцип работы и реализация

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

Рис. Б.1. Прохождение энтропии через пул энтропии ядра

Для доступа к пулу энтропии, как из пространства ядра, так и из пространства пользователя, ядро предоставляет набор интерфейсов. Когда выполняется обращение к этим интерфейсам, ядро вначале вычисляет хеш-значение SHA данных из пула. Алгоритм SHA (Secure Hash Algorithm, алгоритм вычисления безопасного хеш- значения) — это алгоритм вычисления дайджеста сообщения (профиля сообщения, message digest), который был разработан Агентством национальной безопасности (National Security Agency, NSA) и утвержден в качестве федерального стандарта США Национальным институтом стандартов и технологий (NIST) (федеральный стандарт по обработке информации, FIPS 186). Вычисление дайджеста сообщения выполняется с помощью специального алгоритма, который принимает сообщение переменного размера (большое или маленькое) и выдает на выходе хеш-значение фиксированного размера (обычно размером 128 или 160 байт). Это фиксированное значение и представляет собой дайджест. Входное сообщение не может быть реконструировано по его хеш-значению. Более того, простое изменение входного сообщения (например, изменение одного символа) приведет к радикальному изменению хеш-значения. Алгоритмы вычисления дайджестов сообщений могут использоваться по-разному, включая проверку подлинности данных и дактилоскопию. Другие алгоритмы вычисления дайджестов — это MD4 и MD5. Пользователю возвращается хеш-значение SHA пула, к содержимому пула энтропии непосредственно обращаться нельзя. Считается, что по хеш-значению невозможно получить никакую информацию о состоянии пула. Поэтому если известно несколько значений из пула, то это не дает никакой информации о прошлых и будущих значениях. Ядро может использовать оценку энтропии и отказаться выполнить запрос на считывание данных из пула, если значение энтропии равно нулю. По мере того как из пула считываются данные, оценка энтропии уменьшается. Это реакция на то, что о пуле становится известно больше информации.

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

Почему это реализовано в ядре?

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Принцип работы

Из книги Skype: бесплатные звонки через Интернет. Начали! автора Гольцман Виктор Иосифович

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


2.1. Принцип работы антивируса

Из книги Защита вашего компьютера автора Яремчук Сергей Акимович

2.1. Принцип работы антивируса Пользователь часто может сам обнаружить присутствие вируса на компьютере. Например, о заражении системы почтовым червем Email-Worm.Win32.NetSky.b можно судить по возрастанию загрузки процессора до 90 % и активной работе жесткого диска (в результате


Принцип работы

Из книги ArCon. Дизайн интерьеров и архитектурное моделирование для всех автора Кидрук Максим Иванович

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


Общий принцип работы с программой

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

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


Принцип работы подкастинга

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

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


Принцип работы компьютера

Из книги Сетевые средства Linux автора Смит Родерик В.

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


Принцип работы протокола NNTP

Из книги Интернет – легко и просто! автора Александров Егор

Принцип работы протокола NNTP Современные серверы новостей используют для обмена между собой и для взаимодействия с клиентами протокол NNTP (Network News Transfer Protocol — протокол передачи сетевых новостей). Как правило, серверы NNTP используют порт 119. Следует заметить, что


Принцип работы

Из книги Как найти и скачать в Интернете любые файлы автора Райтман М. А.

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


Принцип работы

Из книги Интерактивные доски и их использование в учебном процессе автора Горюнова М. А.

Принцип работы Идея работы ICQ, довольно простая. При установке специальной программы (кстати говоря, бесплатной) вам присваивается UIN (Unique Identification Number – уникальный идентификационный номер). Это что-то вроде вашего адреса или номера телефона, который можно раздавать своим


Принцип работы программы-клиента DC++

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

Принцип работы программы-клиента DC++ Как уже упоминалось ранее, программа DC++ — это клиент для файлообменных сетей Direct Connect.Сеть Direct Connect — это пиринговая децентрализованная сеть, состоящая из отдельных серверов (хабов), к которым подключаются компьютеры пользователей для


Принцип работы с инструментами SMART Board

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Принцип работы с инструментами SMART Board Работая с доской, следует помнить, что на маркере нет правой кнопки. Так как данная доска резистивная, то на ней можно работать как маркером, так и пальцем руки. При этом вместо правой кнопки на каждом объекте или элементе будет


Принцип работы с инструментами интерактивной доски

Из книги Восстановление данных на 100% автора Ташков Петр Андреевич

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


Принцип работы трафикового модуля

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

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


4.7.1. Принцип работы

Из книги автора

4.7.1. Принцип работы Итак, давайте рассмотрим принцип работы защиты служб. Для этого создается директория, которая является для программы корневой. В Linux для этого существует команда chroot, которая создает chroot-окружение. Получается псевдокорневая файловая система внутри


Принцип работы SIM-карты

Из книги автора

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


20.2.2. Принцип работы команды getopts

Из книги автора

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