Articles

Securitatea rețelelor de senzori fără fir împotriva atacurilor malițioase utilizând metoda reziduurilor Hamming

În comunicațiile digitale, codurile Hamming sunt utilizate pentru a detecta și corecta erorile; ca urmare, toate sistemele de comunicații cunosc aceste coduri. WSN-urile sunt autonome și necesită un consum redus de energie, iar astfel de coduri pot fi utilizate pentru a securiza sistemul WSN fără nicio infrastructură suplimentară. În abordarea prezentată, se utilizează biți de securitate inițiali (definiți de utilizatori), la care se adaugă un set de biți de verificare a securității suplimentare pentru a genera cuvântul de cod de securitate. În funcție de lungimea „n” a cuvântului de cod de securitate și de numărul de biți de securitate inițiali „k”, pot fi utilizate codurile Hamming (n, k) (cum ar fi codurile (6, 3) și (7, 4)) sau multe altele. Cuvântul de cod de securitate „W” se obține prin adăugarea a n – k biți de control de securitate „SC” la biții de securitate inițiali „S” (a se vedea Ecuația 1)

$$ W={W}_1..{W}_2..{W}_3\dots {W}_n={S}_1..{S}_2..{S}_3\dots {S}_k{SC}_1..{SC}_2…{SC}_3\dots {SC}_p $$
(1)

unde p = n – k

„Si” este al i-lea bit din „S”, i = 1, 2, 3…. k

„SCj” este al j-lea bit din „SC”, j = 1, 2, 3… p

„Wm” este al m-lea bit din „W”, m = 1, 2, 3… n

Dacă numărul de biți de securitate inițiali este k, atunci posibilul bloc matricial de biți de securitate inițiali „SB” este reprezentat sub forma

$$$ {\mathrm{S}}_{\mathrm{B}}=\left(\begin{array}{c}{{\mathrm{S}}_{11}\kern1em {\mathrm{S}}}_{12}\cdot \cdots {\mathrm{S}}_{1k}\\\ {}{\mathrm{S}}_{21}\kern1em {\mathrm{S}}_{22}}\cdot \cdots {\mathrm{S}}}_{2k}}\ {}\dots \dots \dots \dots \dots \dots \dots \dots \\}{\mathrm{S}}_{q1}\kern1em {\mathrm{S}}}_{q2}\cdot \cdots {\mathrm{S}}}_{qk}\end{array}\right) $$
(2)

unde Sab reprezintă elementul de pe a cincea linie și a b-a coloană, q = 2k = numărul total de rânduri și k = numărul total de coloane din SB.

În această abordare, codul Hamming (7, 4) este utilizat pentru a genera cuvântul de cod de securitate „W”. Cu toate acestea, se poate selecta codul Hamming în funcție de biții de securitate inițiali doriți și de lungimea cuvântului de cod de securitate. Aici, biții de securitate inițiali sunt 4, iar blocul matricial posibil de biți de securitate inițiali este (de ex, 0-15 reprezentate în biți binari)

$$$ {\mathrm{S}}_{\mathrm{B}}=\left(\begin{array}{c}0\kern0.5em 0\kern0.5em 0\kern0.5em 0\\\ {}0\kern0.5em 0\;0\kern0.5em 1\\ {}0\kern0.5em 0\;1\kern0.5em 0\\ {}begin{array}{l}..\dots \dots \\\ {}1\kern0.5em 1\kern0.5em 1\kern0.5em 11\end{array}\end{array}\right) $$
(3)

Aici, în abordarea prezentată, biții de securitate inițiali la nodul sursă sunt 0 0 0 0 0 0 (i.e., hop 0), deci la hop 1, biții de securitate sunt 0 0 0 0 1 și așa mai departe până la hop 15, deoarece abordarea propusă este proiectată doar până la 15 hopuri. Astfel, se poate spune simplu că biții de securitate inițiali sunt echivalentul binar al numărului de salturi.

$$$ \mathrm{Inițial}\ \mathrm{Securitate}\ \mathrm{bits}=\mathrm{salt}\ \mathrm{număr}\ \mathrm{număr}\ \left(\mathrm{reprezentat}\ \mathrm{in}\ \mathrm{a}\ \mathrm{binary}\ \mathrm{system}\right) $$

După obținerea biților de securitate inițiali, li se adaugă biții de verificare a securității. Acești biți de verificare sunt generați prin înmulțirea și efectuarea de adunări modulo 2 ale biților de securitate inițiali cu matricea de securitate reprezentată în Ecuația. 4

$$ SC=S\times {SP}_m $$
(4)

unde SPm este matricea de securitate (k × p) reprezentată ca

$$$ {SP}_m=\left(\begin{array}{c}{l}_{11}\kern1em {l}_{12}\kern0.5em \cdot \cdots {l}_{1p}\\\ {}{l}_{21}\kern1em {l}_{22}\cdot \cdot \cdots {l}_{2p}\ {}\cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \} {}{L}_{k1}\kern1em {l}_{k2}\cdot \cdots {k}_{kp}\end{array}\right) $$
(5)

unde „lrf” reprezintă elementul din al r-lea rând și al f-lea coloană.

Matricea de securitate este matricea de paritate a codului Hamming (7, 4) care se obține fie din matricea de verificare a parității, fie din matricea generatorului său. Aceste două matrici sunt deja definite pentru codurile Hamming. În modelul prezentat, SPm este comună tuturor nodurilor sursă din rețea și este definită ca

$$$ {SP}_m=\left(\begin{array}{c}1\kern0.62em 1\kern1em 0\ {}0\kern1em 1\kern1em 1\kern1em 1\\ {}1\kern1em 1\kern0.62em 1\\\ {}1\kern1em 0\kern1em 1\end{array}\right) $$

De exemplu, la nodul sursă, biții de securitate inițiali sunt (0 0 0 0 0 0); prin urmare, biții de verificare a securității sunt

$$$ {SC}_{h0}={S}_{h0}\times {SP}_m=\left\times \left(\begin{array}{c}1\kern1em 1\kern1em 0\\ {}0\kern1em 1\kern0.24em 1\\ {}1\kern0.24em 1\kern0.24em 1\\ {}1\kern0.24em 0\kern0.24em 1\end{array}\right)=\left(0\kern0.62em 0\kern0.62em 0\kern0.24em 0\right) $$

unde SChr sunt biții de verificare la al r-lea salt

Shr sunt biții de securitate la al r-lea salt, r = 0, 1, 2, 3 ….

În consecință, cuvântul de cod de securitate la nodul sursă se obține prin adăugarea SCℎ0 la biții de securitate ai nodului sursă și poate fi reprezentat ca

$$$ {W}_{h0}={S}_1\kern0.5em {S}_2\kern0.5em {S}_3\kern0.5em {S}_4\kern0.5em {S}_3\kern0.5em {S}_4\kern0.5em {C}_1\kern0.5em {C}_2\kern0.5em {S}_3=0\kern0.5em 0\kern0.5em 0\;0\kern0.5em 0\kern0.5em 0\kern0.5em 0\kern0.5em 0\kern0.5em 0 $$

unde Wℎr este cuvântul de cod de securitate la saltul r, r = 0, 1, 2,….

După evaluarea cuvântului de cod de securitate, reziduul pătratic este utilizat pentru a oferi securitate suplimentară, deoarece numai codurile Hamming pot să nu fie eficiente pentru a oferi securitatea dorită pentru WSN-uri. Reziduurile pătratice sunt definite de utilizator, sigure, ușor de implementat și sunt ușor disponibile. În această abordare, se ia în considerare reziduul 7, deoarece lungimea cuvântului de cod de securitate obținut este de 7 și acoperă numărul maxim de biți din cuvântul de cod de securitate pentru a spori securitatea. Reziduurile lui 7 sunt 1, 2 și 4; aici, în abordarea prezentată, aceste poziții de biți (adică 1, 2 și 4) sunt completate în cuvântul de cod. Astfel, cuvântul de cod de securitate final generat poate fi reprezentat ca

$$ {R}_{w0}=1\kern1em 1\kern0.24em 0\kern0.62em 1\kern0.62em 0\kern0.24em 0\kern0.24em 0 $$

unde „Rw0” este cuvântul de cod de securitate final (după complementarea pozițiilor de reziduu în Wℎ0) la al r-lea salt. În afară de sincronizarea cuvântului de cod de securitate final, rata de livrare a pachetelor (PDR) (a se vedea Ecuația 6) a nodurilor este monitorizată în permanență. Dacă valoarea PDR este acceptabilă, numai atunci că datele sunt transferate, iar dacă este peste limita acceptabilă, datele nu sunt transmise mai departe. În mod similar, acest proces continuă până la nodul de destinație.

$$ \mathrm{PDR}=\mathrm{Nu}.\mathrm{de}\ \mathrm{R}.\mathrm{P}/\mathrm{No}.\mathrm{de}\ \mathrm{T}.\mathrm{P} $$
(6)

unde R.P reprezintă pachetele primite și T.P reprezintă pachetele transmise

Procesul de potrivire a nodurilor

Figura 1 descrie o rețea cu mai multe salturi în care nodul sursă comunică cu nodul destinație prin noduri intermediare. Nodul sursă trimite Rw0 către toate nodurile sale vecine care se află la un hop distanță de nodul sursă. Operațiunea necesară la diferite salturi este discutată în secțiunile 4.1.1 și 4.1.2.

Fig. 1

figure1

Rețea multi-salt cu nod rival

La saltul 1

Biți de securitate inițiali sunt 0 0 0 0 1; biții de verificare a securității sunt generați prin înmulțirea acestor biți cu 푆푃푚

$$$ {C}_{h1}{\displaystyle \begin{array}{c}={S}_{h1}\times {SP}_m\\ {}=\left(1\kern1.12em 0\kern1.5em 1\right)\end{array}}} $$

Și cuvântul de cod la hopul 1 poate fi evaluat după cum urmează

$$$ {W}_{h1}=0\kern1em 0\kern0.62em 0\kern0.24em 1\kern0.62em 1\kern0.5em 0\kern0.24em 1 $$

Completând pozițiile reziduului (din 7) (adică, prima, a doua și a patra poziție) în Wℎ1, cuvântul de cod de securitate final la saltul 1 este reprezentat ca

$$$ {R}_{w1}=1\kern1em 1\kern1em 0\kern1em 0\kern1em 1\kern1em 0\kern1em 1\kern1em 0\kern1em 1 $$

Dacă nodul vecin trimite Rw1 ca o confirmare de primire către nodul sursă și valoarea PDR a acestuia este acceptabilă, atunci nodul sursă va transfera datele originale către acel nod vecin. Confirmarea nu trebuie să depășească timpul de viață (TTL) furnizat. Acum, acest nod vecin devine nod sursă pentru alte noduri din rețea și transmite Rw1 către nodurile sale vecine.

La saltul 2

Biți de securitate sunt 0 0 1 0, iar biții de verificare sunt

$$ {\displaystyle \begin{array}{l}{C}_{h2}={S}_{h2}\times {SP}_m\\\\\ {}\kern2.5em =\left(1\kern1em 1\kern0.62em 1\right)\end{array}} $$
$$$ {W}_{h2}=0\kern1em 0\kern0.62em 1\kern0.62em 0\kern1em 1\kern1em 1\kern1em 1\kern1em 1 $$

Completând pozițiile reziduurilor din Wℎ2, cuvântul de cod de securitate final la hop 2 poate fi calculat ca

$$$ {R}_{w2}=1\kern0.5em 1\kern0.5em 1\kern0.5em 1\kern0.5em 1\;1\;1 $$

Dacă nodul sursă este confirmat cu Rw2, atunci acesta va transmite datele către nodul de la care a primit confirmarea. În caz contrar, nodul este considerat a fi un nod rival și datele nu sunt transmise către acel nod. Acest proces continuă până când informațiile sau datele sunt primite de către nodul de destinație. Acest proces poate fi ușor de înțeles cu ajutorul diagramei de protocol (a se vedea figura 2). Deoarece cuvântul de cod de securitate se schimbă la fiecare salt și devine foarte dificil pentru nodurile rivale să inducă în eroare nodul activ din rețea, abordarea prezentată nu numai că îmbunătățește autentificarea nodului activ, dar oferă, de asemenea, mai multă confidențialitate nodurilor finale prin proiectarea mai multor cuvinte de cod în rețea. Din Fig. 2, se observă că datele sunt transferate către nodul intermediar 1 (IN1) de la nodul sursă, deoarece acesta dă confirmarea pozitivă (+ACK), adică 푅푤1, către nodul sursă. Odată ce datele sunt primite de IN1, acesta acționează ca nod sursă pentru nodurile sale vecine și le transmite 푅푤1. Datele nu sunt transferate către nodul intermediar 2 (IN 2) deoarece acesta dă o confirmare negativă (-ACK) către IN1, fiind astfel considerat un nod rival.

Fig. 2
figure2

Schema protocolului

.