SAWN suppose que deux noeuds consécutifs ne peuvent pas être compromis simultanément.
Il se base sur la vérification à deux sauts : un noeud vérifie si l'agrégation des données de ses petits fils, réalisée par son fils, est correcte.
La vérification de l'agrégation se fait d'une manière différée dans le temps en utilisant le protocole µTESLA pour l'authentification des clés utilisées dans l'authentification des données et de leurs agrégations.
Dans ce qui suit nous supposons que les noeuds ont le moyen de vérifier l'authenticité des clés partagées entre les noeuds et la SB, lorsque cette dernière révèle les clés pour la vérification.
Chaque nœud feuille transmet sa lecture à son père. Les messages incluent la lecture des données du nœud, son id, ainsi qu'un MAC calculé grâce à la clé KAi. Cette dernière est partagée entre le nœud A et la station de base, mais n'est pas encore connue par les autres capteurs. Le nœud père stocke le message ainsi que son MAC jusqu'à la révélation de clé KAi par la station de base. A cet instant, il vérifiera le MAC et envoi une alarme en cas de différence. L'agrégation des lectures est exécutée dans chaque étape intermédiaire. Les nœuds attendent pendant un temps indiqué pour recevoir des messages de leurs fils et retransmettent ensuite les messages et les MACs qu'ils reçoivent directement de leurs fils immédiats. Les nœuds agrègent les données qu'ils reçoivent de leurs petits-fils (via leurs fils) et transmettent le MAC de la valeur d'agrégation. Après l'arrivée de tous les messages à la station de base, cette dernière révèle les clés temporaires des nœuds. Une fois que la clé (KAi) est révélée, les nœuds passent à la clé temporaire suivante (KAi+1).
Considérons l'arbre d'agrégation illustré par la figure suivante. L'exemple illustre le i-ème tour où l'en utilise les clés Kxi pour authentifier les messages transmis:
Transmission de données
Les nœuds A, B, C et D envoient des données à la station de base via l'arbre d'agrégation construit avec un protocole de routage.
Les nœuds feuilles envoient des données à leur père. Les messages incluent des MACs calculés avec la clé d'authentification courante:
A==>E : RA | IDA | MAC(KAi,RA)
Chaque clé est utilisée pour authentifier un seul message ce qui empêchera l'attaque de rejeu.
Les nœuds intermédiaires reçoivent les messages de leurs fils. Le nœud père ne peut pas encore vérifier le MAC car la clé du fils ne sera révélée que pendant la phase de vérification. Pour le moment, le père stocke le message et le MAC. Le nœud intermédiaire attend les paquets des fils, et envoie ensuite un message à son père contenant les lectures des fils, leurs MACs, ainsi que le MAC calculé sur la valeur d'agrégation:
E==>G : RA | IDA | MAC(KAi,RA) | RB | IDB | MAC(KBi,RB) | MAC(KEi,Aggr(RA,RB))
Il n'y a aucun besoin de transmettre la valeur d'agrégation calculée, puisque G peut calculer Aggr(RA,RB) depuis les valeurs RA et RB. Ce n'est pas aussi nécessaire de transmettre l'IDE à G, parce que G connaît la topologie du réseau donc peut déterminer le nœud qui envoie le message.
Le nœud G reçoit les messages des noeuds E et F. Pour chacun d'eux, G calcule les valeurs de l'agrégation des lectures de ses petits-fils c'est-à-dire (A, B, C et D). Il transmet alors les valeurs agrégées de ses petits-fils, l'ID de ses fils et leurs valeurs de MAC. G calcule aussi et transmet le MAC de la valeur d'agrégation suivante :
Aggr(RA,RB,RC,RD)=Aggr(Aggr(RA,RB),Aggr(RC,RD)).
Puisque la fonction de l'agrégation est connue à tous les nœuds, le MAC calculé par E authentifiera la valeur calculée par G. Les lectures des capteurs et les valeurs de MAC reçues à partir de E et F sont stockées pour vérification postérieure.
G==>H : IDE | Aggr(RA,RB) | MAC(KEi, Aggr(RA,RB)) | IDF | Aggr(RC,RD) | MAC(KFi,Aggr(RC,RD)) | MAC(KGi,Aggr(RA,RB,RC,RD))
De la même façon, le nœud H reçoit des messages de G et d'une autre branche, et transmet à son tour le message agrégé à la station de base. Noter que la longueur du message n'augmente pas si le réseau était plus profond.
La station de base reçoit le message de H. Elle peut calculer la valeur de l'agrégation finale, Aggr(RA, RB, RC, RD, ...) en utilisant Aggr(RA,RB,RC,RD) et les autres valeurs de ses nœuds fils.
Validation des données
Le but du protocole SAWN est d'authentifier toutes les lectures qui ont participé à la valeur d'agrégation, sans pour autant recevoir toutes ces lectures. Pour valider les données (lecture des noeuds et valeurs d'agrégation), la station de base révèle la clé courante Kxi qu'elle partage avec chaque noeud x du réseau, en émettant un seul message contenant toutes ces clés. Ce message de révélation des clés est authentifié par un MAC en utilisant une clé authentifiée grâce à μTESLA.
Si un nœud détecte un message erroné dans l'étape de validation de données, il envoie un message d'alarme. Une alarme est émise par un parent quand il détecte que le MAC d'agrégation d'un fils est contradictoire avec les données des petits-fils, ou bien quand les MAC des données eux-mêmes sont erronés.