Брокеринг VNC-соединения (сервер протокола RFB)

Пожалуйста, рассмотрите следующий сценарий:

  • VNC-клиент пытается подключиться к VNC-серверу, который находится за NAT.

  • Я написал перенаправитель портов в Java, которые помогают мне в достижении вышеупомянутой задачи, и она отлично работает.

  • Теперь мне нужно каким-то образом добавить функцию посредника соединений в этот сервер пересылки, чтобы я также мог перехватывать связь между клиент-сервером VNC и проверять подлинность клиента VNC в утилите пересылки.

Возможно, вы уже догадались, что на самом деле я использую пароль, полученный от VNC Client, для проверки подлинности в моем приложении. Поскольку RFB-сервер может быть реализован на прикладном уровне, я полагаю, что этот перехват возможен... VNCAuthentication (шифрование / дешифрование DES) используется во всех вышеупомянутых коммуникациях. После успешной аутентификации в утилите пересылки я просто позволю пересылке продолжить для этого соответствующего клиента, иначе я могу закрыть ее (прекратить пересылку).

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

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

1 ответ

Решение

Это похоже на хорошую реализацию. Думайте об этом как о прокси VNC, так же, как о прокси HTTP(S). Есть также прокси-серверы аутентификации HTTP. Вы реализуете часть протокола VNC для создания аутентификационного прокси-сервера VNC.

Возможно, вы можете получить вдохновение от VNCProxy, существующего Java VNC-прокси.

Другие вопросы по тегам