Home Безопасность сети Криптозащита в *nix-системах: Windows отдыхает?

Криптозащита в *nix-системах: Windows отдыхает?

E-mail Печать PDF
В отличие от систем корпорации Microsoft, *nix-системы обладают открытым исходным кодом, что является большим плюсом, если говорить о безопасности: множество людей способно проверить код на устойчивость к взлому и наличие уязвимостей. Благодаря этому в *nix-системах уязвимостей на порядок меньше, чем в Microsoft Windows.

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

Начнем с алгоритмов, используемых программами для шифрования данных на локальном компьютере. В некоторых версиях *nix-систем еще встречается устаревший алгоритм DES с длиной ключа 56 бит. Однако гораздо лучше заменить его на алгоритм MD5, что и сделано в большинстве современных систем, если же у вас стоит старая версия - необходимо обновить алгоритм шифрования паролей.

Плюсы и минусы *nix-алгоритмов

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

Основные алгоритмы, применяемые для шифрования информации в *nix, 2007

Название

Длина ключа,
бит

Размер блока,
бит

Кол-во раундов

Тип алго
ритма

Особен
ности, досто
инства

Недостатки, уязвимости

3DES(Triple DES) 192
(реально исполь
зуются
168, 24 - контроль четности)
64 48 (3 раза по 16) Алгоритм симмет
ричного шифро
вания.
Более надежен, чем DES (фактически, это DES, приме
ненный 3 раза подряд) Устойчив к атаке meet-
in-the-
middle ("встреча посередине")
Основопо
лагающий алгоритм DES уже выработал свой ресурс; также характерны все обычные недостатки DES.
AES (RIJNDAEL)
(Advanced Encryption Standard)
128,
192,
256
128 10, 12, 14 (в зависимости от размера ключа) Алгоритм симмет
ричного шифро
вания.
Непри
менима Square-
атака Неприменим дифферен
циальный крипто
анализ Не сильно загружает систему в процессе работы
По данным за май 2007 возможна теорети
ческая атака на 10 раундов (из 12) AES 192, подвержен side-
channel атакам.
BLOWFISH До 448 64 16 Алгоритм симмет
ричного шифро
вания.
Полнораун
довый алгоритм практически невскрываем *
При работе потребляет много оперативной памяти
DES (Data
Encryption Standard)
64 (56 приме
няется для шифро
вания, 8- контроль четности)
64 16 Алгоритм симмет
ричного шифро
вания.
Хорошо зарекомен
довавший себя и изученный алгоритм
Легко взламы
вается на современных машинах
DESX Различная, зависит от конк
ретной реализации
Различный, зависит от конк
ретной реализации.
Различное, зависит от конк
ретной реализации.
Алгоритм симмет
ричного шифро
вания.
Усиленный алгоритм DES, нашел свое применение в аппаратных средствах защиты (например, eToken), конкретные досто
инства различаются для каждой модифи
кации.
У каждой модифи
кации свои недостатки. Основной минус
- исполь
зование устаревшего алгоритма DES
IDEA (Interna
tional Data Encryption Algorithm)
128 64 8 Алгоритм симмет
ричного шифро
вания.
8-ми и 4-х раундовые алгоритмы считаются невскрыва
емыми на сегодняшний день
Относи
тельно медленная скорость работы у полно
раундового алгоритма
RSA (Rivest, Shamir, Adleman) Надежен при длине >=1024 - Опреде
ляется длиной ключа.
Алгоритм асиммет
ричного шифро
вания.
При доста
точной длине ключа надежен - данные станут неакту
альны раньше, чем подберется код
Низкая скорость шифро
вания
(около 30 кб/с на ПК с 2.0 ГГЦ процессором)
При короткой длине ключа успешно взламы
вается "в лоб" Также возможен взлом, если найти метод вычисления корня степени e из mod N (результат и есть сообщение).

Источник: Данные автора, 2007

Среди симметричных алгоритмов стоит отметить 3DES, BLOWFISH, IDEA, обычно классифицируемые как алгоритмы средней безопасности. Также иногда встречаются алгоритмы серии RC*, но мы не будем их рассматривать, поскольку они являются запатентованной собственностью США, при легальном использовании на длину ключа этих алгоритмов законодательством США накладываются жесткие ограничения, и если им следовать, то алгоритм становится очень уязвимым для атак.

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

Отдельно про BLOWFISH

Алгоритм BLOWFISH был создан Брюсом Шнайером в 1993 г. для замены уже существующих алгоритмов. BLOWFISH - один из немногих свободно лицензируемых, незапатентованных алгоритмов, доступный для любого применения, который неоднократно выдерживал разнообразные проверки и был признан достаточно устойчивым к взлому. Немаловажное преимуществе BLOWFISH - он работает намного быстрее алгоритмов DES и IDEA. Все это стало следствием того, что г-н Шнайер поставил перед собой задачу создать алгоритм, который был бы лучше других по следующим критериям.

Скорость. На 32-битных процессорах программы, реализующие этот алгоритм, способны шифровать со скоростью 26 тактов на байт.

Компактность. Чтобы записать алгоритм как программу, необходимо всего 5 килобайт памяти.

Настраиваемая длина ключа и простота реализации алгоритма. В нем используются только простые операции: + , XOR, подстановка из таблицы (по 32-битовому операнду).

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

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

Факты успешного вскрытия алгоритма BLOWFISH с длиной ключа больше 128 бит не известны. Атаки с применением дифференциального криптоанализа более или менее успешно срабатывают против алгоритма с уменьшенным числом раундов, но лишь в том случае, если присутствуют слабые ключи.

{mospagebreak}

Алгоритм хорошо подходит для шифрования важных файлов, особенно с длиной ключа больше 128-бит. Хотя большинство программ для *nix-систем используют 1280-битный ключ шифрования, все они поставляются с открытым исходным кодом, так что опытный программист может легко изменить длину ключа, незначительно переписав программу. Исключения составляют лишь аппаратные средства защиты, алгоритм в которых жестко зашит в ПЗУ устройства.

Достоинства и недостатки алгоритма BLOWFISH

Плюсы (+) Минусы(-)
Изменяемая в широких пределах длина ключа Потребляет много оперативной памяти при работе
Простота реализации Не подходит для систем, где надо быстро менять ключи (коммутаторы пакетов и т.д.)
Открытые исходные коды Невозможность использования в смарт-картах
Скорость работы -
Компактность программной реализации -
Хорошая криптостойкость -

Источник: Данные автора, 2007

При установке в систему программы с алгоритмом BLOWFISH желательно проверить, реализованы ли в коде все 16 раундов алгоритма и достаточной ли длины ключ.

Неплохая "идея"

IDEA расшифровывается как International Data Encrypted Algorithm (Международный алгоритм шифрования данных). В отличие от BLOWFISH, этот алгоритм запатентован швейцарской компанией Ascom. Однако Ascom разрешил бесплатное использование алгоритма в некоммерческих компаниях. В коммерческих же программах его встретить трудно, поскольку его использование подразумевает лицензионные отчисления правообладателю.

Алгоритм был впервые предложен Ксуеджа Лаем и Джеймсом Мэсси в 1990 г., впоследствии он претерпел некоторые изменения, поскольку первоначальный вариант поддавался атакам с применением дифференциального криптоанализа. На сегодняшний день есть случаи взлома алгоритма с уменьшенным количеством раундов. IDEA несколько похож на DES: он шифрует блоки открытых данных длиной 64 бит, длина ключа составляет 128 бит.

Суть алгоритма заключается в смешении операций четырех алгебраических групп, т.е. исходные данные разбиваются на блоки по 16 бит в каждом, при комбинации используют три основные операции: XOR, сложение по модулю, умножение по модулю. Необходимо отметить два важных обстоятельства: три операции алгоритма способны работать только с блоками длиной 16 бит и чтобы обеспечить обратимость операции, 0 (нуль) кодируется как 65536.

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

На сегодняшний день наиболее эффективна атака алгоритма "в лоб", но, как пишет г-н Шнайер, "создайте микросхему, способную проверять миллиард ключей в секунду, объедините такие микросхемы, и вам потребуется 1013 лет для решения проблемы. Это больше возраста Вселенной".

Алгоритм можно использовать в любом режиме работы блочного шифра. Но при этом следует иметь в виду, что реализация двойного алгоритма IDEA будет неустойчива к атаке "встреча посередине". Да и сама целесообразность двойного алгоритма неясна, поскольку 8-раундовый IDEA вскрыть еще не удалось. Вилли Майеру удалось выполнить успешную атаку на 2-раундовый IDEA, а его создатель, Лай, утверждает, что алгоритм невозможно взломать уже после 4-го раунда.

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

Плюсы и минусы алгоритма IDEA

Плюсы (+) Минусы (-)
Бесплатен для некоммерческих целей Невозможность менять длину ключа
Высокая криптоустойчивость Недостаточная изученность
Схожесть с DES (легче понять принципы работы) Достаточно жесткие требования при программировании (длина блока 16 бит, кодировка нуля)
- Зачастую алгоритм портит неграмотная реализация программистов

Источник: Данные автора, 2007

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

Как защитить трафик

Поскольку все *nix-системы позиционируются в первую очередь как серверные ОС, то возникает вопрос - как передать данные через сеть адресату так, чтобы никто другой не мог получить доступ к передаваемой информации? С этим отлично справится Open SSL.

Недочеты защиты информации в *nix-системах

  1. Медленная скорость работы программ (из-за плохо оптимизированного кода, использования медленных выражений языка или просто из-за компиляции под другую версию системы;
  2. процент критических ошибок, из-за которых происходит зависание системы и программы, несколько выше, чем у профессиональных разработчиков софта (хотя в последние годы ситуация выправляется за счет возрастания интереса к *nix-системам и появления большего число людей, опробовавших новинку и указавших автору на ошибки
  3. отсутствие (в большинстве случаев) технической поддержки продукта;
  4. зачастую интерфейс программы хорошо понятен самому программисту, но не понятен пользователю;
  5. отсутствует единый стандарт написания интерфейса пользователя - чтобы пользователь мог без труда работать с различными программами, например, с разными версиями текстового редактора;
  6. часто справочные файлы и материалы написаны неграмотно, что при работе с программами для защиты данных является недопустимым.

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

Система умеет тестировать скорости работы алгоритмов, создавать сертификаты формата х509, а также выполнять запросы на сертификацию/ восстановление, высчитывать хэши, работать с S/MIME, проверять работу серверов и клиентов ssl, автоматически распределять алгоритмы по уровням безопасности.

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

{mosinnerdop:page, cnews.ru}
{mosinnerdop:link, http://www.cnews.ru/reviews/}
{mosinnerdop:copy, Дмитрий Махаев}
{mosinnerdop:info, Использованы материалы сайта CNews.Ru}
Обновлено 13.11.2007 21:37  


Послегарантийный сервис Ниссан в ЮВАО.

Официальный промо-код webasyst shop-script 457895.


Яндекс цитирования Rambler's Top100 Находится в каталоге Апорт