Encoding Data in Packet Delays

If you’ve ever been to a capture the flag hacking competition (CTF), you’ve probably seen some steganography challenges. Steganography is the art of concealing data in plain sight. Tools including secret inks that are only visible under certain light have been used for this purpose in the past. A modern steganography challenge will typically require you to find a “flag” hidden within an image or file.

[Anfractuosus] came up with a method of hiding packets within a stream of network traffic. ‘Timeshifter’ encodes data as delays between packets. Depending on the length of the delay, each packet is interpreted as a one or zero.

To do this, a C program uses libnetfilter_queue to get access to packets. The user sets up a network rule using iptables, which forwards traffic to the Timeshifter program. This is then used to send and receive data.

All the code is provided, and it makes for a good example if you’ve ever wanted to play around with low-level networking on Linux. If you’re interested in steganography, or CTFs in general, check out this great resource.

Meshing Pis with Project Byzantium

If internet service providers go down, how are we going to get our devices to communicate? Project Byzantium aims to create an “ad-hoc wireless mesh networking for the zombie apocalypse.” It’s a live Linux distribution that makes it easy to join a secure mesh network.

[B1tsh1fter] has put together a set of hardware for running Byzantium on Pis in emergency situations. A Raspberry Pi 2 acts as a mesh node, using a powerful USB WiFi adapter for networking. Options are provided for backup power, including a solar charger and a supercapacitor based solution.

The Pi runs a standard Raspbian install, but uses packages from the ByzPi repository. This provides a single script that gets a Byzantium node up and running on the Pi. In the background, OLSR is used to route packets through the mesh network, so that nodes can communicate without relying on a single link.

The project has a ways to go, but the Raspberry Pi based setup makes it cheap and easy to get a wide area network up and running without relying on a single authority.

VCF East X: The Quarternet Steering Committee

Today was the first day of the Vintage Computer Festival East X. As is the tradition, the first day was packed with talks and classes about various retrocomputing ephemera, with this year featuring a great talk from [David Riley] about 8-bit computer music, a class on system architecture from our own [Bil Herd] (video coming soon), and a talk about vintage teletypes. One of these talks was about creating new hardware: [Jim Brain]’s steering committee on a networking solution for vintage microcontrollers. It’s called Quarternet: a two-bit solution for an eight bit world.

While minicomputers are easily networkable, designed around multi-user operating systems, and have the hardware for a lot of networking hardware, 8-bit micros are the exact opposite. That doesn’t mean 8-bitters don’t have networking; you can get an Ethernet cart for a C64, and just about everything can connect to a BBS. [Jim]’s talk was about whittling down the use cases for the Quarternet to something that could be implemented easily, but still give the most capability.

During the talk, the audience settled on using a serial connection from the micro to the outside world; this makes sense, as everything has a serial port. A ‘lightweight API’ was suggested to take up the software side of the problem, but there wasn’t much agreement over what that API would actually do.

[Jim]’s idea is for a box that plugs into the serial port of any old microcomputer and would connect to the Internet somehow. Ethernet, WiFi, or even a modem isn’t out of the question here. That takes care of connecting to the Internet, but there’s also the question of the cooler side of networking – network drives, file sharing, and the like.

For this, [Jim] is imagining a box with a serial port on one end, and a network port on the other. In the middle would be a cartridge slot for any hardware imaginable. If you want to plug in an Apple II disk drive, just insert the right cartridge and you’re good to go. If you need network access to a Commodore 1541 drive, just insert another cartridge, and it’ll just work.

It’s an interesting idea, but [Jim] is really interested in getting even more feedback for a networking system for old microcomputers. If you have any ideas, leave a note for him in the comments.

Great Scott! A Flux Capacitor Notification Light

If you are into your social media, then you probably like to stay updated with your notifications. [Gamaral] feels this way but he wasn’t happy with the standard way of checking the website or waiting for his phone to alert him. He wanted something a little more flashy. Something like a flux capacitor notification light. This device won’t send his messages back in time, but it does look cool.

He started with an off-the-shelf flux capacitor USB charger. Normally this device just looks cool when charging your USB devices. [Gamaral] wanted to give himself more control of it. He started by opening up the case and replacing a single surface mount resistor. The replacement component is actually a 3.3V regulator that happens to be a similar form factor as the original resistor. This regulator can now provide steady power to the device itself, as well as a ESP8266 module.

The ESP8266 module has built-in WiFi capabilities for a low price. The board itself is also quite small, making it suitable for this project. [Gamaral] used just two GPIO pins. The first one toggles the flux circuit on and off, and the second keeps track of the current state of the circuit. To actually trigger the change, [gamaral] just connects to the module via TCP and issues a “TIME CIRCUIT ON/OFF” command. The simplicity makes the unit more versatile because an application running on a PC can actually track various social media and flash the unit accordingly.

Mesh networking with multiple Raspberry Pi boards

Since he’s got several Raspberry Pi boards on hand [Eric Erfanian] decided to see what he could pull off using the robust networking tools present in every Linux installation. His four-part series takes you from loading an image on the SD cards to building a mesh network from RPi boards and WiFi dongles. He didn’t include a list of links to each article in his post. If you’re interested in all four parts we’ve listed them after the break.

He says that getting the mesh network up and running is easiest if none of the boards are using an Ethernet connection. He used the Babel package to handle the adhoc routing since no device is really in charge of the network. Each of the boards has a unique IP manually assigned to it before joining. All of this work is done in part 3 of the guide. The link above takes you to part 4 in which [Eric] adds an Internet bridge using one of the RPi boards which shares the connection with the rest of the mesh network.

If the power of this type of networking is of interest you should check out this home automation system that takes advantage of it.

Continue reading “Mesh networking with multiple Raspberry Pi boards”

IP over LEGO train carrier

[Maximilien] sent in a networking protocol built out of a LEGO train set. Unlike IP over Avian Carrier this system won’t be killed by plate-glass windows or birds of prey, but we’d hate to step on [Max]’s work in bare feet.

The system uses a USB flash drive to carry data around to different nodes. At each node, [Max] removed the power from the tracks and added a relay to start the train up again. A mechanical switch detects the presence of the train, and an Arduino makes the link to the Linux boxes via serial-over-USB.

The physical connection of the flash drive is with four wires and aluminum foil contacts. To send data, the system waits for the train to arrive at the ‘station’, mounts the drive, checks if there is data for it, and sends what needs to be sent. After unmounting the drive, power is applied to the local rail and the train continues on its journey.

[Max] admits that the latency on his network is terrible, but the bandwidth should be fairly good. As the old saying goes, ‘Never underestimate the bandwidth of a station wagon full of tapes.’ We’re not quite sure how that applies to LEGO trains, but there you go. Check out the gallery of [Max]’s work after the break.

Continue reading “IP over LEGO train carrier”

Nanode: A low-cost network-enabled Arduino Ethernet alternative


The folks over at Hackspace London have been working hard to create a “very low cost, open source, Internet connected platform on which others can develop their ideas”, which they have dubbed “Nanode”.

Essentially an Arduino with Ethernet networking on-board, the Nanode is armed with an ATMega 328 microcontroller along with all the other standard goodies you would expect from an Arduino-compatible device. The Nanode can be controlled with a web browser right out of the box, thanks to some custom Ethernet libraries. Additionally network of Nanodes can be easily configured to communicate with a “master” unit via a multidrop serial bus, allowing the device to be used for a wide array of distributed control tasks.

Obviously most of these features can be had in the form of an Arduino Ethernet board, or achieved by using an Ethernet shield. The Nanode is a touch cheaper than either option at $40 for a kit, and the native networking capabilities sound like they would be quite handy. That said, we are a bit bummed that it only has 10BaseT networking capabilities, though it is always nice to have options when it comes to choosing a microcontroller board.

[Thanks, TheHypnotist]