 Donc, STI ROT s'occupe d'un demo. STI ROT boot, vous vous souvenez ? Sur le reset, vous êtes dans l'HDP Level 1. Merci d'un bouton unique, nous avons activé le STI ROT. Alors, le STI ROT va vérifier si il y a une application pour installer. Si une application est déjà installée, elle va vérifier l'intégrité et l'authenticité de l'application de l'usage. Et on l'installe après. Juste coller les services RSS pour utiliser l'HDP protection, elle va augmenter à l'HDP Level 2. Donc, notre application va être exécutée à l'HDP Level 2. Sécure. Oui, parce qu'on a un zone ennemi. Nous allons créer une application « Sécure LED Blinking » qui va être installée par le manager de sécurité. Et quand je presserais le bouton bleu sur le target, je pourrais passer au classique « Embedded Bootloader ». « Embedded Bootloader » permet à nous de downloader une nouvelle version de l'application. Et après contrôler un reset, on va installer une nouvelle version. Donc, ce est ce que nous allons faire maintenant. Les différents étapes. First, nous avons besoin de créer une application, avec l'association « Base Syncs Cubemix ». Ensuite, nous allons configurer le STI ROT. Nous allons développer notre application. Ensuite, nous allons faire la provisioning de l'application STI ROT. La débugnation d'accesses et aussi l'application. Et ensuite, nous allons faire un « Secure Update ». Et ensuite, nous allons débugner l'application. Et finalement, nous allons faire une régression. Donc, nous allons downloader « Cubemix » maintenant. Nous allons aller à l'accès au sélecteur MCU. Nous allons commencer notre projet de MCU. « Commercial Pack Number » STM32H573IIK3. Donc, c'était l'une correspondant à la décolleur. Et nous allons commencer notre projet. Mon application va être un « Secure Update ». Donc, c'est avec « Dress Zone » pour sûr. La première chose, c'est d'aller au « Project Manager » et le « Project Tab ». Donc, toujours dans mon « Hound Zone ». Et dans le nom de l'application, je vais proposer de prendre « Secure Application » pour exemple. Donc « Secure Application » « Project Location » dans le « Hound Zone ». Je vais utiliser « CubiD ». La application est « Secure Only ». Donc, je n'attends pas le « Secure Project ». Je clique « OK » pour ce « Warning ». Si tout est en place, je vais maintenant sauver le projet. C'est nécessaire pour avoir la capacité de définir le « Boot Pass » juste après. Si le projet a été sauvé, je vais dans le « Boot Pass » et le « Bug Authentication ». Ici, je vais utiliser « Generate the Affolder » parce que je veux avoir un « Complete Project » avec aussi le « Debug Access Folder ». Ensuite, je vais sélectionner le « Boot Pass ». Et ici, ok, nous avons « Dress Zone » seulement. Qu'est-ce que l'application que vous voulez faire ? Je veux avoir « STI » « Immutable Route of Trust » « STI Route ». Puis, dans le « Next ». Je n'ai pas besoin d'un « Two-Stage Bootloader » donc je vais utiliser un « Secure Application ». Et ensuite, c'est terminé. Donc, ici, ce que vous avez, vous pouvez voir que nous avons la « Config File » location de la « STI Route ». Nous pouvons éditer elles. Je vais juste les montrer sans modifier elles. Donc, comme vous pouvez le voir, il y a un « TPC » ou « Trusted Package Creator ». Il est basé sur un « XML file » qui est un template. Et ici, vous pouvez voir que la « Configuration » peut être baissée pour cette « STI Route ». Donc, je peux avoir seulement une « Firmware Image » mais je peux aussi avoir la capacité d'avoir un « Data Image » si je veux. Si la « Firmware » est « Full Secure » ? C'est un cas. Mais si vous n'occupez pas de cela, vous avez la possibilité de définir aussi la portion de votre application qui n'est pas « Secure ». Ici, vous avez le « Execution Slot ». Donc, ce sera le meilleur adresseur de ma « Flash ». La « Downloading Slot » location et la « Firmware Area Size ». La « Maximum Size » de votre application ici. Mais vous aussi avez la « Encryption Key » et la « Authentication Key ». Ceux sont, je dirais, délivrés par « Default » avec notre valeur, mais pour sûr, si vous le régénérez, cela sera unique et c'est pour vous. C'est quelque chose que vous devez avoir à stocker dans le « Secure Room ». Et puis, vous pouvez cliquer sur « Generate OB Key » qui est, je dirais, le « File » que nous avons besoin de « Provision » pour configurer la « STI Route ». Mais ici, je ne vais pas modifier rien. Je vais juste cliquer sur ceci. Donc, maintenant, nous sommes prêts à développer notre application. Donc, je vais retourner dans la « Pin Out » fonction. Et ce que ma application est en train de faire c'est juste un peu de « Blinking ». Donc, je dois juste définir la « Lead Pin » « PI 9 » pour « Output Secure ». Et aussi, le « User Button » pour déclencher le « Jump » dans le « Embedded Bookloader » qui est PC30. Tout d'abord, je vais regarder le « PA9 ». Je clique à gauche « GPIO Output ». Après, je dois cliquer à droite « Pin Reservation » pour déclencher le « Secure Contexte ». Puis, pour « PC Searching » je clique à gauche « GPIO Input » je clique à droite et je clique à gauche pour déclencher le « Secure Word ». Je pense que ma application est prête ou que mon code de initialisation est prête. Je vais double-checker les « GPIO Settings » « PC 13 » Je voudrais assurer que le « Secure Contexte » soit bien « Secure ». Ok, je peux générer mon code. Je cache, je n'y pense pas. Je vais l'ignorer. Ok, je vais maintenant « Launch CUBE ID » et je vais importe mon projet généré. Je vais dans le « Menu File » « Open Project Form File System » « Here, if I go in the directory » « En Zone » « I found my secure application » « And just select folder » « Finish » « On here, we have our application project » « Which is just there ». « We still have the road provisioning folder » « With STIOT, which allows to do the installation » « Of the STIOT » « I will say the provisioning associated to it » « And the debugging authentication » « So, now what I will do » « I will import some code from the material I share with you » « If I come back in my material » « So, workshop on zone material you receive » « You can go in the STIOT folder » « And here you've got a loader.h and loader.c » « So, we drag and drop the loader.h » « To the ink folder » « Copy the file » « And then we do the same » « loader.c » « In the source file » « And copy » « What do we have in this code » « The embedded bootloader is executed in non secure context » « So, all this code is just to configure everything » « To have the capability to execute the embedded bootloader » « Because here we are in a secure context » « So, we have to switch to non secure context » « After we need to add in the main.c some code » « You will see quite basic one » « So, an include of the loader.h » « And in the wild one loop » « We will » « Do the lead blinking » « To 500 milliseconds » « And then we will read the PC13 » « And if the button is pressed » « Then we will call the loader » « That means we jump to the embedded loader » « To download a new version of the firmware » « So, let's copy part this » « So, I will » « Copy the include » « I open the main.c » « I copy it line 24 » « Then I will take » « All this code » « And copy it just after » « The user code being 3 » « And that's it » « So, if you are using kubemix 6.10 » « Or herper » « You will need to do an additional batch » « This one is in the core » « Include folder » « And please open partition stm32h573xx.h » « Then if you go to line 210 » « Here » « It was the region 5 » « Which is the one of the embedded boot loader » « And please I would like to deactivate » « This one » « By setting the su init vision 520 » « Then you can save » « Okay » « Let's build the application » « The PC success » « Our application is ready » « Now I propose to provision everything » « I mean the STI rot configuration » « Associated keys also » « To check the integrity » « And the authenticity of our framework » « And to decrypt it when we do an update » « To do so » « We have some script again » « So if you go in your application » « Onzone » « SecureHapply » « You've got the root provisioning folder » « And you've got STI rot folder » « Here you can launch provisioning that batch » « So here you've got the script » « Again with many information » « And we will use always the default configuration » « As you can see it started by programming » « Some option byte and flashing the image » « I will give you details about what's happened here just after » « On this is done » « It will ask us what is the final state » « You want for your product just after » « To close state » « So we are moving to provisioning » « So we are familiar with it now » « That means we are provisioning the obi key storage » « With the keys that is a configuration of the STI rot » « But also for the debugging access » « And then finally » « It will change the product state to closed » « So while it's finished » « You should have the link on your board » « To come back to my presentation » « What I've been done there » « First, option byte I've been programmed » « To activate choice zone » « And to declare portion of flash as secure » « Thanks to secure watermark » « Then our application encrypted unsigned » « I've been downloading in the user app » « Downloading area » « That means on the next reset » « When the STI rot will be configured » « It will check decrypt » « To install this new version » « Or this first version » « Then the product have been moved » « To provisioning state » « And we have provisioned » « The configuration of the STI rot » « The data associated » « And also the debug authentication keys » « All this stuff » « Are going in the obi key level 1 » « And finally » « We move to cloud blinking state » « Okay » « So now what I propose » « Of this firmware » « That is running for the moment » « And doing the downloading » « Of this new version » « So we modify the application » « And change the delay to 100 » « And after we will press the blue button » « You can try it also already on your target » « If you press the blue button » « The let's stop blinking » « Because you jump to the embedded bootloader » « So let's do this » « I come back to cube ID » « In my main.c » « Only I'm changing » « The let blinking speed » « Just to see the difference » « In the behavior » « Then I'm compiling » « I'm waiting for the TPC successful traces » « Okay » « And now I will go to » « Cube programmer » « The first things » « Usually you press the link » « You press the blue button on your target » « Let's stop blinking » « That means you are in the embedded bootloader » « So now I will select » « User interface » « Here select the comport » « The corresponding to your target » « So for me it's 112 » « And I will then click on connect » « As you can see I'm able to » « Connect with the embedded bootloader » « So now I can download » « A new version of my application » « I will do it » « Thanks » « This menu » « Those are erasing and programming » « We will select » « Where is our application » « So let's browse » « On this PC » « I will go in my » « Hands-on » « My secure application » « In the binary folder » « I've got the X file » « So already with the correct format » « Which allows to download » « In the downloading slot » « I'm just open it » « Start the program » « It's complete » « And if you press the » « Reset button » « You should have this » « Let blinking faster » « Which is the case there » « Okay » « So I just disconnect » « Because I'm not anymore » « In the » « System bootloader » « So if I come back » « To my cube ID » « I would like to show you » « I right-click » « On the project » « Debug as » « STM32CC plus application » « So » « What I would like to do » « I would like to connect » « With the debugger » « I will be in » « Hot plug mode » « So that means I don't want to trick the reset » « Because I really want to have a hot attach here » « On the debug authentication » « Because we will need this one » « To have the keys » « So in my secure application » « I've got the root provisioning » « GA » « Keys » « I will use » « key3leaf.bm » « So you need a private key » « Then the certificate that we will use » « So in the » « GA » « folder » « And this time it was in the » « Certificate » « Certificate.bm » « 64 » « Open » « And you remember » « What is the level » « It will be in » « secure level 2 » « Okay » « Next point » « We have to remove the download » « Because we don't want to erras » « the application » « So here I just go in a startup menu » « Load an image » « The symbol » « Which allow me to see » « Where I am with the debugger » « And then I load the debug » « So the debugger is attached » « As I am in hotplug mode » « I need to break the execution » « So to suspend » « On here you can see » « That I am in the delay » « So I can put a breakpoint » « For example at the beginning of the code » « Just run it » « Press the reset button » « I will manage to debug » « My application » « So we've got the STI rot which is there » « We have in closed state » « But since this certificate » « On this associated private key » « We still have the capability » « To reopen on debug » « And see what's happened on this target » « If there is an issue or not » « Okay » « So let's close the debug » « And the last step » « Will be to do a regression » « To clean up » « Though what we will do » « Is just use » « Again some script provided » « So it's still in our application » « We've got the root provisioning » « DA » « On here you've got regression.bat » « Which will remove everything from your target » « From the flash » « And from the secure storage » « So I just double click on it » « And as you can see » « Authentication is done » « And then » « Regression has been triggered » « If I check with Kube programmer » « I can go back with Stilling » « Connect under reset » « Will works » « And if I check » « The option byte » « Product state » « I mean open state » « That mean I finish » « And recover from this one » « This is the end of this » « So what we have seen » « Our STiRoute » « Is integrated in STM32 ecosystem » « And now it's simple » « Using Kube MX to configure the boot part » « We have seen » « That we have everything » « To provision our target » « Some script » « And then we can do » « A secure firmware update » « Quite easily » « And finally » « I'll also demonstrate » « The capability to reopen »