ABP for beginners. How-to get DeviceAddress, Network Session Key (NSK) and Application Session Key (ASK)

Gerhard Peter

Initiator of TTN Berlin and Community Happyness Manager

Posted on 29-04-2018

translate this article by Google in all languages, provided

Aus meinen Erfahrungen des ersten TTN Node workshops in Berlin letzthin, hat sich herausgestellt, dass es für Anfänger, die sich noch nicht allzu tief in die TTN LoRa Materie eingearbeitet haben oder schlicht aus Zeitgründen nicht einarbeiten konnten, es bisweilen etwas verwirrend ist, sich durch die TTN Console durchzuhangeln bis sie zu dem gewünschten Ergebnis, also den erforderlichen den 3 Codes gelangt sind. Eine auf den ersten Blick verwirrende Vielzahl von neuen Begrifflichkeiten möchte nämlich, und das in sehr kurzer Abfolge, ins Hirn rauschen.

Wir wollen versuchen, hier etwas Ordnung in die Angelegenheit zu bringen. Manche sagen, daß es zu komplex sei. Ob das stimmt, lassen wir mal im Raum stehen. Man hat sich jedoch sehr viel Mühe gegeben, vorhandenes Wissen bezüglich Datenintegrität, Authentizität und Hackerangriffen einzubringen. Unsere lieben Freunde von überall wird das sicher nicht davon abbringen, sich die Daten erforderlichenfalls decodiert, im Zweifel von 'irgendwo' auf dem Übertragungsweg, zu besorgen. Da bin ich ganz sicher. Einmal abgegriffen sind die Daten ja dort in Utah dann auch wieder allemal sehr sicher... in gewisser Weise.

Es gibt derzeit zwei Methoden, den eigenen LoRa node /auch: mote -aus dem angelsächsichen Sprachbereich kommend- genannt/, im TTN Netz anzumelden:

A - die aufwändigere Art, genannt OTA(A) = Over The Air Activation. Diese Methode benötigt nur 2 (Codes)Keys und ist "sicherer", da hier die Keys=Schlüssel ständig wechseln. - Doch: damit wollen wir uns hier (noch) nicht befassen.

B - die einfachere Art, genannt ABP activation (Activation by Personalisation. Diese kommt künftig sicher vorzugsweise bei Massenprodukten zum Einsatz. Hier benötigen wir allerdings 3 verschiedene Codes(Keys), also einen , die DeviceAdress, mehr - nämlich folgende:

  • eine DeviceAddress. Diese Device Adress (es gibt im Menu noch eine DeviceEUI, das ist aber wiederum etwas anderes)
  • Wichtiger lebenspraktischer Hinweis: Die DeviceAddress des nodes wird bei dieser ABP Methode ausschliesslich von TTN erzeugt. Für unsere Arduino - Experimente ist das Problem frei, da wir die Keys und die DeviceAddress händisch in den Sketch, i.e. das Arduino Programm, übertragen können. Schwieriger wird das, im Umkehrschluss, wenn ein gekauftes Teil, beispielsweise ein Müllsensor, bereits eine fest einprogrammierte Device Address mitbringt. Dann können wir ausdrücklich nicht mit der ABP Methode arbeiten, es sei denn, dass sich der Müllsensor vor Ort umprogrammieren lässt. Beim GPS zTag von Zane ist das beispielsweise auch ein Problem. Dort bittet man dann derzeit eben um vorab e-mail Mitteilung der 3 Codes/Keys, welche dann, vor Auslieferung an den Besteller, in Ungarn eingedüst werden. Eine nicht sehr praktikable, sehr Fehler anfällige Methode, wie ich finde.

O-Ton TTN: In the backend of The Things Network this validation is also used to map a non-unique device address (DevAddr) to a unique DevEUI and AppEUI.

  • den NwkSKey, NwSK, NSK oder Network Session Key - die Schreibweisen sind unterschiedlich, gemeint ist aber stets das Gleiche
    O-Ton TTN: The network session key (NwkSKey) is used for interaction between the Node and the Network. This key is used to check the validity of messages (MIC check).

  • den AppsKey, ASK, Application Session Key - die Schreibweisen sind auch hier unterschiedlich, gemeint ist jedoch auch hier stets das Gleiche.
    O-Ton TTN: The Application session key (AppSKey) is used for encryption and decryption of the payload. The payload is fully encrypted between the Node and the Handler component of The Things Network (which you will be able to run on your own server). This means that nobody except you is able to read the contents of messages you send or receive.

These two session keys (NwkSKey and AppSKey) are unique per device. If you statically activate your device (ABP), these keys stay the same until you change them.

Die beiden Keys, also NwkSKey und AppSKey, dienen letztlich dazu, die zu übertragenden Daten auf der Funkstrecke derart zu verschlüsseln, dergestalt, dass der Lauscher nebenan nur einen wenig schmackhaften Datensalat serviert bekommt.
Für Fortgeschrittene: AES 128-bit Methode. Die Bezeichnungen der drei AES-Varianten AES-128, AES-192 und AES-256 beziehen sich jeweils auf die gewählte Schlüssellänge. Der Algorithmus ist frei verfügbar und darf ohne Lizenzgebühren eingesetzt sowie in Soft- und Hardware implementiert werden.
PS: AES-192 und AES-256 sind in den USA für staatliche Dokumente mit höchster Geheimhaltungsstufe zugelassen.

Ich habe ein Video produziert, das dem Anfänger zumindest einen Eindruck vermittelt, wie ich hoffe, wie man den genannten Weg erfolgreich zurücklegen kann. Ja, es ist bewusst lang gemacht und auch nur für Anfänger gedacht. Es spricht auch nichts dagegen, sich das Video mehrfach reinzuziehen....