<?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>Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/38243/tracking-down-private-resolvable-addresses</link><description>Hi, there~~ Just noticed that there are codes for the Android nRF connect. 
 github.com/.../Android-nRF-Connect 
 Using that code, I wish to create my personal sniffer that can track nearby arbitrary BLE devices without pairing/bonding 
 using the Github</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 06 Sep 2018 15:18:12 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/38243/tracking-down-private-resolvable-addresses" /><item><title>RE: Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/thread/147651?ContentTypeID=1</link><pubDate>Thu, 06 Sep 2018 15:18:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ede22d07-dbac-4e1f-bfe8-2898ed360e9c</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;That is correct. The whole purpose of the resolvable address is that only bonded devices will know what device it is. It is a privacy feature, so that the device cannot be tracked.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/thread/147637?ContentTypeID=1</link><pubDate>Thu, 06 Sep 2018 14:36:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f22908fa-8137-46a1-b14f-060b8caf3d2e</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Thanks for your reply!&lt;/p&gt;
&lt;p&gt;Just to recap, without bonding with a peripheral,&lt;/p&gt;
&lt;p&gt;there is no way to tell it is the same peripheral or not after the private resolvable address has changed, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/thread/147636?ContentTypeID=1</link><pubDate>Thu, 06 Sep 2018 14:36:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c008753-835d-4f34-aac2-8ea231c37004</guid><dc:creator>Matthew K</dc:creator><description>&lt;p&gt;Thanks for your reply!&lt;/p&gt;
&lt;p&gt;Just to recap, without bonding with a peripheral,&lt;/p&gt;
&lt;p&gt;there is no way to tell it is the same peripheral or not after the private resolvable address has changed, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/thread/147600?ContentTypeID=1</link><pubDate>Thu, 06 Sep 2018 13:23:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9098e746-1494-4e28-aaa0-b440a97a3f3f</guid><dc:creator>Aleksander Nowakowski</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;On Android it is the system that manages bonding. No bonding information, none of the keys, are available. There is no API to get this kind of data from the phone. The only methods related to bonding are &lt;a href="https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createBond()" rel="noopener noreferrer" target="_blank"&gt;createBond()&lt;/a&gt;, added in API 19 (KitKat) and removeBond() (which has to be invoked with reflections).&lt;/p&gt;
&lt;p&gt;Also, scanning returns only 48 bits of Bluetooth address, so you are loosing the public-private address type information. Without it you don&amp;#39;t know the address type, as it may be public address and those types you wrote don&amp;#39;t apply.&lt;/p&gt;
&lt;p&gt;On bonded devices the &lt;a href="https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getAddress()"&gt;getAddress()&lt;/a&gt; method returns resolved address if it could have been resolved, at least I think so.&lt;/p&gt;
&lt;p&gt;Besides, the code of nRF Connect is not available (for Android and iOS), as stated on the GitHub page you pointed to. If you want, you may write a plugin to nRF Connect for PC. COde for this app is available on GitHub: &lt;a href="https://github.com/NordicSemiconductor/pc-nrfconnect-ble"&gt;https://github.com/NordicSemiconductor/pc-nrfconnect-ble&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Tracking down private resolvable addresses</title><link>https://devzone.nordicsemi.com/thread/147595?ContentTypeID=1</link><pubDate>Thu, 06 Sep 2018 13:03:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ca0a770-fde5-4a62-9543-8477d3cf332f</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I do not have an answer to 3), but:&lt;/p&gt;
&lt;p&gt;1) The resolvable random address can only be resolved using the IRK. You will get the IRK as part of bonding.&lt;/p&gt;
&lt;p&gt;2) Figuring out if the address is a known resolvable random address can only be done by checking against the list of known IRKs. Our SoftDevices does this automatically, providing in the advertising report event a flag peer_addr.addr_id_peer signalling if it is a resolved address. The two-bit fields that you refer to are actually part of the address itself. For the fourth type of address, &amp;quot;Public Device Address&amp;quot;, those two bits are the two most significant bits of the company_id part of the address.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>