Warning! This is a test release ONLY! The security and authenicity of this program provides is not guaranteed! Therefore, by default the server program will NOT execute any commands, even if a correct key combination is used. Please wait for a stable version before deploying on a system.
If you do test and find a bug, please submit it to wilbjor@iit.edu
Thanks!
Jordan Wilberding
About
One-time cipher based back door program for executing emergency commands.
Secure Back Door(SBD) is an alternative to leaving SSH open all the time. It is based on a secure one-time keypad method, that insures maximum security. Since SBD is very small, it is less likely to have security exploits, as compared to SSH. Therefore, you could leave an important computer up and running with just sbdd running in the background, and if an emergency came about, you could simple execute a command to bring ssh up, then work on the computer as regular. It would be as simple as doing ./sbd domain.com "/etc/init.d/sshd start", and with the proper key file set, the remote computer would have ssh up and running shortly.
Protocol
The protocol is detailed to an extent in the text file PROTOCOL, I will update it with more details as I have time, but the most important details are included already.
If you are a crypt analysis, or just like a challenge, I appreciate anyone who is willing to look through the protocol and/or code and point out possible security implications and flaws in design! If you do find something wrong please e-mail me at wilbjor@iit.edu
Compilation In Linux
g++ -Wall -O2 -o sbdd ssocket.cpp sha1.cpp utils.cpp sbdd.cpp g++ -Wall -O2 -o sbd csocket.cpp sha1.cpp utils.cpp sbd.cpp
Compilation In Windows
Open sbdd.dsp and sbd.dsp and build normally.
Running Server
./sbdd port -- Default port is 31415
Example 1: ./sbdd
Example 2: ./sbdd 5151
Running Client
./sbd hostname port message
Example 1: ./sbd localhost "/etc/init.d/sshd start"
Example 2: ./sbd localhost 5151 "/etc/init.d/sshd start"
Random Bytes Setup
In order for the client and server to properly work, you will need to have identical files enckey.bits for client, and deckey.bits for the server. You should also have an additional file of random bytes named athkey.bits for the server, which is used for authenticating the client against basic IP sproofs. There is a copy of each provided with the distribution for testing, but they should not be used for production, you need to generate your OWN random bytes. The easiest way might be to goto http://www.random.org, or create your own grand scheme. The production of random bytes is not provided by sbd.
Contact
Report bugs at http://sourceforge.net/tracker/?group_id=120366&atid=686787 or email me at wilbjor@iit.edu
