Skip to content

Gastonius/mooltipass

 
 

Repository files navigation

Mooltipass Project Repository

Mooltipass first prototype

This is the GitHub repository dedicated to the Mooltipass device family. It contains all the resources that were used and made for this community driven product line since the project was first started back in December 2013. You may order a Mooltipass device on our Tindie store or back our Mooltipass Mini crowdfunding campaign.

What is the Mooltipass Project?

With time, logins and passwords have become critical elements we need to remember to access the different websites and services we use daily. If we want to achieve good security, each of these credential sets should be unique.
We therefore created the Mooltipass, a physical password keeper that remembers and encrypts your credentials so you don't have to. With this device, you can generate and safely store long and complex passwords. A personal PIN locked smartcard allows the decryption of your credentials and ensures that only you have access to them. Simply visit a website and the device will ask for your confirmation to enter your credentials when login is required.
The Mooltipass is a standalone device connected through USB, is completely driver-less and is compatible with all major operating systems on PCs, Macs and Smartphones. It therefore is extremely simple to use our device:

  • Plug the Mooltipass to your computer/tablet/phone, no driver installation required.
  • Insert your smartcard, unlock it with your PIN. Without the PIN, the card is useless.
  • Visit the website that needs a login. If using our browser plugin the Mooltipass asks your permission to send the stored name and password, or asks you to save/generate new credentials if you are logging in for the first time.
  • If you are not using the browser plugin or logging in to something other than a web browser, you can manually tell MP to send the correct name and password. It will type it in for you, just like a keyboard. In this way it can be used anywhere.

Advantages over software-based solutions

A software-based password keeper uses a passphrase to decrypt a credentials database located inside a device (computer, smartphone...). As at a given moment your passphrase and your database are stored inside your device's memory, a malicious program with access to both elements could compromise all your passwords at once. In some cases, security flaws of software-based solutions can also lead to entire unencrypted databases beeing extracted by visiting a simple website.
We therefore offer the following advantages:

  • Stronger security: we reduce the number of attack vectors by basically having our device type your passwords for you.
  • A non-proprietary device: as our product is open anyone can develop new tools for it. There will never be fees for the services we offer.
  • An open-source platform: all our source code can be viewed, allowing you to check that your credentials are only kept inside the device and not leaked to the outside
  • A trusted platform: as only our tested source code is running on the Mooltipass, there can't be any viruses or malicious programs compromising your stored credentials

The Platform

The Mooltipass is composed of the main device shown above and a smartcard.
On the device are stored your AES-256 encrypted credentials. The smartcard is a read protected memory that needs a PIN code to unlock its contents (AES-256 key + a few websites credentials). As with your chip and pin card, too many tries will permanently lock the smart card.

The Firmware

We want the device to be as simple as possible. Ideally, the end user shouldn't have to spend more than a few seconds to use its basic functionalities.
A browser extension runs on the user's computer and sends the current website to the Mooltipass. When the user has to login, the Mooltipass will light up and ask for confirmation to enter the credentials.

Data Safety

Safety is a primary concern for the Mooltipass development team, which is why we offer several secure ways to backup your credentials.
The smart card containing the AES key used for encrypting the passwords can be cloned using the Mooltipass, copying its PIN code as well. The encrypted credentials stored in the Mooltipass internal flash can be exported to the official Mooltipass website or simply somewhere on your local computer.

A Brief History of Security Flaws and Breaches

We often think that the devices and websites we use are exempt of security flaws.
You may see if one of your accounts has already been compromised by visiting this website.
We also compiled a brief list of major security breaches and vulnerabilities found during the last few months:

Frequently Asked Questions

Is your solution better than a piece of paper?
A piece of paper contains passwords that can easily be read when you are not paying attention to it. The Mooltipass stores encrypted passwords that can only be read when providing your PIN code.

If I only need to remember a PIN code, does it mean the Mooltipass is not safe?
Not at all, as the Mooltipass system is exactly like your chip and pin card: 3 false tries will permanently block the smart card and make credential decryption impossible.

Why do I need different passwords for different websites?
Websites are compromised on a daily basis. If you are using the same password for different websites, one attacker could use a password he discovered on all of them.

Why do you need an OLED screen?
An offline password keeper needs to provide a way to prevent impersonation. The user has to check that the website/service he's approving the credential sending for is the same that the website/service he's currently visiting/using, as a malicious program could emit forged requests. Moreover, having a display allows the user to operate the Mooltipass without the browser plugin using our dedicated touch interface.

Why are you using both a smart card and a main Mooltipass device?
There are many reasons, the main one being that it is much easier to carry a smart card around than any other object. This smart card is a secure element that contains your credentials' encryption key, it is cheap and may be cloned without compromising the system security.

What if I lose my smartcard?
Our device is shipped with two smartcards, so you can keep your copy somewhere safe. The Mooltipass therefore allows the user to clone his smartcard as many times as he wants, provided that the card PIN is correctly entered.

Can the smartcard be used with multiple Mooltipass?
You can synchronize your credentials between multiple devices. This allows you to have one Mooltipass at work and one at home.

What if I lose my Mooltipass device?
Your encrypted credentials can be exported to either your computer or the Mooltipass official website. If you lose your device, you may purchase another one and restore your credentials.

Are you sure about your encryption implementation?
The AES-256 used in the Mooltipass has been compared again standard Nessie test vectors for correctness. Moreover, our security chain has been checked by qualified individuals.

Can I use it on Windows/Linux/Mac?
Yes, as no drivers are required to use the Mooltipass. It is recognized as a standard USB keyboard that will enter passwords for you.
Can I use on my computer/laptop/phone/tablet...?
Most (if not all) devices (including smart phones and tablet PCs) include a USB host capable port. The Mooltipass will work with all of them.

How secure is the Mooltipass?
We are using the most secure encryption algorithms and designed our case to make physical tampering practically impossible. Our solution is therefore perfectly suited for individuals wanting to improve their credentials safety.

Are you planning to make a wireless version?
The Mooltipass isn't wireless to skip the added costs of a lithium-ion battery and a wireless interface. Customer survey also let us know that having a USB cable wasn't a problem for most use cases.

How are the credentials sent to the computer?
The Mooltipass is enumerated as a composite HID keyboard / HID proprietary device. The credentials are sent over the HID proprietary channel when using the browser plugin and over the keyboard channel when using the Mooltipass through its touch interface.

Is it still possible to sniff the passwords sent over HID?
In theory yes. As mentioned in our project description the Mooltipass aims at reducing the number of attack vectors to a minimum: the device basically types your password as if you were doing it yourself. Perfect security could only be achieved by sharing dedicated secrets with every possible service and website... which is practically impossible to do.

If I can export my encrypted credentials, does this mean someone could crack them?
In short, no. We are using AES-256 encryption in CTR mode, bruteforcing the encrypted credentials takes more than fifty years.

If it is open source, does it mean it is less secure?
Not at all. Having our code open source allows everyone to check our security implementation, which actually leads to a better code quality and more trust from our final users.

Contact us

You may contact the development team via the official Google group.

Thanks and Acknowledgement

None of this would have been possible without the help of many people located all over the globe.
Here is a non exhaustive list:

  • Darran H. (graphics, plugin, comms, general development and more) - New Zealand
  • Pierre C. (GUI, encryption implementation supervision, pen testing) - France
  • Bjorn W. (GUI, graphics, wise man, project advisor) - Canada
  • Raoul H. (cross platform daemon, browser extensions - France
  • Henryk P. (encryption implementation supervision) - Unknown
  • Olivier G. (mecanics, project advisor) - Switzerland
  • Josh W. (mechanics, plugin, fw supervision) - USA
  • Eric E. (schematics & layout verification) - USA
  • Mike N. (flash storage, node management) - USA
  • Charles E. (legal, project advisor) - USA
  • Miguel A. (AES encryption, RNG) - Spain
  • Tom V. (part of USB) - South Africa
  • Erik M. (IRC, general help) - USA
  • Mikael A. (GUI, plugin) - Sweden
  • Hans N. (general help) - Denmark

Device History

  1. Mooltipass Standard
    You may find all the articles detailing the Mooltipass Standard different life steps using this link.
    Our crowdfunding campaign achieved its goal by raising around $125k in December 2014.

About

Github repository dedicated to the mooltipass project

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 38.0%
  • HTML 24.1%
  • KiCad Layout 11.8%
  • Makefile 10.1%
  • C++ 5.7%
  • TeX 4.3%
  • Other 6.0%