Internet Nomad login screen
Internet Nomad is a password manager with configurable encryption, separate collections of accounts and several recovery methods. I built it for my final-year university project, which also covered risk assessment, resource allocation and development methodology.
This page describes an academic project, rather than a security assessment.
The project offers AES1 and Blowfish2 encryption options6, with PBKDF23 or Argon24 for key derivation5.
The settings control the target unlock time and, with Argon2, memory use. Multiple passwords can unlock the same container: each slot stores a copy of the master key encrypted with its own password, so users do not need to share a single password.
Shared recovery splits the master key into a chosen number of pieces, with a threshold specifying how many are needed to reconstruct it. The number of pieces and the threshold can be set separately. This uses the secret-sharing approach described by Adi Shamir (1979)7, allowing recovery to be distributed among trusted people.
The project also offers a paper recovery method. Another backup option is to entrust a copy of the master key to a single trusted person or organisation.
An identity is a collection of accounts. Keeping accounts in separate collections helps users organise different online identities, but does not prevent those accounts from being linked through other information or activity.
The password manager supports creating, editing and deleting accounts, as well as generating passwords.
This overview is adapted from my Password Manager Report. The source code is available on GitHub for reviewing the academic work.
AES: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard ↩ ↩2
Blowfish: https://en.wikipedia.org/wiki/Blowfish_(cipher) ↩ ↩2
PBKDF2: https://en.wikipedia.org/wiki/PBKDF2 ↩ ↩2
Argon2: https://en.wikipedia.org/wiki/Argon2 ↩ ↩2 ↩3
ENC: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation ↩
Adi Shamir (1979) 'How to Share a Secret', Massachusetts Institute of Technology, 22(11), pp. 612-613. ↩