Рассмотрим пример с Web-сервисом, который работает на 80 порту. На сервере можно запустить программу шифрования на 1080 порту, и все данные, которые будут приходить на него, будут декодироваться и передаваться на 80 порт. Если вы хотите предоставлять доступ к Web только по протоколу SSL, то 80 порт можно закрыть от вторжения извне сетевым экраном (о работе сетевого экрана мы подробно говорили в
Адреса сайтов, которые защищены специальными ключами, начинаются с "https://". Буква "s" как раз и говорит о том, что соединение безопасно. Помимо этого, при подключении через обозреватель с включенным SSL в правом нижнем углу окна, в строке состояния появляется значок. Например, в популярном браузере Internet Explorer это пиктограмма висячего замка (рис. 5.5).
Рис. 5.5. Строка состояния Internet Explorer для безопасного соединения
Но этот опознавательный значок даже в Internet Explorer появляется не всегда. Более точно определить тип используемого соединения можно по свойствам документа. Большинство браузеров имеют команду просмотра свойств загруженной страницы, по вызову которой можно увидеть и используемое шифрование. Например, в Internet Explorer необходимо выбрать меню File/Properties (Файл/Свойства). Перед вами откроется окно, как на рис. 5.6.
Рис. 5.6. Свойства документа в Internet Explorer
Обратите внимание на поле Connection. Информация в нем свидетельствует, что используется протокол SSL 3.0 RC4 со 128-битной схемой шифрования.
5.2.1. stunnel
В ОС Linux для шифрования и дешифрования трафика чаще всего используется программа stunnel. Но она только организует канал и выступает посредником, а для самого кодирования используется пакет OpenSSL, доступный в большинстве дистрибутивов Linux, и можно надеяться, что он у вас уже поставлен. Если нет, то это легко сделать с помощью установки соответствующего RPM-пакета с инсталляционного диска. Более подробную информацию по OpenSSL и последние обновления можно найти на сайте www.openssl.org,
В основу OpenSSL положено применение пары ключей: открытого и закрытого. С помощью открытого ключа можно только закодировать данные, но для расшифровки необходим закрытый ключ, который находится на клиенте.
У программ OpenSSL и stunnel очень много параметров, и рассматривать их все мы не будем. Лучше разберем реальный пример и познакомимся с наиболее часто используемыми аргументами.
Итак, давайте для начала запустим на сервере программу stunnel, которая будет расшифровывать входящий трафик и передавать его на какой-нибудь порт, например 25 (здесь работает SMTP-сервер Sendmail). Для этого выполните следующую команду:
stunnel -р /usr/share/ssl/cert.pem -d 9002 -r 25
В данном случае используется три параметра:
□ -p
— ключ, после которого указывается SSL-сертификат авторизации, по умолчанию уже созданный во время установки ОС или программы stunnel (находится в файле /usr/share/ssl/cert.pem);
□ -d
— показывает, что туннель должен работать как домен. После этого ключа ставится IP-адрес (необязательный параметр) и порт, на котором нужно ожидать подключения. Если адрес не указан, то будет прослушивание на всех интерфейсах локального компьютера. В качестве порта был выбран номер 9002. Все пришедшие на него данные считаются зашифрованными и будут декодироваться для передачи на другой порт локального компьютера;
□ -r
— после этого ключа указывается имя компьютера (не обязательный параметр) и порт, куда нужно передавать расшифрованные данные. Если хост не указан, то данные будут пересылаться на порт локального компьютера, в данном случае на 25, где должен работать SMTP-сервер. Если данные предназначены другому компьютеру, то в качестве параметра укажите 192.169.77.1:25
, где 192.169.77.1
— это IP-адрес компьютера.
Теперь рассмотрим запуск клиента. Тут все намного проще:
stunnel -с -d 1000 -r 192.168.77.1:9002
Здесь у нас появился один новый ключ:
□ -c
— означает, что туннель создается для клиента. По умолчанию программа stunnel запускается в серверном режиме.
Помимо этого, в нашем примере присутствуют уже известные параметры: -d
с указанием порта, на котором необходимо ждать подключения (значение 1000), и -r
, в котором указывается адрес и порт для передачи зашифрованных данных.
Теперь достаточно настроить свою клиентскую программу так, чтобы при отправке почты она направлялась на порт (в данном случае 1000) компьютера, где запущен stunnel-клиент, который будет шифровать данные и пересылать их на порт 9002 сервера с адресом 192.168.77.1. Там закодированные данные будет принимать stunnel-сервер, расшифровывать и передавать их на 25 порт сервера.
5.2.2. Дополнительные возможности OpenSSL
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии