pass – the standard Unix password manager
passwordstore.org
passwordstore.org
Clever uses of pass, the Unix password manager - https://news.ycombinator.com/item?id=29577272 - Dec 2021 (148 comments)
i want my password manager to be decently transparent, because if i misunderstand its failure modes that’s a big deal.
anyway, i’m using SOPS now [1]. it comes with a different set of tradeoffs (doesn’t integrate with keyrings quite as well as GPG does), but it’s way more transparent and pluggable. i generate distinct pubkey/privkey pairs per logical user and i can grant any subset of keys access to specific secrets. so e.g. my desktop and laptop can decrypt my banking secrets, but my phone cannot. i have a nightly backup cronjob which has to run unattended: i encode my Backblaze API key to the `duplicity` user’s privkey, and can safely check the encoded key into public repos and such. it’s simple and easy to grok. more so than pass, IMHO.
I usually have a key for each device that requires access, sometimes they overlap for all secrets and sometimes they only have access to specific folders (think a work vs. personal separation).
It's a high friction environment for sure, but I'm happy with it.
You can't encrypt new passwords to it, but you can still read old ones that are encrypted to it.
> what’s the right way to share passwords between multiple machines — can i just clone the ~/.gnupg folder, do i need to `export` and then `import` the keys? should i create subkeys for each machine?
if the keys are on a hardware smartcard like a Yubikey, I just reuse the key. if not, I use separate keys for separate hosts and encrypt my pass secrets to all of them using the .gpg-id files
> anyway, i’m using SOPS now
I think SOPS is awesome, too! it's my favorite way to securely store secrets in IaC projects
well i think you have to launch gpg-agent and such too. and what channel do the two use to communicate with eachother? do you need PAM configured and running? i was trapped in my initrd earlier, desperately wanting to access my passwords, and when i ran `pass <path/to/file>` it... failed. some "can't connect to gpg-agent" message or something. so then i had to figure out how to interact directly with the GPG utilities.
`gpg --decrypt <path/to/.pass/word> --gpg-private-key <path/to/.gnupg/privkeys>` (my rough recollection) was giving me obscure errors. i stumbled across some random stack overflow post telling me to use `--pinentry-mode=loopback`: i guess it wanted to show me a x11 prompt and couldn't because X wasn't running? or maybe it was some PAM thing? idk. reading passwords off an unbootable system is a super edgecase but somebody you'll find yourself in an unexpected situation and you _really don't want to have to worry about how to get out of it_ when it comes to something as critical as a password database.
if you know the ins and outs of GPG, you're probably fine. if you don't, something with fewer interactions might make more sense.
And here lies the difference. What I was not able to do this with pass: I think I use xclip, which detects if the clipboard was used, after which the pw is removed from the clipboard. No timeout. This enabled me to consecutively send a list of strings to the clipboard. E.g 1. Send URL, 2. Username, 3. Secret. Recently, I added TOTP support.
I think pass is not able to do this. I would like to convert over to pass, but my established workflow is to convenient. Well, I haven't checked all the extensions of pass though. Otoh, I would not like to write an extension of my own.
Perhaps, pass supports similar functionality now?
I even have my wife set up with the android app just in case something happens to me or she needs common passwords. She doesn't use it for her passwords yet, but baby steps.
It does. I use it every day.
But discovering PASS, PASSAGE and SOPS, I'm now very interested in these file-based and modular solutions, more like plain text and future proof.
The big concern would be that I will have to put back the Gnome Keyring for the Secret-Service... Big NOPE.
Do anyone know a solution for that with SOPS or PASS?
Exactly what it sounds like — a password store that uses age. Super cool.
Make sure you understand how exactly it encrypts your data, and what are the things that are still exposed by it.
> No Post-Quantum security
Yeah, no. The beauty of PGP is being able to select your encryption algorithm. Somehow, arguing that AES-256 is more resistant to for example Ed25519 is just factually incorrect and people that use KeePass are not memorizing 40 character passwords to unlock their password manager.
> No Service Privacy / Leaks Changes
Pass doesn't make assumptions. If you want to encrypt filenames then wrap it with gocryptfs or cryfs or pass-tomb. The nice thing about syncing with pass is having auditable changes that doesn't require a complete database resync. Imagine someone modifying your password store with KeePass. You are not going to have diff to tell what has been changed. With Password Store, you can see exactly what has been changed between syncs.
> No authentication of values
Again, something that you can change in your PGP settings. I'm not going through the full article, but in all honesty it just sounds like this person doesn't like GnuPG and doesn't understand it. Lest not forget that pass is by the same individual that created wireguard and a slew of other security-focused tools and I think their reputation speaks for itself.
I use a pass phrase that is substantially longer then 40 characters. It doesn’t take too long to sink in.
Do you have a a favourite song/poem/nursery rhyme?
"Hey diddle diddle, the cat and the fiddle,"
* https://en.wikipedia.org/wiki/Hey_Diddle_Diddle
And you only have to unlock it perhaps once at the beginning of the work day (set auto-lock/forget to 8 hours), or twice a day (morning, after lunch; auto-lock to 4 hours). Once unlocked maybe only ask for confirmation for use.
There are lots of sad stories of people losing funds in the early days of Bitcoin when "brain wallets" were briefly popular. Victims used quote-based passphrases that seemed unguessable.
The threat model is a little different when it includes getting access to your encrypted password-manager database or OpenPGP smart card. But the point stands that a well-known phrase might as well be a dictionary word.
It's pass with age-encryption instead of pgp.
Discussed here: https://news.ycombinator.com/item?id=29597729
I use that.. so not exactly that ;)
To be clear here, only if that implies access to the memory you control, otherwise, no. GPG is pretty good about local file access by an attacker and pass maintains that on platforms where that is possible.
The password managers don't protect against a malware running on your laptop with root privileges and attaching to your processes. They protect against someone taking the disk out of your computer and trying to extract the passwords.
The linked attacks are literally not applicable to the "pass" pass use case. Even if they were there is no authentication done in the pass case. An attacker could replace the whole file so they don't have to mess around with trying to modify the encrypted material. An attacker could just delete the whole file as well for the same effect. So that doesn't really matter for the password storage case. This suggests that the author has not yet entirely thought through the password storage case.
>For a more in-depth post on the maladies of PGP see What’s the matter with PGP?[1].
It is unclear why the link to this blog post was posted. It seems to have nothing to do with what "pass" does. Anyway, here is my standard critique of that article:
* https://articles.59.ca/doku.php?id=pgpfan:wtmwp
>No Post-Quantum security
Really reaching here...
[1] https://blog.cryptographyengineering.com/2014/08/13/whats-ma...
Replacing is one way of modifying. If the passwords storage is authenticated, it can't be replaced.
(An attacker could probably replace the storage with its older version. Unless there's an extra mechanism in place to counter that — this highly depends on the concrete setting.)
gpg: WARNING: encrypted message has been manipulated!
... instead of the password file I modified.2. How is this “regular integrity protection” defined formally?
The fact that it detects one byte being modified means nothing.
The encryption mode normally used in OpenPGP is an improved version of cipher feedback (OCFB) for the block mode and something called the modification detection code (MDC) to detect modification. The two (OCFB-MDC) work together to produce an authenticated encryption mode based on shared knowledge of the symmetrical encryption key. In practice few seem to bother with the MDC but it is there and is cryptographically strong should an implementer want to use it for preventing, say, EFAIL.
I am sure that in 100 years or so when this becomes a reality, if it ever actually happens, then I'll be sure to change my password manager.
It is kinda hard to take a security guy seriously when he thinks that a as yet mystical force is something that can be usefully defended again.
And change all your passwords as well? I don't think you can import your passwords into a new manager if the old one gets broken.
We used it also as a poor man's vault in a small company, you can have different keys in different directories, not giving everybody access to everything.
Glad I managed to escape my passwords and can now store them in a plain text file.
I use OpenKeychain (from f-droid) to access my yubikey + Password Store (also in f-droid) for git clone (readonly ssh key) and password filling.
It integrates with any input field on the whole system and my phone can't decrypt any passwords alone and it uses standard encryption methods.
I used pass for few years, and have recently switched to bitwarden. I know my way around git well, but I just never remembered to push the new passwords from either my desktop or my phone, which sometimes made me reset the password on one of the devices, and getting conflicts later on, I was always forgetting the password to the SSH key on my phone, and was ever-worried that I don't understand shit about GPG. Two years ago I switched my laptops, and moving the password store to the new one was painful. I'm sure I did something wrong, and that someone who knows what they're doing would have no trouble doing that, but I guess it's not for me.
Also, a minor pain point is that generating a new password for an existing login overwrites the whole file, and not only the first line, so I had to copy the other login data from the old file to the new one. I'm sure there's a way around that, but I never bothered.
For some reason I prefer syncthing.
The android client works perfectly well.
Best password manager I ever used.
And of course, if you've just entered your gpg password to decrypt an email with GPGMail (Mac Mail PGP plug-in), you won't have to enter your password to decrypt a password, since they're both using gpg behind the scenes.
My browser has a pass-compatible agent that requests passwords for web sites when I tell it to do that, if I just want to know an actual human password that's in pass, I run it on the command line and look at my terminal. In my home the visual displays are not recorded ("for training and quality purposes").