Брокеринг VNC-соединения (сервер протокола RFB) - PullRequest
1 голос
/ 06 сентября 2011

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 07 сентября 2011

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

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

...