Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YJWw5-0006rn-9w for bitcoin-development@lists.sourceforge.net; Fri, 06 Feb 2015 00:38:17 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.212.173 as permitted sender) client-ip=209.85.212.173; envelope-from=martin.habovstiak@gmail.com; helo=mail-wi0-f173.google.com; Received: from mail-wi0-f173.google.com ([209.85.212.173]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YJWw3-0001uj-A2 for bitcoin-development@lists.sourceforge.net; Fri, 06 Feb 2015 00:38:17 +0000 Received: by mail-wi0-f173.google.com with SMTP id r20so1501304wiv.0 for ; Thu, 05 Feb 2015 16:38:09 -0800 (PST) X-Received: by 10.194.19.197 with SMTP id h5mr1788027wje.109.1423183089285; Thu, 05 Feb 2015 16:38:09 -0800 (PST) Received: from [10.223.99.197] (dial-85-237-234-5-orange.orange.sk. [85.237.234.5]) by mx.google.com with ESMTPSA id r3sm887128wic.10.2015.02.05.16.38.07 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 05 Feb 2015 16:38:08 -0800 (PST) User-Agent: K-9 Mail for Android In-Reply-To: <54D4093F.5000707@voskuil.org> References: <54D3D636.1030308@voskuil.org> <279489A5-1E46-48A2-8F58-1A25821D4D96@gmail.com> <6AEDF3C4-DEE0-4E31-83D0-4FD92B125452@voskuil.org> <54D3FB4A.9010105@voskuil.org> <54D400F0.9090406@voskuil.org> <54D4093F.5000707@voskuil.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 From: =?UTF-8?Q?Martin_Habov=C5=A1tiak?= Date: Fri, 06 Feb 2015 01:36:49 +0100 To: Eric Voskuil Message-ID: X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (martin.habovstiak[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1YJWw3-0001uj-A2 Cc: Bitcoin Dev , Paul Puey Subject: Re: [Bitcoin-development] Proposal for P2P Wireless (Bluetooth LE) transfer of Payment URI X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2015 00:38:17 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 I believe, we are still talking about transactions of physical people in physical world. So yes, it's proximity based - people tell the words by mouth. :) In case of RedPhone, you read those words verbally over not-yet-verified channel relying on difficulty of spoofing your voice. Also the app remembers the public keys, so you don't need to verify second time. I suggest you to try RedPhone (called Signal on iPhone) yourself. It's free/open source, Internet-based and end-to-end encrypted. You may find it useful some day. Also I'm willing to help you with trying it after I wake up. (~8 hours: Send me private e-mail if you want to.) Dňa 6. februára 2015 1:22:23 CET používateľ Eric Voskuil napísal: > >On 02/05/2015 04:04 PM, MⒶrtin HⒶboⓋštiak wrote: >> That's exactly what I though when seeing the RedPhone code, but after >> I studied the commit protocol I realized it's actually secure and >> convenient way to do it. You should do that too. :) > >I was analyzing the model as you described it to me. A formal analysis >of the security model of a particular implementation, based on >inference >from source code, is a bit beyond what I signed up for. But I'm >perfectly willing to comment on your description of the model if you >are >willing to indulge me. > >> Shortly, how it works: >> The initiator of the connection sends commit message containing the >> hash of his temporary public ECDH part, second party sends back their >> public ECDH part and then initiator sends his public ECDH part in >> open. All three messages are hashed together and the first two bytes >> are used to select two words from a shared dictionary which are >> displayed on the screen of both the initiator and the second party. > >> The parties communicate those two words and verify they match. > >How do they compare words if they haven't yet established a secure >channel? > >> If an attacker wants to do MITM, he has a chance of choosing right >> public parts 1:65536. There is no way to brute-force it, since that >> would be noticed immediately. If instead of two words based on the >> first two bytes, four words from BIP39 wordlist were chosen, it would >> provide entropy of 44 bits which I believe should be enough even for >> paranoid people. >> >> How this would work in Bitcoin payment scenario: user's phone >> broadcasts his name, merchant inputs amount and selects the name from >> the list, commit message is sent (and then the remaining two >> messages), merchant spells four words he sees on the screen and buyer >> confirms transaction after verifying that words match. > >So the assumption is that there exists a secure (as in proximity-based) >communication channel? > >e > >> 2015-02-06 0:46 GMT+01:00 Eric Voskuil : >>> On 02/05/2015 03:36 PM, MⒶrtin HⒶboⓋštiak wrote: >>>>> A BIP-70 signed payment request in the initial broadcast can >resolve the >>>>> integrity issues, but because of the public nature of the >broadcast >>>>> coupled with strong public identity, the privacy compromise is >much >>>>> worse. Now transactions are cryptographically tainted. >>>>> >>>>> This is also the problem with BIP-70 over the web. TLS and other >>>>> security precautions aside, an interloper on the communication, >desktop, >>>>> datacenter, etc., can capture payment requests and strongly >correlate >>>>> transactions to identities in an automated manner. The payment >request >>>>> must be kept private between the parties, and that's hard to do. >>>> >>>> What about using encryption with forward secrecy? Merchant would >>>> generate signed request containing public ECDH part, buyer would >send >>>> back transaction encrypted with ECDH and his public ECDH part. If >>>> receiving address/amount is meant to be private, use commit >protocol >>>> (see ZRTP/RedPhone) and short authentication phrase (which is hard >to >>>> spoof thanks to commit protocol - see RedPhone)? >>> >>> Hi Martin, >>> >>> The problem is that you need to verify the ownership of the public >key. >>> A MITM can substitute the key. If you don't have verifiable identity >>> associated with the public key (PKI/WoT), you need a shared secret >(such >>> as a secret phrase). But the problem is then establishing that >secret >>> over a public channel. >>> >>> You can bootstrap a private session over the untrusted network using >a >>> trusted public key (PKI/WoT). But the presumption is that you are >>> already doing this over the web (using TLS). That process is subject >to >>> attack at the CA. WoT is not subject to a CA attack, because it's >>> decentralized. But it's also not sufficiently deployed for some >scenarios. >>> >>> e >>> - -- Odoslané z môjho Android zariadenia pomocou K-9 Mail. -----BEGIN PGP SIGNATURE----- Version: APG v1.1.1 iI8EAREKADcFAlTUDKEwHE1hcnRpbiBIYWJvdmF0aWFrIDxtYXJ0aW4uaGFib3Zz dGlha0BnbWFpbC5jb20+AAoJED6C3NvqapyUfUgA/2j6jQELBtSrNsle7ybGq1D8 uWgGwevguCnjPd0pEpWgAP42sS/ekCqs1v9wbART9fLprZTBk4YPllwXifss+9sa zQ== =J4w/ -----END PGP SIGNATURE-----