-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement workspaces/identities #80
Comments
Hi Wladimir, First of all, thanks for that great tool! It really seems like the optimal password manager! I particularly like the hybrid approach. +1 for this issue. However, I only need to have several master passwords for increased security. By looking over the implementation, I think this could be implemented without much work by including the master password's hash in the storage prefix. -1 for the identities idea... I think it might complicate the storage unnecessarily. Identity management is already implemented in Chrome and Firefox. I think the approach above is sufficient. If really multiple users use the same instance, they should be seperated by a different master password. |
The storage format changes are really the trivial part here. Replacing storage IDs by master password hashes isn't going to make it much simpler. However, it will make your data less discoverable - you might have data for a different master password in there, and you won't even know unless you still remember that password. Identity management implemented in Chrome and Firefox can already be used to achieve the same effect. In reality, most people won't do it however because the implications go far beyond PfP - different identities have different sets of extensions for example. In addition, creating a new Firefox profile is far from trivial which means that this feature is barely used. Even for Chrome it is considered an advanced feature. |
I just migrated my passwords at work and the usage of the tool is really pain-free. 😊 However, to be usable for my private accounts, I need to be able to use multiple master passwords. Can you perhaps implement this feature in two steps?
Then it would be nice, if you could implement this as a first step.
Clearing the storage is simple by invoking the Concerning discoverability: I think that's fine... You could even advertise it as a security by obsurity feature! 😅 [
{ "hash": "1234", "letters": "te" },
{ "hash": "abcd", "hint": "Sweet cherries" }
]
I would rather instruct them how to use multi-person/multi-profile handling, than implement identity management in every extension... But anyway, you could implement that as a second step. What do you think? |
Well, "security by obscurity" is the opposite of what this project advertises. Storing parts of masterpassword or hints like "my first pets name" undermines the security model. Implementing identities as discussed by Wladimir in first post would be valuable. |
The "security by obscurity" comment was not meant to be serious. When only chaning the storage format, there is no list of used identities / master passwords. As I understood Wladimir, he is concerned about bad discoverability (obscurity) in this case. I would not save password hints, either. It was just a possibility of what an identity list could contain. Of course, it can also just contain a username like that: { "hash": "1234", "name": "adrium" } I implemented a proof-of-concept in https://github.com/adrium/pfp-standalone |
For reference, I am not currently working on PfP - I expect to continue work here around end of summer. This issue isn't my top priority however. I'd fix #86 and #79 first, plus some UI improvements, only then it's going to be this issue. You are free to have a go at it already and submit a pull request, just don't expect me to accept any features that are not discoverable. |
Thanks for the heads up!
Of course, I will be happy to help, if you ever wanted to pull some changes. |
If you are going to publish it to Chrome store I would recommend using completely unrelated name to avoid confusion and to not looking like you try to mimic the original. |
You are free to fork the code, as long as you comply with the MPL 2.0 license terms. You are also free to publish your fork for others, but then it is up to you to maintain it of course. Please choose a name and icon that are different enough from the original that there cannot be any confusion. In particular, "Pain-free master password" is definitely not acceptable. |
I just released Chrome and Web binaries 🎉 |
I guess that as of PfP 3.0 the way to implement this is supporting multiple KeePass databases. Not sure whether I want to go there but reopening. |
Native host application now allows configuring multiple databases. If more than one database is configured, the extension will allow choosing one when unlocking passwords. |
It should be possible to separate your private and work passwords for example. In some cases it might also be necessary for multiple people to use the same PfP instance. This should be possible by separating PfP data into multiple distinct workspaces/identities. Each workspace will have its own master password, which might be identical to other's but doesn't have to be. They should also have their own set of passwords, their own sync settings and their own shares. The actual implementation plan:
workspaces
is added to storage, listing workspaces with name and numerical ID. Workspace IDs should be random rather than sequential, so that conclusions about deleted workspaces aren't possible. The data isn't encrypted (cannot be, because workspace information has to be retrieved before master password entry).current_workspace
indicates the last used (current) workspace. Its data is also unencrypted.<workspace_id>:
meaning that they are bound to their respective workspace.The text was updated successfully, but these errors were encountered: