<oembed><type>rich</type><version>1.0</version><author_name>npub1sgs97fe0n9wehe6zw7drcxdz4cy9yt9pfqjv8gasz5jlk4zezc0quppx3c</author_name><author_url>https://nostr.ae/npub1sgs97fe0n9wehe6zw7drcxdz4cy9yt9pfqjv8gasz5jlk4zezc0quppx3c</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-02-24&#xA;📝 Original message:Andy, adding to my previous post below:&#xA;&#xA;On 02/23/2015 01:40 AM, Eric Voskuil wrote:&#xA;&gt; On 02/22/2015 11:36 PM, Andy Schroder wrote:&#xA;...&#xA;&gt;&gt; It&#39;s possible a really sophisticated modification could be done where&#xA;&gt;&gt; the attacker encrypts and decrypts the communication and then relays to&#xA;&gt;&gt; each party (without them knowing or any glitches detected), but I guess&#xA;&gt;&gt; I&#39;m not sure how easy that would be on such a close proximity device?&#xA;&gt; &#xA;&gt; If the NFC tap is sufficiently private, privacy is easy to achieve for&#xA;&gt; the subsequent communication. If it is not, privacy can be completely&#xA;&gt; compromised. The question is only how much more difficult is the attack.&#xA;&gt; &#xA;&gt; With the public cert tap, the level of difficulty is much lower for&#xA;&gt; capturing selected payment requests. The interloper no longer needs to&#xA;&gt; invade the space of the NFC terminal and can instead impersonate the&#xA;&gt; payer from a safe distance. Nobody gets paid, but privacy is compromised.&#xA;&#xA;This problem in the preceding paragraph can be resolved by sending a&#xA;unique public key on each NFC tap. In that case an attacker would need&#xA;to monitor the NFC communication.&#xA;&#xA;The talk of wrapping the connection in SSL led me to believe you were&#xA;talking about a static public certificate. However that&#39;s not a&#xA;necessary assumption here and may not be what you intended.&#xA;&#xA;&gt; The level of difficulty in the case where the interloper wants to taint&#xA;&gt; transactions may appear lower, but it is not:&#xA;&gt; &#xA;&gt; With the session key tap the interloper must compromise the NFC location&#xA;&gt; and then monitor the BT traffic. Monitoring BT traffic without being&#xA;&gt; party to the connection is presumably not rocket surgery, but not&#xA;&gt; standard BT design either.&#xA;&gt; &#xA;&gt; With the public cert tap the interloper must also compromise the NFC&#xA;&gt; location and communicate over BT. Therefore the hardware and physical&#xA;&gt; attack requirements are similar. The only added difficulty is that the&#xA;&gt; attack on the NFC terminal attack is active (modifying the MAC address&#xA;&gt; directing the payer to the BT service).&#xA;&#xA;I believe your central claim was that the difference in the two&#xA;bootstrapping approaches (public key vs. session key) is that by using a&#xA;unique public key per tap, the attack requires an active vs. passive&#xA;attack on the NFC terminal. I just wanted to make clear here that I&#xA;agree with that assessment.&#xA;&#xA;The symmetric key approach is based on the idea that these attacks are&#xA;comparable in difficulty and otherwise identical in privacy loss.&#xA;&#xA;However, the difference in implementation amounts to about +23&#xA;additional encoded characters for the BT/LE URL, assuming use of the&#xA;secp256k1 curve for DHE. This is really not a material issue in the case&#xA;of the NFC tap. The entire URI+URL could be as small as:&#xA;&#xA;bitcoin:?r=bt:12rAs9mM/79bq48xJaMgqR9YNxnWhqHHM1JB52nxn6VFXBHTP2zrP&#xA;&#xA;In comparison to a symmetric key:&#xA;&#xA;bitcoin:?r=bt:12rAs9mM/12drXXUifSrRnXLGbXg8E&#xA;&#xA;It also does not change the protocol design or complexity at all - it&#xA;would just swap out an AES key for a secp256k1 public key.&#xA;&#xA;bitcoin:[address]?bt:&lt;mac&gt;/&lt;key&gt;&#xA;&#xA;If that gets us aligned I&#39;m all for it.&#xA;&#xA;&gt; However impersonating the payer is just a matter of software - no more&#xA;&gt; difficult than the session key attack. In fact it may be much easier to&#xA;&gt; implement, as the attack can use supported BT features because the&#xA;&gt; attacker has directed the payer to connect to him and is connecting to&#xA;&gt; the receiver as if he was a payer.&#xA;&gt; &#xA;&gt; But it gets worse for the public cert tap, since a more sophisticated&#xA;&gt; attacker can set himself up in the same position without subverting the&#xA;&gt; NFC terminal at all. By broadcasting a more powerful BT service on the&#xA;&gt; same advertised MAC address, the attacker can capture traffic and relay&#xA;&gt; it to the intended service.&#xA;&#xA;I&#39;m retracting the last paragraph, since the interloper, without&#xA;invading the NFC connection (by substituting the public cert), could not&#xA;read the relayed traffic. It was getting late :/&#xA;&#xA;&gt; So in sum, reliance on a public cert makes the communication less&#xA;&gt; private under the same physical set of constraints. The difference&#xA;&gt; results from the receiver allowing non-proximate payers to impersonate&#xA;&gt; proximate payers from a distance by generating their own session keys&#xA;&gt; and submitting them over BT.&#xA;&#xA;e&#xA;&#xA;-------------- next part --------------&#xA;A non-text attachment was scrubbed...&#xA;Name: signature.asc&#xA;Type: application/pgp-signature&#xA;Size: 473 bytes&#xA;Desc: OpenPGP digital signature&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150223/5ac01515/attachment.sig&gt;</html></oembed>