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.