Zwar übernimmt im Regelfall das Betriebssystem kryptografische Aufgaben – nur was, wenn ein solches fehlt? Dann hilft der Kryptobaustein ATECC608A weiter.
Wirft man einen Blick auf die Produktbeschreibung [1] des Kryptochips ATECC608A, wird schnell klar, dass es sich um einen sehr komplexen Baustein handelt. Daher gehen wir hier nur auf seine Verwendung am I2C-Bus ein.
Wirklich beeindruckend ist die Größe des Chips: Mit einer Kantenlänge von 3 x 2 Millimetern fällt er selbst für RasPi-Verhältnisse winzig aus. Deswegen arbeiten wir in diesem Artikel mit einem bereits aufgebauten Modul, das sich einfach in einem Breadbord verwenden lässt. Es kostet direkt in China bestellt etwa 5 Euro [2].
Der ATECC608A dient dazu, uns bei allen üblichen Verschlüsselungsaufgaben zu unterstützen. Mit ihm lassen sich Schlüssel und Signaturen abspeichern, ver- und entschlüsseln oder einfach auf seine weltweit eindeutige ID zugreifen. Hier stellt sich die Frage, warum man dazu einen zusätzlichen Chip braucht – diese Aufgaben kann eigentlich das Betriebssystem übernehmen. Der ATECC608A eignet sich gerade an den Stellen, wo ein Betriebssystem fehlt. Eins seiner wichtigsten Einsatzszenarien sind alle Arten von IoT-Geräten oder Umweltsensoren, die sicher kommunizieren sollen.
Die Betriebsspannung des ATECC608A liegt zwischen 2,0 und 5,5 Volt. Der Stromverbrauch steigt abhängig von den ausgeführten Operationen bis auf 140 Milliampere an. Im Schlafmodus liegt die Stromaufnahme typischerweise bei 30 Nanoampere.
Am I2C-Bus meldet sich der Chip unter der Adresse 0x60h. Von den vorhandenen acht Beinen des Halbleiters sind nur VCC, GND, SDA und SCL belegt. Es gibt also keine Möglichkeit, die Adresse hardwareseitig zu verändern.
Testaufbau
Der Testaufbau basiert auf dem im letzten Teil dieser Reihe beschriebenen Setup. Sie verbinden den ATECC608A wie in der Tabelle “Verbindungen” gezeigt eins zu eins mit dem RasPi. Den Testaufbau zeigt Abbildung 1.
|
Raspberry |
Kryptomodul |
|---|---|
|
VCC |
VCC |
|
SDA |
SDA |
|
SCL |
SCL |
|
GND |
GND |

Abbildung 1: Testaufbau mit dem ATECC608A-Modul. Hier sehen Sie, wie klein der Chip in der Mitte des Moduls ist.
Um zu überprüfen, ob die Anschlüsse stimmen, verwenden Sie das Tool I2cdetect. Wie Listing 1 zeigt, sollte sich der ATECC608A unter der Adresse 0x60h melden. Arbeitet die Hardware korrekt, installieren Sie die Bibliothek sowie einige Beispielprogramme direkt vom Hersteller. Die entsprechenden Schritte zeigt Listing 2.
Listing 1
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Listing 2
$ sudo update $ sudo upgrade $ sudo apt install build-essential python python-pip cmake libudev-dev libusb-1.0-0-dev libffi-dev libssl-dev git $ git clone https://github.com/MicrochipTech/cryptoauthtools.git $ cd cryptoauthtools/python/examples $ pip install -r requirements.txt $ python info.py -i i2c
Die Ausgabe des Programms info.py samt der eindeutigen Seriennummer des Chips (Zeile 5) finden Sie in Listing 3. Weiter unten sehen Sie den Inhalt des Konfigurationsspeichers (ab Zeile 8) sowie den momentanen Betriebsmodus des ATECC608A. Wenn Sie sich über diesen Artikel hinaus mit dem ATECC608A beschäftigen möchten, finden Sie neben der Produkt-Homepage auch auf den Github-Seiten der Bibliothek [3] und der Beispielprogramme [4] gute Einstiegspunkte.
Listing 3
Device Part:
ATECC608A
Serial number:
01 23 B0 EE DC 5E 78 6A EE
Configuration Zone:
01 23 B0 EE 00 00 60 01 DC 5E 78 6A EE C1 41 00
C0 00 00 00 83 20 87 20 8F 20 C4 8F 8F 8F 8F 8F
9F 8F AF 8F 00 00 00 00 00 00 00 00 00 00 00 00
00 00 AF 8F FF FF FF FF 00 00 00 00 FF FF FF FF
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 55 55 FF FF 00 00 00 00 00 00
33 00 33 00 33 00 1C 00 1C 00 1C 00 1C 00 1C 00
3C 00 3C 00 3C 00 3C 00 3C 00 3C 00 3C 00 1C 00
Check Device Locks
Config Zone is unlocked
Data Zone is unlocked
Done
Fazit
Der ATECC608A eignet sich sicher nicht für jedes Projekt. Er bietet sich eher als eine Lösung für ein spezielles Problem an, das sich dem Bastler zu Hause nicht stellt. Wenn Sie allerdings IoT-Geräte entwickeln, die auch über das Internet sicher mit Cloud-Diensten kommunizieren sollen, kommen Sie um eine vernünftige Kryptolösung nicht herum.






