Developer Creates Virtual Modem for Airgapped Computer
Ashley Allen / 7 years ago
Developer Martin Kirkholt Melhus, his work hampered by his employer’s airgapped computer, desperately wanted to connect to the internet. Consequently, spying a nearby internet-connected laptop and his workstation’s 3.5mm audio jack, gave Melhus a brainwave. Mehlus, as a result, tackled the dilemma by creating a virtual modem using HTML5 audio.
Virtual Modem for Airgapped Computer
Mehlus explains:
“Lately, I’ve been working with a client where my development computer is not connected to the Internet. This is a huge inconvenience, as the unavailability of Google and Stack Overflow vastly impact my productivity. Only recently have I begun to grasp how much of my time is actually spent copy/pasting between Visual Studio and the browser.
My office also features an Internet connected laptop and my development computer expose 3,5 mm jack sockets for audio devices.”
Mehlus’ system converts HTML5 text into modem tones. Then, the receiving computer decodes these sounds an converts them back into text. First, the HTML5 audio streams out of headphones connected to the internet-connected laptop. Then, the sound picked up by the airgapped computer’s inbuilt mic. Finally, the target computer decodes the audio in a web browser. Of course, the connection is slow, but that’s not the point. The virtual modem can only communicate with another virtual modem; it is not compatible with real modems.
However, Melhus stresses that his virtual modem, though inspired by his work situation, is just a proof-of-concept. As such, he in no way intends to use his invention at work.
Melhus’ code is available for download from Github. A live demo is also available here.