USB Armory
The USB armory from Inverse Path is an open source hardware design, implementing a flash drive sized computer.
The compact USB powered device provides a platform for developing and running a variety of applications.
The security features of the USB armory System on a Chip (SoC), combined with the openness of the board design, empower developers and users with a fully customizable USB trusted device for open and innovative personal security applications.
The hardware design features the Freescale i.MX53 processor, supporting advanced security features such as secure boot and ARM® TrustZone®.
- Freescale i.MX53 ARM® Cortex™-A8 800Mhz, 512MB DDR3 RAM
- USB host powered (<500 mA) device with compact form factor (65 x 19 x 6 mm)
- ARM® TrustZone®, secure boot + storage + RAM
- microSD card slot
- 5-pin breakout header with GPIOs and UART
- customizable LED, including secure mode detection
- USB device emulation (CDC Ethernet, mass storage, HID, etc.)
- Open Hardware & Software
Installation
Follow the official Arch Linux ARM instructions.
Usage
Network
Device already has a static IP configured with 10.0.0.1
via systemd-networkd. Notably lacking is a default DNS configuration, which can easily be added:
/etc/systemd/network/gadget-deadbeef.network
[Network] DNS=1.2.3.4
On host, use the following netctl configuration:
/etc/netctl/armory
Description='Ethernet over USB Armory' Interface=$INTERFACE_NAME IP=static Address=('10.0.0.2/24')
Firewall
The official instructions require adding an iptables rule to allow packet forwarding from the USB Armory through the host machine:
# iptables -t nat -A POSTROUTING -s 10.0.0.1/32 -o eth0 -j MASQUERADE
Hosts that also have an active Simple stateful firewall must also change the FORWARD
policy:
# iptables -P FORWARD ACCEPT
Or setup a more restrictive rule that allows NAT forwarding on the host.
LED Brightness
By default, LED is way too bright after boot. Disable default modules:
/etc/modprobe.d/led.conf
blacklist leds_gpio blacklist led_class blacklist ledtrig_heartbeat
Use Systemd#Temporary files to set the brightness config:
/etc/tmpfiles.d/led.conf
w /sys/class/gpio/export - - - - 123 w /sys/class/gpio/gpio123/direction - - - - in
X
Follow Secure Shell#X11 forwarding.
See also
- https://github.com/yuvadm/usbarmory-arch for relevant packages mentioned in this article
- http://archlinuxarm.org/platforms/armv7/freescale/usb-armory Article on USB Armory on archlinuxarm.org
- https://wiki.archassault.org/USB_Armory Article on the USB Armory on the archassault.org wiki
- https://github.com/ckuethe/usbarmory/wiki/USB-Gadgets How to present USB Armory as a mass storage, hid device and ethernet adapter at the same time