See what is unencrypted in your LastPass vault
github.com
github.com
If anyone is interested, although this is originally from 2018, all of these fields still exist and still only the same 6 fields are encrypted. I checked this by creating a LastPass account with a temporary E-mail and looking at the `getaccts.php` network request made upon login to the website.
There also seem to be 3 new fields unknown to the tool (in the resulting csv these are just "?", "??", and "???"). "??" appears to be a timestamp of recent settings or password changes.
Of particular interest are the following fields - "url": Probably the biggest deal. Attackers know exactly for which sites a specific user used LastPass.
- "sharedfromaid": "aid of the sharer's Site/Secure Note". Might be used to correlate different LastPass users.
- various timestamps (creation, last access, modification), bools "autologin" and "never-autofill", "fav" (added to favorites): Might be used to infer usage of websites.
- "genpw": "Is an auto-saved generated password". Really useful for deciding whether brute-forcing is worth it.
- "breached": I couldn't check whether this key is actually being used. If it is, this seems like an incredibly useful shortcut for attackers (directly telling them where passwords from existing breaches might be tried).
One scenario I can imagine is that the API routes merely add authentication over s3:PutObject and the wire serialization is the storage format. But surely if that were true then 1P wouldn't have thrown such a hissy fit over giving up local vaults since their clients already supported multiple cloud backends anyway.
Coming back to the linked repo, the files are 4 years old: did LP not change their format at all over 4 years?
And yes, the whole repository is from 2018, but I checked again today and it seems only 3 additional fields were added. In particular the same fields are unencrypted as before.
(BTW, you also have duplicate comments: https://news.ycombinator.com/item?id=34110529)
Additionally, there is a full history of all former passwords which is transmitted in its own request, so in particular this vault format doesn't seem to contain all data LastPass has concerning a particular account (though what is unencrypted within this format is surely also unencrypted on the LastPass servers).
I think I'd see no problem if LastPass had a great product and kept it as is for extended periods of time, I don't need new features every few months for a security product. But this should have all been encrypted from the start, and there were discussions about this 4 years ago already https://www.reddit.com/r/AskNetsec/comments/8v7bcc/just_a_re.... This could have been fixed for years, but it's the same even now.
But even then I’m not 100% sure… :)
I have better-than-average experience with 1P's opvault format, and have lightly dug into their local cached copy, but realized I can only say so much about their cloud storage situation because the local copy presumably isn't the same as the way they store it
---
BTW, if one is into vault storage formats, I have really enjoyed this series that dug into the 1P API and associated (they didn't have to reverse engineer the .opvault format, that was published): https://darthnull.org/series/1password/ and https://github.com/dschuetz/1password#readme
I much preferred local WiFi sync when it used to be available.