News for hackers. Stuff that matters.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by jkepler on Saturday March 28, 2020 @08:08PM (#22715278)
How would this compare with pass[1], the "standard UNIX password manager"? Is it simply that SpicyPass uses newer cryptography than pass?

Pass uses gpg along with the filesystem and git, so it is lightweight, and super-easy to backup offsite, as long as you guard your gpg keys separately. For those who want a GUI, QtPass[2] provides a simple GUI while using pass in the background.

[1] https://www.passwordstore.org/ [2] http://qtpass.org/

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by dnpp123 on Saturday March 28, 2020 @08:43PM (#22715443)
Yeah I don't see the advantages of this compared to `pass` as well.

The whole source code of bash pass [1] is almost as long as a single header file [2] from this C++ software. Plus pass already handles backup... Minimalist heh.

[1] https://git.zx2c4.com/password-store/tree/src/password-store...

[2] https://github.com/JFreegman/SpicyPass/blob/master/src/spicy...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @03:02AM (#22716975)
The pass source code you linked to is just a wrapper for the unix toolset (and has twice the byte count, not that it matters). Pass has a completely different crypto implementation and security model than SpicyPass. The two are not synonymous, either in features or UX. I elaborated on more of the differences between the two in a different reply to a similar comment.

tl;dr different strokes for different folks. I didn't write spicypass with the intent of replacing pass.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by dnpp123 on Sunday March 29, 2020 @09:44PM (#22724480)
> just a wrapper for the unix toolset

Yeah, that's the point of using Unix, and why pass is great for that.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by woile on Sunday March 29, 2020 @05:00AM (#22717415)
I remember reading somewhere that Pass could be used with libsodium (or age), but I cannot find the source now, sorry.

One difference I see between this and pass is that spicypass is storing all the credentials in a single file. If you don't want to leak metadata with pass you have to add pass-tomb[1].

Anyway I just use pass (gopass actually) and I have no problems, it's a great improvement over a text editor.

[1] https://github.com/roddhjav/pass-tomb

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by brachi on Saturday March 28, 2020 @10:57PM (#22715986)
I'm pretty satisfied with the minimalism of pass, and thought of asking this question. The documentation is also pretty good.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Seirdy on Saturday March 28, 2020 @11:07PM (#22716025)
I personally didn't find pass to be minimal enough (not all POSIX-y systems use bash as /bin/sh, after all), which is why I switched to pash [0]. I created some shell functions to integrate it with fzf and support multiline passwords (in which the first line is the password and following lines contain metadata like usernames). The code is in my dotfiles [1].

[0]: https://github.com/dylanaraps/pash

[1]: https://git.sr.ht/~seirdy/dotfiles/tree/master/.config/shell...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by xfitm3 on Sunday March 29, 2020 @05:10AM (#22717459)
pass is great. sops by Mozilla is pretty sweet too.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tjoff on Sunday March 29, 2020 @03:34AM (#22717103)
I find pass quite hard to follow and grok what it is doing and what assumptions or consequences of using it are.

And for the life of me I can not get it to prompt for the password in the terminal, which is infuriating.

First glance of SpicyPass looks promising in my eyes.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by woile on Sunday March 29, 2020 @05:02AM (#22717421)
Hey, for me it took me a while to understand it as well, so I created a cheatsheet[1] and a tutorial[2] (shameless plug). Maybe they are helpful to you.

[1] https://woile.github.io/gopass-cheat-sheet/

[2] http://woile.github.io/posts/sharing-team-secrets/

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by anderspitman on Sunday March 29, 2020 @10:30AM (#22719263)
Is there a decent pass integration with Android?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by 101101001010 on Sunday March 29, 2020 @10:47AM (#22719419)
There is Password Store[0] although apparently no longer maintained (currently still using it). The downside is that there's no auto-fill etc. meaning that you have to copy and paste every login manually.

[0] https://play.google.com/store/apps/details?id=com.zeapo.pwds...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by emptysongglass on Sunday March 29, 2020 @01:22PM (#22720714)
Password Store is still being developed. Master was recently updated to support Android's Autofill.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by 101101001010 on Sunday March 29, 2020 @04:09PM (#22722242)
That's great to hear! I've been a long time user and never had a single issue with it. Autofill would be great!

Do you know why the Play Store description says that it is no longer maintained? Is the app being published somewhere else?

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by emptysongglass on Monday March 30, 2020 @05:54AM (#22726535)
I don't see that anywhere in the description? Last update shows March 20th. Listing I'm look at is https://play.google.com/store/apps/details?id=dev.msfjarvis....
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by 101101001010 on Monday March 30, 2020 @07:39PM (#22733303)
Huh, it appears that the app in the link I shared above it's the legacy version and this should be the new one (guessing from the age of each app).

Thanks for the info

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by yingw787 on Saturday March 28, 2020 @07:16PM (#22715041)
This is really cool, thanks for sharing!

I personally use Bitwarden, also because it's free and open source software, and because the cloud managed option is $10 / year. I've found the GUI to be very well-made for a heavy keyboard user like me. I also second a curses-based terminal interface for password management, I think it'll be really useful!

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Spivak on Saturday March 28, 2020 @07:38PM (#22715158)
I honestly might just pay the $10/yr just to support them but bitwarden_rs is dead simple to deploy if you already have a VPS sitting around for other stuff.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by yingw787 on Saturday March 28, 2020 @07:49PM (#22715200)
I consider the self-deployment option the 'npm eject' feature of open-core software, and I'd prefer to support an org to avoid having them disappear and consequently needing to manage my own build infra and scanning mailing lists for security vulnerabilities :P
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by mekster on Saturday March 28, 2020 @09:17PM (#22715579)
I think the author of Bitwarden should seriously start considering making the official daemon lighter as bitwarden_rs is just that good.

With a requirement to pay extra $5 on your server instance monthly for more memory to self host the official version, you'll be paying a lot more than $10/year.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by stevenjohns on Sunday March 29, 2020 @02:35AM (#22716889)
After using it for a month or so, the $10 was a no-brainer for me. Great piece of software!
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Improvotter on Saturday March 28, 2020 @08:56PM (#22715496)
Too bad that the owner/maintainer doesn't really like an open API. The only way to interact with the backend seems to be using the cli or trying to figure out the API yourself.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Xenograph on Saturday March 28, 2020 @09:14PM (#22715567)
Are you talking about Bitwarden or bitwarden_rs? Because bitwarden_rs is simply a third-party implementation of the Bitwarden API server AFAIU.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by angry_cactus on Saturday March 28, 2020 @09:39PM (#22715672)
Bitwarden gets recommended so much on Hacker News that it feels kind of like astroturfing.

That being said, I use Bitwarden and it's great.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by yingw787 on Saturday March 28, 2020 @09:50PM (#22715717)
I evaluated LastPass, OnePassword, and Bitwarden personally for my devices (Windows / macOS / Linux / iOS). Bitwarden supports all these plus more, is cheap, lightweight, reliable, UX-decent, and open-source.

If you build a great product people need, it's not a headspinner why people would use it and buy it. Hopefully going into this recession we'll see more products with that lesson baked in.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by z6 on Sunday March 29, 2020 @02:49AM (#22716932)
Other than being open source, what does Bitwarden offer over Lastpass on the free tier?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by jjnoakes on Sunday March 29, 2020 @10:41AM (#22719355)
For me: the ability to self-host and the ability to read through the code.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by sethammons on Saturday March 28, 2020 @11:09PM (#22716034)
I use bitwarden too, but I can't figure out how to get the cert to automatically update. I have port 443 served by Caddy2 and use that as a reverse proxy to Bitwarden, but Bitwarden wants to bind to 443 to update the cert. So, for now, it is a case of manually stopping Caddy, updating Bitwarden, and starting Caddy back up. The downtime is only acceptable because I only host personal stuff.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by exhilaration on Sunday March 29, 2020 @07:58AM (#22718263)
Here's what worked for me:

Run the bitwardenrs container without SSL:

sudo docker pull bitwardenrs/server:raspberry

sudo docker run -d --name bitwarden --restart always -e ADMIN_TOKEN=your_admin_token -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:raspberry

Proxy through Caddy (note that I'm using DuckDNS for DNS):

curl https://getcaddy.com | bash -s personal tls.dns.duckdns

nohup caddy -http-port 999 -conf /etc/caddy/Caddyfile -envfile /etc/caddy/CaddyEnvFile -agree -email [email protected] &

(the port 999 is because we've already got docker container running on port 80)

Follow the examples here for the configuration: https://github.com/dani-garcia/bitwarden_rs/wiki/Proxy-examp...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by hanklazard on Sunday March 29, 2020 @12:07AM (#22716312)
I’ve been running it in a docker container plugged into the nginx reverse proxy and letsencrypt companion containers. The latter claims to automatically update certs though I haven’t had it running long enough to test it. Unless you’re set on using Caddy, it’s a pretty straightforward option.

Instructions here: https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-compan...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by forty on Sunday March 29, 2020 @09:55AM (#22719009)
The issue with this kind of solution is that you need to pass your docker socket to the container. Not great.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by hanklazard on Sunday March 29, 2020 @07:31PM (#22723724)
Can you elaborate on why this is a problem? I'm fairly new to docker (and not a programmer / dev), so I'll take any tips I can get!
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by forty on Monday March 30, 2020 @06:26AM (#22726697)
It basically ruins most isolation/security benefits containers provide, since having root access to this socket allows to nearly have root access to the host. This is something you want to really avoid.

I don't really have a good solution to this "reload service when certificates are updated" problem that doesn't involve heavier container orchestration.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by gingerlime on Sunday March 29, 2020 @05:17AM (#22717490)
> I also second a curses-based terminal interface for password management, I think it'll be really useful!

Bitwarden also has a CLI, so it's probably do-able to create something like this.

I built envwarden[0] on top of the CLI, which lets us manage our server secrets with Bitwarden.

[0] https://github.com/envwarden/envwarden

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by p0llard on Saturday March 28, 2020 @06:48PM (#22714886)
Why might I want to use this over something like pass (https://www.passwordstore.org/)?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Saturday March 28, 2020 @07:26PM (#22715107)
My motivation for writing spicypass was actually a frustrating struggle I once had trying to get pass to play nicely with my GPG installation. I decided it would be easier (and more fun) to write my own.

So one of the main differences is that spicypass is setup-free. You just pick a master password and go. It achieves this by using symmetric encryption via the libsodium library. A nice side-effect of this is that backups are as simple as copying the .spicypass file to your backup device/server. With asymmetric encryption you have to worry about backing up your private keys in addition to the store file(s).

Another major difference is that it has an idle lock. Even if someone has root access to your machine and you leave it unattended while spicypass is running, they won't be able to see your passwords (assuming there's no keylogger involved).

There's also the minimalist aspect. pass has a lot of features that I personally don't need and consider to be bloat. I designed spicypass to my own personal specs: A very simple notepad-like interface, but secure. I figure I can't be the only one who thinks all the bells and whistles that most password managers have just get in the way.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by gopiandcode on Saturday March 28, 2020 @08:20PM (#22715336)
I've also experienced some difficulties with getting pass to play nicely with gpg, but the hassle was definitely worth it. An integrated pass and gpg setup allows for a single consistent means of authenticating and comes with the idle timeouts that you mention.

When I want to push to a git repo and authenticate with my private key, I just run git push normally, and a pin-entry prompt comes up, and I just need to enter my master password. Similarly, when I want to use a stored password for logging into a website, I just click the passff extension and enter my master password into the pinentry program. It would seem like something like spicypass would just bloat my system, requiring multiple programs for authenticating in different ways.

I can understand the drive for minimalism, but I can't see any reasonable metric by which pass could be seen as bloated - it provides a small set of features that are important for a password store and nothing more.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Saturday March 28, 2020 @08:26PM (#22715368)
Often it just comes down to personal preference. A necessary feature to one person is bloat to another. Git integration for example is not something that meets my criteria for a necessary feature of a password store (think non-developers), although I can certainly understand why some people might love it.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Sunday March 29, 2020 @01:28PM (#22720768)
Git integration was a major plus point for me. Undo is a basic desire everywhere, and revision control with Git gets you Undo. You get a bunch of other things from Git, but being able to Undo my inevitable mistakes is essential.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by sdan on Saturday March 28, 2020 @06:59PM (#22714944)
The benefit of Pass is it already has Chrome/Firefox plugins so all you need to do is press a keyboard shortcut and it automatically fills it in on the site.

Given SpicyPass doesn't have that, I think I'll still be with Pass, because it's free and simply amazing.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Saturday March 28, 2020 @08:35PM (#22715407)
Third party browser extensions (and cloud syncing) are two things that, while convenient, create potential security holes. I opted for security over convenience with spicypass.

I absolutely understand why this might turn some people off, maybe even most people. But I know that there are people (like me) who want something that isn't connected to the cloud, and isn't going to inherit all of the security flaws of their browser.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by forty on Sunday March 29, 2020 @10:07AM (#22719088)
Not having a browser extension is also a security risk, because copy/pasting is error prone, and does not protect you from phishing - which is more of a risk than someone taking control your computer and bruteforcing your vault IMO (of course your threat model might be different from most users, for example if you store passwords not for the web)

(Disclosure: I work for a commercial password manager that do offer browser extensions)

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @12:53PM (#22720482)
I agree that there are risks either way, though like you said, the threat model is a bit different. SpicyPass isn't explicitly for web passwords. It's just a generalized key value store with added security. I use it to store my bitcoin keys for example, and that's probably not something you want to expose to the cloud and/or your browser.

With that said I don't rule anything out for the future.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by daffy on Saturday March 28, 2020 @08:27PM (#22715371)
There is also rofi-pass, which inserts data from pass into any X window.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by asselinpaul on Saturday March 28, 2020 @07:42PM (#22715179)
Not to mention the amazing iOS app which syncs with Github and lets you add OTP codes by scanning QR codes.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by znpy on Saturday March 28, 2020 @08:38PM (#22715423)
I'm using keepassxc and I'm loving it.

Specifically, I love the fact that I can configure otp and depend less on my phone.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by flanbiscuit on Sunday March 29, 2020 @12:07PM (#22720060)
I did not know this is something KeepassXC could do! So this is basically making it do the same thing as Google Authenticator?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by gourabmi on Saturday March 28, 2020 @11:04PM (#22716010)
On a lighter note, this would have made a great name for a kitchen spices subscription. 20g garam masala delivered to your doorstep every week. Lol.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by kfrzcode on Saturday March 28, 2020 @11:09PM (#22716032)
Probably still can, different markets and all :D
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by DEADBEEFC0FFEE on Saturday March 28, 2020 @09:39PM (#22715673)
What advantage does this have over KeePass? I'm particularly anxious about early projects with less contributors, the likelihood of having a regrettable bugs is higher.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by cycomanic on Sunday March 29, 2020 @04:25AM (#22717282)
I am surprised that keepassxc does not get suggested more often. Uses the probably most common file format, has support for uibikeys, ssh agent and secret service (can act as gnome-keyring/KDE wallet substitute).

Those features make it the best password manager for me

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by xerxesaa on Sunday March 29, 2020 @06:45PM (#22723483)
Only complaint I have about it is it has no quick unlock feature unless you have a Mac with TouchID. It is really inconvenient to type the master password every time rather than a PIN. I realize there is a security trade off here, but I think it's well worth it.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by nerdponx on Monday March 30, 2020 @07:06PM (#22733089)
FWIW this is a limitation of KeepassXC itself and not the database format.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by marcthe12 on Sunday March 29, 2020 @11:19AM (#22719682)
Interesting. Just 2 questions, is there a way to sync it run on Android. Got nextcloud instance. Nice if it can do that. Since there are password I would need on the move.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by dpacmittal on Sunday March 29, 2020 @12:23PM (#22720220)
I just store my database on Dropbox and use keepassdb on android.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by marcthe12 on Sunday March 29, 2020 @02:47PM (#22721457)
Can you link to the app
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by monadic2 on Sunday March 29, 2020 @02:59AM (#22716959)
Very unrelated—SpicyPass looks quite attractive—one feature that is missing from some of these managers—possibly because the host OS does not allow it—is typing of the passwords as if from a keyboard rather than using the clipboard, which is potentially readable by malware.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by kfrzcode on Saturday March 28, 2020 @11:10PM (#22716039)
This seems less "minimalist" than Unix pass[0] - but maybe author has specific issues that are addressed?

I'm curious to see a comparison.

[0] https://passwordstore.org

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tleb_ on Sunday March 29, 2020 @05:27AM (#22717533)
Why does the string random_password(unsigned int size) function have "no duplicate characters" as a requirement? Seems to me that this would only reduce the entropy; what does it bring?

I need access to passwords from my phone so I'll stick with KeePassXC, but nice project! This makes me want to play around with lib-sodium, the API looks nice.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @12:36PM (#22720307)
That's a great question, and I wish I was good enough at math to give you a sophisticated answer. But my thinking is that the entropy you might gain by allowing duplicates is negated by the huge set of weak/guessable passwords you allow. For example, the password "aaaaA1!" is probably more likely to be guessed or used by others than "agkxA1!". (I just checked on haveibeenpwned.com, and the former has been seen 12 times, while the latter has been seen 0 times. Not very scientific I know)

Though this isn't set in stone if someone wants to formally correct me.

And libsodium is indeed a pleasure to work with.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Sunday March 29, 2020 @01:38PM (#22720862)
No, your intuition is bad.

If you use passwords of a small enough size that this would really be a problem (like four digit PINs or your "aaaaA1!" example) then your password isn't delivering adequate security against brute force and so you've definitely lost.

If you use passwords that are big enough to make brute force impractical anyway then this "feature" will never make any real difference and is just a waste of time at best, and since it adds complexity it's another place to hide bugs.

Having a PwnedPasswords check (not this silly "repeating characters" test) makes sense if you allow users to enter passwords. Whereas if you generate passwords of decent length and at random then they're random so there's no purpose in checking them.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @02:41PM (#22721404)
>If you use passwords of a small enough size that this would really be a problem (like four digit PINs or your "aaaaA1!" example) then your password isn't delivering adequate security against brute force and so you've definitely lost.

I can't force users to use reasonably long passwords. In the case that they don't (and some certainly won't), it's preferable that their password is still as good as it can be given the length.

When it comes to web logins, brute force is probably the least effective method of attack. Social engineering, dictionary attacks, rainbow tables, password lists, guessing and so on are all much bigger concerns. It's my thinking that most of those threats are better addressed by sacrificing a negligible amount of entropy and removing a large subset of weak passwords.

Moreover, this reduction in entropy only applies when the attacker knows the algorithm used to derive the password, making it even less relevant for the average case. (That's not an appeal to security through obscurity; just an observation).

>Whereas if you generate passwords of decent length and at random then they're random so there's no purpose in checking them.

Random != secure. "aaaaaaaaaa" could be the result of a random function. The goal is to create passwords that are both difficult to brute force, and difficult to guess, while making no assumptions about the length.

Entropy has diminishing returns; if it takes 10 million years to crack a password, another 5 million doesn't increase security. However I would re-consider if someone could provide a concrete example of how the small loss in entropy could lead to a practical vulnerability.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Sunday March 29, 2020 @07:35PM (#22723749)
> I can't force users to use reasonably long passwords.

But you can, apparently, force them to use passwords that meet whatever other weird criteria you choose. So this is a statement of policy. You've decided by policy to allow "agkxA1"† but not "V+0mCx&3LmgyC" (because the latter has a "duplicate letter C") and that's crazy.

> Social engineering, dictionary attacks, rainbow tables, password lists, guessing and so on are all much bigger concerns.

Since you enumerated them let's run down the list and actually examine what they are and how your "no duplicate characters" rule addresses them or doesn't.

Social engineering: bad guys persuade the user to give them the secret. Only brick wall UX works well here, so that's WebAuthn / U2F and similar. Your rule makes no difference.

Dictionary attacks: bad guys have a list of passwords to try. Some of those passwords have "duplicate characters" and so are eliminated by your rule. But others do not.

Rainbow tables: it's weird to call out Rainbow tables specifically and suggests you're cargo culting. The Rainbow table is just a very specific optimisation of a time-space tradeoff attack on password hashing (the main thing salt mitigates). Your rule actually makes things marginally easier for attackers in this scenario, again if passwords are short you lose, if they're long enough you don't gain anything.

Password lists: You already listed a dictionary attack. A password list is just a dictionary.

Guessing: Guessing is a brute force attack, the same thing you said was "least effective".

Needlessly making your software more complicated is the way it can lead to practical vulnerability, nobody is going to be able to explain this to your satisfaction and so all I can do is recommend that people avoid it.

Your "add characters from different classes into a pool, then shuffle it to make the password" approach is just slightly worse than actual random long passwords, but the added complexity to make it slightly worse is the problem.

† Actually this isn't allowed, the algorithm actually used insists upon putting at least one character of each class into the password before any others are added. But this far too short password does obey the "No duplicate characters" requirement.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @08:21PM (#22724042)
>But you can, apparently, force them to use passwords that meet whatever other weird criteria you choose.

No one is forced to use the random password generator, and even if I set a minimum limit they could just chop it up to their liking. All I can do is guide users towards a criteria I think provides the most effective security.

>You've decided by policy to allow "agkxA1"† but not "V+0mCx&3LmgyC" (because the latter has a "duplicate letter C") and that's crazy.

I didn't suggest that all passwords that contain duplicate characters are weak. But if we were to simply use a random string of characters without discrimination, then we would have to allow passwords like "aaaaaaa" and "abcdefg123", which is unacceptable in my opinion. If you agree that there should be some sort of policy that guarantees certain properties, then I'm confused by your position, as that would contradict the main point of your criticism centered around code complexity.

The list of attack vectors was not to suggest that removing duplicate characters was a solution to all of them (I disagree with your assessment but we'll leave that alone for now). I was merely highlighting the fact that brute force attacks are one of the least important factors in securing web-based accounts.

If you are able to point out a concrete example of a vulnerability introduced by disallowing duplicate characters (that includes bugs in the code caused by the added complexity) I'm all ears/eyes. If not, I'm going to call an end to this debate for now. I do appreciate your input though and it's definitely given me something to think about.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by UncleMeat on Monday March 30, 2020 @12:31PM (#22729412)
Rainbow tables are a brute force technique.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Monday March 30, 2020 @01:32PM (#22730093)
Increasing entropy mitigates brute force attacks but not necessarily rainbow table attacks, hence the distinction. If every user had a unique password, rainbow tables would be rendered useless. This is why it's important to reduce the likelihood that a randomly generated password is comprised of a common pattern.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Monday March 30, 2020 @02:17PM (#22730617)
> Increasing entropy mitigates brute force attacks but not necessarily rainbow table attacks

No. All time-space trade-offs need to expend the entire attack effort once (and usually it's considerably more). Their advantages are that you can do this in advance (timeliness) and that you can re-use the product (which is what salt mitigates).

You can very simply increase entropy until the attack effort cannot be deployed at all, regardless of when. For example the 'pass' tool lots of people have mentioned in this thread defaults to 24 character random passwords, far more than 128 bits of entropy. As a result it simply isn't possible to deploy the attack effort even once, you can neither do a Brute Force attack nor build the Rainbow Table to find these passwords.

The way the Rainbow Table got famous is its application to the LM Hash, an old (but already terrible when it shipped) Microsoft password hash. LM Hash uses two 56-bit values to represent a password, naively this looks like 112-bits of entropy but you can attack each independently so it isn't.

Rainbow Tables took attacking this from something that could in theory work on any password but you'd get bored waiting for your "crack" program to finish if it wasn't trivial to a few minutes on a fast laptop for every possible password. Because it's a time-space tradeoff, so somebody put all the effort in once and then you can re-use it.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Monday March 30, 2020 @02:49PM (#22730959)
>No

Yes. For example, if a rainbow table contains a match for "a" repeating 500 times, then that password's entropy is a non-factor. Therefore entropy in of itself does not necessarily mitigate rainbow table attacks. Entropy does necessarily mitigate naive brute force attacks. We can use this same logic for more reasonably sized passwords that are comprised of known patterns but would otherwise be difficult to brute force.

Obviously you could use extremely long passwords and be fairly certain that you won't end up with something that would be found in a rainbow table or dictionary. You could also just use passwords that are long enough that they can't be brute forced and remove common patterns from the set of possible passwords. Both of these solutions are valid, and both have theoretical weaknesses that are irrelevant in practice.

You've spent a significant amount of time trying to convince me that my random password generator is flawed in some way. Why don't you just demonstrate how instead of continuously trying to argue tangentially related theoretical points? I would hope that such an effort would be motivated by a practical concern and not merely the desire to bikeshed out of boredom.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Monday March 30, 2020 @06:46PM (#22732971)
> Yes. For example, if a rainbow table contains a match for "a" repeating 500 times, then that password's entropy is a non-factor.

This muddle reflects your overall intuitive mistake.

When you roll two fair dice the "snake eyes" (two ones) outcome has only one chance in thirty six. But if you've just rolled snake eyes, the probabily it was snake eyes isn't one in thirty six it's 1.0 exactly. We do not say, as a result, that you were "certain" to roll snake eyes, you weren't, but it has happened anyway and so now it won't change. Entropy is not a measure of what did happen it's a measure of the unknown. Password generation entropy doesn't result in passwords which change constantly, it just means you can't know what the password might be within that parameter.

Constructing a rainbow table where the choice function just cycles through some number of arbitrary guesses - and then saying if those guesses are right the rainbow worked, therefore rainbow tables were a success skips the step where it's overwhelmingly likely that none match, it fails and was a total waste of resources. Nobody actually does this because it's pointless.

When we tell humans to pick randomly they behave like you, and your algorithm - trying so hard to pick a "non-obvious" answer and thus inadvertently they're predictable. Your algorithm is, as a result, needlessly predictable compared to sane "random password" code and yet also significantly more complicated.

Look at the number line. See the first number you think isn't interesting? Well the fact it's the first non-interesting number is pretty interesting, isn't it? So now maybe that's not the first one that isn't interesting after all. Next one, same argument. Likewise your removal of "common patterns" just means the set of possible passwords is made smaller, and leaves remaining passwords with the "common pattern" of not having those "common patterns". It's futile, stop it.

If you want to put your intuition about what "random" ought to be like, put it into a playlist shuffle codebase or something, where humans will appreciate how properly "random" it feels to always get a nice mix of things. In security software this is a mistake, no matter how sure you are that it's common sense to do it your way.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Monday March 30, 2020 @08:09PM (#22733597)
You missed my point again, and your tangent on randomness is unnecessary; I have no misconceptions of how randomness works, and it is precisely that understanding that has lead me to these decisions - a pure random password generator produces every word in the English language. That's not a good thing!

The point remains that if your password generator produces passwords such as "aaaaaaa" then it is a bad algorithm, end of discussion. It doesn't matter if the passwords it produces are completely random. That's not the goal and is completely irrelevant. The goal is to produce unique, unpredictable passwords that utilize randomness. We're not producing fixed-length keys. In the average case for web-based logins, uniqueness is far more important than entropy.

So, I'll say it once more. If you can demonstrate how passwords generated by the algorithm I wrote are predictable or otherwise insecure in a real-world setting as you claim, then do it. If you cannot, then any further responses are in vain.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by tialaramex on Tuesday March 31, 2020 @11:18AM (#22738323)
> The point remains that if your password generator produces passwords such as "aaaaaaa" then it is a bad algorithm, end of discussion.

The correct algorithm does this, and you've managed to convince yourself that this is bad and it's time to invoke lots more complicated code. This is the end of the discussion in the sense that you've departed from reality so severely that you may be unable to recover.

Here's how zxc24's 'pass' does it:

  read -r -n $length pass < <(LC_ALL=C tr -dc "$characters" < /dev/urandom)
For those who can't read shell that's saying to run the random data from the OS kernel through a pipeline which removes everything except $characters and then consume $length bytes of the result as the new password.

This absolutely can give you "aaaaaaa" as a password if you've unaccountably chosen to use such short passwords - but no more easily than it might choose "fuckwit" or "X3_$mwK" or any other sequence of permitted symbols.

But enough about how to do this correctly, you're very focused on your bizarre way to pick "unique, unpredictable passwords that utilize randomness", so let's look at that again:

The tight inner loop picks characters randomly using code from Sodium. Unfortunately it discards characters from the candidate list once it has picked them, and then it has a further rule which may ignore this (already discarded) character and go round again.

For the short case (size = 4) this means it can produce only about 5.2 million different passwords, whereas a better (simpler) solution gives 78 million different passwords, you've made it more than a decimal order of magnitude worse.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by UncleMeat on Monday March 30, 2020 @07:13PM (#22733125)
> For example, if a rainbow table contains a match for "a" repeating 500 times, then that password's entropy is a non-factor.

But it doesn't. You seem to be taking it as gospel that this sort of password is going to show up in the early in the list of passwords people are trying. But I don't buy it. There is no need to reject a long password that contains some repeated characters.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Monday March 30, 2020 @08:26PM (#22733740)
Why doesn't it? If that password became public knowledge, then it certainly does exist in lists and tables. Its high entropy is only protective as long as it remains secret. This is why it's important to avoid common patterns, even if those patterns are a result of a random number generator.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by UncleMeat on Monday March 30, 2020 @08:59PM (#22733952)
Every password that becomes public knowledge ends up in credential stuffing lists, whether it matches your password policy or not.

"Common patterns" and "passwords that contain repeated characters" are not even remotely the same thing.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Monday March 30, 2020 @09:30PM (#22734126)
>Every password that becomes public knowledge ends up in credential stuffing lists, whether it matches your password policy or not.

That's right. And we don't want to produce passwords that are likely to be on those lists. A simple policy greatly reduces the chances of that happening. After a certain number of zeros, entropy is no longer a concern.

>"Common patterns" and "passwords that contain repeated characters" are not even remotely the same thing.

I've already addressed this.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Sunday March 29, 2020 @05:01PM (#22722691)
Small correction: the password that has been seen 12 times is "aaaaA1" (no ! char). But "agkxA1" has still been seen 0 times.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by liendolucas on Saturday March 28, 2020 @10:36PM (#22715908)
What about Password Gorilla? I've been using it for years now (I think a decade) and has been one of my favourite tools. It's multiplatform and opensource: https://gorilla.dp100.com/downloads/
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by hatsunearu on Saturday March 28, 2020 @11:03PM (#22716009)
I just use Firefox's built in password manager. With the sync feature it syncs to my phone as well. I don't know if they have a separate app though so I can punch it into external apps.

edit: they do!

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by INTPenis on Saturday March 28, 2020 @07:21PM (#22715068)
Minimalist is fine but it's not really fulfilling my main requirement of being able to use it from my laptop and access the passwords on my cellphone.

I still think pass is the best password manager for Unix-like systems.

It lets me use multiple keys using GPG. It's simple and minimalistic. It allows for integration with 3rd party web GUIs you can expose on your home LAN and access with a VPN from your cellphone.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by woadwarrior01 on Sunday March 29, 2020 @01:21AM (#22716653)
I switched from 1Password to pass with my gpg private key sitting on a Yubikey (with backup keys). I don’t think anything else comes close to this setup in terms of security.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by threentaway on Sunday March 29, 2020 @02:27AM (#22716860)
1Password with WebAuthn 2FA is probably better (harder for generic malware to steal), and leagues more convenient.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by woadwarrior01 on Sunday March 29, 2020 @03:10AM (#22717010)
Not true. The solution I described would survive a local machine compromise (the GPG key is maintained on the Yubikey), the 1Password based solution won’t. How could generic malware steal secrets that are not even on the device? Furthermore, pass encrypts each password separately (I.e GPG generates a new symmetric key for each password). In case of 1password, if the master password is compromised, it’s game over.

Also, I was a long time 1password user, switched to my current setup after 1Password moved to the rent-seeking subscription business model with 1Password 7.

In terms of convenience, it’s even more convenient than using 1Password. The only minor hitch is having to key in the PIN for the Yubikey if I haven’t used it for a bit.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by munchbunny on Sunday March 29, 2020 @09:03AM (#22718649)
Your solution doesn't survive a real-time attack on a local machine compromise (wait for you to enter the PIN and then opportunistically use the private key). It only makes doing so harder by automatically re-locking the key.

That said, your system is well past the point of "password storage is no longer the most economical surface to attack".

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by woadwarrior01 on Tuesday March 31, 2020 @07:13AM (#22736497)
Occasionally entering the PIN + Physical touch on the Yubikey for every decryption call. Since the private key never leaves the Yubikey, every decryption needs a physical touch.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by lordgeek on Saturday March 28, 2020 @07:22PM (#22715078)
Love the concept, but definitely needs browser extensions to be practical. Also consider using NaCl relay so you can add password sync between machines as second must have.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by thecodrr on Sunday March 29, 2020 @02:25PM (#22721288)
Yet another password manager. But then...why not? Looks simple enough, works mostly well and is good security-wise. I might try it but the only feature that puts me off is password syncing. Minimalist is fine and all but...come on; most people nowadays use multiple devices and password syncing is very important. In any case, nice project.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by rudolph9 on Saturday March 28, 2020 @06:47PM (#22714876)
I’ve been looking for something like this for awhile but not enough of a security expert to know if this is something I can trust
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by bscphil on Saturday March 28, 2020 @06:57PM (#22714932)
Not an expert, but I think I'm decently knowledgeable. The design as outlined in the security section of the readme looks just fine to me, assuming the key is securely derived from the password. I would hope for more emphasis on the importance of choosing a secure master password. Ideally you should be able to treat its hash (which is prepended to the database) as public knowledge, even if in practice you'll keep the database as private as you can.

That said, barring an audit by a respectable security firm, I think a lot of eyeballs on an open source project who can confirm that the implementation is correct is the most important thing. For that reason, I don't plan to switch away from Keypass in the near future.

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by DEADBEEFC0FFEE on Saturday March 28, 2020 @09:42PM (#22715686)
Many eyes, and/or audit is essential, for many I would think.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by xerxesaa on Saturday March 28, 2020 @07:01PM (#22714958)
Are you familiar with Bitwarden and KeePassXC? If so, I"m curious why neither of those meet your use case.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by coleifer on Saturday March 28, 2020 @08:21PM (#22715347)
How do you log into stuff on your phone, or when you don't have your password db and app installed?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by doomrobo on Saturday March 28, 2020 @07:35PM (#22715142)
It looks like you're storing an unsalted hash of the database's password in the plaintext header of the database itself. Is that correct? If so, this is a really really bad idea
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Saturday March 28, 2020 @07:44PM (#22715185)
According to the libsodium docs:

>The string produced by crypto_pwhash_str() already includes an algorithm identifier, as well as all the parameters (including the automatically generated salt) that have been used to hash the password.

https://libsodium.gitbook.io/doc/password_hashing/default_ph...

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by doomrobo on Saturday March 28, 2020 @07:49PM (#22715205)
Aha, looks like it's using a salt and iterated hashing under the hood. Thanks for the link.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by siwatanejo on Saturday March 28, 2020 @10:01PM (#22715771)
"A light-weight password manager with a focus on simplicity and security"

Simplicity? Written in C++?

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by Jfreegman on Saturday March 28, 2020 @10:16PM (#22715830)
Although that sentence refers to the interface and feature-set, not the language on which it's built, I do tend to avoid the more complex features of C++. Is there anything in particular that you find confusing or complex about the code itself?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by fermienrico on Saturday March 28, 2020 @10:04PM (#22715785)
Complexity? Written in C++?
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by gd920129 on Sunday March 29, 2020 @01:46AM (#22716737)
A new wheel.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by animalnewbie on Saturday March 28, 2020 @06:48PM (#22714885)
Sometimes you don't want minimalist- you want to quickly find and visualise things.

What I'd love is a Tui "curses" interface to keepassdb with quick vim like navigation. GUI is both too heavy and not too keyboard friendly.

In fact, unless there's a specific (and specified) reason, all password managers should be based on the somewhat de facto standard of keepassdb

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by ultrafilter on Saturday March 28, 2020 @07:27PM (#22715113)
If I have a keyboard, then for a relatively small dataset, such as my saved passwords, I prefer a text file over any database. Lookup workflow: decrypt file (with, say, gpg), find what I want (with, say, grep), delete decrypted file. (Not safe if you don't use disk encryption!) Update workflow: decrypt file, edit file, encrypt file, commit encrypted file to local git repo, git push to backup storage.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by cortesoft on Saturday March 28, 2020 @07:44PM (#22715190)
That sounds like a lot of work... I am entering passwords on websites 10-30 times a day... that would add up.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by KingMachiavelli on Saturday March 28, 2020 @10:18PM (#22715838)
The 'Pass' password manager is just bash wrapper for this. It comes with 'passmenu' which is a very simple script that pipes the list of passwords to dmenu & handles the decryption using gpg. I just have a keybinding to launch it so I can copy & insert a password into any application in seconds.

[1] https://www.passwordstore.org/

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by jmcphers on Saturday March 28, 2020 @11:58PM (#22716266)
You're describing the behavior of https://www.passwordstore.org/ almost exactly! Give it a try.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by megous on Saturday March 28, 2020 @09:31PM (#22715636)
There's a vim extension that automatically decrypts files with gpg extension on open and encrypts them on save. If you use gpg agent, this is pretty painless.

Just be careful about leaking to .viminfo file. :)

Re:Show HN: SpicyPass – A free and open-source minimalist pa... by karlicoss on Saturday March 28, 2020 @08:21PM (#22715345)
Perhaps of you pipe it into vim (i.e. | vim - ), it'd be somewhat safer and less manual work.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by blackfawn on Saturday March 28, 2020 @07:20PM (#22715064)
It's not a TUI but I have used kpcli (http://kpcli.sourceforge.net/) as a method to access keepass databases over SSH and text interfaces. I've thought about building a more TUI-based option but have yet to get around to it.
Re:Show HN: SpicyPass – A free and open-source minimalist pa... by nerdponx on Monday March 30, 2020 @07:05PM (#22733082)
Is this still being maintained? It's a great idea but the Keepass database format has been evolving (we're on version 4.x now) and I don't want to use unmaintained software to manage my passwords.