node-rfb2 icon indicating copy to clipboard operation
node-rfb2 copied to clipboard

Adobe Remote Desktop auth support

Open sidorares opened this issue 12 years ago • 5 comments

See HandleARDAuth in libvncserver : https://github.com/kanaka/libvncserver/blob/master/libvncclient/rfbproto.c

Libvncserver implementation uses gcrypt library ( http://www.gnu.org/software/libgcrypt/ ) for big numbers arithmetics. JS projects: https://github.com/mnaamani/crypto-emscripten , https://github.com/mnaamani/otr3-em/blob/master/BUILDING

sidorares avatar May 06 '13 00:05 sidorares

also some other ARD security types / encodings: https://discussions.apple.com/message/12756901

The AppleVNC server supports security types 30, 2, and 35 however only 2 is documented in the >RFB protocol spec (www.realvnc.com/docs/rfbproto.pdf).

There are also other encodings the Screen Sharing app (VNC client) supports which are >undocumented (0x0000044C and 0x0000044D for example).

sidorares avatar Jul 02 '14 01:07 sidorares

I have found that enabling the "VNC Viewers may control screen with password:" option in System Preferences -> Sharing -> Remote Management -> Computer Settings... allows you to control an OSX computer with node-rfb2.

screen shot 2015-05-29 at 8 15 55 am

Works well on Yosemite and for me is actually smoother than UltraVNC on Windows. My only problem is Apple's implementation of this protocol is somewhat limited in the sense that when you control a computer, you are shown a login screen and need to log in as the user to see what they see. Not sure if there is a work around to this.

AshMartian avatar May 29 '15 15:05 AshMartian

with ARD security as far as I know you handshake using osx login/password and go directly to user session

sidorares avatar May 29 '15 15:05 sidorares

I see. Given that, the ARD handshake would occur by disabling that VNC setting mentioned above?

Looking through the source, I see in constants.js line 48, ARD security is defined.

In rfbclient.js line 130 are switches for security. Would one start by adding a case for rfb.security.ARD?

AshMartian avatar May 29 '15 15:05 AshMartian

handshake algorithm itself is not implemented in node-rfb2 - I need to figure out what is doable with codecs provided by core node crypto and what not ( or just compile code from libvncserver with emscripten )

I think ARD is always enabled in mac server, and if you tick "VNC Viewers may control screen with password:" then vnc security is enabled in addition to ARD

sidorares avatar May 29 '15 15:05 sidorares