Шифруем информацию Ушаков Андрей 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, который находится в архиве с исходниками. |