Software ST Microelectronics STM32 Signing Tool
Zavedení
Software nástroje pro podepisování STM32 (v tomto dokumentu pojmenovaný STM32-SignTool) je integrován v STM32CubeProgrammer (STM32CubeProg). STM32-SignTool je klíčový nástroj, který zaručuje bezpečnou platformu a zajišťuje podepisování binárních obrazů pomocí ECC klíčů generovaných softwarem STM32-KeyGen (další podrobnosti viz uživatelská příručka Popis softwaru generátoru klíčů STM32 (UM2542). Podepsané binární obrazy se používají během sekvence zabezpečeného spouštění STM32, která podporuje důvěryhodný řetězec spouštění. Tato akce zajišťuje ověření a kontrolu integrity načtených obrázků. STM32-SignTool generuje binární obraz file, veřejný klíč filea soukromý klíč file. Binární obraz file obsahuje binární data, která mají být pro zařízení naprogramována. Veřejný klíč file obsahuje veřejný klíč ECC ve formátu PEM, vygenerovaný pomocí STM32-KeyGen. Soukromý klíč file obsahuje zašifrovaný soukromý klíč ECC ve formátu PEM vygenerovaný pomocí STM32-KeyGen. Podepsaný binární soubor file lze také vygenerovat z již podepsaného file s dávkou file režimu. V tomto případě nejsou povinné následující parametry: vstupní bod obrázku, adresa načtení obrázku a parametry verze obrázku. Tento dokument se vztahuje na produkty uvedené v tabulce níže.
Tabulka 1. Použitelné produkty
Typ produktu | Číslo dílu nebo produktová řada |
Mikrokontrolér | Řada STM32N6 |
Mikroprocesor | Řada STM32MP1 a STM32MP2 |
V následujících částech odkazuje STM32 na produkty uvedené ve výše uvedené tabulce, pokud není uvedeno jinak.
Nainstalujte STM32-SignTool
Tento nástroj se instaluje s balíčkem STM32CubeProgrammer (STM32CubeProg). Více informací o postupu nastavení naleznete v části 1.2 uživatelské příručky s popisem softwaru STM32CubeProgrammer (UM2237). Tento software podporuje produkty STM32 založené na procesoru Arm® Cortex®.
Poznámka: Arm je registrovaná ochranná známka společnosti Arm Limited (nebo jejích dceřiných společností) v USA a/nebo jinde.
Rozhraní příkazového řádku STM32-SignTool
Následující části popisují, jak používat STM32-SignTool z příkazového řádku.
Příkazy
Dostupné příkazy jsou uvedeny níže:
- –binary-image(-bin), –input(-in)
- Popis: binární obrázek file cesta (přípona .bin)
- Syntaxe: 1 -bin /home/Uživatel/binárníFile.zásobník
- Syntaxe: 2 -in /home/User/binaryFile.zásobník
- –verze obrázku (-iv)
- Popis: zadá obrazovou verzi podepsaného obrázku file
- Syntaxe: -iv
- –soukromý klíč (-prvk)
- Popis: soukromý klíč file cesta (přípona .pem)
- Syntaxe: -prvkfile_cesta>
- Example: -prvk ../privateKey.pem
- –veřejný-klíč –pubk
- Popis: veřejný klíč file cesty
- Syntaxe: -pubkFile_Cesta{1..8}>
- Pro záhlaví v1: použijte pouze jednu klíčovou cestu pro produkty STM32MP15xx
- Pro záhlaví v2 a vyšší: pro ostatní použijte osm klíčových cest
- –heslo (-pwd)
- Popis: heslo k soukromému klíči (toto heslo musí obsahovat alespoň čtyři znaky)
- Example: -pwd azerty
- • –načíst-adresu (-la)
- Popis: adresa pro načtení obrázku
- Example: -la
- –vstupní bod (-ep)
- Popis: vstupní bod obrázku
- Example: -ep
- –příznaky-option (-of)
- Popis: příznaky možností obrázku (výchozí hodnota = 0)
- Example: -of
- –algoritmus (-a)
- Popis: určuje jednu z hodnot prime256v1 (hodnota 1, výchozí) nebo brainpoolP256t1 (hodnota 2)
- Example: -a <2>
- –výstup (-o)
- Popis: výstup file cesta. Tento parametr je volitelný. Pokud není uvedeno, výstup file je generován u stejného zdroje file cesta (napřample, binární obraz file je C:\BinaryFile.zásobník). Podepsané binární číslo file je C:\BinaryFile_Signed.bin.
- Syntaxe: -oFile_Cesta>
- –typ (-t)
- Popis: binární typ. Možné hodnoty jsou ssbl, fsbl, teeh, teed, teex a copro.
- Syntaxe: -t
- – tichý (-s)
- Popis: Nezobrazuje se žádná zpráva o nahrazení stávajícího výstupu file
- –pomoc (-h a -?)
- Popis: zobrazuje nápovědu
- –verze (-v)
- Popis: zobrazuje verzi nástroje
- –enc-dc (-encdc)
- Popis: konstanta odvození šifrování pro šifrování FSBL [hlavička v2]
- Syntaxe: -encdc
- –enc-key (-enck)
- Popis: Tajemství OEM file pro šifrování FSBL [header v2]
- Syntaxe: -enck
- –dump-header (–dump)
- Popis: analyzovat a vypsat záhlaví obrázku
- Syntaxe: -dumpFile_Cesta>
- –header-version (-hv)
- Popis: verze záhlaví podpisu, možné hodnoty: 1, 2, 2.1, 2.2 a 2.3
- Example pro STM32MP15xx: -hv 2
- Example pro STM32MP25xx: -hv 2.2
- Example pro STM32N6xxx: -hv 2.3
- –žádné klíče (-nk)
- Popis: přidání prázdné hlavičky bez klíčových možností
- Upozornění: je nutné zakázat možnost ověřování pomocí příkazu option flags.
Exampsoubory pro STM32-SignTool
Následující exampsoubory ukazují, jak používat STM32-SignTool:
Example 1
-bin /home/User/BinaryFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –la 0x20000000 –ep 0x08000000 Je vybrán výchozí algoritmus (prime256v1) a hodnota příznaku volby je 0 (výchozí hodnota). Výstupní binární soubor se znaménkem file (BinárníFile_Signed.bin) se vytvoří ve složce /home/user/
Example 2
-bin /home/Uživatel/Složka1/BinárníFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –s –la 0x20000000 –ep 0x08000000 –a 2 –o /home/user/Folder2/Folder3/signedFile.bin V tomto případě je vybrán algoritmus BrainpoolP256t1. I když složky Folder2 a Folder3 neexistují, budou vytvořeny. Příkazem –s, i když file existuje se stejným zadaným názvem, je automaticky nahrazen bez jakékoli zprávy.
Example 3
Podepište binární kód file pomocí hlavičky verze 2, která obsahuje osm veřejných klíčů pro tok ověřování.
./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKeypempem - publicKey06.p privateKey07.pem -pwd azerty -t fsbl -iv 00x0 -la 00000000x0 -ep 20000000x0 -of 08000000x0 -o /home/user/output.stm80000001
Example 4
Podepište binární kód file pomocí hlavičky verze 2, která obsahuje osm veřejných klíčů pro autentizaci plus tok šifrování.
./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKeypempem - publicKey06.p privateKey07.pem -iv 00x0 -pwd azerty -la 00000000x0 -ep 20000000x0 -t fsbl -of 08000000x0 -encdc 00000003x0f25205e -enck /OEMo_home -/us /home/user/output.stm0
Example 5
Ověřte výsledný obrázek analýzou výstupu file a zkontrolujte každé pole záhlaví. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32
Example 6
Přidat hlavičku bez podepisování a bez nasazení klíčů. STM32_SigningTool_CLI.exe -in input.bin -nk -of 0x0 -iv 1 -hv 2.2 -o output.stm32
Samostatný režim
Při provádění STM32-SignTool v samostatném režimu musí být nejprve zadána absolutní cesta. Poté je dvakrát požadováno heslo pro potvrzení, jak je znázorněno na obrázku níže.
Obrázek 1. STM32-SignTool v samostatném režimu
Další kroky jsou následující:
- Vyberte jeden ze dvou algoritmů.
- Zadejte verzi obrázku, vstupní bod obrázku a adresu pro načtení obrázku.
- Zadejte hodnotu příznaku možnosti.
Další výstup file cestu lze v případě potřeby zadat nebo stisknutím klávesy Enter pokračovat ve stávající.
řešení PKCS#11
Podepsané binární obrazy se používají během zabezpečené spouštěcí sekvence STM32, která podporuje důvěryhodný spouštěcí řetězec.
Tato akce zajišťuje ověření a kontrolu integrity načtených obrázků.
Klasický podepisovací příkaz vyžaduje, aby byly jako vstup poskytnuty všechny veřejné a soukromé klíče files. Toto jsou
přímo přístupné jakékoli osobě, která je oprávněna vykonávat službu podpisu. V konečném důsledku to lze považovat za
jako bezpečnostní únik. Existuje několik řešení, jak chránit klíče před pokusy o krádež klíčových dat. V tomto
V tomto kontextu bylo přijato řešení PKCS#11.
Rozhraní API PKCS#11 lze použít ke zpracování a ukládání kryptografických klíčů. Toto rozhraní specifikuje, jak
komunikovat s kryptografickými zařízeními, jako jsou HSM (hardwarové bezpečnostní moduly) a čipové karty.
Účelem těchto zařízení je generovat kryptografické klíče a podepisovat informace bez odhalení soukromého klíče.
materiál pro vnější svět.
Softwarové aplikace mohou volat rozhraní API a používat tyto objekty pro:
• Generování symetrických/asymetrických klíčů
• Šifrování a dešifrování
• Výpočet a ověření digitálního podpisu
PKCS #11 představuje pro aplikace běžné, logické view zařízení, které se nazývá kryptografický token a
přiřadí každému tokenu ID slotu. Aplikace identifikuje token, ke kterému chce přistupovat, zadáním
příslušné ID slotu.
Nástroj STM32SigningTool se používá ke správě klíčových objektů uložených na čipových kartách a podobných zabezpečeních PKCS#11.
tokeny, kde citlivé soukromé klíče nikdy neopouštějí zařízení.
Nástroj STM32SigningTool používá rozhraní PKCS#11 k manipulaci a podepisování vstupních binárních souborů na základě ECDSA.
veřejné/soukromé klíče. Tyto klíče jsou uloženy v bezpečnostních tokenech (hardwarových nebo softwarových).
Další příkazy PKCS#11
- –modul (-m)
- Popis: zadejte cestu k modulu/knihovně PKCS#11, kterou chcete načíst (dll, so)
- Syntaxe: -m
- • –index klíče (-ki)
- –index klíče (-ki)
- Popis: seznam použitých indexů klíčů v hexadecimálním formátu
- Použijte jeden index pro záhlaví v1 a osm indexů pro záhlaví v2 (oddělené mezerou)
- Syntaxe: -ki
- Popis: seznam použitých indexů klíčů v hexadecimálním formátu
- –slot-index (-si)
- Popis: určuje index slotu, který se má použít (výchozí hodnota je 0x0)
- Syntaxe: -si
- –slot–identifikátor (-sid)
- Popis: zadejte identifikátor slotu, který se má použít (volitelné, v desítkovém nebo hexadecimálním formátu)
- Syntaxe: -sid
- Pokud je volba –slot-identifier použita současně s –slot-index, nástroj zkontroluje, zda tato konfigurace odpovídá stejnému slotu. Identifikátor odráží index, který byl zmíněn; jinak dojde k chybě.
- Je možné použít –slot-identifier bez zmínky –slot-index. Nástroj systematicky prohledává index slotů.
- –active-keyIndex (-aki)
- Popis: určuje aktuální index aktivního klíče (výchozí hodnota 0)
- Syntaxe: -aki < hexHodnota>
PKH/PKTH file generace
Po zpracování operace podpisu nástroj systematicky generuje PKH files použít po pro pojistku OTP.
- PKH file s názvem pkcsHashPublicKey0x{active_key_index}.bin pro záhlaví v1
- PKTH file s názvem pkcsPublicKeysHashHashes.bin pro hlavičku v2
Examples
Nástroj může podepisovat vstup files pro záhlaví v1 i záhlaví v2, s minimálním rozdílem v příkazovém řádku.
- Záhlaví v1
-bin vstup.bin -iv -heslo -Los Angeles -ep -t -z –
-key-index -aki 0 –modul –index slotu -o výstup.stm32 - Záhlaví v2
-bin vstup.bin -iv -heslo -Los Angeles -ep -t -z – -klíčový-index -aki -modul –index slotu -o výstup.stm0
Chyba na příkazovém řádku nebo neschopnost nástroje identifikovat odpovídající klíčové objekty způsobí zobrazení chybové zprávy. To indikuje zdroj problému. Nástroj SigningTool dokáže používat pouze předkonfigurované HSM a není určen ke správě ani vytváření nových bezpečnostních objektů. Proto je nutné nainstalovat bezplatný software pro nastavení vhodného prostředí. Poté lze vygenerovat klíče a získat informace o objektech.
Možnost identifikátoru slotu:
- -bin input.bin –type fsbl -hv 1 –key-index 0x40 -aki 0 –module softhsm2.dll –password prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -of 0x80000000 -o output.stm32
Chyba examples:
- Neplatný index slotu
Obrázek 2. HSM TOKEN_NOT_RECOGNIZED
Neznámý objekt klíče, který je zmíněn v příkazu –key-index
Obrázek 3. HSM OBJECT_HANDLE_INVALID
Nástroj zpracovává objekty postupně. Pokud nemůže identifikovat odpovídající klíčové objekty na první pokus, operace podpisu proces zastaví. Poté se zobrazí chybová zpráva označující zdroj problému.
Historie revizí
Tabulka 2. Historie revizí dokumentu
Datum | Verze | Změny |
14. února 2019 | 1 | Počáteční vydání. |
26-listopad-2021 |
2 |
Aktualizováno:
• Oddíl 2.1: Příkazy • Oddíl 2.2: Exampsoubory pro STM32-SignTool • Přidána sekce 2.4: Řešení PKCS#11 |
27. června 2022 | 3 | Aktualizována sekce 2.1: Příkazy |
26. června 2024 |
4 |
V celém dokumentu nahrazeno:
• Řada STM32MP1 a řada STM32MPx • STM32MP1-SignTool od STM32MP-SignTool • STM32MP1-KeyGen od STM32MP-KeyGen Aktualizováno –public-key –pubk a přidáno –header-version (-hv) a –no-keys (- nk) v sekci 2.1: Příkazy. Přidáno „Ex“ample 6” v části 2.2: Přampsoubory pro STM32-SignTool. |
14-listopad-2024 |
5 |
Přidáno:
• Řada STM32N6 na příslušné produkty Nahrazeno v celém dokumentu: • STM32MP od STM32 Aktualizováno: • Oddíl 2.1: Příkazy |
06-března-2025 |
6 |
Aktualizováno:
• Oddíl 2.4.1: Další příkazy PKCS#11 • Oddíl 2.4.3: Examples |
DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ
Společnost STMicroelectronics NV a její dceřiné společnosti („ST“) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez předchozího upozornění. Kupující by si měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST se prodávají v souladu s prodejními podmínkami společnosti ST platnými v době potvrzení objednávky. Kupující jsou výhradně zodpovědní za výběr, výběr a používání produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací ani za design produktů kupujících. Společnost ST tímto neposkytuje žádnou licenci, výslovnou ani implicitní, k žádnému právu duševního vlastnictví. Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší veškerou záruku poskytnutou společností ST na takový produkt. ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST naleznete na www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem příslušných vlastníků. Informace v tomto dokumentu nahrazují informace dříve poskytnuté v jakýchkoli předchozích verzích tohoto dokumentu.
© 2025 STMicroelectronics – Všechna práva vyhrazena
FAQ
- Otázka: Co mám dělat, když při používání STM32-SignTool narazím na chyby?
- A: Zkontrolujte syntaxi příkazu, ujistěte se, že jsou správně zadány všechny požadované parametry, a tipy pro řešení problémů naleznete v uživatelské příručce.
- Otázka: Mohu použít STM32-SignTool na různých operačních systémech?
- A: STM32-SignTool je navržen pro práci na specifických operačních systémech. Podrobnosti o kompatibilitě naleznete ve specifikacích softwaru.
Dokumenty / zdroje
![]() |
Software ST Microelectronics STM32 Signing Tool [pdfUživatelská příručka Řada STM32N6, STM32MP1, STM32MP2, Software STM32 Signing Tool, STM32, Software Signing Tool, Software Tool, Software |