Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread intrigeri
Hi Rémi,

Rémi wrote (12 May 2014 09:48:13 GMT) :
 I wrote an ephemeral password manager, for privacy and anonymity.
 The idea is that you use a root password to deterministically generate
 credentials, so no need to store the credentials.

Thanks for this suggestion.

Just curious: is there any threat model description, and security
analysis of the underlying password generation algorithm, to be
found somewhere?

Cheers,
-- 
  intrigeri
  | GnuPG key @ https://gaffer.ptitcanardnoir.org/intrigeri/intrigeri.asc
  | OTR fingerprint @ https://gaffer.ptitcanardnoir.org/intrigeri/otr.asc
___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.

Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread jvoisin
On 05/13/2014 03:17 PM, Rémi wrote:
 Good suggestion.
 
 I added the following text to the repository:
 
 Goldfish is unlocked using 1.000.000 rounds of sha512, which takes ~1.5
 seconds in python. The hash rounds are not meant to replace an actual
 strong password, so the password should be about as strong as your
 truecrypt password.
 A danger is that the root password would be guessed. It is also not
 obvious how to change a password. If a service provider has the
 username/password pair this does not give away anything about other
 credentials.
 
 Obfuscation.
 The usernames are designed to 'look real'. They are derived from common
 western names with an added suffix. The service passwords and username
 suffixes vary in length to further obfuscate that Goldfish is used.
 If someone really wants to they could figure out that a set of
 credentials was likely generated using Goldfish. This should not
 directly be obvious, certainly not by just looking at the username.
 
 R.

A quick glance at your code tells me that I don't want to use this
software at all.

- My own implementation of a slow hash function. : Why are you
inventing your own crypto ?

- # Pop the first number because it is probably less random. :
Probably less random ?!

- # Yes, I know how this affects the name distribution. : Why
admitting that your distribution is flawed instead of fixing it ?!

-  Given some information it looks up the correct username and
appends some random data  : This is wrong, the appended data is not
random at all.

- Your lock/unlock system has no control over the memory of the process.

- ...

You may want to read some papers about cryptography before creating this
kind of softwares.
 
 
 On 13/05/14 12:09, intrigeri wrote:
 Hi Rémi,

 Rémi wrote (12 May 2014 09:48:13 GMT) :
 I wrote an ephemeral password manager, for privacy and anonymity.
 The idea is that you use a root password to deterministically generate
 credentials, so no need to store the credentials.

 Thanks for this suggestion.

 Just curious: is there any threat model description, and security
 analysis of the underlying password generation algorithm, to be
 found somewhere?

 Cheers,

 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.
 

___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.

Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread intrigeri
Hi Julien,

You didn't Cc Rémi, so I doubt your email reached him. Which might be
just as well, as I personally find the tone of your answer out of
line, and inappropriate. I don't want to take part in a community
where we bully newbies. Let's try to be excellent to each other :)

Note that I trust your technical points are probably correct (without
checking myself), so it's only a matter of how one expresses criticism
about technical issues.

jvoisin wrote (13 May 2014 13:28:11 GMT) :
 You may want to read some papers about cryptography before creating this
 kind of softwares.

I'm not sure if academic papers would be the best way to learn this
stuff for someone with Rémi's starting point: they are generally full
of good theory, but hard to relate to when one tries to implement
something actually useful, and lacks the academic background.

I think I would instead recommend texts that link more strongly
theoretical cryptography knowledge to practical implementation
requirements, such as Applied Cryptography, or the Secure Programming
Howto. I'd love to hear more suggestions of such readings, by the way.

Cheers!
___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.

Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread Rémi
Going over your points:

- Yes, I should select some other slow hash function. Do you have a
suggestion for a secure function available in python?

- It is less random. That is why it is popped.

- It really doesn't matter if some names have a tiny bit lower
probability of getting selected. Much more useful would be to add more
names.

- Now you're just trolling. The username suffix is indeed not random,
but derived like the rest of the credentials.

- Yes, in python you do not have control over memory like you have in C.

Maybe the comments should have been formulated to look less scary? As I
pointed out in the code, I indeed need another slow hash function. I'm
on it.

R.


On 13/05/14 15:28, jvoisin wrote:
 On 05/13/2014 03:17 PM, Rémi wrote:
 Good suggestion.

 I added the following text to the repository:

 Goldfish is unlocked using 1.000.000 rounds of sha512, which takes ~1.5
 seconds in python. The hash rounds are not meant to replace an actual
 strong password, so the password should be about as strong as your
 truecrypt password.
 A danger is that the root password would be guessed. It is also not
 obvious how to change a password. If a service provider has the
 username/password pair this does not give away anything about other
 credentials.

 Obfuscation.
 The usernames are designed to 'look real'. They are derived from common
 western names with an added suffix. The service passwords and username
 suffixes vary in length to further obfuscate that Goldfish is used.
 If someone really wants to they could figure out that a set of
 credentials was likely generated using Goldfish. This should not
 directly be obvious, certainly not by just looking at the username.

 R.
 
 A quick glance at your code tells me that I don't want to use this
 software at all.
 
 - My own implementation of a slow hash function. : Why are you
 inventing your own crypto ?
 
 - # Pop the first number because it is probably less random. :
 Probably less random ?!
 
 - # Yes, I know how this affects the name distribution. : Why
 admitting that your distribution is flawed instead of fixing it ?!
 
 -  Given some information it looks up the correct username and
 appends some random data  : This is wrong, the appended data is not
 random at all.
 
 - Your lock/unlock system has no control over the memory of the process.
 
 - ...
 
 You may want to read some papers about cryptography before creating this
 kind of softwares.


 On 13/05/14 12:09, intrigeri wrote:
 Hi Rémi,

 Rémi wrote (12 May 2014 09:48:13 GMT) :
 I wrote an ephemeral password manager, for privacy and anonymity.
 The idea is that you use a root password to deterministically generate
 credentials, so no need to store the credentials.

 Thanks for this suggestion.

 Just curious: is there any threat model description, and security
 analysis of the underlying password generation algorithm, to be
 found somewhere?

 Cheers,

 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.

 
 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.
 
___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.

Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread Rémi
By that I mean the comments in my own code.

On 13/05/14 15:58, Rémi wrote:
 Maybe the comments should have been formulated to look less scary?
___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.

Re: [Tails-dev] Goldfish the ephemeral password manager.

2014-05-13 Thread jvoisin
On 05/13/2014 03:58 PM, Rémi wrote:
 Going over your points:
 
 - Yes, I should select some other slow hash function. Do you have a
 suggestion for a secure function available in python?
Currently, Python doesn't come with those kind of function.
 
 - It is less random. That is why it is popped.
Then you should update the comment :)
 
 - It really doesn't matter if some names have a tiny bit lower
 probability of getting selected. Much more useful would be to add more
 names.
 
 - Now you're just trolling. The username suffix is indeed not random,
 but derived like the rest of the credentials.
Then it shouldn't be described as random :)
 
 - Yes, in python you do not have control over memory like you have in C.
This is why those kind of tools should not be written in Python:
- You don't have control over memory
- You can't guarantee that your code can run in constant time.
 
 Maybe the comments should have been formulated to look less scary? As I
 pointed out in the code, I indeed need another slow hash function. I'm
 on it.
Yes. Sorry for the harsh tone :|

The idea of deriving passwords from a master is not knew.
What about using something like HMAC for this ?
 
 R.
 
 
 On 13/05/14 15:28, jvoisin wrote:
 On 05/13/2014 03:17 PM, Rémi wrote:
 Good suggestion.

 I added the following text to the repository:

 Goldfish is unlocked using 1.000.000 rounds of sha512, which takes ~1.5
 seconds in python. The hash rounds are not meant to replace an actual
 strong password, so the password should be about as strong as your
 truecrypt password.
 A danger is that the root password would be guessed. It is also not
 obvious how to change a password. If a service provider has the
 username/password pair this does not give away anything about other
 credentials.

 Obfuscation.
 The usernames are designed to 'look real'. They are derived from common
 western names with an added suffix. The service passwords and username
 suffixes vary in length to further obfuscate that Goldfish is used.
 If someone really wants to they could figure out that a set of
 credentials was likely generated using Goldfish. This should not
 directly be obvious, certainly not by just looking at the username.

 R.

 A quick glance at your code tells me that I don't want to use this
 software at all.

 - My own implementation of a slow hash function. : Why are you
 inventing your own crypto ?

 - # Pop the first number because it is probably less random. :
 Probably less random ?!

 - # Yes, I know how this affects the name distribution. : Why
 admitting that your distribution is flawed instead of fixing it ?!

 -  Given some information it looks up the correct username and
 appends some random data  : This is wrong, the appended data is not
 random at all.

 - Your lock/unlock system has no control over the memory of the process.

 - ...

 You may want to read some papers about cryptography before creating this
 kind of softwares.


 On 13/05/14 12:09, intrigeri wrote:
 Hi Rémi,

 Rémi wrote (12 May 2014 09:48:13 GMT) :
 I wrote an ephemeral password manager, for privacy and anonymity.
 The idea is that you use a root password to deterministically generate
 credentials, so no need to store the credentials.

 Thanks for this suggestion.

 Just curious: is there any threat model description, and security
 analysis of the underlying password generation algorithm, to be
 found somewhere?

 Cheers,

 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.


 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.

 ___
 Tails-dev mailing list
 Tails-dev@boum.org
 https://mailman.boum.org/listinfo/tails-dev
 To unsubscribe from this list, send an empty email to 
 tails-dev-unsubscr...@boum.org.
 

___
Tails-dev mailing list
Tails-dev@boum.org
https://mailman.boum.org/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
tails-dev-unsubscr...@boum.org.