Articles

Zabezpečení bezdrátových senzorových sítí proti škodlivým útokům pomocí metody Hammingových zbytků

V digitální komunikaci se k detekci a opravě chyb používají Hammingovy kódy, které znají všechny komunikační systémy. Sítě WSN jsou autonomní a vyžadují menší spotřebu energie a tyto kódy lze použít k zabezpečení systému WSN bez další infrastruktury. V předloženém přístupu se používají počáteční bezpečnostní bity (definované uživateli) a k nim se připojí sada dalších bezpečnostních kontrolních bitů pro generování bezpečnostního kódového slova. V závislosti na délce bezpečnostního kódového slova „n“ a počtu počátečních bezpečnostních bitů „k“ lze použít Hammingovy kódy (n, k) (například kódy (6, 3) a (7, 4)) nebo mnoho dalších. Bezpečnostní kódové slovo „W“ se získá přidáním n – k bezpečnostních kontrolních bitů „SC“ k počátečním bezpečnostním bitům „S“ (viz rovnice 1)

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

kde p = n – k

„Si“ je i-tý bit „S“, i = 1, 2, 3…. k

„SCj“ je j-tý bit „SC“, j = 1, 2, 3… p

„Wm“ je m-tý bit „W“, m = 1, 2, 3… n

Pokud je počet počátečních bezpečnostních bitů k, pak je možný blok počátečních bezpečnostních bitů matice „SB“ reprezentován jako

$$ {\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 \\ {}{\mathrm{S}}}_{q1}\kern1em {\mathrm{S}}_{q2}\cdot \cdots {\mathrm{S}}_{qk}\end{array}\right) $$
(2)

kde Sab představuje prvek a-tého řádku a b-tého sloupce, q = 2k = celkový počet řádků a k = celkový počet sloupců v SB.

V tomto přístupu se ke generování bezpečnostního kódového slova „W“ používá (7, 4) Hammingův kód. Hammingův kód však lze zvolit podle požadovaných počátečních bezpečnostních bitů a délky bezpečnostního kódového slova. Zde jsou počáteční bezpečnostní bity 4 a možný počáteční blok matice bezpečnostních bitů je (tj, 0-15 reprezentované binárními bity)

$$ {\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 11\end{array}\end{array}\right) $$
(3)

V předloženém přístupu jsou počáteční bezpečnostní bity ve zdrojovém uzlu 0 0 0 0 (tj, hop 0), takže na hopu 1 jsou bezpečnostní bity 0 0 0 1 atd. až do hopu 15, protože navrhovaný přístup je navržen pouze do 15 hopů. Zjednodušeně lze tedy říci, že počáteční bezpečnostní bity jsou binárním ekvivalentem čísla skoku.

$$ \mathrm{Initial}\ \mathrm{Security}\ \mathrm{bits}=\mathrm{hop}\ \mathrm{number}\ \left(\mathrm{represented}\ \mathrm{v}\ \mathrm{a}\ \mathrm{binární}\ \mathrm{systém}\pravý) $$

Po získání počátečních bezpečnostních bitů, se k nim přidají bity bezpečnostní kontroly. Tyto kontrolní bity se generují vynásobením a provedením modulo 2 sčítání počátečních bezpečnostních bitů s bezpečnostní maticí znázorněnou v rovnici. 4

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

kde SPm je (k × p) bezpečnostní matice reprezentovaná jako

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

kde „lrf“ představuje prvek r-tého řádku a f-tého sloupce.

Bezpečnostní matice je paritní matice (7, 4) Hammingova kódu, která se získá buď z jeho kontrolní paritní matice, nebo z jeho generátorové matice. Tyto dvě matice jsou již definovány pro Hammingovy kódy. V prezentovaném modelu je SPm společná pro všechny zdrojové uzly v síti a je definována jako

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

Například ve zdrojovém uzlu jsou počáteční bezpečnostní bity (0 0 0 0); proto jsou bity bezpečnostní kontroly

$$ {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.24em 0\right) $$

kde SChr jsou kontrolní bity na r-tém skoku

Shr jsou bezpečnostní bity na r-tém skoku, r = 0, 1, 2, 3 ….

Z toho vyplývá, že bezpečnostní kódové slovo ve zdrojovém uzlu se získá připojením SCℎ0 k bezpečnostním bitům zdrojového uzlu a lze jej reprezentovat jako

$$ {W}_{h0}={S}_1\kern0,5em {S}_2\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 $$

kde Wℎr je bezpečnostní kódové slovo na skoku r, r = 0, 1, 2,….

Po vyhodnocení bezpečnostního kódového slova se použije kvadratický zbytek pro zajištění dodatečné bezpečnosti, protože pouze Hammingovy kódy nemusí být účinné pro zajištění požadované bezpečnosti WSN. Kvadratická rezidua jsou uživatelsky definovatelná, bezpečná, snadno implementovatelná a snadno dostupná. V tomto přístupu se uvažuje reziduum 7, protože délka získaného bezpečnostního kódového slova je 7 a pokrývá maximum bitů v bezpečnostním kódovém slově pro zvýšení bezpečnosti. Zbytky 7 jsou 1, 2 a 4; v předloženém přístupu jsou tyto bitové pozice (tj. 1, 2 a 4) v kódovém slově doplněny. Vygenerované konečné bezpečnostní kódové slovo lze tedy reprezentovat jako

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

kde „Rw0“ je konečné bezpečnostní kódové slovo (po doplnění pozic zbytků ve Wℎ0) na r-tém skoku. Kromě synchronizace konečného bezpečnostního kódového slova se průběžně sleduje poměr doručení paketů (PDR) (viz rovnice 6) v uzlech. Pokud je hodnota PDR přijatelná, teprve pak se data přenášejí, a pokud je za přijatelnou hranicí, data se dále nepředávají. Podobným způsobem tento proces pokračuje až do cílového uzlu.

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

kde R.P jsou přijaté pakety a T.P jsou vysílané pakety

Proces porovnávání uzlů

Na obrázku 1 je znázorněna vícehopová síť, ve které zdrojový uzel komunikuje s cílovým uzlem prostřednictvím mezilehlých uzlů. Zdrojový uzel posílá Rw0 všem svým sousedním uzlům, které jsou od zdrojového uzlu vzdáleny jeden skok. Požadované operace na různých skocích jsou popsány v kapitolách 4.1.1 a 4.1.2.

Obr. 2. 1
figure1

Síť s více skoky s konkurenčním uzlem

Na skoku 1

Počáteční bezpečnostní bity jsou 0 0 0 0 1; bezpečnostní kontrolní bity se generují vynásobením těchto bitů koeficientem 푆푃푚

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

A kódové slovo na skoku 1 lze vyhodnotit takto

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

Doplněním zbytku (ze 7) pozic (tj, první, druhé a čtvrté pozice) ve Wℎ1 je konečné bezpečnostní kódové slovo na skoku 1 reprezentováno jako

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

Pokud sousední uzel odešle Rw1 jako potvrzení zdrojovému uzlu a jeho hodnota PDR je přijatelná, pak zdrojový uzel předá tomuto sousednímu uzlu původní data. Potvrzení by nemělo překročit stanovenou dobu do přežití (TTL). Nyní se tento sousední uzel stane zdrojovým uzlem pro ostatní uzly v síti a předá Rw1 svým sousedním uzlům.

Na skoku 2

Bezpečnostní bity jsou 0 0 1 0 a kontrolní bity jsou

$$ {\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 $$

Doplněním pozic reziduí ve Wℎ2 lze konečné bezpečnostní kódové slovo na skoku 2 vypočítat jako

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

Pokud je zdrojový uzel potvrzen pomocí Rw2, pak předá data uzlu, od kterého obdržel potvrzení. Pokud tomu tak není, je uzel považován za konkurenční uzel a data se tomuto uzlu nepředají. Tento proces pokračuje, dokud informace nebo data nepřijme cílový uzel. Tento proces lze snadno pochopit pomocí schématu protokolu (viz obr. 2). Vzhledem k tomu, že se bezpečnostní kódové slovo mění na každém skoku a pro konkurenční uzly je velmi obtížné aktivní uzel v síti zmást, tak předložený přístup nejen zlepšuje autentizaci aktivního uzlu, ale také poskytuje větší důvěrnost koncovým uzlům tím, že navrhuje více kódových slov v síti. Z obr. 2 je patrné, že data jsou ze zdrojového uzlu přenesena do mezilehlého uzlu 1 (IN1), který zdrojovému uzlu vydá pozitivní potvrzení (+ACK), tj. 푅푤1. Jakmile IN1 data přijme, funguje jako zdrojový uzel pro své sousední uzly a předá jim 푅푤1. Data nejsou přenesena do mezilehlého uzlu 2 (IN 2), protože ten vydává IN1 záporné potvrzení (-ACK), a proto je považován za konkurenční uzel.

Obr. 2
figure2

Schéma protokolu

.