Concetti del modello di interazione

Il modello dei dati (DM) di un nodo non è rilevante se non possiamo eseguire operazioni su di essi. Il modello di interazione (IM), definisce la relazione DM di un nodo. con il messaggio diretto di altri nodi: un linguaggio comune per la comunicazione tra i messaggi diretti.

I nodi interagiscono tra loro:

  • Lettura e iscrizione ad attributi ed eventi
  • Scrittura negli attributi
  • Richiamo di comandi

Ogni volta che un Nodo stabilisce una sequenza di comunicazione criptata con un altro Nodo, i due Nodi costituiscono una relazione di interazione. Le interazioni possono essere costituite da una o più transazioni, che a loro volta sono costituite da una o più azioni, che possono essere considerate come messaggi a livello di IM tra i nodi.

Modello Gerarchia di interazione
Figura 1: gerarchia del modello di interazione

Sono supportate diverse azioni sulle transazioni, ad esempio un'azione di richiesta di lettura che richiede un attributo o un evento da un altro nodo, o la sua risposta, Azione dati report, che riporta le informazioni dal server alla di alto profilo.

Iniziatori e target

Il Nodo che avvia una transazione è l'iniziatore, mentre il Nodo che è il Target. Generalmente l'iniziatore è un cluster client e La destinazione è un cluster di server. Tuttavia, ci sono delle eccezioni a questo modello, ad esempio come nelle Interazioni con gli abbonamenti analizzate più avanti in questa sezione.

Gruppi

I nodi in Matter potrebbero appartenere a un gruppo. Un gruppo di Dispositivi è un meccanismo per indirizzare e inviare messaggi a diversi Dispositivi in: contemporaneamente la stessa azione. Tutti i nodi di un gruppo condividono lo stesso gruppo ID, un numero intero a 16 bit.

Per effettuare comunicazioni a livello di gruppo (Groupcast), Matter utilizza IPv6 Multicast messaggi e tutti i membri del gruppo hanno lo stesso Multicast .

Percorsi

Ogni volta che vogliamo interagire con un attributo, un evento o un comando, dobbiamo specificare il percorso per questa interazione: la posizione di un attributo, un evento o un comando nella gerarchia del modello di dati di un nodo. L'avvertenza è che i percorsi possono anche utilizzare Gruppi o Operatori di caratteri jolly per indirizzare diversi nodi oppure I cluster contemporaneamente, aggregando queste interazioni e riducendo così di azioni.

Questo meccanismo è importante per migliorare la reattività delle comunicazioni. Per Ad esempio, se un utente vuole spegnere tutte le luci, stabilire una singola interazione con più luci all'interno di un gruppo anziché una sequenza di interazioni individuali. Se l'iniziatore crea una singola Interazioni con ogni luce può generare una latenza percepita dall'uomo nelle Reattività del dispositivo. Questo effetto fa sì che più dispositivi reagiscano a un con ritardi visibili tra loro. Questo fenomeno è spesso definito "effetto popcorn".

Un percorso in Matter può essere assemblato utilizzando una delle opzioni riportate di seguito:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

All'interno di questi componenti di base del percorso, endpoint e cluster possono includere anche Operatori con caratteri jolly per selezionare più di un'istanza di nodo.

A tempo e senza tempo

Esistono due modi per eseguire una transazione di scrittura o di chiamata: A tempo e Non a tempo. Le transazioni a tempo stabiliscono un timeout massimo per l'invio dell'azione di scrittura/richiesta. Lo scopo di questo timeout è impedire un attacco di intercettazione sulla transazione. È particolarmente valido per i dispositivi che come cancello d'accesso ad asset come apriporta e serrature di garage.

Per comprendere le transazioni a tempo, è utile capire come possono verificarsi gli attacchi di intercettazione e perché le transazioni a tempo sono importanti.

L'attacco di intercettazione

Un attacco di intercettazione ha il seguente pattern:

  1. Alice invia a Roberto un messaggio iniziale, ad esempio un'azione di richiesta di scrittura.
  2. Eva, un malintenzionato, intercetta il messaggio e impedisce a Bob di riceverlo, ad esempio tramite un qualche tipo di jamming radio.
  3. Alice, non riceve una risposta da Roberto, invia un secondo messaggio.
  4. Eva lo intercetta di nuovo e impedisce a Bob di riceverlo.
  5. Eva invia il primo messaggio intercettato a Bob, come se provenisse da Alice.
  6. Bob invia la risposta ad Alice (ed Eva).
  7. Eva tiene in mano il secondo messaggio intercettato per guardarlo in un secondo momento. Dato che Bob non è mai ricevuto da Alice il secondo messaggio originale, verrà accettato li annotino. Questo messaggio rappresenta una violazione della sicurezza quando il messaggio codifica un come "open Lock".

Per prevenire questi tipi di attacchi, le Azioni a tempo impostano un valore massimo per le transazioni timeout all'inizio della transazione. Anche se Eva riesce a eseguire primi sei passaggi del vettore di attacco, non sarà in grado di riprodurre il messaggio al passaggio 7 a causa di un timeout scaduto per la transazione.

Le transazioni a tempo aumentano la complessità e il numero di azioni. Pertanto, non sono consigliati per ogni transazione, ma solo per le operazioni critiche sui dispositivi che hanno il controllo delle risorse di sicurezza e privacy fisiche o virtuali.

Astrazioni SDK

Le sezioni Lettura transazioni, Scrivere transazioni. Richiamare transazioni una panoramica generale delle azioni del modello di interazione eseguite l'SDK.

Lo sviluppatore che ha creato un prodotto che utilizza l'SDK Matter di solito non effettua chiamate per eseguire direttamente le Azioni; le azioni sono sono astratti dalle funzioni SDK che le incapsulano in un'interazione. Tuttavia, è importante comprendere le azioni IM per fornire all'ingegnere una buona conoscenza delle funzionalità di Matter, nonché un controllo fine sull'implementazione dell'SDK.