Content uploaded by Visa Vallivaara
Author content
All content in this area was uploaded by Visa Vallivaara on Sep 30, 2014
Content may be subject to copyright.
Tietoturvallisten verkkojen suunnittelu
graateorian avulla
FM-tutkielma
Visa Vallivaara
1800283
Matemaattisten tieteiden laitos
Oulun yliopisto
Syksy 2014
Esipuhe
Tämä gradu on tehty Teknologian tutkimuskeskus VTT:llä tietoturvan tut-
kimustiimissä vuosien 2013-2014 aikana. Opinnäytetyöni on osa Tekesin ja
Euroopan unionin rahoittamaa projektia
SaSER
, Safe and Secure European
Routing. Projektin päätavoiteena on tutkia ja kehittää eurooppalaisten tieto-
verkkojen turvallisuutta, varmuutta ja luotettavuutta suojaamalla ne ulkoisia
ja sisäisiä hyökkäyksiä vastaan. Projektia on tehty yhteistyössä saksalaisten
ja ranskalaisten tutkijoiden sekä monien kansainvälisten yritysten kanssa.
Tämän gradun osalta haluan kiittää tiimikavereitani kaikesta avusta ja
erityisesti crypto tohtoriamme Kimmo Halusta. Kiitokset myös työn ohjaaji-
na toimineille lehtori Erkki Laitiselle ja tutkijatohtori Leena Pasaselle. Monia
on myös kiitettävä kannustuksesta, jonka ansiosta sain tutkimukseni valmiik-
si ajallaan.
Oulussa 18.8.2014
Visa Vallivaara
1
Sisältö
Johdanto 3
1 Graaen teoriaa 4
1.1 Graan ominaisuuksia . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Puugraa ............................. 8
1.3 Painotettugraa ......................... 10
2 Algoritmeja graafeille 11
2.1 Dijkstran algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Kruskalin algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Priminalgoritmi ......................... 14
3 Tietoturvallinen tietoliikenneverkko 16
3.1 Tietoliikenneverkon mallintaminen . . . . . . . . . . . . . . . 16
3.2 Graan yhtenäisyyden määritelmiä . . . . . . . . . . . . . . . 18
4 Algoritmin analysointi 19
4.1 Pseudoalgoritmi.......................... 19
4.2 Puutalgoritmi .......................... 21
4.3 Tulosten analysointi . . . . . . . . . . . . . . . . . . . . . . . 22
5 Loppupäätelmät 24
Lähdeluettelo 25
2
Johdanto
Tietomurrot lisääntyvät nopealla vauhdilla johtuen uusista kehittyneemmistä
hyökkäystekniikoista, joilla saa luvattoman yhteyden tietoverkkoon. Datavar-
kaudet ja hyökkäysyritykset ovat yleisiä ongelmia nykyajan organisaatiolla.
Tämä luo tarpeita erilaisten ratkaisujen löytämiseksi verkkojen tietoturvan
ja luotettavuuden parantamiseksi.
Tietoliikenneverkossa on eriarvoisia komponentteja, jotka vaativat eri mää-
rän tietoturvaa riippuen niiden luonteesta. Arvokkaimpia ovat yleensä tieto-
kannat, joissa säilytetään luottamuksellista ja arvokasta informaatiota. Ver-
kon arvokkaat osat halutaan suojata mahdollisimman hyvin ja eräs suojaus-
keino on sijoittaa ne verkon rakenteessa kaikkein suojaisimpaan kolkkaan,
kauas Internetistä tulevista uhista. Vaikka jokin haittaohjelma saisikin osan
verkon koneista saastutettua, voidaan silti välttyä katastrolta mikäli verkon
topologia on estänyt haittaohjelmien leviämisen kriittisiin osiin. Esimerkiksi
Filiol et al. (2007) ovat tutkineet tietokonematojen leviämistä tietoverkoissa
ja havainneet, että reititys topologialla voi olla erittäin suuri vaikutus ma-
tojen leviämiseen [1]. Verkko ei kumminkaan saa olla liian putkimainen tai
hajanainen sujuvan tiedonsiirron mahdollistamiseksi.
Tässä gradussa lähdetään ratkaisemaan näitä ongelmia graateorian avul-
la. Graat ovat erinomainen työkalu tietoverkkojen mallintamiseen sekä op-
timointiin. Graaen avulla pystytään tutkimaan ja analysoimaan verkkojen
topologiaa ja niitä on käytetty paljon verkkojen optimointiin. Kuten Ahmat
(2009) on tutkinut graateorian avulla isojen monimutkaisten verkkojen rei-
tittämiseen ja tarkkailuun liittyviä optimointiongelmia ja on näyttänyt, että
suurin osa näistä ongelmista on NP-täydellisiä tai NP-vaikeita [2].
Kun graalla kuvataan tietoverkkoa, niin jokainen graan solmu on jo-
kin verkon komponentti, kuten tietokone. Viivoilla voimme merkitä sallittuja
yhteyksiä verkon komponenttien välillä. Jokaisella solmulla on tärkeysarvo,
eli mitä pienempi arvo solmulla on, sitä tärkeämpää sen suojaus on. Voim-
me antaa myös viivoille painoarvon, joka voi kertoa joko paljonko yhteyttä
normaalisti käytetään tai sitten etäisyyden komponenttien välillä isossa ver-
kossa. Käyttämällä näitä painoarvoja voimme muokata verkon topologian
paremmaksi siten, että arvokkaat solmut ovat mahdollisimman suojassa ja
vilkkaasti keskenään kommunikoivat koneet ovat lähellä toisiaan.
Tämän tutkielman ensimmäisessä kappaleessa käydään läpi graaen pe-
rusomaisuuksia ja määritelmiä. Toisessa kappaleessa perehdytään algoritmei-
hin joita käytämme graaen optimoinnissa. Kolmannessa kappaleessa esitel-
lään verkkojen tietoturva ominaisuuksia. Neljännessä kappaleessa sovelletaan
algoritmeja verkkoihin ja analysoidaan tuloksia. Viimeisessä kappaleessa on
yhteenveto tämän tutkielman tuloksista.
3
1736
G =(V
G
,E
G
) V
G
E
GG
|V
G
| |E
G
|
V
G={A,B,C,D} E
G={a,b,c,d,e,f,g} |V
G
|=4 |E
G
|=7
u v u v
E
GV
G
v uv
uv v
v (v) v
A B
a A A (A) =5
G =(V
G
,E
G
) H =(V
H,E
H)
G∪H =(V
G∪V
H,E
G∪E
H)
1736
G =(V
G
,E
G
) (v)
E
G
2∗|E
G
|=
∑
v∈V
G
(v)
P(n):=
n
∑
i=1
(v
i
)=2∗|E
G
|
P(1)
∑
(V
G
) =2
|E
G
|=1 P(k)
G |E
G
|= k
∑
(V
G
)=2k G e H =(V
G
,E
G
∪
e) e
|E
H|= k+1
∑
(V
H)=2k+2=2(k+1)
P(k+1)
V
1V
2
G=(V
G
,E
G
)
2∗|E
G
|=
∑
v∈V
G
(v)=
∑
v∈V
1
(v)+
∑
v∈V
2
(v)
2∗|E
G
|
G H G = H V
G= V
H
E
G= E
H
G
G
G
a b
W G
W :v
1−v
2−···−v
k+1 ∈ V
G|W|= k
W :v
1−→v
k+1
P:v
1
−v
2
−···−v
k+1
v
1=v
2=···=v
k+1 v P
P v
C
C:v
1−v
2−···−v
kv
1=v
2=···=v
k−1 v
1=v
k
P
1P
2
W :
A−B−D−A−C |W |=4 P
1:C−D−B
P
2:C−A−B
C:A−B−D−C−A |P|=4
u v
u v
u v
v
0−v
1−···−v
kv
0=u v
k=v k=1 v
0−v
1
k≥2
v
0−···−v
i
−···−v
j
−···−v
k
v
i
=v
ji=j v
i
v
j
G
v u v u d(v,u) =min{k|v−→u}
d(v,u) =∞
u v
v u G
G
d(v,u)<∞ v,u∈V
G
(A) =5 (B) =3 (C) =3 (D)=3
K
n=(V
K,E
K) |V
K|= n
v (v)=
n−1 n
n−2
Kuva 2: Tietoliikenneverkko joka muodostaa puugraan.
1.2 Puugraa
Puut ovat yksinkertaisten graaen erikoistapauksia. Puun mallisilla graafeilla
on hyviä käytännön sovelluksia niiden yksinkertaisemman rakenteen ansiosta,
kuten organisaatiokaavioiden tarkastelu tai siirtoverkkojen minimointi. Ne
ovat myös perusmalli erilaisille tietorakenteille. Esimerkiksi Kuvassa 2 on
tietoliikenneverkko, jolla on puurakenne.
Määritelmä 1.17.
Puu
T= (VT, ET)
on yhtenäinen piiritön graa.
Määritelmä 1.18.
Puussa olevaa solmua, jonka aste on yksi, kutsutaan
lehdeksi
.
Määritelmä 1.19.
Graa
H= (VH, EH)
on graan
G= (VG, EG)
aligraa
,
jos
VH⊆VG
ja
EH⊆EG
. Voidaan merkitä
H⊆G
. Jos
H⊆G
ja
VH=VG
niin tällöin graa
H
on graan
G
virittävä aligraa
.
Lemma 1.20.
Jokainen puun aligraafeista on myös puu.
Todistus.
Tehdään vastaoletus: puun aligraa ei ole puu, eli siinä on oltava
piiri.
Mutta jos aligraassa on piiri, on sen oltava myös alkuperäisessä graassa.
Tästä seuraa ristiriita, koska alkuperäinen graa on puu jossa ei ole piirejä.
8
n n−1
P(n)={ n n−
1 }
P(1)
P(k)
T v T
v T
k− 1
v
T k P(k+1)
T G T⊆G
G
G
T G
T
T
T
G
α=(V
G
,E
G
,α) α :
E
GR
+
P:v
1
−v
2
−···−v
k+1 α(P)=
k
∑
i=1
α(v
i
v
i+1
)
v u
d(v,u) =min{α(P)|P:v→ u}
G
α
T
s v
G
α
S
s u∈
V
Gs S
s
O(|E|+|V|
2
) O(|E|+|V|log|V|)
s Min(V
G
)
v V
G
α(sv) v
(G
α=(V
G
,E
G
),s)
v∈V
G
d(s,v):=∞
d(s,s):=0
S:=∅
V
G=∅
v:=Min(V
G
)
V
G:=V
G−{v}
S:=S∪v
u∈S
d(s,u)>d(s,v)+α(vu)
d(s,u):=d(s,v)+α(vu)
1956
O(|E|∗log|V|)
(G
α=(V
G
,E
G
))
T
α:=∅
v∈V
G
S(v):=v
E
Gα(E
G
)
|E
T
|< |V
G
|−1
S(v)= S(u)
T
α=T
α∪(u,v)
S=S(u)∪S(v)
T
T=(V
T
,E
T
) V
T=V
G
|E
T
|= |V
G
|−1 T |V
T
|= |E
T
|+1
T
S
m⊆ E
Gm
T =(V
T
,E
T
)
G
αS
m⊆E
T
P(m) ={
T=(V
T
,E
T
) G
αS
m⊆ E
TS
m⊆ E
Gm
}
m =0 S
0= ∅ ∅ ⊆E
T
m = k
P(k)
T=(V
T
,E
T
)
S
k⊆ E
Te S
k
e∈ E
TS
k+1 =(S
k∪{e})⊆ E
TP(k+1)
e/∈E
TE
T∪{e}
e
∗∈(E
T−S
k+1
) e e
∗
T e
∗
e T
∗=(V
T
,E
T
∗
) E
T
∗=(E
T−{e
∗
})∪{e}
T
∗T
T
∗S
k+1 ⊆ E
T
∗
P(k+1)
T
G
α
n V
G
n−1 e= E
G−S
S n−1
S
H1,H2,...,H10
1929
1956
1957 1958
G
αs
T Min(V
G
) v
V
Gα(uv) u∈T v/∈T
v e
T
O(|E|+|V|∗log|V|)
(G
α=(V
G
,E
G
),s)
T:=∅
v∈V
G
d(T,v):=∞
d(T,s):=0
V
G=∅
(v,e):=Min(V
G
)
T:=(V
T∪{v},E
T∪{e})
V
G:=V
G−{v}
u∈V
Gv
α(vu)<d(T,u)
d(T,u):=α(vu)
T
T=(V
T
,E
T
)
T uv∈E
iv/∈V
i−1
,u∈V
i−1
|V
T
|= |V
G
| |E
T
|= |V
G
|−1 T G
α
T=(V
T
,E
T
)
G
α
T T
∗
G
αT=T
∗
T=T
∗e
k=vu
T
∗P
v u T
∗e
∗P
(k− 1)
e
∗e
k
α(e
∗
)≥α(e
k
) e
∗e
k
e
∗e
kT
∗
T T
∗
Kuva 6: Erilaisten tietoliikenneverkkojen topologia graafeja.
3 Tietoturvallinen tietoliikenneverkko
Tietoturva on käsitteenä erittäin laaja. Siihen sisältyvät kaikki keinot, joil-
la pyritään estämään tiedon tuhoutuminen, muuttuminen tai päätyminen
vääriin käsiin. Samalla kuitenkin tiedon täytyy olla niiden saatavilla, joilla
on siihen oikeus. Luottamuksellista tietoa yritetään varastaa organisaatiolta
käyttämällä erilaisia hyökkäystekniikoita kuten tietojenkalastelu, välistäve-
tohyökkäys, troijalaiset ja muut haittaohjelmat.
3.1 Tietoliikenneverkon mallintaminen
Ohjelmiston määrittelemä tietoliikenneverkko, englanniksi Software-Dened
Networking (
SDN
), on uudehko lähestymistapa tietoliikenneverkon suunnit-
teluun, luomiseen ja hallintaan. Perusidea on se, että
SDN
erottaa toisis-
taan verkon hallinnan eli "aivot"ja pakettiliikenteen välitystason hallinnan
eli "lihakset". Tämä tarkoittaa sitä, että teoriassa kaikki verkon laitteet voi-
vat olla suoraan yhteyksissä toisiinsa, kuten täydellisessä graassa. Tämän
tyyppistä verkkoa on helpompi optimoida ja sen rakennetta pystyy hetkessä
muuttamaan, koska verkon fyysiset rakenteet eivät ole rajoitteena. Tämän
tutkielman laajuuteen ei kuuluu perehtyä tämän syvällisemmin
SDN
verk-
koarkkitehtuurin teoriaan.
Tietoliikenneverkkoa voi mallintaa graalla, siten että solmut ovat jotain
verkon komponentteja joilla on MAC osoite, kuten tietokone, tulostin tai tie-
tokanta. Viivoilla voidaan merkitä sallittuja yhteyksiä verkon komponenttien
16
K
n=(V,E)
|V
K|= n |E
K|= n(n−1)/2
7 9 v
1927
G λ(G)
λ(G)=min{|F|,F⊆E
GG−F }
G λ(G) =k
v,u∈V
Gk v−→u
v G
v G G
′
G
G v
1v
2
G
′v
1v
2v v
v
1v
2
K
10
G
α=(V
G
,E
G
) |V
G
|= n |E
G
|= m
c∈Z
+
V
G=(v
i
,c
i
) i=1,...,n
p∈[0,1]
E
G=(e
j
,p
j
) j=1,...,m s∈R
+
s <c−1
s= c− 1
s>c−1
T
(G
α=(V
G=(v,c),E
G=(e,p)),s)
v
i
v
j∈E
G
α(v
i
v
j
)=p
ij
+|k
i
−k
j
|/s
T
1= (G
α
)
E
G=E
G−E
T
1
T
2= (G
α
)
H =T
1∪T
2
H
G
C s
H = (G,C,s,method)
n= (C,1);
j=2:n
i=1:(j−1)
G(j,i) =G(j,i)+abs(C(i,1)−C(j,1))/s;
G= (G);
i=1:n
(i)= (
′
a
′
+i−1) 2 (C(i,1))]);
T= (G,
′ ′
,method);
G= G−T
H = (G,
′ ′
,method)+T;
(H∗100)/100
G=tril(rand(n,n),−1)
C=randi(c,n,1) n c
10
[0,1]
s=4
26 7 1
26
1 s=6
2000
H
H λ(H) =2
2−
Kuva 11: Muuten sama verkko kuin Kuvassa 10, paitsi turvakerroin on
6
.
lyy, jolloin verkon muokkausta voi tarvittaessa jatkaa viiva kerrallaan. Tai
voimme nostaa poistetun viivan painoarvoa ja muodostaa uuden verkon al-
kuperäisellä algoritmilla, jolloin kyseinen yhteys jää pois.
Lisäksi testauksissa havaittiin, että saadut verkot ovat usein myös sepa-
roitumattomia. Jolloin graasta voisi poistaa myös minkä tahansa solmun
siten että graa pysyy yhtenäisenä. Mutta graain voi syntyä irrotuspiste,
jos graa on suuri ja turvakerroin on valittu siten että se painottaa tietotur-
vaominaisuuksia, kuten Kuvassa 10. Vaihtelemalla turvakerrointa sekä tieto-
turvaluokkien määriä voi generoida useita erilaisia verkkoja ja valita niistä
separoitumattoman tai vähiten irtopisteitä sisältävän.
Jos graa on
2
-viivayhtenäinen mutta ei separoitumaton, voidaan siitä
poistaa saastunut solmu
v
kutistamalla se sellaisen viereisen solmun
u
kanssa,
jolla on sitä lähinnä oleva turvaluokitus. Kutistus voidaan tehdä siten että
kaikki solmuun
v
kytköksissä olevat viivat yhdistetään solmuun
u
yksi viiva
kerrallaan, jolloin verkko pysyy jatkuvasti yhtenäisenä. Tämän jälkeen voi
tarvittaessa laskea
puut
algoritmilla uuden verkon ilman saastunutta solmua,
ja lisätä siihen kuuluvat viivat verkkoon ja poistaa vanhat viivat.
23
2−
2−
Lähdeluettelo
[1] É. Filiol, E. Franc, A. Gubbioli, B. Moquet and G. Roblot:
Combina-
torial optimisation of worm propagation on an unknown network
. Engi-
neering and Technology, World Academy of Science, 2007.
[2] K. Ahmat:
Graph Theory and Optimization Problems for Very Large
Networks
. City University of New York, United States, 2009.
[3] R.R. Kadesch:
Problem Solving Across the Disciplines
. Prentice Hall,
United States, 1997.
[4] K. Rosen:
Discrete mathematics and its applications
. Pages 429-607.
New York : McGraw-Hill, 1995.
[5] E.W. Dijkstra:
A note on two problems in connexion with graphs
. Pages
269271. Numerische Mathematik 1, 1959.
[6] M.L. Fredman and R. Tarjan:
Fibonacci heaps and their uses in improved
network optimization algorithms
. Pages 338346. Annual Symposium on
Foundations of Computer Science 25, 1984
[7] J.B. Kruskal:
On the Shortest Spanning Subtree of a Graph and the
Traveling Salesman Problem
. Pages 48-50. Proceedings of the American
Mathematical Society 7, 1956.
[8] R. Prim:
Shortest Connection Networks and Some Generalizations
. pa-
ges 1389-1401. Bell System Technical Journal 36, 1957.
[9] E. Weisstein:
Vertex Contraction
. A Wolfram Web Resource,
http://mathworld.wolfram.com/VertexContraction.html, 2014.
[10] R. Diestel:
Graph Theory
. Third edition. Berlin : Springer, 2005
[11] W-K. Chen:
Theory of Nets: Flows in Networks
. New York : John Wiley
& Sons, 1990.
25