Coder Social home page Coder Social logo

fortuna-pass's Introduction

fortuna-pass

Somewhat Secure Password Manager for the LaFortuna AVR board.

Features

  • One master password to rule them all.
  • Browse the filesystem on the SD card to select the password you want to use.
  • Pretends to be a keyboard so that it can send the password directly to your computer. No need to type it in manually!
  • Special characters only work if the keyboard language is set to US in your operating system!

Security

  • Uses AES-256 for password encryption
  • Uses the insecure ECB mode of operation
  • Keeps your master password floating somewhere in memory
  • Keeps the passwords you used floating somewhere in memory
  • Written by a cryptography expert

Usage

Clone the repository and follow build instructions to flash program onto LaFortuna. Come up with a combination of directional keys and half-circle rotations for the master password and add some passwords as per the Adding Passwords section. Whenever you want to use it, plug in the LaFortuna with the SD card plugged in, enter your master password and confirm it by clicking the centre button, then select the file corresponding to the password you want. It will now send your password to the computer it is connected to over USB. You probably want to disconnect the LaFortuna once you're done.

Build Instructions

git submodule init
git submodule update
make upload

Adding Passwords

Requires Python 2 and PyCrypto. encrypt.py takes the AES password as argument and outputs the encrypted plaintext fed in through stdin on stdout. The allowed characters in passwords are N, E, S, W for the directional buttons and L, R for turning the wheel by 180 degrees left (counter-clockwise) and right (clockwise) respectively. Pipe the the output into a file on the SD card, stick it into the LaFortuna and you're good to go. Example: python2 encrypt.py 'NNESWLLRR' <<< 'oh no my secret is out!' > foo.txt

Attribution

  • dirtree.* by @VisualMelon with permission
  • FortunaOS by Klaus-Peter Zauner, adapted from Steve Gunn (taken from exercise 6 and lcd library from exercise 7)
  • AVR-Crypto-Lib by Das Labor
  • LUFA USB stack by Dean Camera
  • Remaining code, unless otherwise listed, might be mine

fortuna-pass's People

Contributors

cyanogenoid avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.