Nov 23, 2011 at 8:30 PM
i am preparing a new file store in user profile and there is one design decision i want to discuss: the stored credentials usage. If user uses favorites stored in default location, then everything is clear, because the stored credentials are in the
But, if i will start Terminals using command line parameter, which tels to the application to read/write credentials from shared location, how should application then manipulate with stored credentials?
A.) Favorite has assigned saved password: The password is in the same file, so every one can open that connection, because credentials are stored also in the shared location. But only, when master password isn't used.
B.) Passwords in shared favorites file are protected by Master Password: In this case only the user who encrypted the favorites file can read the stored passwords, because the master password encryption is valid only, when running Terminals from the same machine.
C.) Favorite has assigned stored Credentials: The favorite holds only pointer to the stored credentials, but they are stored in another file, which is still local. It means, that all users have to have their own stored credentials in their local credentials
file. When applied, then credentials are also protected by local master password.
1. Store credentials always in the same location like favorites, even if it is shared location? Or use the same logic like until now (credentials file is always local)?
2. Ignore Master password, when Terminals is running from shared location?
From my point of view:
- credentials and favorites should stay in different files (case C) since this, for me, is the real Terminal's strong point letting the user be able to change one for all the favorites using it!
- the above file location should not be associated to a Master Password (which may or may not be assigned!)
- an option (asked on the first time wizard, or manually selected into the configuration) should let the user decide
- both local to user profile, not shared between users
- both into the application data folder, shared between users
That's the easiest and simpler logic that should be fine for almost every usage.