Friday, April 07, 2006

New FlameRobin password protection



- all passwords(PW) are encrypted with master password (MPW)
- MPW is not saved in any file, it is only known to the user
- PW + MPW => Cipher (cipher is stored in .conf file)
- When PW needs to be decrypted, user is prompted for MPW
- Cipher + MPW => PW

Defense from "known plain-text" attack:

- If the attacker gets a hold on to .conf file and knows one of the PWs
he would be able to compute MPW (Cipher + PW => MPW). In order to prevent
this, we use the following scheme:

- we take MPW+username+full_database_path, and use it as a seed for
some irreversible random number generator (RNG) like ISAAC.
- we use the numbers produced by RNG to encrypt the PW.
- since numbers are unique for each username+full_db_path and RNG is
not reversible, the attacker cannot get MPW, and he also cannot decrypt
any other password.

Information on ISAAC:
http://en.wikipedia.org/wiki/ISAAC
http://www.burtleburtle.net/bob/rand/isaacafa.html


No comments: