Использование простого пароля

Процедура опознавания с использованием простого пароля может быть представлена в виде следующей последовательности действий:

1. пользователь посылает запрос на доступ к компьютерной системе и вводит свой идентификатор; 2. система запрашивает пароль;

пользователь вводит пароль;

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

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

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

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

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

Для обеспечения возможности контроля правильности ввода пароля при использовании необратимого шифрования на винчестер записывается таблица преобразованных паролей. Для их преобразования используется односторонняя криптографическая функция y=F(x), обладающая следующим свойством: для данного аргумента x значение F(x) вычисляется легко, а по данному y вычислительно сложно найти значение аргумента x, соответствующего данному y. В таблице паролей хранятся значения односторонних функций, для которых пароли берутся в качестве аргументов. При вводе пароля система защиты легко вычисляет значение функции от пароля текущего пользователя и сравнивает со значением, приведенным в таблице для пользователя с выбранным идентификатором. Нарушитель, 8 захвативший компьютер, может прочитать таблицу значений функций паролей, однако вычисление пароля практически не реализуемо. При работе с паролями должна предусматриваться и такая мера, как недопустимость их распечатки или вывода на экраны мониторов. Поэтому система защиты должна обеспечивать ввод пользователями запрошенных у них паролей без отображения этих паролей на мониторах. Можно выделить следующие основные способы повышения стойкости системы защиты на этапе аутентификации:

♦ повышение степени нетривиальности пароля;

♦ увеличение длины последовательности символов пароля; ♦ увеличение времени задержки между разрешенными попытками повторного ввода неправильно введенного пароля;

♦ повышение ограничений на минимальное и максимальное время действительности пароля.

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

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

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

T r можно вычислить на основе следующей полученной экспериментально приближенной формулы:

T r ≈ (A s * T v )/2.

Здесь:

A - число символов в алфавите, используемом для набора символов пароля;

- длина пароля в символах, включая пробелы и другие служебные символы;

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

Например, если A = 26 символов (учтены только буквы английского алфавита), T v = 2 секунды, а S = 6 символов, то ожидаемое время раскрытия T r приблизительно равно одному году. Если в данном примере после каждой неудачной попытки ввода пароля предусмотреть временную задержку в 10

секунд, то ожидаемое время раскрытия увеличится в 5 раз.

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

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

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

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

Метод обратимого шифрования

Кодирование — перевод информации, представленной сообщением в первичном алфавите, в последовательность кодов.

Процесс обратного преобразования слова называется декодированием. Декодирование можно рассматривать как функцию 1/F– обратную функции F – кодированию.

Декодирование — операция, обратная кодированию, т.е. восстановление информации в первичном алфавите по полученной последовательности кодов.

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

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

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

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

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

Запишем условие обратимости кодирования в формализованном (математическом) виде. Введем некоторые обозначения:

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

А.

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

Тогдаусловие обратимости кодирования запишется в следующем виде:

На практике при построении обратимого кода необходимо придерживаться следующих правил:

разным символам первичного алфавита А должны быть сопоставлены разные кодовые комбинации;

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

Наши рекомендации