Stunnel что за программа

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

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

Не знаю, почему раньше я не обратил внимания на эту программу. Думаю, многие из моих коллег, профессионально занимающихся защитой информации, до сих пор не подозревают о ее существовании. Мне порекомендовали программу после того, как в течение нескольких дней я безуспешно пытался заставить Outlook Express пятой версии осуществлять SSL-соединение c почтовым сервером в режиме взаимной аутентификации, и оказалось, что в текущей версии такая возможность не реализована. У меня не оставалось выбора.

stunnel configuration

Конечно, я крайне скептически отнесся к небольшой программе, претендующей на «встраивание» SSL в готовые Windows-приложения, но все же мне пришлось попробовать STunnel. Установка программы заняла всего несколько минут, и самое главное, что это решение действительно работало. Когда система уже введена в эксплуатацию, используемые в ней идеи кажутся простыми и очевидными, но перед этим можно потратить дни и даже месяцы на поиски нужных программ. STunnel стала для меня маленьким открытием, позволившим отказаться от громоздких и запутанных решений. Но обо всем по порядку.

Защита соединений и SSLeay

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

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

Такое решение, как виртуальные частные сети (VPN, virtual private network), здесь не подходит. Традиционно методы подтверждения полномочий определялись в спецификациях прикладных протоколов, таких как http, pop3 или imap. Как правило, эти методы ограничивались передачей от клиента к серверу имени пользователя и пароля, причем пароль передавался в открытом виде.

Под влиянием справедливой критики экспертов по компьютерной безопасности и благодаря появлению протоколов Secure Sockets Layer (SSL) и Transport Layer Security (TLS) [1] ситуация стала меняться. Все больше производителей серверных программ реализуют в приложениях возможность проверки полномочий посредством SSL и TLS.

Encrypt data transfers with Stunnel and OpenSSL — Part 1

Для реализации SSL часто используют предложенную Эриком Янгом и Тимом Хадсоном (Eric Young, Tim Hudson) библиотеку SSLeay (www.psy.uq.edu.au/~ftp/Crypto), бесплатно предоставляемую в исходных текстах. Эта библиотека успешно встроена в ряд серверных продуктов (например, в Web-сервер Apache) и хорошо себя зарекомендовала. Кроме того, она работает не только в открытых системах, но и в Windows 9x и NT. В настоящее время развитие SSLeay продолжается в проекте OpenSSL (www.openssl.org). Благодаря OpenSSL, а также коммерческим криптографическим библиотекам, предлагаемым RSA Data Security, сегодня реализация SSL в серверных приложениях не представляет серьезных проблем.

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

С другой стороны, коммерческие производители программ столь искусно дозируют использование криптографических средств в своих приложениях, что иногда просто невозможно понять, что же реально умеет делать программа [2].

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

Основная идея STunnel

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

К тому же большинство популярных Windows-программ в исходных текстах не распространяется [3]. Если ваша программа не поддерживает SSL, задача обеспечения безопасности при работе в сети кажется нерешаемой. Однако это не так.

Читайте также:
Conference uri dialer что это за программа

STunnel позволит вам использовать защищенные соединения практически в любой программе. Для того чтобы «научить» программу (например, упомянутый выше Outlook Express) работать с SSL в полном объеме, просто следует запустить STunnel, и пока она запущена, вся ваша почта будет доставляться на сервер через защищенное соединение.

Это достигается при помощи следующего приема. Программы, использующие протоколы TCP/IP, могут взаимодействовать не только с программами, запущенными на других компьютерах; иногда бывает полезным запустить программу-клиент на том же компьютере, что и программу-сервер. Поэтому каждому компьютеру присваивается локальный IP-адрес 127.0.0.1, позволяющий запущенным на нем приложениям работать так, как будто взаимодействие между ними происходит по сети.

STunnel использует это свойство. Он запускает на вашем компьютере небольшой сервер-посредник (proxy) [4]. Ваш почтовый клиент реально работает не с сервером электронной почты, а с локальным сервером-посредником, который, в свою очередь, и устанавливает защищенное SSL-соединение с почтовым сервером. Таким образом, внутри вашего компьютера информация передается в открытом виде, а между компьютером и сервером — в защищенном. Примерно такой же механизм может использоваться и на сервере.

Думаю, для системных администраторов и программистов сказанного выше вполне достаточно, чтобы успешно использовать STunnel на серверах или рабочих станциях для любых сетевых приложений. Добавлю только, что официальная страница STunnel доступна на http://mike.daewoo.com.pl/computer/stunnel.

Дальнейшие советы предназначены в основном для пользователей, и в первую очередь — для пользователей Windows 95/98, NT и Windows 2000.

Практические советы

К сожалению, пока программа STunnel плохо документирована, не обладает графическим интерфейсом и в малой степени использует другие возможности Windows. Поэтому ее настройка и использование требует аккуратности.

Я экспериментировал с версией 3.4a, возможно, в других версиях некоторые детали отличаются от указанных ниже.

Состав продукта

В Пакет входят три обязательных файла: программа stunnel.exe и две динамически подключаемые библиотеки libeay32.dll и libssl32.dll, позаимствованные из пакета OpenSSL. Практически вся доступная на сегодня документация находится в файле faq.txt (на английском языке). Скорее всего, вам понадобится файл с закрытым ключом и сертификатом. Имя этого файла может быть произвольным. Создать его можно с использованием пакета OpenSSL.

Какой-либо специальной установки для STunnel не требуется. Для начала работы файлы libeay32.dll и libssl32.dll необходимо скопировать в системный каталог Windows (по умолчанию это c:windowssystem для Windows 9х или c:winntsystem32 для NT).

Параметры запуска

Для того чтобы правильно запустить stunnel.exe, вам необходимо указать несколько параметров. Параметры начинаются со знака минус и разделяются пробелом. Полный список параметров можно получить, запустив STunnel с параметром -h. Описание параметров приведено во врезке.

Для работы в режиме клиента, то есть при использовании STunnel совместно с клиентским программным обеспечением (например, с программой электронной почты), всегда следует указывать параметр -c. Кроме этого, вам всегда придется указывать еще как минимум два параметра: протокол, который использует ваша программа (-d), и протокол, используемый сервером, с которым устанавливается защищенное соединение (-r).

Для указания протоколов могут быть использованы либо их текстовые названия, либо закрепленные за протоколами номера портов. Например, протокол передачи сообщений электронной почты называется smtp, и для него зарезервирован порт с номером 25, поэтому в качестве протокола, используемого приложением для отправки почты, надо указать параметр -d smtp или же -d 25.

Напомню, что соответствие протоколов и номеров портов задается файлом services, который располагается в каталоге c:windows для Windows 95 или в каталоге c:winnt system32driversetc для NT. В этом файле могут быть не указаны протоколы, используемые сервером, ожидающим защищенное соединение. Названия таких протоколов и соответствующих стандартных портов приведены во врезке на стр. 38.

STunnel нецелесообразно использовать для защиты протокола http, так как для каждого сервера, с которым вы работаете, придется запускать новую копию stunnel.exe. Впрочем, большинство браузеров реализует защиту протокола http.

Рассмотрим простой пример использования STunnel. Известно, что одним из наиболее существенных недостатков протокола получения электронной почты pop3 является передача пароля в открытом виде, то есть любой компьютер, через который вы связываетесь с сервером почты, может быть использован злоумышленником для того, чтобы узнать ваш пароль и беспрепятственно читать вашу почту. STunnel решает эту проблему. Вам достаточно запустить программу со следующими параметрами: stunnel -c -d localhost:pop3 -r сервер:995, где «сервер» — имя вашего почтового сервера, например pop3.mail.ru. А в настройках вашей почтовой программы в качестве сервера входящей почты следует указать адрес локального компьютера 127.0.0.1 или localhost (см. рис.).

Читайте также:
Программа джона смита что это

STunnel [-c] [-T] [-p pemfile] [-v level] [-a directory] [-t timeout] [-u username] [-n protocol] -d [ip:]port -r [ip:]port

Создание ключа и получение сертификата

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

Безусловно, наибольший интерес представляет второй режим SSL, режим со взаимной аутентификацией клиента и сервера. Использование клиентских цифровых сертификатов позволяет не только обеспечить конфиденциальность передаваемых данных, но и отказаться от таких неудобных и слабых механизмов аутентификации, как пароли.

Для того чтобы выработать собственный цифровой сертификат, вам понадобится пакет OpenSSL [5].

Вы можете действовать по одному из двух сценариев: 1) создать ключ и заявку на сертификат при помощи программы OpenSSL, отправить заявку для регистрации в службу заверения сертификатов (certificate authority, CA) [6] и дождаться получения сертификата, или же 2) создать при помощи OpenSSL собственный локальный certificate authority, в котором и зарегистрировать ваш ключ [7].

Для реализации первой стратегии вам следует создать файл конфигурации req.cnf (см. врезку) и вызвать программу openssl.exe с следующими параметрами:

openssl.exe req -new -config req.cnf -out stunnel.req

Полученный в результате файл stunnel.req следует отправить в certificate authority для заверения. После того как вы получите заверенный сертификат, например, в файле stunnel.crt, вам останется просто добавить его к файлу закрытого ключа stunnel.pem командой copy stunnel.pem + stunnel.crt. В дальнейшем при использовании STunnel запускайте файл с дополнительным параметром -p stunnel.pem.

Возможные угрозы

Следует сказать несколько слов о том, какие атаки может попытаться осуществить злоумышленник. Прежде всего, любая криптозащита эффективна только в том случае, если злоумышленнику недоступен ваш закрытый ключ. Он хранится в файле stunnel.pem. Кроме того, ценность для злоумышленника представляет файл .rnd, используемый пакетом OpenSSL как «рассада» (seed file) для выработки ключей.

Если вы работаете в операционной системе Windows 95/98, ни при каких обстоятельствах не храните ключи в каталоге, к которому разрешен доступ из сети. При использовании Windows NT и файловой системы NTFS обязательно запретите доступ к этому файлу всем, кроме себя.

Другой неочевидной и крайне неприятной угрозой является возможность использования сервиса STunnel с другого компьютера. Дело в том, что если вы запустите STunnel, не указав явно в параметре -d IP-адрес локального компьютера, то любой подключенный к Internet компьютер сможет воспользоваться вашей Stunnel как сервисом-посредником (proxy). К счастью, эта проблема легко решается: просто при каждом запуске STunnel следует явно указывать, что программа будет обслуживать только локальный компьютер, например, -d localhost:pop3 или -d 127.0.0.1:pop3. Остается только сожалеть о том, что это правило не предусмотрено «по умолчанию».

Как видите, использовать STunnel достаточно просто. Если все же процедуры настройки покажутся вам сложными, а интерфейс — недостаточно дружественным, можно адаптировать STunnel в соответствии со своими потребностями и вкусами. Ведь этот продукт невелик по размеру и поставляется с исходными текстами.

Разработчики STunnel обещают в ближайших версиях реализовать графический интерфейс для Windows и протоколирование событий в EventLog. Я считаю, что более важным была бы реализация STunnel в виде сервиса Windows NT, разработка правил управления сертификатами и шифрование ключей на пароле, как это реализовано в OpenSSL. Возможно, вам покажется более актуальным добавить в STunnel какие-либо другие возможности.

1 (обратно к тексту) — Протокол TLS (RFC2246) разработан на базе версии 3 протокола SSL и незначительно отличается от SSL. TLS также поддерживается новейшими версиями OpenSSL. Основное отличие TLS от SSL в том, что TLS специфицирует конкретный слой сетевой модели (а именно транспортный), по отношению к которому строится механизм защиты, а SSL апеллирует не к сетевой модели, а к модели ее реализации (socket’у).

Читайте также:
Для чего программа timaavn

2 (обратно к тексту) — Так, например, чтобы научить MS Internet Information Server версии 4.0 аутентифицировать клиентские приложения с использованием цифровых сертификатов, в документации рекомендовано сначала добавить сертификат в браузер, устанавливаемый на том же компьютере, что и Web-сервер, а затем синхронизировать справочники сертификатов браузера и Web-сервера при помощи утилиты iisca.

3 (обратно к тексту) — Следует отметить, что Microsoft предложила способ встраивания SSL в Windows NT, однако этот способ довольно сложен и требует досконального знания сетевых средств этой операционной системы.

4 (обратно к тексту) — Существуют и другие продукты, построенные на этом принципе, например sslwrap (www.rickk.com/sslwrap), но по ряду причин я остановился именно на STunnel.

5 (обратно к тексту) — Внимание! Программы STunnel и OpenSSL могут использовать разные версии библиотек, поэтому вам лучше скопировать файлы libeay32.dll, ssleay32.dll и openssl.exe в отдельный каталог и запускать openssl.exe только из этого каталога.

6 (обратно к тексту) — Список действующих CA и их Web-адресов можно найти в окне Security|Sertificates|Signers приложения Netscape Navigator/Communicator или Start|Settings|Control Panel|Internet|Content|Certificates|Authorities|Secure Email. Обязательно обратите внимание на то, что американские CA, как правило, не подписывают сертификатов ключей достаточной длины для пользователей за пределами США/Канады.

7 (обратно к тексту) — В этом случае «корневой» самоподписанный сертификат вашего персонального CA должен быть зарегистрирован на сервере, с которым вы взаимодействуете, как пользующийся доверием. Для этого вам потребуется связаться с администрацией сервера.

Источник: old.computerra.ru

Stunnel

Stunnel представляет собой криптографический SSL/TLS-прокси-механизм, который принимает незащищенное TCP-соединение «на вход», устанавливает защищенное SSL/TLS-соединение с удаленным сервером и передает по нему, полученные «на вход», данные. Адрес и порт удаленного сервера прописываются в конфигурационном файле stunnel.

В рамках протокола SSL/TLS возможно выполнение клиентской аутентификации по цифровому сертификату. Закрытый ключ, соответствующий сертификату, может храниться на USB-токене или смарт-карте. Для использования продуктов Рутокен в приложении stunnel предназначена библиотека pkcs#11: например, opensc-pkcs11 из проекта OpenSC или engine_pkcs11.

При этом конфигурационный файл stunnel должен быть модифицирован следующим образом:

engine=dynamic engineCtrl=SO_PATH:/usr/lib/opensc/engine_pkcs11.so engineCtrl=ID:pkcs11 engineCtrl=LIST_ADD:1 engineCtrl=LOAD engineCtrl=MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so engineCtrl=INIT [service] engineNum=1 key=id_45

Подробнее о том, как с помощью stunnel защитить RDP-соединения по протоколу TLS, в статье Защита RDP по ГОСТ с помощью Рутокен ЭЦП. Двухуровневый TLS .

Источник: www.rutoken.ru

ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD

Опубликованно 03.09.2016 автором admin . Рубрика: Программы под FreeBSD. Добавить в закладки: постоянная ссылка.

STunnel — программа, позволяющая защитить любой небезопасный сервис, способный работать по TCP-протоколу,включая сервисы, которые изначально не имеют интеграции с TSL/SSL. STunnel осуществляет прозрачное, как для пользователя (в случае использования клиентских сертификатов), так и для сервиса шифрование трафика.

Принцип работы демона STunnel прост: зашифрованный пакет, поступающий для сервиса, расшифровывается STunnel и передается незащищенному сервису.

Передача ответа от сервиса происходит в обратном порядке.

К достоинствам STunnel можно отнести также простоту установки и настройки.

Ставим OpenSSL,если кто не поставил.

#make make install

#cp work/stunnel.cnf /usr/local/etc/stunnel/stunnel.conf

добавляем в rc.conf

Создаем каталог для хранения сертификатов и копируем скачанный с сайта сертификат и приватный ключ сервера.

#cp certificate.crt /usr/local/etc/stunnel/certs

#cp privatekey.key /usr/local/etc/stunnel/certs

Так как демон STunnel работает в chroot-окружении, создаем каталог для chroot и установливаем нужные права.

#chown stunnel:stunnel /var/run/stunnel

#chmod 700 /var/run/stunnel

Отредактируйте файл конфигурации stunnel и поместите туда следующие строки для

настройки демона stunnel:

cert = /usr/local/etc/stunnel/certs/certificate.crt расположение сертификата

key = /usr/local/etc/stunnel/certs/privatekey.pem расположение ключа

chroot = /var/run/stunnel/ каталог chroot

chroot setuid = stunnel

pid = /stunnel.pid PID-файл, создается в chroot-окружении

verify = 0 не запрашивать сертификат клиента

debug = 7 подробность записей в log-файле

output = /var/log/stunnel.log расположение log-файла

Обычные настройки, приведены для ОС FreeBSD:

Определите защищаемые сервисы в файле конфигурации, например, так

Описание каждого сервиса должно быть в квадратных скобках.

— адрес и порт, на который поступают зашифрованные запросы

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

Если адрес не указан, то использоваться будут все доступные сетевые интерфейсы.

При необходимости, отредактируйте правила брандмауэра.

Источник: freebsd-ru.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru