-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
FdoSecrets: client fingerprinting #6458
Comments
The binary path detection is already implemented, IIRC in #5747 . This proposal only adds fingerprinting on top of that. You are correct that scripts can't be distinguished. That's a known limitation of the binary detection code. But binaries can be (python vs kmail, for example). So if you see "python", this doesn't really help much, other than "Is python supposed to be running at all right now?". But if you see "kmail", you can be reasonably sure it's kmail. Scripts using |
My screenshot was about showing the parent process branches upto the trunk as a treeview not just about the binary path. This is arguably more useful than just showing the pid but will need a bit more work.
Since you are proposing we remember the decision to not show any authorization prompt if hashes match, this is really bad to just store Besides changing "core" binaries(like python, kmail etc installed by the pkgmgr) will require root on most systems and since having root means you can already do all the naughty things like ptrace. |
I know, and I agree that showing the process tree can be useful. But that's a separate feature. I was just saying that the binary detection logic is not introduced in this proposal, and will not be affected by this proposal. This proposal acts after the binary has been detected by the existing means (and authorized by the user). The merits and limitations of the binary detection have been discussed at length in #5747 and its linked issues. Most of what you're saying is not new. And most of your arguments regarding hashing apply just as much to the (existing) binary detection alone. I do agree with much of what you're saying. My current view is that the primary merit of this proposal is as a foundation for authorize-once per client.
The decision on whether to ask again for the same binary or not, should be up to the user, and separate for each binary. IMO it should default to "ask every time". I agree it would be wise to blacklist certain binaries from authorize-once. But it can still be useful with other binaries. |
Afaiu the current scheme remembers the authorization for the process lifetime(client/keepassxc). Your proposal is to remember this decision beyond this. There is no additional security benefit to hashing compared to just simply storing the binary path if we do this. And hashing will show unnecessary warnings when we update and it will just keep changing the DB(this is what i don't like the most). Might as well store the path and let user decide. |
Upon user choice, per binary.
I think there may be (as noted in the OP), but I agree it's minor at best. The thing is, the binary detection is not bullet-proof. Checking the binary hash ensures that it really is the same binary that the user has previously authorized. |
But not its library dependencies which might have changed. Particularly the path is more secure in distributions like nixos/guix than the hash of the binary. |
Good point re libraries, but the same applies to the binary path alone (without hashing). Re "path is more secure", the path would always be checked anyway, since you need it to find the hash. The hash would only be an additional check on top of that. |
With paths it would work like the allow list as the urls used in the browser plugin data. It would be simple and not make the DB change unnecessarily. In nixpkgs the path is derived from all the dependencies, so it is actually more secure, and the binary hashes are not needed at all. |
It would still work the same with or without hashing. The primary identifier is still the path, either way. The hash is just an extra internal check that's transparent to the user (other than having to re-authorize when the binary is modified). I don't expect the DB to change very often because of the hashes. Binaries aren't updated that often. If you work with a lot of passwords, the entry data can change more frequently. I don't mind if this fingerprinting will be optional. I agree that authorize-once can still work without it, based on only the paths. But I do think it can add a bit of extra confidence. Anyway, the final decision is not up to me (and can be made later). |
I just discovered this SO answer https://stackoverflow.com/a/39001204. Basically you can get the original binary file Regarding limitations on shell/python/other scripts, what @droidmonkey said in #7571 (comment) can be useful. By default clicking on "Allow All & Future" will add a new rule matching only the calling parent, but the user should be |
Set ConfirmAccessItem=false as workaround for the well-known issue of short-lived processes (like secret-tool) and the new KPXC feature. See the following issues for more context: - keepassxreboot/keepassxc/issues/6458 - keepassxreboot/keepassxc/issues/7571
Set ConfirmAccessItem=false as workaround for the well-known issue of short-lived processes (like secret-tool) and the new KPXC feature. See the following issues for more context: - keepassxreboot/keepassxc/issues/6458 - keepassxreboot/keepassxc/issues/7571
Set ConfirmAccessItem=false as workaround for the well-known issue of short-lived processes (like secret-tool) and the new KPXC feature. See the following issues for more context: - keepassxreboot/keepassxc/issues/6458 - keepassxreboot/keepassxc/issues/7571
Following my comment on #2726 and after having read the discussions on #4733, #5747, and others, I'm wondering if FdoSecrets client fingerprinting would be a useful addition?
Proposal
Advantages
Limitations
LD_PRELOAD
attacks./usr/bin/python3.6
changes to/usr/bin/python3.7
).The text was updated successfully, but these errors were encountered: