Это зависит от того, как настроен VPN-сервер.
Большинство продуктов VPN используют IPSEC, стандартный протокол для шифрования соединений TCP / IP. Большинство продуктов также используют ISAKMP, протокол управления ключами архитектуры Internet Security, также стандарт, для настройки сеанса. Исходный код для IPSEC и ISAKMP доступен и может быть уже установлен в вашей системе.
Теперь о плохих новостях: хотя все, что я уже упомянул, является стандартным, схемы аутентификации, которые можно использовать с ISAKMP, являются почти всеми проприетарными. Две "стандартные" схемы аутентификации - это предварительно выданные ключи и сертификаты X.509. Если VPN-сервер настроен на разрешение любого из них, у вас есть шанс. В противном случае вы не сможете по-настоящему использовать VPN, поскольку этот протокол действительно проприетарный, и его практически невозможно реконструировать, поскольку диалог аутентификации зашифрован.
Гораздо более простой путь: вам действительно нужен VPN, или есть способ, которым вы можете туннелировать через SSL? Я думаю, что Java поддерживает SSL; Вы можете просто создать нужное безопасное гнездо и перейти оттуда.
Если вы знаете, какую клиентскую систему вы используете, подумайте над тем, чтобы вызвать клиент Cisco VPN для этой системы.
В противном случае вам придется копировать действия VPN-клиента. VPN-клиент выполняет аутентификацию и настройку сеанса с ISAKMP и устанавливает результат в ядро для создания VPN-соединения. Доступны реализации ISAKMP; вам нужно только выяснить, какая аутентификация используется, и попытаться настроить ее. В этот момент у вас будет собственный VPN-клиент.