Skip to content
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

A call for AEAD #280

Closed
rugk opened this issue Mar 16, 2017 · 3 comments
Closed

A call for AEAD #280

rugk opened this issue Mar 16, 2017 · 3 comments

Comments

@rugk
Copy link

rugk commented Mar 16, 2017

For client-side encryption you use CCM, which is used in JSCL.
This is authenticated encryption (AEADS). GCM may just be more performant and you may switch (it's just one parameter in JSCL), but AFAIK it is not insecure.

According to your description you are using CBC with HMAC in a way that seems to be okay, but you should use authenticated encryption. Again e.g. GCM. It makes it much easier…
And simplicity is always good when it comes to using crypto.

E.g. OwnCloud had problems when they did not use AEADs…

Okay, no AEADs in older PHP versions, but you could e.g. use Libsodium or so…
At least when it is available.

@rugk rugk changed the title CBC, AEAD, … A call for AEAD Mar 16, 2017
@animalillo
Copy link
Collaborator

Yes, we use AES-256-CCM
No, it's not as simple as changing a parameter, since it would requiere vault regeneration and changing whole encryption code of the android app, which, believe me, it's pretty hard, and i don't think it's such a big performance implication.

Also if it's about performance, you should be thankful we use an slow algorythm as it takes longer to bruteforce!

So, as we don't currently have time to make such a huge change, i don't think we will think on changing the clientside encryption algorithm.

@brantje
Copy link
Member

brantje commented Mar 16, 2017

What @animalillo said. Also the browser extension has to be updated.
Also changing the encryption makes the app more error prone, since we have to check the encryption we used. If it's an old one update it. Not even speaking of the sharing part.

You're welcome to fork passman and make a PR.

@brantje brantje closed this as completed Mar 16, 2017
@rugk
Copy link
Author

rugk commented Mar 16, 2017

I agree on all parts except this:

since we have to check the encryption we used. If it's an old one update it.

I think at some time you'll have to do that anyway. You can't really claim you can/should use the current encryption algorithm in 10 or 20 years. It likely is not broken, but better ones are available…
So it's always a good idea to have some way to check the "version" of the encryption algorithm of a vault or so. 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants