<?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>Passkey Protection for device connection</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/56425/passkey-protection-for-device-connection</link><description>Hello, 
 Using this link ( https://devzone.nordicsemi.com/f/nordic-q-a/35675/how-to-use-static-passkey-for-a-no-display-no-output-peripheral ) I&amp;#39;m able to add passkey protection to any characteristic by changing: 
 BLE_GAP_CONN_SEC_MODE_SET_OPEN(&amp;amp;attr_md</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 14 Jan 2020 12:53:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/56425/passkey-protection-for-device-connection" /><item><title>RE: Passkey Protection for device connection</title><link>https://devzone.nordicsemi.com/thread/229033?ContentTypeID=1</link><pubDate>Tue, 14 Jan 2020 12:53:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9a07850c-d642-4371-a63e-7f335e127ff4</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;In this case, it&amp;#39;s the best to use whitelist. By having a whitelist, you only allow those in the list to be able to connect to the device. Any device that&amp;#39;s outside of the list will be ignored when sending a connect request. This would require bonding between the peripheral and the central. Or at least the identity of the peripheral need to be stored on the central.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But anyway, if an attacker want to flood the RF network, it&amp;#39;s very easy to simply send a lot of packets on the 3 advertising channels. This should be enough to block your device from establishing any connection.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Passkey Protection for device connection</title><link>https://devzone.nordicsemi.com/thread/228970?ContentTypeID=1</link><pubDate>Tue, 14 Jan 2020 09:20:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11adaeb8-0571-411f-a3ef-cc635bf41c21</guid><dc:creator>Aftab</dc:creator><description>&lt;p&gt;In standard procedure mentioned in the last post, the problem was that a user can face DDoS atatck b/c an intruder can keep connected to the device. The method you have mention does not prevent DDoS either. The attacker can make success attempts to connect with the device. Even in challenge response mechanism it&amp;#39;s the same. The problem is any authentication can be performed AFTER the device is connected.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Passkey Protection for device connection</title><link>https://devzone.nordicsemi.com/thread/228869?ContentTypeID=1</link><pubDate>Mon, 13 Jan 2020 15:33:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:643bab2f-72ad-4ca3-83b5-5fc568172fde</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Aftab,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Such feature was not defined in the bluetooth spec. You would need to implement that on your own.&amp;nbsp;&lt;br /&gt;What you need to do is to have a timer&amp;nbsp;that starts when there is a connection. If after X seconds there is no write command to write a passkey the device will terminate the connection. Until there is a correct passkey entered, you would need to disable all application feature ( use read/write with authorization for example)&lt;/p&gt;
&lt;p&gt;For better security, you can have a challenge-response mechanism :&amp;nbsp;&lt;a href="https://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication"&gt;https://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication&lt;/a&gt;&amp;nbsp;. So that&amp;nbsp;the same key (which can be sniffed)&amp;nbsp;won&amp;#39;t be used for future connection.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>