Типовые схемы хранения ключевой информации

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

Предположим, что i -й аутентифицируемый субъект содержит два информационных поля: IDi - неизменяемый идентификатор i - ro пользователя, который является аналогом имени и используется для идентификации пользователя, и Ki - аутентифицирующая информация пользователя, которая может изменяться и служит для аутентификации.

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

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

Базу данных аутентификации в КС необходимо защищать от двух основных видов угроз.

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

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

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

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

2. Угрозы исследования содержимого базы данных аутентификации.

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

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

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

Схема 1. В компьютерной системе выделяется объект-эталон для идентификации и аутентификации. Структура объекта-эталона может быть представлена в виде таблицы 6.1.

Табл. 6.1. Первая типовая схема хранения ключевой информации

Номер пользователя Информация для идентификации Информация для аутентификации
  ID1 E1
  ID2 E2
N IDN EN

Ei=F (IDi, Кi), где F – некоторая функция хэширования. При этом, зная Ei и IDi вычислительно невозможно восстановить Ki.

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

Алгоритм идентификации и аутентификации для схемы 1

1. Пользователь предъявляет свой идентификатор ID.

2. Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допущен к работе, иначе (существует IDi = ID) устанавливается факт «пользователь, назвавшийся пользователем i, прошел идентификацию».

3. Субъект аутентификации запрашивает у пользователя аутентификатор К и вычисляет значение Y = F (IDi, K).

4. Субъект аутентификации проходит сравнение Еi и Y. При совпадении фиксируется событие «пользователь успешно аутентифицирован в системе», в противном случае аутентификация отвергается и пользователь не допускается к работе.

Вторая типовая схема хранения ключевой информации несколько модифицирует схему 1.

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

Табл. 6.2. Вторая типовая схема хранения ключевой информации

Номер пользователя Информация для идентификации Информация для аутентификации
  ID1, S1 E1
  ID2, S2 E2
N IDN,SN EN

В данной таблице Еi = F (Si, К), где Si - случайный вектор, формируемый при регистрации пользователя с номером i; F – необратимая функция, для которой невозможно восстановить К по Ei и Si.

Алгоритм идентификации и аутентификации для схемы 2

1. Пользователь предъявляет свой идентификатор ID.

2. Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допущен к работе, иначе (существует IDi=ID) устанавливается факт «пользователь, назвавшийся пользователем i, прошел идентификацию».

3. По идентификатору IDi из базы данных аутентификации выделяется информация Si.

4. Субъект аутентификации запрашивает у пользователя аутентифицирующую информацию К и вычисляет значение Y = F (Si, K).

5. Субъект аутентификации сравнивает Ei и Y. При совпадении фиксируется событие «пользователь успешно аутентифицирован в КС», в противном случае аутентификация отвергается и пользователь не допускается к работе.

Достоинством второй схемы является то, даже в случае выбора пользователями одинаковых паролей, информация Ei для них будет различаться. В рамках первой же схемы значение Ei = F(IDi,Ki), как правило, вычисляют в виде Ei=F(Ki), что не позволяет достичь такого результата. Вторая схема хранения ключевой информации используется для защиты базы данных аутентификации в ОС UNIX.

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

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

Пример 6.1.

Для защиты книг Microsoft Excel используется подход к защите пароля, аналогичный схеме 1. В документе Excel хранится хэш-образ пароля, с которым производится сравнение хэша пароля, вводимого пользователем при снятии данной защиты. Длина хэша составляет 16 бит. Для взлома данной защиты достаточно просто записать на место хранения хэш-образа эталонного пароля заранее вычисленный хэш-образ известного пароля, либо хэш-образ, соответствующий беспарольному варианту. Так и поступают многочисленные взломщики защит документов Word и Excel.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: