Salaamalla turvallisuutta Inter-
net tiedonsiirtoon

Jussi Mäki, TKK:n atk-keskus

Internetissä on alkuvuonna paljastunut vakava 
murtautumisyritys, jossa tunkeutujat ovat hankki-
neet käyttäjätunnuksia ja salasanoja kuuntele-
malla verkkoliikennettä. Tällaisten tapausten 
estämiseksi verkkoliikenne pitäisi salata. Teknilli-
sen korkeakoulun atk-keskuksen suunnittelija 
Jussi Mäki esittää seuraavassa ehdotuksen verkko-
turvallisuuden parantamiseksi käyttämällä liiken-
teen salaamista.

Menetelmä perustuu pieneen apuohjelmistopaket-
tiin (tcpsecure), jota voidaan käyttää muuntamaan 
kahden turvallisen tietokoneen välillä epäluotettavassa 
verkossa kulkeva liikenne salakieliseksi. 

Salakielistä yhteyttä voidaan käyttää esimerkiksi, 
kun siirretään arvokasta tai yksityistä tietoa kuten hen-
kilökohtaisia salasanoja tai palkkatietoja. Järjestelyä 
tarvitaan , jos on syytä epäillä verkon luotettavuutta ja 
on mahdollista, että ulkopuolinen tunkeilija voi kuun-
nella verkkoliikennettä. Kun liikenne salataan, tunkei-
lija ei voi muuntaa saamaansa tietoa hyödylliseen 
muotoon.

Tcpsecure-paketissa on kaksi unix tausta-ohjelmaa. 
Palvelin-taustaa suoritetaan kohdekoneessa eli siinä, 
jossa tavallisesti suoritetaan myös käytettävää sovel-
lusohjelmaa. Asiakas-taustaa suoritetaan paikallisessa 
koneessa eli siinä, johon käyttäjällä on pääteistunto.

Palvelin ja asiakas-ohjelmat kommunikoivat keske-
nään tcp/ip-yhteydellä, missä tietopaketit salataan 
käyttämällä vapaasti saatavilla olevaa DES CBC 
salausalgoritmia. CBC:tä käyttämällä sama avain tuot-
taa eri tietolohkoihin sovellettuna erilaisen salaustu-
loksen.

Salausavain voidaan valita seuraavilla tavoilla:

· Diffie-Hellman avainvaihtomenetelmä (publickey)
· Muunnettu D-H, missä asiakkaan avain kerrotaan 
palvelimelle etukäteen muilla tavoin (savedkey)
· käyttäjä antaa avaimen istunnon alussa (userkey)
· avain luodaan automaattisesti (internal)

Tässä Diffie-Hellmanin menetelmässä käytetään 
320 bitin mittaista alkulukua salaisen ja julkisen avai-
men kantalukuna. 

Kumpikin yhteyden osapuoli muodostaa satunnai-
sesti oman salaisen avaimen Sa ja Sb. Sen jälkeen las-
ketaan niistä julkiset avaimet Pa ja Pb. Julkisia 
avaimia vaihdetaan siten, että A:lla on tiedossaan Sa, 
Pa ja Pb ja B:llä tiedossaan Sb, Pa ja Pb.

Yhteinen salainen avain Kab lasketaan toisen osa-
puolen P:n sekä oman S:n ja N:n avulla. Palvelin A luo 
satunnaisen istuntoavaimen Ks:n ja lähettää sen salat-
tuna B:lle käyttämällä Kab:sta muodostettua DES 
avainta.

Kab lasketaan seuraavalla algoritmilla:
	Pa = g ^ Sa mod N
	Pb = g ^ Sb mod N
	Kab = Pa ^ Sb mod N = Pb ^ Sa mod N, missä
	g on pieni alkuluku.
	N on iso alkuluku
	P on julkinen avain
	S on salainen avain
	Sa ja Sb ovat satunnaislukuja 1:n ja N-1:n väliltä.

															Apuohjelmat

Eric Youngin DES salausohjelmisto on 
ftp.funet.fi:ssä pub/unix/security/crypt/libdes.tar.92-
10-13.Z

Henrik Johanssonin bignum ohjelmisto 
ftp.funet.fi:ssä pub/sci/math/multiplePrecision/
simple-bignum.tar.Z

Konfigurointiesimerkki

Tcpsecure-ohjelmien konfigurointi ja automaattinen käynnistys saadaan aikaan 
seuraavilla toimenpiteillä:

/etc/services tiedostoon lisätään seuraavat rivit

#tcpsecure based services

tcpsecure		2345/tcp	# tcpsecure programs default port

tcpsecured		2346/tcp	# tcpsecured programs default port

s_leka			2350/tcp	# tcpsecure to leka

vipunen 		2351/tcp	# tcpsecure to vipunen

Vastaava konfiguraatio tiedostossa /etc/inetd.conf voisi olla

# tcpsecure based services

s_leka \x11\x11stream tcp nowait daemon /alt/bin/tcpsecure tcpsecure -i -p 
s_leka leka.hut.fi

vipunen \x11stream tcp nowait daemon /alt/bintcpsecure tcpsecure -i -p 
vipunen vipunen.hut.fi

Palvelimen /etc/inetd.conf tiedostossa voisi olla seuraava rivi:

tcpsecured stream tcp nowait daemon /alt/bin/tcpsecured tcpsecured -i

Tcpsecuren yhteydessä voidaan käyttää seuraavia tiedostoja:

pääsynvalvonta

#<allow|deny> <host|net|addr|name><publickey|savedkey|userkey|internal>
#deny 	ALL 		# oletusarvo
allow 	130 		# avainlaji voidaan jättää pois, jolloin kaikki 
			# kelpaavat
allow	vipunen.hut.fi	publickey

vierasavaimen tallennus

#<ipaddr> 	<hostname> 	<updatetime> 	<foreign publickey>

130.233.224.22	 leka.hut.fi 	19940306-22:34:38	 2492F19F709A....

130.233.224.18 	veivi.hut.fi 	19940307-09:35:44 	4663FB24C73F.....



Tällöin yhteys esimerkiksi vipuseen saadaan antamalla asiakaskoneessa komento:

telnet localhost vipunen



Lisätietoja:

Jussi Mäki

Internet: jmaki@hut.fi

Phone: 90-451 4317 TKK tai

Phone: 90-457 2080 CSC

