DISPOSITIVI E NODI FBKEY

I dispositivi che appartengono a una rete mesh sono chiamati nodi e quelli che non sono tali vengono chiamati “unprovisioned devices”. Il processo che trasforma un dispositivo fisicamente compatibile con la rete ma non abbinato, ossia “unprovisioned”, in un nodo della mesh, prende il nome di “provisioning”.

Il provisioning è una procedura sicura che si traduce nel fornire a un dispositivo unprovisioned una serie di chiavi di crittografia, affinché venga riconosciuto da dispositivi come un tablet o uno smartphone. Una di queste chiavi è chiamata chiave di rete o NetKey. Tutti i nodi in una rete a maglia possiedono almeno un NetKey ed è il possesso di questa chiave che rende un dispositivo membro della rete corrispondente e, in quanto tale un nodo.

Ci sono altri requisiti che devono essere soddisfatti prima che un nodo possa diventare utilizzabile in modo sicuro, ma l’acquisizione della NetKey attraverso il processo di provisioning è il primo e fondamentale passaggio.

PROVISIONING

Il provisioning è il processo attraverso cui un dispositivo si unisce alla rete mesh e ne diventa nodo. Il processo consta di cinque fasi:

Fase 1 – Beaconing

Un dispositivo unprovisioned indica la propria disponibilità a diventare providioned attraverso l’utilizzo del “Mesh Beacon” type nei pacchetti di advertising.

Fase 2 – Invito

In questo passaggio, il Provisioner invia un invito al dispositivo da sottoporre a provisionrng, sotto forma di “Provisioning Invite PDU”.

Il dispositivo Beaconing risponde con informazioni si di sé in una Provisioning Capabilities PDU.

Fase 3 – Scambio di chiavi pubbliche

Il provisioner e il dispositivo da sottoporre a provisioning si scambiano le chiavi pubbliche, che possono essere statiche o dinamiche, sia direttamente che usando un metodo Out of Band (OOB).

Fase 4 – Autenticazione

Durante la fase di autenticazione del dispositivo in corso di provisioning, quest’ultimo fornisce in uscita un numero casuale (a una o più cifre) all’utente in varie forme, utilizzando un’azione adeguata alle sue capacità. L’utente inserisce automaticamente le cifre fornite dal nuovo dispositivo nel Provisioner e si avvia lo scambio di criptografia tra i dispositivi, che coinvolge il numero casuale, per completare l’autenticazione di ciascuno dei due dispositivi verso l’altro.

Fase 5 – Distribuzione dei dati di provisioning

Dopo che l’autenticazione è stata completata correttamente, viene derivata una chiave di sessione da ciascuno dei due dispositivi, partendo dalle loro chiavi private e pubbliche scambiate. La chiave di sessione viene quindi utilizzata per proteggere la successiva distribuzione dei dati richiesti a completare di provisioning, inclusa la chiave di protezione conosciuta come chiave di rete (NetKey).

Dopo aver completato il provisioning il dispositivo provisioned possiede la NetKey della rete, un parametro di sicurezza della rete mesh conosciuto come IV Indice e un Unicast Address, allocato dal Provisioner. Ora il dispositivo è riconosciuto come un nodo della retr Mesh.

ELEMENTI

Ogni nodo a più parti costituenti ognuna delle quali Può Essere controllati indipendentemente nella terminologia Bluetooth mesh tali parti sono chiamate elementi.

SICUREZZA

Il bluetooth LE ci consente di sfruttare differenti meccanismi di sicurezza, dai vari approcci di accoppiamento (pairing) possibili, ai requisiti sicurezza individuale associati alle caratteristiche individuali. Ma in effetti la sicurezza è totalmente opzionale, tant’è che è permesso avere un dispositivo completamente aperto, senza protezioni o impostazioni di vincoli di sicurezza. E’ il progettista del dispositivo che deve occuparsi di analizzare le minacce e determinare dei requisiti sicurezza e soluzioni per il loro prodotto. Al contrario, nella rete mesh Bluetooth la sicurezza obbligatoria. La rete, le singole applicazioni e dispositivi sono tutti dotati di meccanismi di sicurezza che non possono essere né disattivati né ridotti in alcun modo.

FONDAMENTI DI SICUREZZA DELLA RETE FBKEY2.3
  • Tutti i messaggi in mesh sono crittografati e autenticati.
  • Sicurezza della rete, protezione dell’applicazione e sicurezza dispositivi sono gestiti in modo indipendente.
  • Le chiavi di sicurezza possono essere modificate durante la vita della mesh tramite una procedura di key Refresh.
  • L’oscuramento del messaggio rende difficile la tracciabilità dei messaggi inviati all’interno della rete, fornendo meccanismo di privacy che rende difficile monitorare i nodi.
  • La sicurezza della mesh protegge la rete dagli attacchi di Replay.
  • Il processo con cui i dispositivi vengono aggiunti alla rete mesh per diventare nodi è, in sé, un processo sicuro.
  • I nodi possono essere rimossi dalla rete in modo sicuro, con una tecnica che impedisce gli attacchi di trashcan.
DISTINZIONI DELLE PREOCCUPAZIONI E CHIAVI DI SICUREZZA DELLA MESH

Al centro della sicurezza della rete mesh Bluetooth ci sono tre tipi di chiavi di sicurezza.

Tra loro, queste chiavi forniscono sicurezza a diversi aspetti della maglia, ottenendo una capacità critica nella sicurezza delle maglie: la “distinzione delle preoccupazioni”.

Per capirlo ed  apprezzarnee il significato, considerate una dispositivo FBkey2.0 che possa agire come un nodo Relay; in questa modalità, potrebbe ricevere messaggi riguardanti sistema di sicurezza di containers o gate di accesso magazzini o altri dispositivi di sicurezza building, in cui si trova, governato dalla rete mesh Bluetooth. Ora il dispositivo FBkey2.0 non ha alcuna attività in grado di accedere ad elaborare i dettagli di tali messaggi, ma funzionando da Relay deve spedirli ad altri nodi. Per affrontare questo potenziale conflitto di interessi, la rete mesh Bluetooth utilizza chiavi sicurezza per la protezione di messaggi al Network Level differenti da quelle utilizzate per proteggere i dati relativi ad applicazioni specifiche quali controllo della serratura FBKey, sicurezza degli ambienti e così via.

Tutti i nodi di una rete mesh possiedono la chiave di rete (NetKey):è il possesso di questa chiave condivisa, che rende un nodo un membro della rete mesh.

Una chiave di crittografia della rete o una chiave di protezione vengono derivate direttamente dalla NetKey. Essere in possesso della NetKey consente a un nodo di decrittografare autenticare fino al Network Layer, così che funzioni di rete come la trasmissione possono aver luogo; la stessa impedisce agli estranei di decifrare i dati dell’applicazione.

La rete può essere suddivisa in sottoreti ciascuna sottorete ha una propria NetKey che posseduta solo da quei nodi che ne sono membri. Questo potrebbe essere utilizzato, per esempio, per isolare specificare aree fisiche, come ogni reparto di logistica. I dati applicazione per un’applicazione specifica possono essere decrittografati solo dai nodi che possiedono la giusta Application Key (AppKey).

Tra i nodi di una rete mesh ci possono essere molte AppKey distinte ma in genere ciascuna AppKey sarà posseduta solo da un piccolo sottoinsieme di nodi, ovvero quelle di un tipo che possono partecipare a una data applicazione.

Le AppKey che vengono utilizzate dal livello superiore di trasporto allo scopo di decifrare autenticare i messaggi prima di passarli fino al livello di accesso.

Le AppKey che sono associate a una sola NetKey; tale associazione è chiamata “Key binding” e significa che applicazioni specifiche, come definite dal possesso di una data AppKey, possono operare solo su una specifica rete, mentre una rete può ospitare più applicazioni dipendentemente sicure.

Il tipo di chiave finale è la chiave di dispositivo (DevKey): si tratta di una speciale tipo di chiave applicativa.

Ogni nodo ha un’unica DevKey nota esclusivamente al dispositivo Provisioner.

La DevKey viene utilizzata nel processo di provisioning per proteggere comunicazione tra Provisioner e il nodo.

RIMOZIONE NODO, AGGIORNAMENTO CHIAVE E ATTACCHI TRASHCAN

Come già descritto, i nodi contengono varie chiavi di sicurezza della mesh.

Se un nodo diventa difettoso e dev’essere rimosso o se il proprietario decide di vendere il nodo ad un altro soggetto, è importante che il dispositivo e le chiavi in esso contenute non possono essere utilizzate per lanciare un attacco alla rete da cui è stata prelevato il nodo. Allo scopo nel Bluetooth mesh è definita una procedura per la rimozione dei nodi: viene utilizzato l’applicazione Provisioner per collocare il nodo in una Black list e poi è avviato un processo chiamato “Key Refresh Procedure” (procedura di aggiornamento chiave), il quale consente di assegnare tutti i nodi della rete ad eccezione di quelli che sono membri della Black List, nuove chiavi di rete, chiavi di applicazione e tutti i relativi dati da esse derivatie.

In altre parole, l’intero set di chiavi di sicurezza che formano la base per la sicurezza delle reti e delle applicazioni viene sostituito. In quanto tale, il nodo che è stato rimosso dalla rete e che contiene una vecchia NetKey e un vecchio set di AppKey, non è più membro della rete e non determina alcun rischio.

PRIVACY

Una “chiave di privacy” derivata dalla NetKey, viene impiegata per oscurare valori di intestazione dei PDU di rete come l’indirizzo di origine.

L’oscuramento assicura che intercettazioni casuali, passive, non possano essere utilizzate per monitorare i dispositivi e le persone che li usano.

Inoltre rende difficile gli attacchi basati sull’analisi del traffico dati.

Il grado di sicurezza utilizzato dall’FBKey è adeguato.

REPLAY ATTACKS

Il replay Attack è una tecnica in cui un interlocutore intercetta e cattura uno più messaggi o semplicemente li trasmetterà più tardi, con l’obiettivo di ingannare il destinatario facendogli eseguire qualcosa che il dispositivo hacker non è autorizzato fare.

La rete mesh Bluetooth FBKey2.3 ha una forma di protezione contro gli attacchi Replay.

La base per questa protezione è l’utilizzo di due campi PDU di rete chiamati “Numero di sequenza” (SEQ) e “IV Indice”, rispettivamente.

Gli elementi aumentano il valore SEQ ogni volta che pubblicano un messaggio.

Un nodo, che ricevo un messaggio da un elemento che contiene un valore SEQ minore o uguale a quello che era nell’ultimo messaggio valido, lo scarterà, poiché è probabile che si riferisca un attacco di Replay.

L’indice IV è un campo separato, considerato accanto a SEQ. I valori dal IV indice all’interno dei messaggi provenienti da un dato elemento devono sempre essere uguale o maggiore a quelli contenuti nell’ultimo messaggio valido di quell’elemento.

PUBBLICAZIONE E CONSEGNA DEI MESSAGGI

Una rete che utilizza il WIFI si basa su un nodo centrale di rete chiamato “Router” e tutto il traffico di rete passa attraverso di esso;se il router non è disponibile, tutta la rete diventa indisponibile.

Al contrario, la mesh Bluetooth utilizza una tecnica nota come “managed flooding” per consegnare i messaggi.

I messaggi, quando pubblicati da un nodo, vendono trasmessi in broadcast piuttosto che essere instradati direttamente su uno o più nodi specifici, come farebbe il router; tutti i nodi ricevono tutti i messaggi dai nodi che si trovano nel campo di copertura radio e, se configurati per farlo, i nodi ritrasmettono i messaggi ricevuti che non sono diretti ad essi.

La tecnica FBKey2.3 prevede la ritrasmissione in broadcast dei messaggi ricevuti, in modo che altri nodi, più lontani dal nodo iniziale di quanto permetta la copertura radio, possano riceverli.

CONSEGNA MULTIPATH

Una conseguenza importante della tecnologia managed flooding del bluetooth è che i messaggi artrivano al loro destinazione tramite percorsi multipli attraverso la rete (multipath); ciò rende una rete altamente affidabile e adottata pertanto da Feber Group.

MANAGED FLOODING

La rete mesh bluetooth FBKey2.3 sfrutta le seguenti misure:

  • Heartbeat; i messaggi del genere vengono trasmessi periodicamente dai nodi, per indicare agli altri nodi della rete che il nodo che li invia è ancora attivo; inoltre i messaggi heartbeat contengono dati che consentono ai nodi che li ricevono, di determinare quanto lointano sia il mittente, intermine di numero di nodi necessari per raggiungerlo (tale informazione si ottiene dal campo TTL).
  • TTL (Time to live); è un campo che tutti i PDU sulla rete Bluetooth includono; definisce il numero massimo di nodi tra i quali un messaggio viene ripetuto. Importante il TTL consente ai nodi di esercitare il controllo sulla trasmissione e risparmiare energia.
TRAVERSARE LO STACK

Un nodo, ricevendo un messaggio, lo passa dallo stack di base bluetooth LE, attraverso il livello bearer, al Network Layer; quest’ultimo esegue vari controlli per decider se passare o meno il messaggio verso i livelli superiori dello stack o scartarlo.

In aggiunta, il PDU hanno un campo Network ID, che fornisce un modo rapido per determinare con quale NetKey il messaggio è stato criptato; se la NetKey non viene riconosciuta dal network layer del nodo ricevente, questo indica che non possiede la corrispondente NetKey e quindi non è un membro de quella subnet. In questo caso il PDU viene scartato.

L’FBKey2.3 prevede un campo di controllo Network Message Integrity (MIC): se il controllo MIC fallisce, utilizzando la NetKey corrispondente al PDU Network ID, il messaggio viene ancora una volta scartato. Lo stesso principio viene applicato al livello trasporto superiore. Se il Trasport Message Integrity Check (TransMIC) fallisce, il messaggio viene scartato.