<?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>What&amp;#39;s the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/65736/what-s-the-difference-between-flag-nrf_dfu_require_signed_app_update-and-nrf_bl_app_signature_check_required</link><description>I&amp;#39;m new to nRF52833 and when I am working with my DK of DFU modules, I&amp;#39;m getting really confused with option NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED . What exactly is the difference between these two? 
 I read nrf_dfu_validation</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 17 Mar 2023 13:27:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/65736/what-s-the-difference-between-flag-nrf_dfu_require_signed_app_update-and-nrf_bl_app_signature_check_required" /><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/416024?ContentTypeID=1</link><pubDate>Fri, 17 Mar 2023 13:27:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e6494429-a673-4179-898f-2ebfafb898c2</guid><dc:creator>Vidar Berg</dc:creator><description>[quote user="RMV"]Does &amp;quot;--app-boot-validation&amp;quot; apply to both options above, or (as I would intuitively imagine) only to option (2) above?[/quote]
&lt;p&gt;This is to option is to specify which&amp;nbsp;boot validation method to use (see&amp;nbsp;&lt;a title="Boot validation" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_secure_boot.html?cp=9_1_3_5_0_8_1#secure_boot_validation"&gt;Boot validation&lt;/a&gt;), and is not related to the signing of the update itself (&lt;a title="Signature verification" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader_dfu_validation.html?cp=9_1_3_5_1_1_2_3#lib_bootloader_signatures"&gt;Signature verification&lt;/a&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/415984?ContentTypeID=1</link><pubDate>Fri, 17 Mar 2023 11:59:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b41ddaba-5eff-45b2-bdf0-863d512c00d1</guid><dc:creator>RVM</dc:creator><description>&lt;p&gt;Pardon me since I am not at all knowledgable on matters related to &amp;#39;security&amp;#39; and &amp;#39;encryption&amp;#39;.&lt;/p&gt;
&lt;p&gt;The way I understood it (and please correct me if I am wrong) there are two notions of security in the DFU workflow.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Siging/verifying the DFU zip packet using some form of signature verification techniques.&lt;/li&gt;
&lt;li&gt;Boot validation i.e. the boot loader validates the CRC of the application once (or everytime?) before loading and executing the application.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Does &amp;quot;--app-boot-validation&amp;quot; apply to both options above, or (as I would intuitively imagine) only to option (2) above?&lt;/p&gt;
&lt;p&gt;And what role does the &amp;lt;private,public&amp;gt; key pair have in this workflow when these are used to build (public key) and generate the DFU (private key)&amp;nbsp; and sign it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/415877?ContentTypeID=1</link><pubDate>Fri, 17 Mar 2023 06:56:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d62b095-00ea-4072-8bc7-fda65af9a96e</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Yes, you need to&amp;nbsp;set the app boot validation type&amp;nbsp;to VALIDATE_ECDSA_P256_SHA256. From the help text:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;$ nrfutil pkg generate --help
...
  --app-boot-validation [NO_VALIDATION|VALIDATE_GENERATED_CRC|VALIDATE_GENERATED_SHA256|VALIDATE_ECDSA_P256_SHA256]
                                  The method of boot validation for
                                  application.
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/415864?ContentTypeID=1</link><pubDate>Fri, 17 Mar 2023 01:58:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb2c6dba-2e47-4614-9c18-89ecfb2b7a1b</guid><dc:creator>RVM</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;How does one ADD the signature to the init packet? Is that an extra option to the nrfutil package generation workflow?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/378635?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 07:20:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a30e94a5-85b4-4c3d-9167-882ef1b3b8db</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Yes, that is correct. The bootloader will copy the signature from the init packet and store it to the bootloader settings page in flash.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/377726?ContentTypeID=1</link><pubDate>Tue, 19 Jul 2022 19:24:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b8709a83-f654-4c0a-bb45-edeb96fa9fbf</guid><dc:creator>RVM</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;// &amp;lt;q&amp;gt; NRF_BL_APP_SIGNATURE_CHECK_REQUIRED  - Perform signature check on the app. 
// Requires the signature to be sent in the init packet.
#ifndef NRF_BL_APP_SIGNATURE_CHECK_REQUIRED
#define NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 0
#endif&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The above is a snippet from the file &amp;#39;sdk_config.h&amp;#39; available with the secure DFU example code from SDK version 16.0.0. &lt;br /&gt;It says that the signature must be sent in the &amp;#39;init&amp;#39; packet. I imagine the init packet is a one time transfer that is sent during the DFU process.&lt;/p&gt;
&lt;p&gt;Does the boot loader save this signature somewhere in the flash and look it up every time the device (re-)boots?&lt;/p&gt;
&lt;p&gt;RMV&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/268858?ContentTypeID=1</link><pubDate>Thu, 10 Sep 2020 07:14:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2923277-b04d-4c9f-87c7-efaeaf6808af</guid><dc:creator>ayewilling</dc:creator><description>&lt;p&gt;Thanks for your&amp;nbsp;explanation, quite clear.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?</title><link>https://devzone.nordicsemi.com/thread/268779?ContentTypeID=1</link><pubDate>Wed, 09 Sep 2020 13:40:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f705ac34-7a71-4764-8745-9ed50b4f2cd4</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;NRF_DFU_REQUIRE_SIGNED_APP_UPDATE&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;&lt;/strong&gt;option says whether the bootloader should require signed app updates or not (&lt;span&gt;&lt;a title="Signature verification" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.0/lib_bootloader_dfu_validation.html?cp=7_1_3_5_1_1_2_3#lib_bootloader_signatures"&gt;Signature verification&lt;/a&gt;&lt;/span&gt;), while the &lt;strong&gt;NRF_BL_APP_SIGNATURE_CHECK_REQUIRED&lt;/strong&gt; option relates to &lt;span&gt;&lt;a title="Boot validation" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.0/lib_secure_boot.html?cp=7_1_3_5_0_8_1#secure_boot_validation"&gt;Boot validation&lt;/a&gt;&lt;/span&gt; (can optionally be performed on every startup). The default boot validation is a simple CRC validation of the app image. &lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>