Шифруем информацию

Ушаков Андрей

Xakep, номер #063, стр. 063-074-1

(andrew@sumteh.ru)

SSL: теория и практика

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

Перехват передаваемой через Сеть информации

Электронная почта, WEB-сервисы, IRC и ICQ уже стали неотъемлемой частью пользователей интернета. Стоит ли напоминать, что протоколы наиболее часто используемых служб передают информацию в открытом виде, легко доступном для перехвата? Не требуется большого ума, чтобы запустить снифер и перехватить все, что передается по протоколам вышеперечисленных служб. Это могут быть пароли идентификации в интернет-магазине, пароли от почты, сама почта, IRC-диалог. Подумай, кому будет приятно вторжение в личную жизнь, а уж тем более, если злоумышленник перехватит ценную информацию?

Непосредственный доступ к файлам системы

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

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

1. Гарантировать конфиденциальность данных.

2. Гарантировать неизменность данных при передаче или хранении.

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

Мощным средством шифрования в UNIX является пакет утилит и библиотек OpenSSL. Этот пакет, а точнее, входящие в него утилиты, предоставляет следующие возможности:

- Работа с RSA и DSA ключами

- Шифрование/дешифрование файлов

- Создание хешей (контрольной суммы) файла

- Создание шифрованных туннелей на сетевом уровне

- Создание сертификатов

- Работа с S/MIME

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

Начнем с самого простого: с установки пакета OpenSSL. Вполне возможно, что он уже установлен в твоей системе, но не факт. Если его у тебя нет, то OpenSSL обязательно должен быть в дистрибутиве, поэтому можешь установить его оттуда. Архив с исходными кодами можно скачать с сайта www.openssl.org. Я рекомендую тебе собирать OpenSSL последней версии самому, а не использовать уже скомпиленные бинарники. На то есть свои причины. Во-первых, ты имеешь возможность оптимизировать приложение под конфигурацию именно твоей машины, а во-вторых, совсем недавно в пакете OpenSSL были обнаружены уязвимости, которые исправлены в последних версиях. Архив с исходными кодами последней версии (0,97c или 0,96k) весит 2,7 мегабайта. Не стану уделять пристальное внимание процедуре компиляции - она достаточно проста. Все опции компиляции, а также сама процедура, описаны в файле INSTALL, который находится в архиве с исходниками.

Содержание  Вперед на стр. 063-074-2
ttfb: 4.6179294586182 ms