<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Secure BLE pairing - is it possible?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/14481/secure-ble-pairing---is-it-possible</link><description>I&amp;#39;m trying to make a BLE device that actually pairs securely. I posted this question on StackOverflow but didn&amp;#39;t get any answers - maybe someone here knows more. As far as I know the transport encryption (using AES) is secure in all versions of BLE, once</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 17 Jun 2016 10:08:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/14481/secure-ble-pairing---is-it-possible" /><item><title>RE: Secure BLE pairing - is it possible?</title><link>https://devzone.nordicsemi.com/thread/55288?ContentTypeID=1</link><pubDate>Fri, 17 Jun 2016 10:08:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c6792ad-0ece-4b98-8eaf-096ac5052b70</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Tim: as I mentioned, BluetoothSIG is the best to answer questions regarding the spec. Please send requests and questions in &lt;a href="https://www.bluetooth.org/login/register/?_ga=1.103786953.818455267.1461587677"&gt;their portal&lt;/a&gt;. You can join the SIG as an adopted member, it&amp;#39;s free.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure BLE pairing - is it possible?</title><link>https://devzone.nordicsemi.com/thread/55287?ContentTypeID=1</link><pubDate>Thu, 16 Jun 2016 11:40:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7608b8ce-eb41-4848-ab1d-498ce47cf329</guid><dc:creator>Tim</dc:creator><description>&lt;p&gt;This still doesn&amp;#39;t really answer the question of why they kept a protocol that is so fatally flawed (and could be fixed!). A fixed pin &lt;em&gt;could&lt;/em&gt; be secure if the protocol were different.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure BLE pairing - is it possible?</title><link>https://devzone.nordicsemi.com/thread/55286?ContentTypeID=1</link><pubDate>Thu, 16 Jun 2016 10:56:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c78125f9-747c-4f11-8230-1209f0468e3d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tim,&lt;/p&gt;
&lt;p&gt;Your questions should be best fit for BluetoothSIG, as we are not the sole party who define BLE spec.&lt;/p&gt;
&lt;p&gt;Here is my opinion on your questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;As in the article your cited, the risk happens only when you use same passkey for multiple pairing processes. This is not suggested by the spec as it mentioned that the passkey should be randomly generated when pairing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I understand that in many applications, the devices don&amp;#39;t have IO capability, and have to use static passkey such as a number printed on the device/package.
If the attacker has physical access to the device, then this pairing can be compare to the same level as JustWork.&lt;/p&gt;
&lt;p&gt;If the attacker doesn&amp;#39;t have physical access to the device to get the passkey he need to do brute force or eavesdrop the pairing process of the authenticated device.&lt;/p&gt;
&lt;p&gt;For brute force, since 4.2, we introduced the repeated request-confirm for each bit of the passkey, the attacker need to try 2^20 times, and each time he uses the wrong bit the pairing process will be terminated. So you can implement a check on the device to refuse pairing after let&amp;#39;s say 3 consecutive fails for example.&lt;/p&gt;
&lt;p&gt;For eavesdropping, since we use ECDH keys, the public and private pair are required, and I don&amp;#39;t think it&amp;#39;s easy to inject the attacker Public key based on a recorded session of the pairing process earlier.&lt;/p&gt;
&lt;p&gt;Anyway, using static passkey is not recommended and for sure will reduce the authentication level of the process.&lt;/p&gt;
&lt;p&gt;2.You can implement another encrypting layer on application, but this require you to find a secure way to exchange the keys, or hardcode and secure the keys on both peers. We don&amp;#39;t have an example/suggestion for this.&lt;/p&gt;
&lt;p&gt;3.We can&amp;#39;t comment on specifications that are not adopted.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>