The device is based on the Atmel attiny85 device and uses V-USB software solution to have USB communications and enumerate as a keyboard.
The project started with the idea… what's the cheapest way of having a USB stick with all your passwords ?
About security… the device can't be accessed without entering a 4 digit PIN and all credential info is encrypted using NOEKEON cipher (we use this cipher as AES implementation is too much for the little attiny85).On the top image you can see the first Memtype prototype next to the first version. The prototype was done using a Digispark board and was modified to insert a 4 way switch. On the bottom, the latest (OSHPark made) version with SMD joystick and two LED is shown.
- Encrypted storage using NOEKEON implemented in ASM! https://en.wikipedia.org/wiki/NOEKEON
- PIN Lock, unlock it when connected! no one can use it if lost!
- Store not only the password but also the user! it types it all for you jumping from one field to another!
- Why stop there? store also the command and it'll type it for you! let it type the long “ssh user@someserver -p port” command for you or anything else! You can add waits so it types everything at the right time with ASCII SYN chars.
- Enumerates as a HID, no need for drivers, it'll work on any device with USB.
- Dynamic storage, so you're not limited to a fixed password length, just fill the 2K flash reserved for credential storage with anything you want 🙂
- Assign names to your stored user/password/commands so you can find them fast and easy.
- Easy command line tool to manage all your keys, make backups in xml, copy it to another device for some other user with access to the same services for example.
- Easy to generate keymaps, edit the example file and generate the one for your keyboard map and language.
- RED and GREEN leds two know device status LOCKED / UNLOCKED.
- Open Source Hardware and Software.
- Mac, Linux and Windows support for the command line tool.In a normal design the most extended method to flash an AVR microcontroller is by routing MCU ICSP pins to a dedicated ICSP connector. An alternative way when you're still developing the product is to use a bootloader.
Bootloader is the option we choosed with Memtype during development phase but, the space occupied by the bootloader is valuable space we can use for credential storage, so we decided to remove the bootloader for end user units (about 2KB space freed).
Our decision for attiny85 bootloader is Micronucleus, you can find more information in their github repository: Micronucleus Attiny85 Bootloader
[Memtype First programming method]
The first method that came to our minds were those mini grabbers test clips you can see on the image below, as they are used in a lot of projects. But we realized that grabbing six clips in such a narrow space was not only time consumming, but also a source of problems as connections to attiny pins were too lose.
For more detail: Memtype: Open Source Password Keeper