Hallo Zusammen,
ich möchte den library- Code vom Atmel für ATSHA204 auf Mikrocontroller
implementieren. Aber so richtig verstanden habe ich nicht, wie die
Daten-Flow aussieht, was wird gemacht.... Also nach dem Konzept habe ich
gegoogelt, aber nicht gefunden.
Kann jemand bisschen Licht bringen?
Vielen Dank im Voraus!
Lg Tomy
Was genau willst du denn da wissen?
Die Befehle an sich kannst du recht einfach implementieren, die
formatiert dir auch das eval Tool von Atmel.
Danach brauchst du dann aber ein wenig Ahnung von SHA, HMAC etc und sehr
genaues Lesen des DB. Nicht alle Schlüssel-Slots können alle Aufgaben
erledigen. Und insbesondere kannst du die internen Zustände (i.e. den
RAM) nicht auslesen (auch wenn dasa Config-Tool es so aussehen lässt)
sondern kannst den nur nachrechnen, wenn du die Schlüssel kennst.
Was ist denn die Aufgabenstellung?
Für diesen Baustein gibt es viele Konzepte, eine Schlüssellösung ist es
nicht. Kommt drauf an was du überhaupt machen willst, wir verwenden den
Chip unter anderem für:
- Kontrolle unserer Subcons in Asien
- Zur Authentifizierung originaler von uns produzierten Produkte
- Check beim Firmware update
- Zur Generierung von Session keys um damit jede neue Nachricht die im
Mesh Network versendet werden soll mit einem neuen Key zu verschlüsseln
- Um die Betriebsstunden zu zählen (hat einen Rolling Counter der nur
erhöht werden kann, aber nie gelöscht werden kann). Jedes Einschalten
wird um eins erhöht. Das brauchen wir auch um ggf. uns selbst zu
schützen, z.b. unser verwendeter Spezialschalter soll laut Hersteller
über 10000Schaltvorgänge aushalten, dank des Rolling counters können wir
im Garantiefall nachweisen ob unser Kunde zu oft geschaltet hat, oder
einfach der Schalter schon nach wenigen Schaltvorgängen seinen Geist
aufgab
- Um unseren Code vor einfachen 1:1 Kopien zu schützen
Wie man die oben genannten Fälle implementiert ist es jedem einzelnen
Überlassen
Hallo Zusammen,
ich verwende auch den ATSHA204 von Atmel und habe Probleme bei
Ansteuerung von Chip. Und zwar: ich sende ein Wake up - Kommando um den
Chip aufzuwecken und bekomme auch die richtige Antwort (in hex): 04 11
33 43
Anschließend sende ich ein READ - Kommando und der Chip reagiert gar
nicht mehr. Mit dem READ - Kommando möchte ich die ersten 4 Ziffern der
Seriennummer auslesen. Der Befehl für das READ - Kommand sieht bei mir
wie folgt aus (hex): 07 02 00 00 00 1e 2d
Nachdem ich das READ - Kommando geschickt habe, reagiert der Chip gar
nicht mehr und ich bekommen keine Antwort von ATSHA204.
Warum reagiert der Chip nicht nach einem READ - Kommando, obwohl er die
richtigen Daten nach einem Wake Up - Kommando schickt?
Ich wäre für jede Hilfestellung sehr dankbar.
Hi
Wenn ich ins Datenblatt sehe, fällt mir ein Wert
Wake High Delay to Data Comm. min.2.5 ms SDA should be Stable high
for this entire duration.
auf. Beachtet?
MfG Spess
Hallo spess53,
beim Wake Up - Kommando ist Low Puls 66,4 µs und anschließend kommt ein
High Puls von 3 ms. Danach wird ein Transmit - Flag (0x88) gesendet.
Ich vermute, dass das Wake Up Kommando schon richtig, da ich eine
richtige Antwort auf das Kommando bekommen.
Mir fehlt nicht ein warum ATSHA204 auf das READ - Kommando nicht
reagiert, was unmittelbar nach Wake Up - Kommando kommt.
Mfg
Eduard
Hallo zusammen,
ich habe mittlerweile herausgefunden, warum ich keine Antwort auf das
READ-Kommando erhalten habe.
FALSCHE Vorgehensweise:
1. Schicke Command-Flag
2. Schicke READ-Kommando
3. Schicke Transmit-Flag, direkt nach dem READ-Block
RICHTIGE Vorgehensweise:
1.Schicke Command-Flag
2.Schicke READ-Kommando
3.Warte die Zeit ab, die ein READ-Kommando braucht, bis es fertig
ausgeführt ist. Die Zeiten sind im Datenblatt (unter 8.6.2 Command
Opcodes, Short Descriptions, and Execution Times) angegeben
4.Schicke Transmit-Flag
Die RICHTIGE Vorgehensweise bezieht sich auf alle Kommandos!
Bei weiteren Fragen - einfach Fragen.
Mfg
Eduard
>> Bei weiteren Fragen - einfach Fragen.>
Guten Tag zusammen
Ich möchte den Cryptochip mit meinem Raspberry Pi verwenden. Ich habe es
hingekriegt, den Chip aus dem Sleep-Mode aufzuwecken, doch weiter kam
ich bisher nicht. Ich habe folgende Anleitung im Internet gefunden, nach
welcher ich mich orientieren kann:
https://www.insidegadgets.com/2017/04/21/alarm-system-v3-part-3-using-the-atmel-cryptoauthentication-atsha204a/
Leider verstehe ich trotz allem nicht ganz, wie ich z.B.
Seriennummer,etc. auslesen kann. Man muss ja zuerst konkret zum Chip
schreiben, was man machen will und anschliessen ja aus dem Chip das
gewollte auslesen oder?
Falls jemand einen verständlichen Beispielcode hat, wäre ich sehr
dankbar. Ich möchte mit meinem Chip mittels SMBUS kommunizieren,
weswegen ein SMBUS-Beispiel sehr hilfreich wäre.
Mir gehts vor allem konkret ums prinzip der Ansteuerung, da ich dort
meine Mühe habe.
Danke
Von Atmel (oder Nachfolger) gibt es einen Beispielcode mit
Ascii-Interface, den man auch auf dem Raspi kompilieren lassen kann.
Dann analysiert man, was da passiert.
Man sollte auch eine gewisse Erfahrung mit Crypto-Dingen haben, sonst
versteht man die Begriffe schon gar nicht.
I2C muss man evtl anpassen.
Das Ding ist sehr komplex. Ich habe ein paar Wochen dran gesessen, das
ist nichts für Einsteiger.
Vielleicht erst einmal mit I2C etwas einfaches ansteuern, damit man
weiss wie I2C geht.