Tag Archives: encrypting

Building an ATmega32U4-based FinalKey

The FinalKey is a one-button device tasked with securely encrypting and storing multiple passwords. Interested in building your own? Well, you’re in luck because CyberStalker recently posted detailed DIY build instructions for his FinalKey project.

Key project components include:

  • 1x Arduino Pro Micro (ATmega32U4)
  • 1x 6x6x7 mm Tact switch
  • 1x 3 mm LED
  • 1x 380 Ohm Resistor for LED
  • 2x 4.7K Ohm Resistor for I2C Pullup
  • 1x EEPROM
  • 1x The Final Key Case
  • Thin insulated wire (optional but highly recommended for ease of assembly)

Although building the FinalKey is relatively straightforward, CyberStalker recommends DIY Makers read up on basic soldering, using a hot-glue gun and burning firmware to AVR chips.

Recommended tools?

  • Soldering iron and solder
  • Hot-glue gun and hot-glue stick
  • Micro-USB cable
  • Small wire-pliers
  • Flat-head screw-driver
  • Optional: An ISP programmer like AvrISP-MKii

“Note that the optional ISP programmer is for burning the firmware without the Arduino bootloader,” CyberStalker wrote in a recent blog post.

“This option is the most secure as a bootloader on the chip leaves it open to attackers who could install compromised firmware on your FinalKey if it is connected to a compromised computer.”

CyberStalker kicks off the project by soldering the EEPROM chip to the Arduino.

“I used a bit of SuperAttack glue to hold it in place,” he explained.

“Place the EEPROM directly on top of the AVR chip and align its pins such that EEPROM pin0 is at Arduino pin A0 and EEPROM pin 5 (diagonally opposite of 0) is at Arduino pin 2. Then bend the pins down to holes and solder them in place.”

Next, CyberStalker turned the board around and soldered the two 4.7k pullups. They both connect to pin 15, one to pin 2 and the other to pin 3.

“Cut leads to reasonable lengths and fix the button and LED into the case before soldering the next components. I used a small amount of glue to fix the button, be careful about thin glues and tact switches,” he said.

“Solder a short length of wire to the switch and Arduino pins 9 and 7. Solder a short piece of wire to LED- and Arduino pin 10 and solder the 380 ohm reistor to LED+ [with] a small wire going to Arduino VCC.”

In terms of burning, CyberStalker modified a number of files in the Arduino distribution, so DIY Makers should use the patched files from the FinalKey firmware package.

Interested in learning more? You can check out FinalKey’s official project here.