<?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 DFU rescue</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/68505/secure-dfu-rescue</link><description>I&amp;#39;ve implemented secure DFU which works fine. However, if a user was to do something like quit the App or disable Bluetooth during DFU, or another fault occurred, because the DFU is single bank then the device will be stuck in the bootloader. So I added</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 19 Nov 2020 11:45:42 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/68505/secure-dfu-rescue" /><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280862?ContentTypeID=1</link><pubDate>Thu, 19 Nov 2020 11:45:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3d9c0400-b875-43b2-82c3-56b85ce18926</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I agree, &amp;quot;REQUIRES_BONDS&amp;quot; would make more sense. I&amp;#39;m not sure why we didn&amp;#39;t use the same naming in the app as in the bootloader, but I&amp;#39;ll report it. Sorry for the confusion.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280850?ContentTypeID=1</link><pubDate>Thu, 19 Nov 2020 11:07:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bcde486-c069-410e-9a19-506e56727b15</guid><dc:creator>nrbrook</dc:creator><description>&lt;p&gt;Yes I can do this. For some reason I didn&amp;#39;t think it would work without bonds if already bonded. Perhaps because the name of &amp;quot;NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS&amp;quot; is a bit misleading &amp;ndash; if you disable it, will DFU work if you are using bonding in the App? It&amp;#39;s not clear, because you are indicating &amp;quot;bonding isn&amp;#39;t supported&amp;quot;. &amp;quot;REQUIRES_BONDS&amp;quot; would be better IMO, because it does require bonding if enabled.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280786?ContentTypeID=1</link><pubDate>Thu, 19 Nov 2020 08:57:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f49d9f6-c7de-42fc-bd19-d57511b43fa2</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;The flash footprint of the bootloader would increase quite considerably if we duplicated the bond management in the bootloader code.&lt;/p&gt;
&lt;p&gt;But you said:&lt;/p&gt;
[quote userid="69018" url="~/f/nordic-q-a/68505/secure-dfu-rescue/280657#280657"]Preventing new bondings in the bootloader only matters if you care which devices can perform DFU, because as you say all updates are signed anyway.[/quote]
&lt;p&gt;If you are not worried about which device is sending the request, wouldn&amp;#39;t it be better to just disable NRF_DFU_BLE_REQUIRES_BONDS in the bootloader and NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS in the app? Note that these settings don&amp;#39;t impact the bond support in your main application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280660?ContentTypeID=1</link><pubDate>Wed, 18 Nov 2020 15:20:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:024b6419-bc7f-40ae-9195-431bceec85c8</guid><dc:creator>nrbrook</dc:creator><description>&lt;p&gt;I don&amp;#39;t think that works if already bonded? There was some reason I was using secure bootloader...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280658?ContentTypeID=1</link><pubDate>Wed, 18 Nov 2020 15:15:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd654d26-a32e-4dac-964c-073853e28400</guid><dc:creator>Ivan Herrera</dc:creator><description>&lt;p&gt;But DFU without bonds is in there by default! :) You can set&amp;nbsp;&lt;span&gt;NRF_DFU_BLE_REQUIRES_BONDS to 0 in the bootloader config&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280657?ContentTypeID=1</link><pubDate>Wed, 18 Nov 2020 15:09:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:236b1cae-a488-4c54-af37-f50b2cf7da21</guid><dc:creator>nrbrook</dc:creator><description>&lt;p&gt;Yes I can allow new bonds in bootloader (or use existing bond for normal DFU) which I have just been able to implement (it&amp;#39;s a bit more involved than just disabling a check for bonding), but IMO this should be available in the bootloader without modification, perhaps as an SDK config option, because otherwise the case where the iOS/Android device has lost the bonding is not handled. Preventing new bondings in the bootloader only matters if you care which devices can perform DFU, because as you say all updates are signed anyway. So I wanted to know if there was a more &amp;quot;officially supported&amp;quot; way of doing this than modifying the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Secure DFU rescue</title><link>https://devzone.nordicsemi.com/thread/280632?ContentTypeID=1</link><pubDate>Wed, 18 Nov 2020 13:48:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:715fa0b6-3251-4daf-9736-0cbb2dc0b68f</guid><dc:creator>Ivan Herrera</dc:creator><description>&lt;p&gt;Do you need the bootloader to verify bonds? A simple solution would be to only allow bonded devices to enter the device into DFU mode, but not have the bootloader check for bonds. The firmware should be signed anyways so there isn&amp;#39;t a way that somebody could flash rogue software on your device.&lt;/p&gt;
&lt;p&gt;Do you have any buttons on your device which you could use&amp;nbsp;to communicate with the bootloader? Another option in that case would be to edit the bootloader so that a long button-press would disable bond checking in the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>