All Projects → codingchili → enigmatic-mouse

codingchili / enigmatic-mouse

Licence: MIT license
The enigmatic mouse will keep your passwords safe - password manager on Android in Kotlin.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to enigmatic-mouse

Passwords
A simple, yet feature rich password manager for Nextcloud
Stars: ✭ 134 (+857.14%)
Mutual labels:  password-generator, password-manager, passwords
password-list
Password lists with top passwords to optimize bruteforce attacks
Stars: ✭ 174 (+1142.86%)
Mutual labels:  password-generator, password-manager, passwords
Masterpassword
Project moved to https://gitlab.com/spectre.app
Stars: ✭ 1,122 (+7914.29%)
Mutual labels:  password-generator, password-manager, passwords
Qtpass
QtPass is a multi-platform GUI for pass, the standard unix password manager.
Stars: ✭ 763 (+5350%)
Mutual labels:  password-generator, password-manager
Passcards
A 1Password-compatible command-line and web-based password manager
Stars: ✭ 134 (+857.14%)
Mutual labels:  password-generator, password-manager
Strongbox
A KeePass/Password Safe Client for iOS and OS X
Stars: ✭ 586 (+4085.71%)
Mutual labels:  password-generator, password-manager
Pash
🔒 A simple password manager using GPG written in POSIX sh.
Stars: ✭ 254 (+1714.29%)
Mutual labels:  password-generator, password-manager
Snopf
snopf USB password token
Stars: ✭ 113 (+707.14%)
Mutual labels:  password-generator, password-manager
Pol
pol /pɵl/ is a modern command line password manager with deniable encryption
Stars: ✭ 25 (+78.57%)
Mutual labels:  password-generator, password-manager
Pws
Command-Line Password Safe 🔐︎
Stars: ✭ 208 (+1385.71%)
Mutual labels:  password-generator, password-manager
Passwd
A beautiful, cross-platform, encrypted password manager 🔐
Stars: ✭ 82 (+485.71%)
Mutual labels:  password-generator, password-manager
Spicypass
A light-weight password manager with a focus on simplicity and security
Stars: ✭ 367 (+2521.43%)
Mutual labels:  password-generator, password-manager
Gokey
A simple vaultless password manager in Go
Stars: ✭ 305 (+2078.57%)
Mutual labels:  password-generator, password-manager
Pfp
Manage your passwords easily and securely, via browser extension for Firefox, Chrome, Opera
Stars: ✭ 77 (+450%)
Mutual labels:  password-generator, password-manager
keevault
Kee Vault is a password manager for your web browser. Password databases (Vaults) are encrypted using the KeePass storage format before being sent to a remote server for synchronisation across any modern device/browser
Stars: ✭ 57 (+307.14%)
Mutual labels:  password-manager, passwords
Xbruteforcer
X Brute Forcer Tool 🔓 WordPress , Joomla , DruPal , OpenCart , Magento
Stars: ✭ 261 (+1764.29%)
Mutual labels:  password-generator, passwords
Allyourpasswords
The offline macOS password manager
Stars: ✭ 59 (+321.43%)
Mutual labels:  password-generator, password-manager
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (+257.14%)
Mutual labels:  password-generator, password-manager
web
Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.
Stars: ✭ 33 (+135.71%)
Mutual labels:  password-generator, password-manager
Dpg
The Deterministic Password Generator
Stars: ✭ 112 (+700%)
Mutual labels:  password-generator, password-manager

Enigmatic Mouse Build Status

The enigmatic mouse will keep your passwords safe - password manager on Android written in Kotlin.

View the YouTube Demo.

mouse enigma preview

Password manager in 1500 lines of KOTLIN!

The Enigmatic Mouse is a small password manager, the purpose is to be as small as possible while still providing a bearable user experience. By being small The Mouse is auditable by our user base. No need to trust a third party with the keys to the kingdom, you can fork the repository and add new features or even disable existing ones! For maximum security we recommend that you build and side-load the application yourself. This ensures that a rogue version published to the Play store won't steal all your passwords.

Requires SDK26 (can probably be built with lower API levels too.)

Features

  • application is protected by fingerprint authentication.
  • securely store passwords encrypted within Realm.
  • shows icons for the sites you add from the internet.
  • allows you to copy to clipboard or view passwords within the app.
  • set a credential as favorite and sticky it to the top of the list.
  • downloads the haveibeenpwned domain list and compares with your accounts.

Security

The encryption scheme

The master password is combined with a key derivation function (Scrypt) to generate an AES key of 256 bits. Another key is then created within the Trusty TEE (HSM) and used to encrypt the AES key. The key stored in TEE is protected by your fingerprint and never leaves the HSM. We store the encrypted key, the salt used with the master password and the initialization vector used as shared preferences. This information is not a cryptographic secret. When the user authenticates with their fingerprint, we use the AES key stored in the HSM to decrypt the key derived from the master password. When the master key is recovered, we initialize the Realm encrypted database with it.

Features

  • Fingerprint authentication
  • Scrypt, N=65536, r=8, p=1
  • Realm - encrypted with AES256 key.
  • AES256-CBC-PKCS7
  • Trusty TEE

Permissions

The following permissions are required by the application and enabled by default in AndroidManifest.xml.

<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
<uses-permission android:name="android.permission.INTERNET"/>

The biometric permissions is used to authenticate with the Trusty TEE (HSM) using a fingerprint. In newer versions of Android there might be more ways to authenticate with biometrics.

The Internet permission is used to download icons from websites. For example if you add a credential for youtube.com -> we will fetch the index page from youtube and parse any <link rel="icon" href="..." elements and select the biggest available icon. If you think Internet permissions is scary in your password manager you can remove it. The feature to check if a site has been hacked also depends on this permission "security lists".

Building

Open the project in Android Studio, Build -> Make Project.

Without Android studio,

./gradlew build

Find the unsigned .apk in app\build\outputs\apk\release.

Installing

Installing the application yourself is the recommended way, as it removes the middleman.

Side-loading (Android studio)
  • Open the project with android studio -> run -> select your device

This will build the APK and install it onto your device.

Side-loading (APK file)

Follow the instructions for building an unsigned APK and then copy the .apk to your device. Alternatively download a signed APK from the releases.

  1. Enable installation from untrusted sources
  2. open the file to install the APK
  3. Disable installation from untrusted sources
Google Play store

Now published on the play store!

Enigmatic Mouse @ Play Store

Contributing

Contributions are welcome! We encourage you to look through the available issues, create new or comment on existing. All ideas are welcome and well needed.

Code reviews and security audits are also very welcome.

donate

Resources

During development the following talk has been very helpful in implementing the security scheme.

Ben Oberkfell - Advanced Android Fingerprint Security | Øredev 2017 https://vimeo.com/243345710

benoberkfell/CryptoDiary

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].