News for hackers. Stuff that matters.

Show HN: OormiPass – free, cross platform and open sourced password manager

On Github: https://github.com/oormicreations/OormiPass

Features:

* Stores passwords securely using AES encryption.

* Requires only one master password to access all passwords.

* Stores other useful info like usernames, urls, notes etc.

* Items are categorized neatly into groups, which can be accessed easily by simply clicking their names in the list.

* Users can customize the groups and all items in the group.

* Open URLs directly from Oormi Pass and paste your username and password. Save precious time.

* Functions to auto log out and change master password.

* Hide or show passwords.

* Built in password generator.

* Minimal UI.

* Runs on MS Windows 7 to 10, Linux and Mac OS.

* Code::Blocks 17.12, MinGW, C++11, wxWidgets 3.1.2

* Dependencies: wxWidgets 3.1.2, wxSmith, Crypto++ 5.6.3

Binary for Windows (exe) is available.

( 52 comments | 61 points | on HN )
Re:Show HN: OormiPass – free, cross platform and open source... by robko on Saturday January 26, 2019 @09:07AM (#19006328)
rand() [1] is not a secure source of randomness. I strongly recommend against using that password manager since it is not secure.

[1] https://github.com/oormicreations/OormiPass/blob/d1d2bf5100f...

Re:Show HN: OormiPass – free, cross platform and open source... by badrabbit on Saturday January 26, 2019 @09:36AM (#19006434)
+1 hope this comment is top. They use it for salt and password generation: https://github.com/oormicreations/OormiPass/blob/1a6f0b99613...

Also,

> The master password is not stored. An SHA256 salted hash is stored instead.

Have they heard of scrypt or argon2? And they're not using a KDF(!!!!!!) With sha256.

Dear Authors,if you ever read this,please look at: https://cryptopp.com/wiki/Key_Derivation_Function

And

https://cryptopp.com/wiki/RandomNumberGenerator

Re:Show HN: OormiPass – free, cross platform and open source... by hn_throwaway_99 on Saturday January 26, 2019 @09:45AM (#19006473)
All of these top comments remind me of the general adage that encryption and security are really hard, and if you think you know what you're doing you probably don't.

I don't want to be too harsh for a ShowHN, but even if the authors fixed the several bugs that have already been reported here, it's clear they don't have a foundational enough understanding of cryptography and security to be writing a password manager. I would suggest they spend more time understanding the basics first.

Re:Show HN: OormiPass – free, cross platform and open source... by zokier on Saturday January 26, 2019 @09:05AM (#19006321)
For the authors I recommend reading the following pages very carefully:

https://www.cryptopp.com/wiki/RandomNumberGenerator

https://www.cryptopp.com/wiki/Authenticated_Encryption

Also take heed of this note:

> Please take a moment to read Authenticated Encryption and understand why you should prefer to use CCM, GCM, or EAX over other modes, such as CBC or CTR.

from https://www.cryptopp.com/wiki/CFB_Mode

Re:Show HN: OormiPass – free, cross platform and open source... by arghwhat on Saturday January 26, 2019 @10:25AM (#19006639)
While I have no inspected OP's use of cryptographic primitives (comments seem to indicate that OP has not made proper use of RNGs), do note that authenticated encryption modes, or rather authentication in general, serves a purpose that is not really relevant for a password manager.

That is, I do not find an adversary replacing, trashing, or performing zero-knowledge modifications on my credentials to be an attack vector that has any importance. What would the adversary gain from tampering with passwords (which authentication would protect against) without the ability to read them (which encryption takes care of)? It would mean that I lose access to, say, my online bank account, but this is just as well done by deleting the database without tampering.

My only interest would appear to be to maintain secrecy of my password database so that an adversary does not obtain my access to my passwords, which does not require authentication.

That does not mean that using AES-GCM would hurt, but it also wouldn't really add any notable benefits here. Unless someone else can think of a scenario where authentication would be needed?

Re:Show HN: OormiPass – free, cross platform and open source... by mirashii on Saturday January 26, 2019 @11:44AM (#19007015)
> That is, I do not find an adversary replacing, trashing, or performing zero-knowledge modifications on my credentials to be an attack vector that has any importance.

I wanted to pick this sentence out to point out the general most important thing that any project that claims to be security-oriented should have: A documented threat model. You should know exactly what this thing does try to prevent, and what it explicitly does not try to prevent. A lack of one should be taken as a sign that it isn't ready for any use that requires security.

Re:Show HN: OormiPass – free, cross platform and open source... by arghwhat on Sunday January 27, 2019 @06:26AM (#19011314)
Hear, hear! The concept of documented threat models is far too rarely used. And, to be frank, the threat model needs to be in place before you design the product.
Re:Show HN: OormiPass – free, cross platform and open source... by detaro on Saturday January 26, 2019 @11:13AM (#19006856)
Scenarios where I can tamper with the password database, but not e.g. add a keylogger to your system are of course somewhat limited (although people love to put the database in sync services like Dropbox) Not just the passwords, the bigger data structure should be authenticated. Some possible scenarios:

I can copy the encrypted password to another entry that's easier to compromise: E.g. you might be suspicious of a phishing mail targetting your bank account, but are you paying the same attention to a faked message from a random webforum you use? (Or maybe an attacker can hack said forum a lot easier than your bank)

For a more featureful password manager that has gained a browser plugin that matches on URLs, I can now add an entry for my phishing URL to the password manager.

Re:Show HN: OormiPass – free, cross platform and open source... by badrabbit on Saturday January 26, 2019 @07:13PM (#19009455)
As a principle secure things should pay attention to details and follow best practice. For me,I'm more concerned about lack of kdf and rng. But it all depends on how the program treats the data after decryption and how your password db is stored and transported. You have to also keep in mind that users keep other secrets as well in a password manager,not just passwords. You're giving the public a secure secret storage mechanism,you should follow best practices because you don't know exactly what type of attackers your users face ,what type of specific data/creds they store in it or how they transport it.
Re:Show HN: OormiPass – free, cross platform and open source... by tptacek on Saturday January 26, 2019 @01:35PM (#19007627)
You need to be more careful with your reasoning. It's not always the case that a MAC simply prevents "replacing, trashing, or performing zero-knowledge modifications" on your data. It can be the case that you cannot retain confidentiality without integrity; MACs prevent chosen-ciphertext attacks.
Re:Show HN: OormiPass – free, cross platform and open source... by arghwhat on Sunday January 27, 2019 @06:21AM (#19011303)
While correct that authentication can prevent chosen-ciphertext, I do not see how such an attack could be relevant against an offline password manager. I ignored it for that reason.
Re:Show HN: OormiPass – free, cross platform and open source... by tptacek on Sunday January 27, 2019 @11:28AM (#19012303)
There is also the Efail pattern of attacks, where malleable ciphertext is used to inject active controlled plaintext (HTML tags, different URLs, etc) that exfiltrate the rest of plaintext. Can you rule that out as well?

There's a reason some people call this "the cryptographic doom principle".

Re:Show HN: OormiPass – free, cross platform and open source... by SallySwanSmith on Saturday January 26, 2019 @11:07AM (#19006834)
Corruption detection is the main one, but it is indeed not a security issue
Re:Show HN: OormiPass – free, cross platform and open source... by arghwhat on Sunday January 27, 2019 @06:28AM (#19011319)
Indeed, and if corruption detection is your goal, a checksum is the proper solution. Authentication is an expensive and roundabout way to do simple corruption detection.
Re:Show HN: OormiPass – free, cross platform and open source... by steveharman on Saturday January 26, 2019 @10:21AM (#19006624)
Isn't this wheel reinvention?

Bitwarden https://github.com/bitwarden

Runs on anything including mobile platforms and is100% open source.

There's even a free cloud tier available to sync with.

Re:Show HN: OormiPass – free, cross platform and open source... by move-on-by on Saturday January 26, 2019 @01:08PM (#19007483)
Even more importantly, BitWarden has passed a third party security audit and published its results: https://blog.bitwarden.com/bitwarden-completes-third-party-s...

Not trying to bash OormiPass, but other commentators are already finding concerning security issues like a non-secure random.

Re:Show HN: OormiPass – free, cross platform and open source... by slezyr on Saturday January 26, 2019 @11:27AM (#19006933)
requires mssql if you want to self host... Meh, keepassx still better.
Re:Show HN: OormiPass – free, cross platform and open source... by Spivak on Saturday January 26, 2019 @11:32AM (#19006958)
Check out bitwarden_rs for an alternative backend that's easier to host.
Re:Show HN: OormiPass – free, cross platform and open source... by peterloron on Saturday January 26, 2019 @12:51PM (#19007385)
While keepassx is a great tool, Bitwarden is a much more capable product which solves many more use cases than the single device/single user one.

Yes, the dependency on mssql is a bummer, but it is freely available and is a robust db system. And, as other have pointed out, there are alternate backends you can run if you want to forego support from the vendor.

Re:Show HN: OormiPass – free, cross platform and open source... by Semaphor on Saturday January 26, 2019 @02:48PM (#19008047)
While I can believe that multi-user with Keepass would be problematic to say the least, multi-device is not. I've been using it for years with several devices syncing via my own NextCloud instance.
Re:Show HN: OormiPass – free, cross platform and open source... by VWWHFSfQ on Saturday January 26, 2019 @10:50AM (#19006756)
nobody should ever try to make a thing if a thing that does the same thing already exists!
Re:Show HN: OormiPass – free, cross platform and open source... by maccio92 on Saturday January 26, 2019 @10:55AM (#19006783)
They should try, but maybe if they make the most common RNG mistakes they aren't suited for reinventing this particular wheel. There are many issues with the RNG and cryptography methods if you read the other comments.
Re:Show HN: OormiPass – free, cross platform and open source... by y7 on Saturday January 26, 2019 @09:08AM (#19006330)
I have not confirmed it, because building it on MacOS seems to be a bit of a pain, but by glancing at the source code it looks like this encrypts passwords separately but with the same IV, trivially breaking security (even at rest).
Re:Show HN: OormiPass – free, cross platform and open source... by tzs on Saturday January 26, 2019 @11:17AM (#19006872)
I'm aware of chosen plaintext attacks against a reused IV, but at rest the attacker is just an observer.

Offhand, the only problem I see with a fixed IV for string storage encryption is that if two passwords match in the first kB bits, were B is the AES blocksize and k is a positive integer, and assuming CBC mode, the attacker can see this.

Are there worse holes open to someone who is just observing at rest data?

That reminds me of something I've wondered about. How about AES in CBC mode with a fixed IV, but the plaintext is prepended with a hash of the entire message first, using a hash of at least the size of the AES block?

In effect, if the hash output is the size of one AES block, that makes the hash encrypted with the key using the fixed IV be the IV for the encryption of the plaintext.

That should effectively give each plaintext its own IV derived from its hash and the key, but conveniently stores this in the output string so you don't have to have separate IV storage. This could be convenient in applications where you adding encryption to something existing, such as changing a DB to hold encrypted values instead of plaintext values in certain columns, but where you are reluctant to add new fields, such as adding a column for the IVs.

For some storage applications, you want to support checking if a given plaintext is already stored and return the index of that prior instance in that case rather than store a new instance, so if you use random IVs then you need to separately store a hash of each item, and if that is not encrypted that could be a vulnerability if someone stole a copy of the DB if the plaintexts are small (like credit card numbers).

The prepend the hash to the plaintext and use a fixed IV on that provides the reproducibility for duplicate checking, without obviously exposing the hash to someone who steals the DB, while effectively encrypting the actual plaintext using a pseudorandom IV derived from the AES key and the hash.

But I've not seen it used or described, so don't know if it is an OK approach.

Re:Show HN: OormiPass – free, cross platform and open source... by y7 on Saturday January 26, 2019 @12:46PM (#19007348)
The code uses CFB mode, so fixing the IV results in a constant first block, which gets XOR'd with the first plaintext blocks to make the first ciphertext blocks. So knowing one plaintext gives you access to all first plaintext blocks.

One problem with your proposal is that for CPA security cuts the security level of the scheme in half. For an n-bit hash about 2^(n/2) operations are required to find a collision, and given a collision you break CPA security.

Re:Show HN: OormiPass – free, cross platform and open source... by catacombs on Saturday January 26, 2019 @08:30AM (#19006195)
Pass is literally all you need: https://www.passwordstore.org/
Re:Show HN: OormiPass – free, cross platform and open source... by _underfl0w_ on Saturday January 26, 2019 @10:36AM (#19006689)
My biggest concern with pass (even after keeping the password store itself on a Veracrypt volume) is that - authorized or not - typing the `pass` command prints a nice, pretty list of every website/password title in the store. That makes me really uneasy. I considered changing them all to random strings, but that would make it difficult for me to find the password I need - defeating the purpose.

I do love the fact that it uses git though. This is huge when you have it on multiple devices and might, say, add a new password from your phone.

Re:Show HN: OormiPass – free, cross platform and open source... by aesh2Xa1 on Saturday January 26, 2019 @12:43PM (#19007329)
You could put the pass directory on an encrypted filesystem.
Re:Show HN: OormiPass – free, cross platform and open source... by kgraves on Saturday January 26, 2019 @09:00AM (#19006302)
I would rather not use the command line to manage my passwords and not everyone can use the command line.
Re:Show HN: OormiPass – free, cross platform and open source... by Legogris on Saturday January 26, 2019 @09:10AM (#19006338)
There are a variety of clients for several platforms (desktop and mobile apps, browser extensions, desktop environment integrations). You can use pass without a single console line.

Not sure why this is downvoted, at first look this seems to solve things similarly to GNU pass except pass makes sharing password stores with teams etc smooth. Because of using GPG rather than straight up asymmetric encryption you get a key management for free.

Additionally crypto implementation seems hit well-designed. This would have been a lot better as a GNU pass client - exact same user experience but they wouldn't have to solve several important problems.

Re:Show HN: OormiPass – free, cross platform and open source... by baliex on Saturday January 26, 2019 @09:15AM (#19006354)
Interested in how pass can be used without the command line?
Re:Show HN: OormiPass – free, cross platform and open source... by Legogris on Saturday January 26, 2019 @09:44AM (#19006467)
They have some links on their front-page (linked in the top comment): https://www.passwordstore.org/#other

Personally I use qtpass as a GUI manager and passmenu for fetching from clipboard via a keyboard shortcut.

Re:Show HN: OormiPass – free, cross platform and open source... by stabbles on Saturday January 26, 2019 @09:52AM (#19006497)
I'm using `pass` for years now and it's perfect. On Android there is the Password Store app which integrates with the OpenPGP app, it's amazing :).
Re:Show HN: OormiPass – free, cross platform and open source... by bhhaskin on Saturday January 26, 2019 @09:43AM (#19006463)
Agreed pass is fantastic. It's built on top of tools such as gpg and git. It's simple and easy to extend or build clients for.
Re:Show HN: OormiPass – free, cross platform and open source... by hysan on Saturday January 26, 2019 @08:10AM (#19006130)
What differences does this have with KeepassXC?
Re:Show HN: OormiPass – free, cross platform and open source... by ivanstegic on Saturday January 26, 2019 @07:54AM (#19006077)
How is this different than Bitwarden?
Re:Show HN: OormiPass – free, cross platform and open source... by mig4ng on Saturday January 26, 2019 @08:05AM (#19006118)
From what I read this is a offline (in device) password manager, as BitWarden is a service (online).
Re:Show HN: OormiPass – free, cross platform and open source... by dcbadacd on Saturday January 26, 2019 @11:01AM (#19006810)
Yep, BitWarden can't handle being offline (storing passwords for ex.).
Re:Show HN: OormiPass – free, cross platform and open source... by Spivak on Saturday January 26, 2019 @11:36AM (#19006976)
Bitwarden handles being offline just fine. Like you need to go online eventually if you want to sync your changes but it's not like you need internet to manage your vault.
Re:Show HN: OormiPass – free, cross platform and open source... by dcbadacd on Saturday January 26, 2019 @07:01PM (#19009408)
It lost a password for me when I were offline and pressed "Yes, save password" on the bar dialogue, don't discount the possibility of bugs existing.
Re:Show HN: OormiPass – free, cross platform and open source... by aequitas on Saturday January 26, 2019 @10:29AM (#19006653)
> Open URLs directly from Oormi Pass and paste your username and password. Save precious time.

The features I find most important (besides security) in a password manager is integration and portability. If I can't have my passwords easily where I need them (eg: (auto)filled in forms on my (mobile) browser) without resorting to copy/paste I might as well just use GPG encrypted text files.

There are already enough password managers out there that provide organised secure storage for secrets (eg: pass, 1password). To stand out to me you just really need good integration.

Re:Show HN: OormiPass – free, cross platform and open source... by rzwitserloot on Saturday January 26, 2019 @11:44AM (#19007014)
Feels like this adds nothing compared to various keepass (clone) offerings.

What I'm really looking for is something like this, but with SSSS support ( http://point-at-infinity.org/ssss/ ) - I want to host the encrypted db someplace, and hand a group of friends and family subkeys, such that if X of the Y I gave a key to join forces and combine their keys, they can also decrypt my DB.

Useful if I'm dead or in a coma or whatnot.

Does anybody know of one?

Re:Show HN: OormiPass – free, cross platform and open source... by zokier on Saturday January 26, 2019 @12:48PM (#19007364)
I imagine making something like that would be fairly easy as an Keepass plugin.
Re:Show HN: OormiPass – free, cross platform and open source... by brodsky on Saturday January 26, 2019 @12:08PM (#19007147)
perhaps Hashicorp Vault fits your requirement? it is not a trivial piece of software to host, but it has the multi-key feature that you need. otherwise, it's mostly a key-value store.
Re:Show HN: OormiPass – free, cross platform and open source... by mdaniel on Saturday January 26, 2019 @01:50PM (#19007726)
For my curiosity, what makes vault non-trivial to host? I readily admit that it is non-trivial to run inside kubernetes because of the unseal mechanism, but as for just run "vault on this machine" it is my experience that it is fantastically easy.
Re:Show HN: OormiPass – free, cross platform and open source... by oormicreations on Saturday January 26, 2019 @02:30PM (#19007930)
Thank you all for your comments and for pointing out the bugs. Hopefully, the coming versions will be more secure. This was a good learning exercise. Contributions are most welcome (Especially on authentication issue, the rand issue and IV issue seems to be fixable).
Re:Show HN: OormiPass – free, cross platform and open source... by 0xfaded on Saturday January 26, 2019 @03:30PM (#19008278)
I realize this isn't a solution for everyone, but my password management is

  pw.sh
  gpg -c ~/passwords.gpg | grep "$1"
Where passwords.gpg is a list of credentials next to a greppable identifier.
Re:Show HN: OormiPass – free, cross platform and open source... by tialaramex on Saturday January 26, 2019 @04:13PM (#19008534)
pass from zx2c4 is this but much more refined, if you ever get tempted to add "a couple more features" to your hack I recommend just using pass instead.

e.g. pass also knows how to generate passwords and how to remember related info like which email address is associated with a particular password.

Re:Show HN: OormiPass – free, cross platform and open source... by vorticalbox on Saturday January 26, 2019 @02:11PM (#19007834)
Needs a way to sync to cloud storage, having all your files locally is a good way to lose them all if something happens let data corruption.
Re:Show HN: OormiPass – free, cross platform and open source... by awill on Saturday January 26, 2019 @10:13AM (#19006589)
I'm using enpass. Fantastic, cheap and runs on Win/Mac/Linux and iOS/Android. Also syncs to your cloud of choice.
Re:Show HN: OormiPass – free, cross platform and open source... by tmd83 on Saturday January 26, 2019 @10:23AM (#19006628)
Enpass has many nice features. The PIN lock, the cloud drive sync (not centralized but still easy) but damn version 6 has been breaking things in so many ways that it's disappointing. It's so hard to find things and random things don't work between Mac/Linux. I wish people would go for look so much.

And it has burned me a couple of times because it never shows if you unsync or sync had any error.

Re:Show HN: OormiPass – free, cross platform and open source... by brodsky on Saturday January 26, 2019 @12:13PM (#19007172)
another Enpass user here. it works very well for me on Mac and Android.