Bitcoin Forum
May 02, 2024, 10:33:55 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: [ANN] CoinMessage: Secure Messaging with Bitcoin Addresses  (Read 7049 times)
altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 02:19:01 AM
 #41


It is very much along those lines, yes.

Quote
I'm not sure exactly how your system works but I would have thought it should be possible to use ECDH to create a shared secret without compromising your secret key and use this in a symmetric encryption scheme (AES) without compromising the shared secret? Isn't this basically what is done in ECIES?

Can you elaborate on this? The shared secret is rP where r is a random nonce in the prime field F/p and P is the public key point. This is never transmitted, rG is. I'm not sure I understand how this compromises the secret key?

Quote
The private key is used in the creation of the shared secret but if this is done ok then using the shared secret in a secure symmetric system shouldn't compromise it in any way.

I may have misunderstood things but I don't see how the same private key is used for signing and encrypting - the shared secret used for encrypting isn't the private key of the bitcoin address is it??

The private key is not used in the creation of the shared secret since the person encrypting has only the public key and computes the shared secret through a nonce.

No, the shared secret used for encryption is not the same as the private key used to sign the bitcoin address.

I may not have understood gmaxwell correctly, but I thought this was still a potential vulnerability as the private key is still used for decryption?
1714689235
Hero Member
*
Offline Offline

Posts: 1714689235

View Profile Personal Message (Offline)

Ignore
1714689235
Reply with quote  #2

1714689235
Report to moderator
1714689235
Hero Member
*
Offline Offline

Posts: 1714689235

View Profile Personal Message (Offline)

Ignore
1714689235
Reply with quote  #2

1714689235
Report to moderator
"This isn't the kind of software where we can leave so many unresolved bugs that we need a tracker for them." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714689235
Hero Member
*
Offline Offline

Posts: 1714689235

View Profile Personal Message (Offline)

Ignore
1714689235
Reply with quote  #2

1714689235
Report to moderator
1714689235
Hero Member
*
Offline Offline

Posts: 1714689235

View Profile Personal Message (Offline)

Ignore
1714689235
Reply with quote  #2

1714689235
Report to moderator
Crowex
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
December 18, 2013, 02:27:09 AM
 #42

Yes, that's the way I thought you were doing it?
I don't understand the problem. I think they might have not understood that you were using the shared secret for symmetric encryption.
altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 02:30:50 AM
 #43

Yes, that's the way I thought you were doing it?
I don't understand the problem. I think they might have not understood that you were using the shared secret for symmetric encryption.


So are you saying gmaxwell's main objection doesn't apply? That by having a shared secret with symmetric encryption inside, the attacks don't reveal anything about the private key?
Crowex
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
December 18, 2013, 03:06:57 AM
 #44

II think bit message uses ECIES. I believe it's secure as long as you perform your key exchange ok and you're using a secure symmetric cryptography (I might be wrong). and I think ( but I don't know exactly what your program does) that you are using the same sort of ideas. You would probably be better off just implementing ECIES though.
 I don't think your OP explained your system in enough detail so it may have been misunderstood. Also bear in mind that I'm quite often wrong about stuff. Smiley
 
 
altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 03:13:48 AM
 #45

II think bit message uses ECIES. I believe it's secure as long as you perform your key exchange ok and you're using a secure symmetric cryptography (I might be wrong). and I think ( but I don't know exactly what your program does) that you are using the same sort of ideas. You would probably be better off just implementing ECIES though.
 I don't think your OP explained your system in enough detail so it may have been misunderstood. Also bear in mind that I'm quite often wrong about stuff. Smiley
 
 

I am using ECIES, I think. I would need a more experienced cryptographer to examine the code to make sure, but it's fairly straightforward. The shared secret gets exchanged securely using the same discrete logarithm problem. The shared secret then is plugged into a key derivation function which is used to make a cipher and an hmac for evaluating the checksum. The cipher then is used for encrypting and decrypting the message. And the checksum is checked to make sure the message arrived un-modified. That's how ECIES works, I think. That's at least what I tried to implement.
Nite69
Sr. Member
****
Offline Offline

Activity: 477
Merit: 500


View Profile
December 18, 2013, 07:42:04 AM
 #46

  • Logins to websites without passwords, instead using a challenge/response mechanism like GPG auth.
  • A consistent pseudonymous internet identity that can provably be the same across websites.
This has been builtin to Bitcoin-Qt since 0.6 and used for things like the Eligius mining pool and #Bitcoin-OTC for just about as long. Smiley
Here's an example walkthrough written by BunnyH.

Here is example walkthrought how it could be:
1) Go to website
2) Read a QR code on the main page with your smart phone application

After that, you are logged in with your bitcoin keys and username you chose when registered.

Registering:
1) Go to website
2) Click 'register'
3) Type in the username you want
4) Read a QR code on the main page with your smart phone application

After that, you are registered with bitcoin keys and username you chose.

Try it at http://cave.dy.fi. You can download an android application or simulate it with www-browser / copypaste.

This could be usefull to implement for loggin in to eligius?

Sync: ShiSKnx4W6zrp69YEFQyWk5TkpnfKLA8wx
Bitcoin: 17gNvfoD2FDqTfESUxNEmTukGbGVAiJhXp
Litecoin: LhbDew4s9wbV8xeNkrdFcLK5u78APSGLrR
AuroraCoin: AXVoGgYtSVkPv96JLL7CiwcyVvPxXHXRK9
altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 03:36:19 PM
 #47

  • Logins to websites without passwords, instead using a challenge/response mechanism like GPG auth.
  • A consistent pseudonymous internet identity that can provably be the same across websites.
This has been builtin to Bitcoin-Qt since 0.6 and used for things like the Eligius mining pool and #Bitcoin-OTC for just about as long. Smiley
Here's an example walkthrough written by BunnyH.

Here is example walkthrought how it could be:
1) Go to website
2) Read a QR code on the main page with your smart phone application

After that, you are logged in with your bitcoin keys and username you chose when registered.

Registering:
1) Go to website
2) Click 'register'
3) Type in the username you want
4) Read a QR code on the main page with your smart phone application

After that, you are registered with bitcoin keys and username you chose.

Try it at http://cave.dy.fi. You can download an android application or simulate it with www-browser / copypaste.

This could be usefull to implement for loggin in to eligius?


My impression is that Luke-Jr isn't really interested in a new tech, more convenient though it may be.
Luke-Jr
Legendary
*
expert
Offline Offline

Activity: 2576
Merit: 1186



View Profile
December 18, 2013, 03:49:32 PM
 #48

My impression is that Luke-Jr isn't really interested in a new tech, more convenient though it may be.
Continuing to troll does not help your case.
I said nothing of the sort.

altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 03:51:01 PM
 #49

Luke-Jr, I can't see what you wrote, but please respect my wishes and stay away.
Luke-Jr
Legendary
*
expert
Offline Offline

Activity: 2576
Merit: 1186



View Profile
December 18, 2013, 03:54:00 PM
 #50

Luke-Jr, I can't see what you wrote, but please respect my wishes and stay away.
No, you don't get to demand this while continuing to slander me.

altoz (OP)
Member
**
Offline Offline

Activity: 78
Merit: 14



View Profile
December 18, 2013, 03:55:10 PM
 #51

Luke-Jr, I've put you on my ignore list. I literally don't see anything you write. Please just leave and stop crapping my thread.

If you want to discuss things mano-a-mano, PM me.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
December 18, 2013, 04:06:33 PM
Last edit: December 18, 2013, 10:07:16 PM by gmaxwell
 #52

No. The use of any particular encryption scheme does not answer the very minor and very abstract concern I raised about parallel use of the private keying material. I'm getting a very concerning sense of the blind leading the blind here, and the incivility is really out of line.

The "new tech" encryption based "two factor" authentication protocol described above is insecure against a malware infected host. Because it operates in-band and the authentication credential is unauthenticated and the malware can just steal the response. Presumably the purpose of having a two factor in the first place was to be secure against that. The sign-message mechanism— which could be given an exactly equivalent workflow, and which doesn't have the same additional security considerations to consider can be free of this weakness if used to specifically authenticate the action requested.

This has gone offtopic for this subforum.

[Edit: For historical interest sake, I should publish the weaknesses I reported privately:

I found a weakness for this cryptosystem which allows me to compromise it for a single message with 2^64 known-ciphertext queries to a decryption oracle.  E.g. the key-holders run a server (the oracle) that decrypts messages and returns the results and I obtain the ciphertext of a message someone else created (which the oracle refuses to decrypt for me, otherwise this would be trivial), and after making 2^64 queries to the decryption oracle I can decrypt the unknown message.

To accomplish this I take the nonce from the message to be decrypted, and combine it with the all zeros ciphertext (or any other known ciphertext for that matter) and sweep the 64-bit MAC space until it passes. I xor the resulting garbage decryption of zeros with the message thus recovering the plaintext.  This attack is a result of compromising the ECIES security claims by the reduction of the MAC size, though it only results in a complete break because of the use of counter mode AES.

Less cryptographically,

Using a centralized service to look up public keys creates weaknesses worse than just the 'obvious' privacy and availability ones because the implementation here doesn't check that the pubkey returned matches the address, though it trivially could.

This weakness is made exponentially worse because the public key is fetched over https using urllib2 which, as far as I can tell, doesn't do any certificate validation, so any MITM could substitute the public key.

Altoz has subsequently opened up issues for all these items: https://github.com/coinmessage/coinmessage/issues

I still have the general reservations with using encryption for authentication, especially in-band auth— and for reusing a single private key for signing and encryption, both are generally inadvisable practices though I'm not aware of any specific weakness they create here. Likewise, any usage that needlessly ties a user's identity to their finances could result in surprising losses of privacy, so I hope this approach isn't widely adopted even once the cryptographic weaknesses are fixed. If people want you to send them encrypted messages, get pubkeys from them!

]
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!