rfc: network architecture - the things network · the things network back-end components provide...

26

Upload: others

Post on 26-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message
Page 2: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RFC: Network Architecture

Johan StokkingTech Lead, The Things Network

October 2015

Page 3: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Timeline

• July 2015: Validate basic connectivity and routing by building a prototype

• August 2015: Demonstrated prototype during The Things Network Conference

• September 2015: Gather input from experienced community members

• October 2015: Present RFC and validate design with experts

• November 2015 onwards: Implement and test components

Page 4: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Design Principles

• Fully compliant with the LoRaWAN 1.x specification

• Decentralized architecture: no single point of control

• Support for geographical segmentation to keep the data close

• Efficient routing: reduce bandwidth, computations and packet drop rate

• Trust-based model for both the gateway owners and application developers

• End-to-end encryption: application keys remain secret to the application

Node

Any LoRaWAN 1.x compliant device

Page 5: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

LoRaWAN and The Things Network

The Things Network is fully compliant with the LoRaWAN 1.x specification, including secure communication, over-the-air-activation, adaptive data rates and bi-directional data transmission. Go to http://www.lora-alliance.org for more information about LoRaWAN.

Because of the limited device address space in LoRaWAN, The Things Network uses segmentation of gateways. Segments with the size of states or countries support overlap and handing over moving nodes to neighboring segments.

LoRaWAN provides builtin AES encryption using 128 bit keys on both the network and the application level. Application keys remain secret to the application to enable end-to-end encryption. The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message integrity and frame counters.

Page 6: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Core Components

RRouter

Routes raw packets from gateways to brokers

NSNetwork Server

Node data rate and frequency management

HHandler

Decryption, deduping, works on behalf of apps

AApplication

Application or IoT cloud platform

Gateway

Send data to and receive data from nodes

BBroker

Decoupling from router to handler

Page 7: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Application Registration

Page 8: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

HB ARegister with AppEUI +

personalized nodes:DevAddr + NwkSKey

AppKeyNodes:Segment,DevAddr,NwkSKey andApplication

Application Registration

The Handler acts on behalf of the Application and informs the trusted Broker that it accepts activation for its globally unique AppEUI and it optionally provides a list of personalized devices.

The Broker persists the segments of the nodes, their device addresses and network session keys. Geographical segmentation enables scaling and reusing devices addresses. The network security keys are used to check if the message belongs indeed to an application by checking the message integrity (MIC).

Page 9: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Gateway Setup

Page 10: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

R

R

S1, S2

S2, S1, S3S2, S1, S3

S3, S2

B

Gateway Setup

B

The Things Network uses geographical segments in which gateways are grouped. Gateways have a primary segment ID and optionally a secondary or tertiary ID of the segments that they are close by to. The segments are used to extend the limited address space for devices when using OTAA.

Initially, Routers are preconfigured to connect to Brokers. Later, a discovery mechanism will be introduced, for example a peer-to-peer-like tracking or a blockchain.

The segments S1, S2 and S3 shown here are illustrative only. In reality, the segments will have the size of a state or a country, depending on the number of devices in the area.

Page 11: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Packet Routing

Page 12: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RH A

S1, S2

S2, S1, S3S2, S1, S3

S3, S2

AppKey

B

Packet Routing

B

041FBA43(in S1 or S2?)

041FBA43(in S1, S2 or S3?)

Payload

041FBA43

S1, S2

041FBA43

Payload

041FBA43

S2, S1, S3

Yes!

No!

Packets sent from nodes are forwarded to the Routers that are configured on the gateway. In this example, packets from node with address 041FBA43 are received by two gateways. Both forward the packet to the Router.

The Router checks its local cache to see if it already knows a Broker than can handle the packet from this node in the provided segment(s). If it doesn’t, it asks the Brokers whether they can and updates its local cache.

Page 13: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RH A

S1, S2

S2, S1, S3S2, S1, S3

S3, S2

AppKey

B

Packet Routing

Payload

041FBA43

S1, S2

041FBA43

Payload

041FBA43

S2, S1, S3

If one or more Brokers are found that can handle the packet, the packets are forwarded to the Broker.

Page 14: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RH A

S1, S2

S2, S1, S3S2, S1, S3

S3, S2

AppKey

B

Packet Routing

041FBA43

Payload

041FBA43

S1, S2

Payload

041FBA43

S2, S1, S3

The Broker sends the (duplicate) packets to the Handler. If the Handler is not available, it may store the packets temporarily.

Page 15: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RH A

S1, S2

S2, S1, S3S2, S1, S3

S3, S2

AppKey

B

Packet Routing

041FBA43

Metadata + decrypted payloadPayload

041FBA43

S1, S2

Payload

041FBA43

S2, S1, S3

The Handler decrypts and deduplicates the packets. Also, based on three or more duplicates, geolocalization can be performed using triangulation.

Page 16: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Over The Air Activation

Page 17: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Over The Air Activation

LoRaWAN supports two types of registering nodes for an application: personalization and over the air activation (OTAA)

When using personalization, the application developer hardcodes the device address and network security key in the device.

When using OTAA, the device joins the network by providing a unique application identifier (AppEUI) and device identifier (DevEUI). The network negotiates with the application and generates a temporary device address and session security keys.

Page 18: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RS1, S2

S2, S1, S3S2, S1, S3

S3, S2

Over The Air Activation

(1) Join request from S1with AppEUI and DevEUI

(1) Join request from S2with AppEUI and DevEUI

NS

H AAppKey

B

B

(2) Do you work for AppEUI?

(2) Do you work for AppEUI?

(3) Yes!

(3) No!

Register AppEUI

Data rate, frequencies andMAC commands

As introduced previously, the Handler registers itself on behalf of the application with a globally unique AppEUI.

Similar to the packet routing, the Router caches locally which Broker works for an AppEUI. If it doesn’t know one, or the cacheh as expired, it will ask the Brokers.

Page 19: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

RS1, S2

S2, S1, S3S2, S1, S3

S3, S2

Over The Air Activation

NS

H AAppKey

B

Allocate DevAddre.g. 64AB5DF1

Join accept

Join accept

The Broker requests a new device address from the Network Server. This address is allocated randomly. Collissions are detected by performing the message integrity check (MIC).

The Broker asks the Handler, which acts on behalf of the application, whether it accepts the device based on the unique DevEUI. If the Handler accepts the join, it signs the join accept message with the secret AppKey. The Handler replies with the signed join accept message as well as the generated network session key (NwkSKey).

Page 20: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Network Management

Page 21: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

R H AS1, S2

S2, S1, S3S2, S1, S3

S3, S2

AppKey

B

Network Management

Payload

041FBA43

S1, S2

041FBA43

NS

Application payload

MAC commands

The Broker sends the packet either to the Network Server if it contains MAC commands, or to the Handler if it contains application payload.

The Network Server manages the node’s data rate and frequencies. The data rate, frequencies and strongest gateway is used when sending packets from the application to the nodes.

Page 22: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Application and Cloud Platform Integrations

H AB

Integrate handler functionality in applicationH AB

Connect Application with Node REDH NRB A

Connect Application with AwS IoT, IBM Bluemix, FIWARE, etcH PB A

Connect Application with the open source The Things Handler

The Broker and the Handler are offered hosted services by the Foundation, but both services can be installed on-premise as well

MQTT

MQTT

HTTP

HTTP

HTTP

HTTP

Page 23: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Next Steps

• Present RFC and gather comments from experts

• Weekly tech update on Forum and mailinglist

• Expand the development teams

Page 24: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

Teams

1. Architecture team draws on whiteboards• Overview of different components• Design for openness and decentralization• LoRaWAN compliance

2. Network access team develops in C/C++• Nodes• Gateway firmwares

3. Core team develops in Golang• Router, Broker, Network Server and Handler

4. Integration team makes things work together• Node RED setup and examples• AwS IoT, IBM Bluemix, FIWARE, IFTTT, Parse.com, etc• Bundling and containerizing• Code examples and libraries

Page 25: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message

How to Join a Team

Do you want to participate in the Architecture, Network Access, Core and/or Integration team?

Great! You will join the active The Things Network community.

• Register on our forum: http://forum.thethingsnetwork.org

• Sign up for the newsletter: http://thethingsnetwork.org (go to Join Team)

• View the issues on GitHub: http://github.com/TheThingsNetwork

• Send an e-mail: [email protected]

Page 26: RFC: Network Architecture - The Things Network · The Things Network back-end components provide mitigation of various man-in-the-middle attacks, for example by checking the message