[ yleistä ] [ julkaisut ] [ yhteystiedot ] [ pohjat ] [ palautukset ] MobSSH
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.1.1 Ohjelmiston laajennettavuus
5.1.2 Tietoturva
5.1.3 Dokumentointi
5.2 Järjestelmän ominaisuudet
5.2.1 Suorituskyky
5.2.2 Toipuminen virhetilanteista
5.2.3 Helppokäyttöisyys
5.2.4 Luotettavuus
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ä:

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 järjestelmästä
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.

visiokuva EPOC ssh:sta

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
 

6.  Laatusuunnitelma

Projektin laatukäsikirja määrittelee laadulliset toimenpiteet ja prosessit sekä toteutuksessa että hallinnossa.

7. Viitteet

[1] Ylönen Tatu, The SSH (Secure Shell) Remote Login Protocol, Internet-Draft, 15.11.1995

[2] Projektin laatukäsikirja



Valid HTML 4.0! Valid CSS! URL: http://www.niksula.cs.hut.fi:80/~mkomu/mobssh/julkaisut/vaatimusmaarittely.html
Viimeksi päivitetty: 17.10.2000