| > Shellvault uses a websocket to connect a client-side terminal emulator to an SSH process on Shellvault's servers. When you type a command, it goes through the websocket to the SSH client running on our servers, and the socket sends the response back to the terminal in your browser. So this gives Shellvault complete shell access to your server. It could be improved by terminating SSH at the browser, and just using the Shellvault server as a dumb proxy. Step 1: javascript ssh client - https://github.com/mscdex/ssh2 Step 2: websocket tcp proxy - https://github.com/novnc/websockify Step 3: javascript terminal emulator - https://github.com/rohanchandra/javascript-terminal Step 4: ??? Step 5: Profit EDIT: And a really roundabout way to do this is to run the dropbear ssh client inside Fabrice Bellard's in-browser Linux VM: https://bellard.org/jslinux/ which actually already works today |
But I also wanted to remind everyone, that even with a javascript implementation that works, you're still trusting the server to give you the correct javascript when the site is loaded. In my mind, this doesn't make moving the crypto any more secure, since to attack you, I can just modify the javascript client on next page load to include a back door. So either way, ShellVault has complete access to your server, because they control the implementation that runs in the browser.