MobSSH |
Vaatimusmäärittely |
http://www.niksula.cs.hut.fi:80/~mkomu/mobssh/julkaisut/vaatimusmaarittely.html |
1.0 |
PS vaihe |
Tero Nordström |
Viimeksi muokattu:
17.10.2000 |
Versiohistoria |
0.9 |
11.10.2000 |
Tero Nordström |
Ensimmäinen valmis versio |
1.0 |
16.10.2000 |
Tero Nordström |
Korjattu, katselmoitu versio |
Tarkastanut |
Hyväksynyt |
16.10.2000 |
Antti Järvinen, Miika Komu |
16.10.2000 |
Kristian Slavov |
- 0
Sisällysluettelo
- 1. Johdanto
- 1.1 Ohjelmisto ja sen
tavoitteet
- 1.2 Käsitteitä
- 1.3 Dokumentin rakenne
- 2. Yleiskuvaus
- 2.1 Kuvaus
järjestelmästä
-
- 2.1.1 EPOC
käyttöjärjestelmään pohjautuva
PDA
- 2.1.2 Laite
tietoliikenneyhteyksien muodostamiseksi
- 2.1.3 SSH serveri
- 2.2 Järjestelmän
käyttäjät
- 2.3 Toteutustyökalut
- 3. Toiminnot
- 3.1 Tietoturva-algoritmit
- 3.2 Autentikaatio
- 3.3 SSH protokolla ja avainten
vaihto
- 3.4 Servereiden julkisten RSA avainten hallinta
sekä clientin RSA avainten generointi
- 3.5 Käyttöliittymä ja
terminaaliemuloinnit
- 3.6 scp toteutus(2)
- 4. Ulkoiset liittymät
- 4.1
Tietoliikenneyhteydet
- 4.2 SSH Serveri
- 5. Muut ominaisuudet
- 5.1 Ohjelmiston arkkitehtuuri
- 5.2 Järjestelmän
ominaisuudet
- 6. Laatusuunnitelma
- 7. Viitteet
1. Johdanto
1.1 Ohjelmisto ja sen tavoitteet
Uudenlaiset, mobiilit henkilökohtaiset
tietojenkäsittelylaitteet ovat leviämässä
yleiseen käyttöön. Projektin tarkoituksena on
tutkia, kuinka hyvin kyseiset laitteet pystyvät tarjoamaan
luotettavia ja turvallisia etäkäyttöyhteyksiä.
Tarkoituksena on toteuttaa SSH versio 1.0 protokollan[1] mukainen
client ohjelmisto EPOC ympäristöön. Kyseinen
ympäristö asettaa erilaisia
rajoituksia(käytössä oleva muisti- ja
laskentakapasitetti) ja tarkoitus olisi evaluoida näiden
rajoitteiden vaikutusta loppukäyttäjän kannalta
katsoen. Tarkoituksena ei ole luoda varsinaista tuotetta vaan
ohjelmistoa tullaan tekemään lähinnä
tutkimuskäyttöön. Kyseinen tutkimuskäyttö
tulee tapahtumaan projektin asiakkaan Open Informationin
projekteissa.
Ohjelmiston avulla on mahdollista ottaa TCP/IP pohjaisia
etäkäyttöyhteyksiä eri servereihin samaan
tapaan kuin PC maailmasta tutuilla SSH clienteilla. Lopullisen
ohjelman tulisi vastata
käyttöliittymältään mahdollisimman hyvin
muita EPOC järjestelmän ohjelmia. Kaikkia SSH v 1.0
optionaalisia ominaisuuksia ei tulla toteuttamaan vaan
tarkoituksena on luoda tarkasti rajattu järjestelmä, joka
toimii standardin mukaisen serverin kanssa.
Ohjelmistosta on tarkoitus luoda mahdollisimman modulaarinen,
jotta erilaisten ominaisuuksien (esim. erilaiset
terminaaliemuloinnit ja tietoturva-algoritmit) lisääminen
on mahdollisimman helppoa. Samalla ohjelmistoa tulee olla
mahdollisimman helppo jatkokehittää. Tarkoituksena on
siis luoda osakokonaisuuksia, joiden käyttö jatkossa on
mahdollista myös muissa projekteissa. Tämä koskee
erityisesti käytettäviä tietoturva-algoritmeja ja
SSH protokollan toteutusta.
1.2 Käsitteitä
Seuraavassa muutamia tekstissä esiintyviä
käsitteitä:
- PDA (Personal Digital Assistant)
-
- mobiili, henkilökohtainen tietojenkäsittelylaite.
Esimerkkinä Psion Revo ja Palm
- IrDA
-
- standardi infrapunasäteilyä
käyttävään kahden laitteen välillä
tapahtuvaan tiedonsiirtoon
- RSA
-
- Julkisen avaimen menetelmään perustuva asymmetrinen
salausmenetelmä
- DES,3DES (Digital Encryption Standard)
-
- Symmetrinen lohkosalausmenetelmä, joka
käyttää 56 bittistä avainta. 3DES
menetelmässä salaus tehdään käyttäen
normaalia DES algoritmia kolme kertaa.
- CBC (Cipher Block Chaining)
-
- Lohkosalausmenetelmän toimintatapa, jossa edelliset
salauslohkot vaikuttavat seuraaviin lohkoihin. Näin voidaan
estää ns. replay hyökkäys.
- MD5
-
- One-way hash funktio, jonka avulla voidaan laskea datasta
eräänlainen tarkistussumma. Tämä operaatio on
mahdollinen vain yhteen suuntaan eli tarkistussummasta ei pysty
generoimaan samaa tarkistussummaa tuottavaa
syötettä.
- RAS (Remote Access Server)
-
- Windows NT/2000:n palvelu, jonka avulla
modeemikäyttäjät saavat yhteyden Windowssiin. Toimii
eräänlaisena soittosarjana. Mahdollistaa myös
nollamodeemikaapelin käytön.
- EPOC
-
- Symbianin kehittämä avoin, 32 bittinen
käyttöjärjestelmä, joka on tarkoitettu pieniin,
kannettaviin laitteisiin.
- PPP(Point to Point-Protocol)
-
- Kahden koneen välinen linkkitason protokolla, joka
mahdollistaa yhteyksien muodostamisen, ylläpidon ja
katkaisun.
1.3 Dokumentin rakenne
Kappaleessa 1 kerrotaan järjestelmästä ja siihen
liittyvästä arkkitehtuurista yleisellä tasolla.
Kappaleessa esitellään ohjelmiston käyttö
ja tarkoitus, järjestelmän asiakas(kohderyhmä)
sekä tavoitteet. Lisäksi käsitellään
joitakin tekstissä esiintyviä termejä.
Kappaleessa 2 kerrotaan ympäristö, jossa
järjestelmä tulee toimimaan. Myös toteutukseen
liittyviä rajoituksia ja menetelmiä
esitellään.
Kappaleessa 3 luetellaan järjestelmältä
vaadittavat toiminnot yleisellä tasolla.
Kappaleessa 4 esitellään järjestelmän
ulkoiset liitynnät, tietoliikennekysymykset sekä
prototyyppi tulevasta käyttöliittymästä.
Kappaleessa 5 kuvataan järjestelmältä vaadittavat
yleiset ominaisuudet.
Kappaleessa 6 kuvataan järjestelmän laatuun
vaikuttavat toimenpiteet.
2. Yleiskuvaus
2.1 Kuvaus järjestelmästä
Toteutettava järjestelmä tulee koostumaan EPOC
käyttöjärjestelmällä toimivasta PDA:sta,
tietoliikenneyhteyden mahdollistavasta laitteesta
(kännykkä) sekä SSH v 1.0 mukaisesta
serveristä. Varsinainen ohjelmisto tullaan toteuttamaan PDA
laitteeseen.

Kuva 1
2.1.1 EPOC käyttöjärjestelmään
pohjautuva PDA
EPOC päätelaitteeseen toteutetaan SSH versio 1.0:n
mukainen client ohjelma, jonka avulla voidaan ottaa
etäyhteyksiä TCP/IP verkon yli. EPOC
päätelaitetta ei ole tarkemmin määritelty,
joten ohjelmistoa tulee testata, jos mahdollista, eri
tyyppisissä laitteissa. Projektin aikana on tarkoitus
kehittää ohjelmaa Psionin EPOC laitteita
käyttäen.
2.1.2 Laite tietoliikenneyhteyksien muodostamiseksi
EPOC päätelaite käyttää dial-up
yhteyksiä ja PPP-protokollaa TCP/IP yhteyksien
muodostamiseksi. Laitteessa oleva IrDA:a standardin mukainen
infrapunalinkki toimii EPOC laitteen ja varsinaisen
tietoliikennelaitteen välillä. Tietoliikennelaitteena
tulee projektissa toimimaan datamodeemilla varustettu
kännykkä. Lisäksi projektin loppupuolella on
mahdollista, että ohjelmistoa tullaan kokeilemaan EPOC
laitteessa, joka sisältää sisäänrakennetut
tietoliikenneyhteydet.
2.1.3 SSH serveri
SSH serverinä on tarkoitus käyttää valmiita,
version 1:n mukaisia UNIX implementaatioita.
2.2 Järjestelmän käyttäjät
Järjestelmää tullaan käyttämään
tutkimuskäytössä Open Information ja heidän
kumppaneidensa projekteissa. Loppukäyttäjinä
toimivat siis kyseisten firmojen työntekijät.
2.3 Toteutustyökalut
Ohjelmisto tullaan kehittämään Windows NT/2000
ympäristössä käyttäen Microsoftin Visual
C++ 6.0:aa sekä Symbianin EPOC
kehitysympäristöä versio 5. Kyseinen SDK
sisältää tarvittavat ohjelmistot ohjelmien
kääntämiseksi sekä Windowsissa toimivaan
emulaattoriin että varsinaiselle EPOC laitteelle. Suurin osa
kehitystyöstä tulee tapahtumaan emulaattoria
käyttäen, koska se tarjoaa hyvät mahdollisuudet
ohjelmien testaamiseen ja debuggaamiseen. Myöhemmin
siirrytään mahdollisesti käyttämään
uudempaa SDK versiota, jos sellainen ilmestyy projektin aikana.
Lähdekoodin versiohallinta tullaan toteuttamaan
käyttäen CVS järjestelmää. Lisäksi
käytössä on varsinaisia EPOC
päätelaitteita, joissa järjestelmätestaus
tullaan toteuttamaan. Käytettävän EPOC
käyttöjärjestelmän versio on 5.
3. Toiminnot
Toteutettavan ohjelmiston tulee toteuttaa pakolliset SSH
protokollan version 1 mukaiset toiminnot[1]. Tämä
muodostaa ns. perustason. Jos kyseinen taso saadaan toteutettua
kohtuullisessa aikataulussa, on ryhmän tarkoitus toteuttaa ns.
lisätaso. Näitä tasoja on merkitty seuraavassa
kuvauksessa seuraavasti:
(1) = perustaso
(2) = lisätaso
3.1 Tietoturva-algoritmit (1)
Ohjelmisto sisältää tietoturvakirjaston, joka
sisältää seuraavat tietoturva-algoritmit: RSA, DES
(CBC), 3DES ja MD5. Tietoturvakirjastosta kehitetään
sellainen, että se on yleiskäyttöinen.
3.2 Autentikaatio (1,2)
Käyttäjän autentikointi perustuu salasana(1) tai
RSA(2) autentikaatioon.
3.3 SSH protokolla ja avainten vaihto(1)
Ohjelmisto sisältää toteutuksen SSH:n
binääripakettiprotokollasta[1] sekä protokollan
mukaisen avaintenvaihdon (tähän sisältyy serverin
autentikointi)
3.4 Servereiden julkisten RSA avainten hallinta sekä
clientin RSA avainten generointi(1)
Client ohjelman lisäksi toteutetaan ohjelmisto
käytettävien RSA avainten generoimiseksi. Servereiden
julkiset avaimet tullaan tallettamaan tiedostoon.
3.5 Käyttöliittymä ja
terminaaliemuloinnit(1)
Käyttöliittymä toteutetaan käyttäen
EPOC:in grafiista EIKON käyttöliittymä.
Käyttöliittymää käyttäen voidaan
muodostaa etäyhteyksiä SSH servereihin.
Käyttöliittymästä pyritään
tekemään EPOC ympäristön suositusten mukainen.
Lisäksi toteutaan vt100 spesifikaation mukainen
terminaaliemulointi.
3.6 scp toteutus(2)
Ohjelmisto mahdollistaa turvallisen tiedostonkopioinnin kahden
koneen välillä. Toteutus vastaa UNIX:n scp komentoa.
4. Ulkoiset liittymät
4.1 Tietoliikenneyhteydet
Tarvittavat tietoliikenneyhteydet tullaan toteuttamaan
käyttäen EPOC käyttöjärjestelmän
tietoliikenne API:a. Tämä mahdollistaa dial-up pohjaisten
TCP/IP yhteyksen muodostamisen.
Tietoliikennepäätelaitteena tullaan
käyttämään kännykkää, joka
sisältää mahdollisuuden modeemiyhteyksien
muodostamiseen sekä IrDA standardin mukaisen infrapunaportin
PDA:n ja kännykän väliseen tietoliikenteeseen.
Loppuvaiheessa projektia saatetaan ohjelmistoa kokeilla myös
EPOC laitteessa, joka sisältää
tietoliikenneyhteydet. Ohjelmiston kehitysvaiheessa tullaan
käyttämään myös nollamodeemikaapelia ja
Windows NT/2000 RAS palvelinta.
4.2 SSH Serveri
Ohjelmiston tulee toteuttaa SSH protokolla siinä
laajuudessa, että se pystyy keskustelemaan SSH protokollan
version 1 mukaisten serverien kanssa.
4.3 Käyttöliittymä
Kuvassa 2 on esitelty käyttöliittymän
prototyyppi.

Kuva 2. Prototyyppi
käyttöliittymästä
5. Muut ominaisuudet
Eri ominaisuuksien prioriteetit on järjestelty seuraavasti:
K = kriittinen
T = tärkeä
H = hyödyllinen
5.1 Ohjelmiston arkkitehtuuri
5.1.1 Ohjelmiston laajennettavuus (T)
Projektin tarkoituksena on toteuttaa ohjelmisto, jota voidaan
edelleen kehittää. Tämän takia pitää
erityisesti kiinnittää huomiota modulaarisuuteen ja
koodin ylläpidettävyyteen. Tietoturva-algoritmien tulee
muodostaa yleiskäyttöinen tietoturvakirjasto, jonka
käyttö muista ohjelmista on mahdollista.
5.1.2 Tietoturva (K)
Koska koko järjestelmän tarkoituksena on tarjota
turvallinen etäyhteys SSH serveriin, pitää
ohjelmiston ja koko järjestelmän tietoturvaan
kiinnittää erityistä huomiota. Tämä koskee
erityisesti toteututtavia tietoturva-algoritmeja sekä avainten
hallintaa. Tämä täytyy ottaa huomioon arkkitehtuuria
suunniteltaessa.
5.1.3 Dokumentointi (K)
Järjestelmän laajennettavuuden ja
ymmärryttävyyden aikaansaamiseksi tulee dokumentoinnin
olla tarkkuudelta sitä luokkaa, että nämä
vaatimukset saavutetaan.
5.2 Järjestelmän ominaisuudet
5.2.1 Suorituskyky (H)
Johtuen EPOC laitteissa käytettävistä
prosessoreista, on käytettävissä oleva laskentateho
huomattavasti alhaisempi kuin normaaleissa PC koneissa.
Tämän vuoksi laskentaa vaativat algoritmit (erilaiset
tietoturva-algoritmit ja CRC:n laskenta) tulee toteuttaa
järkevästi. Tässä kohtaa pitää
huomioida myös laitteiden pieni muistikapasiteetti.
Suorituskyky ei kuitenkaan ole ensisijaisen tärkeä asia,
koska tarkoituksena on muodostaa ensin toimiva
järjestelmä ja tämän pohjalta mahdollisesti
parantaa suorituskykyä myöhemmin.
5.2.2 Toipuminen virhetilanteista (K)
Käytettävät tietoliikenneyhteydet pohjautuvat
langattomiin tiedonsiirtomenetelmiin(GSM/GPRS, IrDA), joten
tietoliikenneyhteydet saattavat katkeilla milloin tahansa.
Tämä tulee ottaa huomioon SSH protokollaa
implementoitaessa. Myöskin muunlaisiin virhetilanteisiin tulee
varautua. Nämä liittyvät yleensä erilaisiin
resursseihin kuten esimerkiksi muisti, akun varaustila ja muut
vastaavat seikat. Virhetilanteissa ohjelman tulee osata ajaa siis
itsensä hallitusti alas aiheuttamatta ongelmia muille
ohjelmille tai varsinaiselle
käyttöjärjestelmälle.
5.2.3 Helppokäyttöisyys (H)
Käyttöliittymän tulee olla sellainen, että
sen käyttö kynäpohjaisen ohjauslaitteen avulla on
mahdollisemman helppokäyttöistä. Lisäksi
käyttöliittymän pitää vastata
ulkonäöltään ja toiminnaltaan muita EPOC
sovelluksia.
5.2.4 Luotettavuus (T)
EPOC laitteiden ohjelmistolta vaaditaan erityistä
tarkkuutta virhetilanteiden suhteen, koska näitä
laitteita ei ole tarkoitus buutata päivittäin. Erilaisten
virhetilanteiden hallinta tulee tehdä niin, että kaikki
käytetyt resurssit vapautetaan. Ohjelmiston tulee toimia
sisäisesti oikein myös pitempiä aikoja
käytettäessä. Lisäksi se ei saa
häiritä muiden EPOC ohjelmien toimintaa
Projektin laatukäsikirja määrittelee laadulliset
toimenpiteet ja prosessit sekä toteutuksessa että
hallinnossa.
[1] Ylönen Tatu, The SSH (Secure Shell) Remote Login Protocol,
Internet-Draft, 15.11.1995
[2] Projektin laatukäsikirja
URL: http://www.niksula.cs.hut.fi:80/~mkomu/mobssh/julkaisut/vaatimusmaarittely.html
Viimeksi päivitetty: 17.10.2000