40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
About Passy
|
|
===========
|
|
passy solves the problem of managing secure, unique passwords.
|
|
|
|
passy does NOT store anything to any disk. This means if your disk crashes
|
|
you will not lose ANY of your passwords.
|
|
|
|
passy requires you to keep one, private, secret passkey. All of your unique
|
|
passwords are generated from this one passkey.
|
|
|
|
Actual passwords are generated by HMAC-SHA1. For example, to calculate your
|
|
password for a certain website, passy uses something similar to:
|
|
|
|
hmac_sha1('your secret key','slashdot.org')
|
|
|
|
passy provides four passwords for each 'site'. This way, if your password
|
|
is ever expired, as some systems stupidly do, you can rotate to the next.
|
|
|
|
The 'site' doesn't have to be an actual web site, of course, it could be
|
|
anything you want, like "bank password", "work login", etc.
|
|
|
|
NOTE: The list of Sites is currently stored directly in the script!
|
|
|
|
|
|
Ideas for Improvement
|
|
=====================
|
|
* make variant passwords use more features (mixes in case, etc.).
|
|
* use optionparser (or similar) to clean up the CLI
|
|
* add ability to ask for a specific site
|
|
* add ability to cache master key
|
|
* use termios (or similar) to clean up the tty - but retain Windows compat
|
|
* gemify it (and gemify my simple hmac separately?)
|
|
* have passy look for ~/.passysites for the list of sites
|
|
* wrap in a multi-platform GUI so idiots can use it too (wxRuby, RubyQT, FX, etc.)
|
|
* add a "change master password" mode that will prompt for two passwords, and
|
|
provide the results for both [after which the user much change their password
|
|
at every site, etc.]
|
|
* store state as to which variant is current at each site
|
|
|