Обзор стеганографических программ

Jsteg — программа предназначена для скрытия информации в популярном формате JPG.

FFEncode— интересная программа, которая скрывает данные в текстовом файле. Программа запускается с соответствующими параметрами из командной строки.

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

Wnstorm — пакет программ, который позволяет шифровать сообщение и скрывать его внутри графического файла PCX формата.

Steganos — является легкой в использовании, но все же мощной программой для шифрования файлов и скрытия их внутри BMP, DIB, VOC, WAV, ASCII, HTML — файлов.

Contraband — программное обеспечение, позволяющее скрывать любые файлы в 24 битовых графических файлах формата BMP.

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

 

Контрольные вопросы

1. Принципы кодирования информации. Алфавит и длина кода.

2. Что такое криптология? Какие основные направления существуют в этой науке?

3. Чем занимается криптография и каковы ее основные функции?

4. Что такое криптографический алгоритм?

5. Какие классификации криптоалгоритмов существуют?

6. Как выглядит формальная запись симметричных и асимметричных алгоритмов, тайнописи?

7. Что такое криптографический ключ и какие виды ключей существуют?

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

9. Каким образом генерируется криптографический ключ?

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

11. Чем последовательность псевдослучайных чисел отличается от случайных чисел?

12. Что такое гамма и ее период?

13. Что понимается под числом, порождающим последовательность?

14. Что такое криптосистема? Каковы ее основные функции?

15. Криптопакет и его свойства.

16. Что такое симметричный алгоритм шифрования? Какие виды симметричных алгоритмов существуют?

17. Что такое скремблер и как он работает?

18. Почему в скремблере используется логическая операция XOR, а не AND?

19. Потоковые шифры. Алгоритм шифрования кодом Цезаря.

20. Что представляют собой блочные шифры?

21. Что такое сеть Фейстеля и ее ветви?

22. Назовите основные алгоритмы, основанные на блочных шифрах.

23. Алгоритм взлома кода Цезаря.

24. Алгоритм шифрования кодом Виженера.

25. Алгоритм взлома кода Виженера при известной длине ключа.

26. Основные характеристики систем с секретным ключом DES, FEAL, IDEA, ГОСТ 28147-89, RC5.

27. Что такое асимметричные алгоритмы шифрования? Какова история их появления?

28. Основные этапы шифрования по алгоритму RSA.

29. Какие недостатки есть у асимметричных криптосистем?

30. Что такое PKI?

31. Для чего нужна сертификация ключей?

32. Что такое криптографические протоколы?

33. Как осуществляется протокол взаимодействия, использующий симметричную криптосистему?

34. Как осуществляется протокол взаимодействия, использующий асимметричную криптосистему?

35. Каковы достоинства и недостатки симметричных и асимметричных криптосистем?

36. Чем обосновано использование гибридной криптосистемы?

37. Для чего необходима электронная цифровая подпись?

38. Каков юридический статус электронной цифровой подписи в РФ?

39. Как реализуется механизм электронной цифровой подписи?

40. Что такое CRC?

41. Что такое криптографические хэш-функции?

42. Чем такое однонаправленные функции?

43. Каковы различия между хэш-функциями и однонаправленными хэш-функциями?

44. Алгоритм создания электронной цифровой подписи.

45. Каков протокол создания электронной цифровой подписи на основе симметричного алгоритма шифрования?

46. Какими основными свойствами обладает электронная цифровая подпись и что ее отличает от обычной подписи?

47. Покажите основные приложения стеганографии.

48. Каковы основные требования к стегосистеме и контейнерам?

49. На основе каких необратимых преобразований базируется алгоритм RSA?

50. На основе какого необратимого преобразования базируется алгоритм Эль-Гамаля?

51. Приведите примеры простых и взаимно простых чисел.


IV. Защита информации в информационных системах

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

Таким образом, большинство методов аутентификации пользователей основаны на распознавании:

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

2. индивидуальные особенности самого пользователя;

3. предмета, имеющегося у пользователя.

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

 

4.1. Аутентификация с использованием паролей

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

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

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

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

Основные требования программы к паролю:

1. Пароль должен содержать как минимум семь символов.

2. Пароль должен содержать как строчные, так и прописные символы.

3. Пароль должен содержать как минимум одну цифру или специальный символ.

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

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

В 2008 году один из специалистов Acunetix – Богдан Кэлин решил проанализировать выложенную в сеть базу пользовательских данных и пришел к весьма удручающим выводам. Как оказалось, самым популярным среди пользователей паролем стал «123456»: в базе из 10 тыс. паролей он встречался 64 раза. На втором месте по распространенности оказался более сложный набор символов – «123456789», его использовали 18 пользователей. Третье место занял пароль «Аlejandra» – его выбрали 11 человек. Вообще говоря, мужские и женские имена оказались весьма популярными для использования в качестве паролей: Аlberto, Аlejandro, Daniel, Roberto, Bonita, Sebastian и Beatriz. Только 90% записей имели уникальные пароли, а оставшиеся 10% – повторяющиеся, такие как вышеуказанные последовательности цифр или человеческие имена. С одной стороны, одна десятая часть – это совсем немного, а с другой – при значительном расширении общей базы вероятность подобрать пароль к чужому аккаунту значительно возрастает. Также было установлено, что чаще всего пользователи придумывают пароли из шести, семи или восьми символов: такими оказались 22%, 14% и 21% утекших в сеть записей соответственно. Длина самого короткого секретного слова оказалась равна всего 1 символу, а самого длинного – 30 символам.

Что касается самой структуры паролей, тут большая часть пользователей также не очень ответственно отнеслись к выбору: около 42% обнаруженных записей содержали буквы только нижнего регистра и еще 19% – только цифры. Только 6% паролей были составлены по всем правилам: из букв верхнего и нижнего регистров, цифр и специальных символов.

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

 

4.2. Одноразовые пароли

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

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

Алгоритм основан на необратимой функции, то есть функции Y=f(x), обладающей тем свойством, что по заданному х легко найти Y, но по заданному Y подобрать х путем простых вычислений невозможно. Вход и выход должны иметь одинаковую длину, например 128 битов.

Основную роль в задачах выработки секретного ключаиграют математические действия, когда прямая операция сравнительно проста, а обратная — запредельно сложна (по-английски они называются one-way functions). Такие операции известны и в жизни, и в математике. Например, относительно легко перемножить два больших числа pq=N — это сравнительно легкая операция, а разложить N на множители — трудная операция.

Другаялегкая операция: возвести основание а в степень р и взять остаток по модулю m: L=ap mod m и совсем трудная операция: найти р, зная L, а и m.

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

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

Рассмотрим на примере n=4, хотя на практике используются гораздо большие значения. Пусть секретный пароль равен S. Тогда первый пароль получается в результате выполнения необратимой функции f(х) n раз (т.е. четыре раза):

.

Второй пароль получается, если применить необратимую функцию f(х) n-1 раз (т. е. три раза):

.

Для получения третьего пароля нужно выполнить функцию f(х) два раза, а для четвертого — один раз.

Таким образом, используется рекуррентное соотношение . Основной момент, на который следует обратить здесь внимание, заключается в том, что при использовании данного метода легко вычислить предыдущий пароль, но почти невозможно определить следующий. Например, по данному Р2 легко найти Р1, но невозможно определить Р3.

Сервер инициализируется числом Р0, представляющим собой просто . Это значение хранится в файле паролей вместе с именем пользователя и целым числом 1, указывающим, что следующий пароль равен . Когда пользователь пытается зарегистрироваться на сервере в первый раз, он посылает на сервер свое регистрационное имя, в ответ на которое сервер высылает целое число 1, хранящееся в файле паролей. Машина пользователя отвечает числом Р1, вычисляемым локально из S, вводимого пользователем. Затем сервер вычисляет и сравнивает результат с хранящимся в файле паролей значением Р0. Если эти значения совпадают, регистрация разрешается, целое число увеличивается на единицу, а Р1 записывается в файл поверх Р0.

При следующем входе в систему сервер посылает пользователю число 2, а машина пользователя вычисляет Р2. Затем сервер вычисляет и сравнивает его с хранящимся в файле значением. Если эти значения совпадают, регистрация разрешается, целое число увеличивается на единицу, а Р2 записывается в файл паролей поверх Р1. И если злоумышленнику удастся узнать Рi, у него нет способа получить из него Рi+1, а только Рi-1, то есть уже использованное и теперь бесполезное значение. Когда все n паролей использованы, сервер реинициализируется новым секретным ключом.

4.3. Схема аутентификации «Отклик─отзыв»

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

1. Девичья фамилия вашей матери?

2. Ваше любимое блюдо?

3. Ваше увлечение?

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

Могут быть и другие варианты аутентификации «отклик-отзыв». Пользователь выбирает алгоритм, идентифицирующий его как пользователя, например . При входе в систему сервер генерирует некое случайное число, например 8. В ответ пользователь посылает серверу 64. Сравнивая полученное число с расчетом, производится аутентификация. Используемый алгоритм может отличаться утром и вечером, в различные дни недели, по четным и нечетным числам и т. д. Например , где
d – номер дня в недели.

 

4.4. Обзор наиболее распространенных методов взлома информационной системы

К наиболее распространенным методам взлома информационной системы можно отнести следующие:

- доступ к информации через терминалы защищенной информационной системы;

- получение пароля на основе ошибок администратора и пользователей;

- получение пароля на основе ошибок в реализации системы;

- социальная психология и иные способы получения ключа;

- комплексный поиск возможных методов доступа.

Далее рассмотрим более подробно каждый из этих методов.