Bitcoin Forum
May 10, 2024, 05:57:02 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Mitigating risks from MITM attacks on plain-text Protocols  (Read 3159 times)
coinsolidation (OP)
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250

Bitmark Developer


View Profile WWW
August 09, 2014, 10:43:20 PM
 #1


I was wondering if anybody has documented approaches to validating the integrity of addresses which have been sent over plain text protocols?

Talking it out in the usual fashion:

Bob sends a payment request url to Mary.
Mary wishes to verify that Bob does control the private key corresponding to the address she received, cryptographically.
Harry cannot know the address, or that Mary and Bob have transacted.

Sign the address and publish the signature in a collection somewhere?

Input?

Bitmark (reputation+money) : Bitmark v0.9.4 (release)
1715320622
Hero Member
*
Offline Offline

Posts: 1715320622

View Profile Personal Message (Offline)

Ignore
1715320622
Reply with quote  #2

1715320622
Report to moderator
1715320622
Hero Member
*
Offline Offline

Posts: 1715320622

View Profile Personal Message (Offline)

Ignore
1715320622
Reply with quote  #2

1715320622
Report to moderator
1715320622
Hero Member
*
Offline Offline

Posts: 1715320622

View Profile Personal Message (Offline)

Ignore
1715320622
Reply with quote  #2

1715320622
Report to moderator
In order to achieve higher forum ranks, you need both activity points and merit points.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
azeteki
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
August 09, 2014, 10:51:52 PM
 #2

This is kind of a 'turtles all the way down' problem.

Bob can sign a message with his PGP key that says something along the lines of 'I have the ability to spend from address 1abcdef'.
Or he can sign a BitMessage with the addresses' privkey.

But Alice still needs to authenticate Bob is who he says he is. Web of trust, key signing party, root authority, whatever.

If both parties have each others' PGP keys already then they can just chat with each other. Harry knows they're talking, doesn't know what is being said.
Second level: initial conversation establishes pseudonyms for Alice and Bob and new key material.
Alice and Bob then go off using their pseudonyms in all following communication and Harry now knows nothing (unless he's also tapping their connections at ISP level or has some other identification mechanism).

How do you know I am the real 'azeteki'? I can sign this message using my PGP key. I signed one of my first posts with it, so in the absence of my key material being compromised you've shown that we're the same person.

But could an attacker edit that first post and resign with his own key? Maybe.

Was the first post made by the same 'azeteki' that originated the pseudonym? Maybe not.

Key management and auth are difficult problems.

coinsolidation (OP)
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250

Bitmark Developer


View Profile WWW
August 09, 2014, 11:29:07 PM
 #3

Very good points, turtles all the way down.

AuthN and AuthZ can be handled separately, any approaches described should be agnostic.

If we assume that a well-known network accessible resource Y is established as being under Bob's control, and that Mary knows of Y. What machine readable information can be be made available at Y, such that Mary can establish that the private key of ADDRESS is also controlled by the controller of Y?

What is the least amount of information that can be provided?

If we can establish that, then later we can consider perhaps shared secrets, ACL, etcetera.

Is this a fair approach?


Bitmark (reputation+money) : Bitmark v0.9.4 (release)
TRYpolar
Member
**
Offline Offline

Activity: 61
Merit: 10


View Profile
August 09, 2014, 11:36:47 PM
 #4

You would need to have previously received some key whose signature you are able to verify when you receive some kind of text from a 3rd party.

If you are on a trusted site that is using HTTPS I don't think this would be an issue though.
azeteki
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
August 09, 2014, 11:57:36 PM
 #5

If we assume that a well-known network accessible resource Y is established as being under Bob's control, and that Mary knows of Y. What machine readable information can be be made available at Y, such that Mary can establish that the private key of ADDRESS is also controlled by the controller of Y?

Be careful here.

Signing using a private key does not indicate sole control.
It may not indicate full control either.
I could hold my neighbour's key and perform tasks for him (imagine he's not very computer focused, for example).

If you establish that Bob actually does what he says he does (e.g. Bob says 'this key is under my sole control), you can move forward.
That's a social construct, not a technological one.

Now;

'well-known network accessible resource Y is established as being under Bob's control'.

You need authentication, it's paramount, it can't be swept away as a side concern.

If you have a secure channel to Y and it's authed, Bob can send his address over it. He wouldn't send you an address that he couldn't access, that would be silly of him.

If you don't have a secure channel to Y, you need a way of Bob authenticating. E.g. PGP key or similar; Bob signs an address.
The channel could be censored but only Bob can send signed addresses over it.

This is kind of Crypto 101, I'm not familiar with all of the terminology. The basic minimum is to establish an identity for Bob. Asymmetric key seems like the best approach.

Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
August 09, 2014, 11:58:14 PM
 #6


I was wondering if anybody has documented approaches to validating the integrity of addresses which have been sent over plain text protocols?


The place to start is probably the payment protocol (BIP 70):


Abstract. This BIP describes a protocol for communication between a merchant and their customer, enabling both a better customer experience and better security against man-in-the-middle attacks on the payment process.

https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
coinsolidation (OP)
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250

Bitmark Developer


View Profile WWW
August 10, 2014, 12:23:53 AM
 #7

The basic minimum is to establish an identity for Bob.

I was going to reply, consider this to be a way of further establishing trusted identification of bob, which led to me to think of it in a different way... BitID may hold some approaches.

To clarify I wasn't downplaying the role of establishing identification, it's an area I am very familiar with and was hoping to avoid creating another auth* protocol, and also tightly coupling to any specific existing ones.

The place to start is probably the payment protocol (BIP 70):

Abstract. This BIP describes a protocol for communication between a merchant and their customer, enabling both a better customer experience and better security against man-in-the-middle attacks on the payment process.

https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki

Thank you Peter, I had forgotten about this.

I will merge seems applicable from BitID and BIP0070, then return to this subject later.

Thank you all for your valuable input so far, it is appreciated.

Bitmark (reputation+money) : Bitmark v0.9.4 (release)
Pages: [1]
  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!