Какая разница между ssh, stunnel,ipsec и openvpn?
В общем случае разница во всех этих сервисах в том, на каком уровне TCP/IP они работают. Отсюда вытекает, что они могут и что позволяют.Openvpn - работает на уровне L2 и L3, создает новое сетевое соединение, влияет на всю систему, можно пропустить весь трафик, нужны рутовые права.Stunnel - работает на L4, L5. Это SSL, только для вполне указанных сервисов. Рутовых прав не требует, работает с конкретными портами и протоколами, можно подключаться через проксю.IPSec - в принципе, как openvpn, только на L3. Чуть тяжелее в конфигурировании, зато более универсален. Можно подключаться с сетевых железок. А вообще, IPSec - целый фрейворк для конфигурирования различных шифрованных соединенийSSH в режиме туннеля - тот же самый openvpn, который не надо настраивать. Он использует те же самые алгоритмы, библиотеки и функции, что и openvpn. Рутовые права, создание новых интерфейсов при этом никто не отменял. Я бы сказал - разовое мероприятие.SSH в режиме прокси - в принципе, аналог Stunnel. Также прикладной уровень, также SSL, также не нужно рутовых прав, также работает через проксю. Ну и нужно каждый раз заново запускать, тоже разовое мероприятие
В общем одни решения - SSL, другие - VPN. Через SSL общается конкретное приложение с другим конкретным. Через VPN могут общаться целые сети по любым протоколам.
Если интересно, вот здесь более детальное описание, правда на буржуйском.
IPSec - набор протоколов сетевого уровня, используется при организации VPN соединений. 
OpenVPN - реализация технологии VPN.  
SSH вообще протокол L7. 
все они (и stunnel в том числе) умеют строить туннели - но не приложение-приложение, а ПК-ПК.
Исходя из вопроса "Задача - сделать зашифрованное соединение между клиентским и серверным приложениями."
я бы посоветовал обратить внимание на SSL(must die)/TLS.