53
M2351 Security Architecture TrustZone® Technology for Armv8-M Architecture

M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

M2351 Security ArchitectureTrustZone® Technology for Armv8-M Architecture

Page 2: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

OutlineNuMicro® M2351 Security Architecture

IDAU / SAU, Secure Configuration Unit (SCU), Security Configurations.

TrustZone Implementation on M2351

Crypto Accelerator, Secure bootloader, KPROM, XOM, Flash Lock, Secure Debug and Tamper Detector.

M2351 Security functions

Processor Core, Interrupt Handling, Memory Partitioning, State Transitions.

TrustZone® for Armv8-M

Page 3: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Processor Core, Interrupt Handling, Memory Partitioning,

State Transitions.

TrustZone®

forArmv8-M

Page 4: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• The memory and peripherals can be grouped into Secure World and Non-secure World according to the memory address.

• The processor supports Secure and Non-Secure operating states.

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Microcontroller

Secure World

Non-secure WorldTrustZone !

Page 5: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone® for ARMv8-M

• Secure code and Non-secure code can run on the same microcontroller

- Secure world is an isolated execution environment protected by hardware.

- State transition is handled by hardware!

State Transition

Handled by hardware!

P1 P2 P3 P4 Pn…

Cortex® -MNS-Flash NS-SRAM

S-Flash S-SRAM

Secure World

P1 P2 P3 P4 Pn…

Cortex® -MNS-Flash

S-Flash

NS-SRAM

S-SRAM

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Non-secure World

Page 6: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Processor Core

• Processor states

- Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes

Source: “Introducing ARM Cortex-M23 and Cortex-M33 Processors with TrustZone for ARMv8-M”

privileged

unprivileged

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Page 7: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• Separate hardware resources for secure and non-secure states

- SysTick timer

- MPU configuration registers

- Stack register (R13)

◼ MSP_S / MSPLIM_S, PSP_S / PSPLIM_S

◼ MSP_NS / MSPLIM_NS*, PSP_MS / PSPLIM_NS*

(* is not supported in Cortex®-M23)

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Source: “The Next Steps in the

Evolution of Embedded Processors

for the Smart Connected Era”

Secure StateNon-secure State

Main stack Thread stack

- SysTick timer

- MPU configuration registers

- Stack register

- SysTick timer

- MPU configuration registers

- Stack register

Page 8: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Interrupt Handling

• Interrupt management mechanism is similar to ARMv7-M.

• Support separated exception vector tables for the Secure and Non-Secure exceptions

- Can share the same priority level, or can force non-secure interrupts to use lower half priority range.

Source: armTrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Page 9: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Memory Partitioning

• The 4GB memory space is partitioned into Secure (S) and Non-secure (NS) memory regions

- Only secure code can access secure memory and peripherals.

- Support optional secure MPU and non-secure MPU

• Non-Secure Callable (NSC)

- This secure memory area contains valid entry points for secure APIs

- First instruction in API must be SG (Secure Gateway)

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Page 10: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

State Transitions

• The processor’s secure state is determined by the program address

- Instructions from secure memory executed in the secure state

- Boot into secure state

- Direct function calls between states

- Interrupts directly taken to target state

SecureNon-secure

Handler

Thread

Handler

Thread

ResetExceptionRequest

ExceptionReturn Exception

Request

ExceptionReturn

Calls

Calls

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Page 11: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• Non-secure code to secure function

- Non-secure code can call a function in secure memory where

◼ The entry point is in a NSC region

◼ The first instruction is Secure Gateway (SG)

- The LSB of R14 will be cleared to 0

Source: “The Next Steps in the

Evolution of Embedded Processors

for the Smart Connected Era”

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

˙

Page 12: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• Secure code to non-secure function

- Secure code can call a function in non-secure memory by using BLXNSinstruction

◼ Return address and part of the PSR is pushed to the current Secure stack

◼ FUN_RETURN is assigned to Link register (R14)

LSB=0 (NS) */

TrustZone®

forArmv8-M

Processor Core

Interrupt Handling

Memory Partitioning

State Transitions

Source: “The Next Steps in the

Evolution of Embedded Processors

for the Smart Connected Era”

Page 13: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

IDAU / SAU, Secure Configuration Unit (SCU), Security

Configurations.

TrustZone®

Implementationon M2351

Page 14: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

IDAU / SAU, Secure Configuration Unit (SCU), Security

Configurations.

TrustZone®

Implementationon M2351

Page 15: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Fixed Secure area

Control units to support TrustZone®- Secure access only

Control units to support TrustZone ®

- New IP to support TrustZone ®

Master or Slave IP

CPU

Mask ROM

SAU

IDAU

NS-PDMAS-PDMA

SRAMSecure

Boot ROM

Flash

AHB-APB bridge

Master

S-Timer S-WDT P1 P2 P3 Pn

SCU(Peripheral control)

FMC

SCU(SRAM Control)

AHB5

APB

2 kbytes

M2351Block

Diagram

• Arm® Cortex® -M23 core @ 64MHz, 512KB/ 96KB Flash and SRAM.

• Support TrustZone® for Armv8-M.

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 16: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

ImplementationDefined

AttributionUnit

Page 17: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Non-programmable, defines

static address partitioning

Page 18: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• Address Bit 28 is used to partition secure and non-securememory region.

Non-secure region

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 19: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Secure

Non-Secure

Secure + NSC

Non-Secure

Secure + NSC

Non-Secure

Secure

Non-Secure

Secure

Non-Secure

Secure

Non-Secure

Secure

Non-Secure

Secure + Exempted Region

Non-Secure

0x00000000

0x10000000

0x20000000

0x30000000

0x40000000

0x50000000

0x60000000

0x70000000

0x80000000

0x90000000

0xA0000000

0xB0000000

0xC0000000

0xD0000000

0xE0000000

0xF0000000

0xFFFFFFFF

Code

SRAM

Device

External RAM

External Device

System

Device

Secure 0x00000000

0x00000800

Default Address Map

Region Range Memory Attribute

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

the size of a sub-region is 256MB

Page 20: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

SecurityAttributionUnit

Page 21: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Programmable,

provides dynamic

address partitioning.

Page 22: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Address Register

0xE00EDD0 SAU_CTRL Control Register

0xE00EDD4 SAU_TYPE Number of SAU region (read only)

0xE00EDD8 SAU_RNR Region Number Register

0xE00EDDC SAU_RBAR Region Base Address Register

0xE00EDE0 SAU_RLAR Region Limit Address Register

• Up to 8 memory regions can be defined by programming its control registers.

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

used to define

a SAU region.

Page 23: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

#1 SAU_RLAR.NSC = 0

#0 SAU_RLAR.NSC = 1

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

A memory region defined by SAU is either Non-secure or Non-secure Callable.

Page 24: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:
Page 25: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• The address space partitioning is completed by IDAU and SAU together

• Compare IDAU and SAU definition, higher security attribute is selected for a memory address

- S > NSC > NS

Implementation Defined Attribution Unit (IDAU)

Secure Attribution Unit (SAU)

Security Attribution Compare

Higher security attributeis selected

Address

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 26: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• The address space partitioning is completed by IDAU and SAU together

• Compare IDAU and SAU definition, higher security attribute is selected for a memory address

- S > NSC > NS

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 27: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

SecurityAttributeConfiguration

Page 28: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• If the security state of a hardware resource is changeable, both secure and non-secure address range are allocated for it.

• Once assigned to be non-secure by system initialization code, the hardware resource will only respond to non-secure address.

Cortex®-M23

S-Flash

S-SRAM

S-Peripherals

Configured via FMC

Configured via SCU

S

S

NS-Flash

NS-SRAM

NS-Peripherals

NS

NS

NS

S

AddressSpace

(defined by IDAU / SAU)

M2351SystemAddress

Map

S

NS

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 29: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

FMC

• Most of the M2351 Flash areas are always secure and cannot be changed.

• Only APROM area can be changed to be non-secure.

- NSCBA[23:0] indicates the starting address of non-secure APROM, which should align with Flash page size.

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 30: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 31: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

• FMC can block unsecure access to flash.- Secure processor uses secure address (address bit 28 = 0) to access non-secure APROM.- Secure processor uses non-secure address (address bit 28 = 1) to access secure APROM.- Non-secure processor uses non-secure address (address bit 28 = 1) to access secure APROM.

Secure

Page 32: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

ConfigurationUnit

Page 33: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

• Used to configure the security attribute of SRAM and peripherals.

SRAMNSSET

NS

SSRAM

PNSSET0~

PNSSET6

NS

S

Divided into 12 blocks, each block can be set as secure or non-secure.

•If a peripheral is secure, all the control registers are secure.•Can’t be changed the

state of some critical peripherals (such as FMC, Crypto, ...).

P1 (NS)

P2 (S)

P3 (S)

Pn (NS)

Peripherals

Page 34: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

CPU/ Master P.

• SCU can block unsecure access to SRAM or peripherals.

- Secure processor or master peripheral

◼ Uses secure address (address bit 28 = 0) to access non-secure SRAM or non-secure Peripheral.

◼ Uses non-secure address (address bit 28 = 1) to access secure SRAM or secure Peripheral

- Non-secure processor or master peripheral uses non-secure address to access secure SRAM or secure Peripheral.

- Non-secure master peripheral tries to access a secure address (address bit 28 = 0) .

Secure

CPU/ Master P.

CPU/ Master P.

CPU/ Master P.

CPU/ Master P.

CPU/ Master P.

SRAMor

Peripheral

SRAMNSSET

PNSSET0~

PNSSET3CPU

/ Master P.

Page 35: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

SRAM is in secure state after reset.

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 36: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Register SRAMNSSETin SCU is used to set SRAM block to non-secure state.

Page 37: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

• each block is 8KB.

• bit n controls nth block: 0 for secure, 1 for non-secure.

Page 38: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

All peripherals

are in secure state

after reset.

Page 39: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

The secure state of each

configurable peripheral is

controlled by a

corresponding bit in registers

Page 40: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 41: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Register IONSSET is

used to configure

secure state of

individual GPIO port.

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 42: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

TrustZone®

ImplementationOn M2351

M2351Block

DiagramIDAU

Security Configurations

SAUSecurity

Configurationof Flash

Security Configuration

Unit

Security Configuration

of SRAM

Security Configurationof Peripheral

Page 43: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Crypto Accelerator, Secure bootloader, KPROM, XOM,

Flash Lock, Secure Debug and Tamper Detector.

SecurityFunctions

Page 44: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Crypto Accelerator, Secure bootloader, KPROM, XOM,

Flash Lock, Secure Debug and Tamper Detector.

SecurityFunctions

Page 45: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

M2351 Security Functions

Cortex®-M23

FlashSRAM

Peripherals

Crypto.Accelerator

RandomNumber

Generator

SWD interface

Secure bootloader

Flash Lock Bits

KPROM

Integrity check and secure firmware upgrade

Unique IDHardware authenticationfor updating Flash memory

Two level setting for Flash lock, SWD disabled Encryption and Decryption operating to offload CPU

Device identification

XOM

Execute-only memory region

Detect input state transition

Tamper Pin Detector

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 46: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Crypto Accelerator

• Support cryptographic operations for ciphering and message integrity

- Elliptic Curve Cryptography (ECC)

- DES, 3DES in ECB, CBC, CFB, OFB and CTR mode

- AES 128-, 192-, and 256-bit

◼ ECB, CBC, CFB, OFB , CTR, CBC-CS1, CBC-CS2, and CBC-CS3 mode

- SHA-160/224/256/384

- TRNG for key generation

◼ 64, 128, 192 and 256-bit random number

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 47: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Secure Bootloader

• An immutable ROM code resident in execution-only region- Assures application code in flash memory has not been tampered.

Secure bootloader Application code

resetVerify the hash value of application code

signature

APROM

App.Code SHA-256

256-bit secure boot key

ECDSA

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Comparing with the signature

Page 48: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

KPROM

• 4 Kbytes flash to store 96-bit Secure User Key and Secure User Key Retry Limitation

- The 96-bit Secure User Key cannot be read directly and only can be verified by hardware.

- LDROM, APROM and KPROM are write-protected once KPROM is enabled.

KPKEY0ROM

KPKEY1ROM

KPKEY2ROM

KPMAXROM

KPKEMAXROM

KPKEYENROM

Offset 0x00

Offset 0x04

Offset 0x08

Offset 0x0C

Offset 0x10

Offset 0x14

96-bit Secure User Key

Retry counters

KEYLOCK Enable Control

KPROM Memory Map

LDROM

APROM

KPROM

Flash Write or Erase

96-bit Secure User Key Compare

Success

Fail

Page 49: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

eXecution-Only Memory (XOM)

• Up to 4 XOM regions can be defined in APROM

• Execution-only, data access is not allowed. (PC-relative data access is not allowed).

XOMregion

Functioncall

Dataaccess

APROM

Dataaccess

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 50: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Flash Lock Bits

• SCRLOCK

- When SCRLOCK is set, external read and write access to secure Flash regions (LDROM, secure APROM region) are denied.

• ARLOCK

- When ARLOCK is set, external read and write access to Flash regions (LDROM, entire APROM) are prohibited.

Non-secure

Secure

Secure

APROM

LDROM

SCRLOCK ARLOCK

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 51: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Secure Debug

• Debug interface (SWD) is controlled by the status of SCRLOCK and ARLOCK

SCRLOCK ARLOCK Debug Capability

Can debug and trace any software code.

Only can debug and trace non-secure software code.

Debug interface is disabled, cannot debug and trace any software code.

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 52: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

• Tamper pins can be configured as six individual inputs or 3 tamper loops.

• When the defined transition condition is detected

- A tamper alarm interrupt will be triggered.

- The RTC spare registers (80 bytes) will be cleared.

64-bits

Tamper Detector

Tamper Detector

H/L

H/L

H/L

H/L

H/L

H/L

Tamper Detector

Tamper LoopTamper Pin

M2351Security

Functions

Crypto Accelerator

Secure Bootloader

KPROM XOMFlash

Lock BitsSecure Debug

Tamper Detector

Page 53: M2351 Security Architecture · 2019-02-25 · Processor Core • Processor states-Secure and Non-secure states that are orthogonal to the existing Thread and Handler modes Source:

Summary

M2351 is equipped with hardware functions to improve system security.

• Secure bootloaderSecure boot

• Crypto AcceleratorCommunication

Protection

• XOM, KPROM, Flash Lock and TrustZone®

Data and Firmware

Protection

• TrustZoneOperation Protection

• Tamper pin Detector Tamper

Protection

Communication Protection

Data Protection

Firmware Protection

Operation Protection

Tamper Protection

CryptoAccelerator

TrustZone(SCU, FMC)

TamperPin

Detector

XOMKPROM

Flash Lock

Secure bootSecure

bootloader