Microchip stellt SAM L10/L11-MCUs vor arm Cortex-M23 plus On-Chip-Security für das IoT

Der SAML11 passt gut für sicherheitskritische medizinische Anwendungen.

Mit bislang unerreichter Sicherheit und Energieeffizienz sowie seiner bekanntermaßen führenden Touch-Technologie will Microchips neue Mikrocontroller-Familie L10/L11 das IoT erobern. Bei zahlreichen Anwendungen könnte dies auch tatsächlich gelingen.

Die neue MCU-”Familie” mit zwei Mitgliedern L10 und L11 unterscheidet sich dahingehend von anderen MCU-Familien, deren einzelne Derivate sich häufig nur durch Speichergröße und/oder mehr oder weniger Peripherien differenzieren, dass zwischen L10 und L11 ein ganz erheblicher Unterschied besteht: Während die arm Coretx-M23-CPU des L11 arms TrustZone-Technologie implementiert, fehlt diese beim L10. Dies macht natürlich einen signifikanten Unterschied hinsichtlich der von Microchip beworbenen Security-Eigenschaften aus.

Um nicht zu große Redundanzen in diesem Beitrag aufkommen zu lassen, verweisen wir hinsichtlich einer detaillierten technischen Beschreibung der CPU auf unseren diesbezüglichen Beitrag von ARMs Entwicklerkonferenz TechCon, auf welcher sie Ende 2016 enthüllt wurde. Hinsichtlich der Architektur ARMv8-M und ihrer TrustZone-Technologie verweisen wir auf einen weiteren technischen Beitrag´von der TechCon 2015.

EigenschaftCortex-M23-
Optionen
Implementierung
SAML10
Implementierung
SAML11
Speicherschutzeinheit(MPU)Keine, 4, 8, 12 oder 16 RegionenEine MPU mit 4 RegionenZwei MPUs mit jeweils 4 Regionen (eine für nicht sicheren Bereich, eine für den mittels TrustZone abgesicherten Bereich)
Security Attribute Einheit (SAU)Keine, 4 oder 8 RegionenKeineKeine
Implementation Defined Attribution Unit (DAU)Keine oder implementiertKeineImplementiert (TrustZone vorhanden)
SysTick-TimerKeiner, 1 oder 2EinerZwei (einer für nicht sicheren Bereich, einer für den mittels TrustZone abgesicherten Bereich)
Vector Table Offset RegisterKeine, 1 oder 2EinerZwei (einer für nicht sicheren Bereich, einer für den mittels TrustZone abgesicherten Bereich)
Reset von allen RegisternJa oder NeinNeinNein
MultipliziererSchnell (1 Taktzyklus) oder langsam (32 Taktzyklen)SchnellSchnell
DividiererSchnell (17 Taktzyklen) oder langsam (34 Taktzyklen)SchnellSchnell
Anzahl externe Interrupts0-2404345
Befehle laden16-bit oder 32-bit32-bit32 bit
I/O-Port mit 1 Taktzyklus ZugriffszeitJa oder NeinJaJa
Clock-GatingJa oder NeinJaJa
Byte-Reihenfolge im SpeicherLittle-Endian oder Big-EndianLittle-EndianLittle-Endian
Unterstützung von Halt-DebugJa oder NeinNeinNein
Wake-Up-Interrupt-Controller (WIC)Keiner oder implementiertKeinerKeiner
Anzahl Breakpoints0,1, 2, 3 oder 444
Anzahl Watchpoints0, 1, 2, 3 oder 422
Cross Trigger Schnittstelle (CTI)Ja oder NeinNeinNein
Micro Trace Puffer (MTB)Ja oder NeinNeinNein
Embedded Trace Macrocell (ETM)Ja oder NeinNeinNein
JTAG SW Debug-ProtokollJTAG- oder Serial-Wire Schnittstellen zum DAPSerial-WireSerial-Wire
Multi-Drop für Serial-WireJa oder NeinNeinNein

 

Tabelle 1. Konfiguration des arm Cortex-M23 für die Mikrocontroller SAM L10 und SAM L11. Quelle: Microchip.

Die Implementierung des Cortex-M23 in den neuen Microchips-MCUs ist in Tabelle 1 dargestellt. Der entscheidene Unterschied ist die sogenannte “Defined Attribution Unit (DAU)”, welche darüber entscheidet, ob die TrustZone-Technologie aktiviert ist oder nicht. Bis auf den fehlenden Wake-Up-Controller (WIC, ist wegen Microchips PicoPower-Technologie nicht relevant, dazu später mehr) und die fehlende Security Attribute Unit (SAU) hat Microchip – wenn man von den Debugging-Optionen wie ETM für Echtezit-On-Chip-Tracing oder MTB für die Aufzeichnung von Trace-Informationen in einem RAM-Puffer mal absieht – fast die Maximal-Konfiguration implementiert, wobei beim L11 auf Grund der Trennung in einen sicheren und einen unsicheren Bereich diverse Eigenschaften wie MPU oder SysTick-Timer doppelt vorhalten muß.

Positiv ist die Tatsache, dass ein Instruktions-Fetch von 32 bit implementiert wurde. Damit  können beim M23 alle 2 Taktzyklen über den 32-bit-Bus jeweils zwei 16-bit-Werte gemeinsam aus dem Flash-Speicher geladen werden, was natürlich besonders bei sequentiellem Code Vorteile bringt, da weniger häufig auf den stromfressenden Flash-Speicher zugegriffen werden muss. Desweiteren wurde auch die „Schnellzugriffsoption auf I/O“ implementiert, bei welcher in jeweils einem statt zwei Taktzyklen auf I/Os zugegriffen werden kann, weil parallel zum AHB-5-Bus ein weiterer Port installiert wird. Über den kann dann doppelt so schnell auf GPIOs und Register zugegriffen werden (eine LOAD/STORE-Anweisung kostet normal 2 Taktzyklen), für Speicherzugriffe eignet sich der Schnellzugriffs-Port dagegen nicht.

Besonders für Echtzeitanwendungen wichtig ist die ebenfalls von Microchip implementierte Möglichkeit, die Interrupt-Vektor-Tabelle vom Flash-Speicher ins RAM zu verschieben. Da z.B. die Löschung eines Flash-Blocks mehrere ms dauern kann und der Controller in dieser Zeit „blind“ für Interrupts ist, weil die Interrupt-Vektoren im für diesen Zeitraum blockierten Flash-Speicher liegen, ist er für diverse Echtzeitanwendungen unbrauchbar. Beim M23, wie er im L10/L11 implementiert ist, kann man die Vektor-Tabelle ins RAM verschieben, so daß auch während eines Flash-Schreib- oder Lösch-Vorgangs Interrupts verarbeitet werden können.

SAM L11 – alles für Security

Bild 1 zeigt das Blockdiagramm des SAM L11, alle gelb markierten Blöcke, die für erweiterte On-Chip-Sicherheit wichtig sind, fehlen auf dem L10. Neben der mit 32 MHz getakteten CPU finden sich je nach Derivat 16, 32 oder 64 KB Flash-Speicher, der über einen einstufigen Cache mit der AHB-Schaltmatrix verbunden ist, und 4, 8 oder 16 KB SRAM auf dem Chip. Dazu kommen im Fall des L11 noch 8 KB Boot-ROM für einen sicheren Boot-Loader, der bei Firmware-Upgrades wichtig ist, 2 KB Daten-Flash für die nichtflüchtige Speicherung von Daten sowie 256 Byte sogenanntes TrustRAM als sicherer Speicher für Kunden-Schlüssel.

Nicht weiter von Microchip detaillierte Anti-Tamper-Maßnahmen auf Chip-Ebene und ein Hardware-Beschleuniger für Verschlüsselungen ergänzen das Sicherheitspaket. Um zu verhindern, dass ein Angreifer illegal Informationen abruft oder verändert, sind die Chips so konzipiert, dass die Informationen nicht über externe Mittel zugänglich sind und nur von der embedded-Software abgerufen werden können, die die entsprechenden Sicherheitsmaßnahmen enthält.
Wenn man sich die Liste der möglichen Angriffe anschaut – physikalische Angriffe verschiedener Formen (Mikrosondierungen, Bohrer, Feilen, Lösungsmittel, etc.),     Einfrieren des Gerätes, Anlegen von nicht spezifizierten Spannungen oder Überspannungen, Anlegen ungewöhnlicher Taktsignale, Induktion von Softwarefehlern durch Strahlung (z.B. Mikrowellen oder ionisierende Strahlung), Messung des genauen Zeit- und Energiebedarfs bestimmter Vorgänge – ist es natürlich generell schwierig, eine 100%-Sicherheit zu erzielen.
Manipulationssichere Chips können so ausgelegt sein, dass sie ihre sensiblen Daten (insbesondere kryptografische Schlüssel) auf Null setzen, wenn sie das Eindringen ihrer Sicherheitskapselung oder nicht spezifikationsgerechte Umgebungsparameter erkennen. Ein Chip kann sogar als "cold zeroisation" eingestuft werden, d.h. die Fähigkeit, sich selbst zu nullstellen, auch wenn seine Spannungsversorgung gestört ist. Ob dies beim SAM L11 der Fall ist, wissen wir nicht, nehmen es aber an.

Wir wissen ebenfalls nicht gesichert, welche Hardware-Verschlüsselung auf dem SAML11 implementiert wurde, nehmen jedoch an, dass es sich um die auch u.a. im PIC implementierte Engine handelt, die neben AES-Verschüsselung 128/192/256 (auch im GCM-Modus), Hash-basierte Verschlüsselung (SHA-1, SHA-256, MD-5, HMAC) und einen Zufallszahlengenerator bereitstellt. Auf dem L10 ist die Verschlüsselungs-Engine nicht implementiert.

Ansonsten wurde auch Microchips patentierte PicoPower-Technik mit SleepWalking implementiert. Konkret gemeint sind Verfahren wie Back-Biasing vom SRAM zur Reduzierung von Leckströmen im Schlafmodus oder Sleep-Modi, die nicht nur das Taktsignal abschalten (Clock-Gating), um die Schaltverluste zu stoppen, sondern auch den Strom aus den Subdomänen entfernen, um Leckstöme vollständig zu eliminieren.
Sleep-Walking ist eine Technologie, die es Peripheriegeräten ermöglicht, bei Bedarf ein Taktsignal anzufordern, um aus dem Schlafmodus aufzuwachen und Aufgaben auszuführen, ohne CPU, Flash-Speicher und andere Peripherien einschalten zu müssen. Dazu kommt Microchips proprietäres Event-System, das es ermöglicht, dass Peripheriegeräte zusammen arbeiten, um komplexe Aufgaben mit minimaler Gatter-Zahl und möglichst wenig Energie zu lösen. Die kapazitive Touch-Sensing-Peripherie kann zudem in allen Betriebsmodi betrieben werden und unterstützt das Aufwecken bei Berührung.

Der 12-bit-A/D-Wandler hat eine Abtastrate von 1 MSPS, der 10-bit-D/A-Wandler kommt auf 350 KSPS.