TAMPEREEN TEKNILLINEN KORKEAKOULU

Samankaltaiset tiedostot
Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

Kuljetus/Sovelluskerroksen tietoturvaratkaisut

Tämän luennon aiheet. Kuljetus/Sovelluskerroksen tietoturvaratkaisut. TLS:n turvaama HTTP. Transport Layer Security (TLS) TLS:n suojaama sähköposti

in condition monitoring

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n turvaama HTTP. TLS:n suojaama sähköposti

Yritysturvallisuuden perusteet. 11. Luento Tietotekninen turvallisuus

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

OSI ja Protokollapino

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut

Salaustekniikat. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

Tietoturvan perusteet - Syksy SSH salattu yhteys & autentikointi. Tekijät: Antti Huhtala & Asko Ikävalko (TP02S)

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) ja Secure Shell (SSH)

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut

Tietoliikenne II (2 ov)

Tietoturvan peruskurssi

Tietoturva P 5 op

Lyhyt oppimäärä mistä salauksessa on kyse? Risto Hakala, Kyberturvallisuuskeskus, Viestintävirasto

Kuljetus/Sovelluskerroksen tietoturvaratkaisut

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

S Tietoliikennetekniikan perusteet. Piirikytkentäinen evoluutio. Annukka Kiiski

Tietoliikenne II (2 ov)

Mikä on internet, miten se toimii? Mauri Heinonen

Lyhyt oppimäärä mistä tietojen salauksessa on oikeasti kyse? Risto Hakala, Kyberturvallisuuskeskus, Viestintävirasto

IPsec-SA:n perustaminen. Kuljetus/Sovelluskerroksen tietoturvaratkaisut. Luottamuksenhallinta. Arkkitehtuuri Internetin turvallisuudelle

SALAUSMENETELMÄT. Osa 2. Etätehtävät

T Tietokoneverkot kertaus

WL54AP2. Langattoman verkon laajennusohje WDS

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

myynti-insinööri Miikka Lintusaari Instrumentointi Oy

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

Turvallinen etäkäyttö Aaltoyliopistossa

Web-palveluiden toteutus älykortille

Salaustekniikat. Kirja sivut: ( )

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

Tiedonsiirto- ja rajapintastandardit

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

Järjestelmäarkkitehtuuri (TK081702)

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

LANGATON TAMPERE: CISCO WLAN CONTROLLER KONFIGUROINTI

S Teletekniikan perusteet

TEKNIIKKA JA LIIKENNE. Tietotekniikka. Tietoliikennetekniikka INSINÖÖRITYÖ WAP JA LANGATON TIETOTURVA

ELEC-C7241 Tietokoneverkot Multimedia, tietoturva, jne.

Pikaviestinnän tietoturva

Salakirjoitusmenetelmiä

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

HOJ J2EE & EJB & SOAP &...

DownLink Shared Channel in the 3 rd Generation Base Station

HSMT J2EE & EJB & SOAP &...

ELEC-C7241 Tietokoneverkot Sovelluskerros

T Cryptography and Data Security

Office ohjelmiston asennusohje

mikä sen merkitys on liikkuvalle ammattilaiselle?

3. Kuljetuskerros 3.1. Kuljetuspalvelu

DNSSec. Turvallisen internetin puolesta

Useimmin kysytyt kysymykset

Y k s i t y i s y y s j a t i e t o s u o j a v e r k o s s a. Mikko Rauhala Vaalimasinointi.org

Tutkimus web-palveluista (1996)

Tikon Ostolaskujenkäsittely versio SP1

Verkottunut suunnittelu

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

TERVEYDENHUOLLON XXVI ATK-PAIVAT Uudet langattomat tekniikat. professori Hannu J. Koivisto, Tampereen teknillinen korkeakoulu

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat. Protokollien kerrosrakenne. Mitä monimutkaisuutta?

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

SSH Secure Shell & SSH File Transfer

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti

HELIA TIKO ICT03D Tieto ja tiedon varastointi T.Mikkola, O.Virkki. Tietoturva tiedon varastoinnissa

Option GlobeSurfer III pikakäyttöopas

Kaikki analogiset järjestelmät digitaalisiksi ja verkkokäyttöisiksi - jo tänään Kustannustekkuutta ja joustavuutta työskentelyyn

Tietoturvan perusteita

Kymenlaakson Kyläportaali

Langattomien verkkojen tietosuojapalvelut

Kryptografiset vahvuusvaatimukset luottamuksellisuuden suojaamiseen - kansalliset suojaustasot

dyntäminen rakennusautomaatiossa Jussi Rantanen Myyntipää äällikkö Fidelix Oy

Henkilökohtaista käyttäjäystävällistä tietoturvaa! NTG Solo Secure

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla.

PIKAOPAS MODEM SETUP FOR NOKIA Copyright Nokia Oyj Kaikki oikeudet pidätetään.

Luennon sisältö. Protokolla eli yhteyskäytäntö (1) Verkon topologia

Turvaa langattomat laitteesi ja verkkosi. Harri Koskinen Rossum Oy

S Tietoliikennetekniikan perusteet. Piirikytkentäinen evoluutio

Verkkopalveluiden saavutettavuus

Kuva maailmasta Pakettiverkot (Luento 1)

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

10 Nykyaikainen WWW-arkkitehtuuri

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

Tietoturvatekniikka Ursula Holmström

Kohina (Noise) 1.4. Tietoliikenneohjelmistot eli protokollat. Signaalin vahvistaminen

Tulevaisuuden Internet. Sasu Tarkoma

Langattomat lähiverkot. Matti Puska

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

Videoneuvottelu. Johdanto. Järjestelmät. Telepresensce. Laitteisto. Ryhmäneuvottelut

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Transkriptio:

TAMPEREEN TEKNILLINEN KORKEAKOULU AUTOMAATIOTEKNIIKAN KOULUTUSOHJELMA HARRI KULMALA WAP-SOVELLUSTEN SUUNNITTELU JA TOTEUTUS AUTOMAATIOSSA DIPLOMITYÖ AIHE HYVÄKSYTTY AUTOMAATIOTEKNIIKAN OSASTONEUVOSTON KOKOUKSESSA 11.10.2000 TARKASTAJA: PROF. HANNU KOIVISTO

Alkulause Tämä diplomityö on tehty Tampereen teknillisen korkeakoulun Automaatio- ja säätötekniikan laitokselle. Kiitän professori Hannu Koivistoa kannustavista ja asiantuntevista neuvoista diplomityön ohjauksesta ja tarkastuksesta. sekä Kiitän työtovereitani Hannu Hakalaa ja Tommi Kylä-Kailaa mukavista yhteisistä työhetkistä ja heidän panoksestaan yhteisissä projekteissa sekä heidän antamistaan monista, välillä jopa hyvistäkin, neuvoista ja ideoista. Kiitän myös Jari Seppälää niistä monista auttavista ja kannustavista neuvoista, joita usein tarvittiin. Kiitos myös Jari Kerolle mukavista hetkistä yhteisissä projekteissa. Suuri kiitos myös koko Automaatio- ja säätötekniikan laitoksen henkilökunnalle mukavasta työilmapiiristä, ja erityisesti Tarja Raiskilalle kiitos käytännön asioiden hoidosta. Lisäksi haluan kiittää perhettäni; vaimoani Hannaa tukemisesta myötä- ja vastamäessä sekä kovasta kannustuksesta, olet ihana! Ja Silja-vauvaa siitä, että tulit elämäämme sulostuttamaan ja tekemään maailmasta mukavampaa paikkaa elää. Kiitos kaikille! Tampereella 26.11.2000 Harri Kulmala Männikönkatu 3 A 16 33820 TAMPERE puh. 03-318 1117 harri@kulmala.net

Sisällysluettelo LUKU 1: JOHDANTO 9 1.1 TAVOITTEET 11 1.2 TUTKIMUKSEN LAAJUUS JA PERUSTA 11 1.3 SISÄLTÖ 12 LUKU 2: WAP ESITTELY - INTERNET JA LANGATTOMUUS YHDISTYY _ 13 2.1 MIKÄ ON WAP? 14 2.1.2 WAP-ohjelmointimalli 14 2.2 WAP-ARKKITEHTUURI 17 2.2.1 WAP-sovelluskerros 18 2.3 WAP-PROTOKOLLAT 19 2.3.1 WSP Wireless Session Protocol 20 2.3.2 WTP Wireless Transaction Protocol 21 2.3.3 WDP Wireless Datagram Protocol 21 2.4 MIKSI WAP? 22 LUKU 3: WAP:IN TIETOTURVA 26 3.1 TIETOTURVAN PERUSTEET 26 3.2 WAP-YMPÄRISTÖN TURVALLISUUS 31 3.2.1 Wireless Transport Layer tietoturvakerros 32 3.2.2 WIM - Wireless Identification Module 36 3.3 WAP:IN TIETOTURVA AUTOMAATIOSSA 37

LUKU 4: WAP-SOVELLUSTEN TOTEUTTAMINEN 45 4.1 WAP:IN TOIMINNALLISUUS 45 4.1.1 Kuljetustekniikat SMS, CSD ja GPRS 47 4.2 ERILAISIA TOTEUTTAMISTAPOJA 50 4.2.1 WML 50 4.2.2 WMLScript 51 4.2.3 Common Gateway Interface CGI 51 4.2.4 Java-servletit 53 4.3 WAP:IN MAHDOLLISUUDET AUTOMAATIOSSA 56 LUKU 5: WAP-SOVELLUKSIA AUTOMAATIOON 60 5.1 WAP-OPEROITAVA LEGO-ROBOTTI 60 5.2 WAP-OHJATTU LOGIIKKA 62 5.3 OPC-POHJAINEN WAP-SOVELLUS 65 5.4 HARVESTERIN ETÄKUNNOSSAPITO WAP:IN AVULLA 67 LUKU 6: YHTEENVETO 72

TAMPEREEN TEKNILLINEN KORKEAKOULU Automaatiotekniikan koulutusohjelma Automaatio- ja säätötekniikan laitos Kulmala, Harri: WAP-sovellusten suunnittelu ja toteutus automaatiossa Diplomityö, 78 s. Tarkastaja: Prof. Hannu Koivisto Rahoittaja: Automaatio- ja säätötekniikan laitos Automaatiotekniikan osasto Joulukuu 2000 Tiivistelmä Wireless Application Protocol (WAP) on kehitetty tuomaan internetistä tuttuja ominaisuuksia langattomiin päätelaitteisiin. WAP on kehitetty langattomien päätelaitteiden vaatimusten pohjalta, ja se pohjautuu olemassa olevaan WWWarkkitehtuuriin ja sen protokolliin. Tämä diplomityö esittelee WAP-protokollat ja arkkitehtuurin. Tämä työ pyrkii vastaamaan siihen miksi WAP:ia ylipäätään tarvitaan ja miksi se on kehitetty olemassa olevien ratkaisujen rinnalle. Tämä diplomityö on syntynyt yli vuoden kokemusten pohjalta siitä miten suunnitella ja toteuttaa WAP-ratkaisuja automaatioon. Työssä kerrotaan myös WAP-protokollan turvallisuudesta ja siitä miten erilaisia tietoturvaratkaisuja tulee toteuttaa sekä automaatiossa että muissa sovelluksissa. Työssä paneudutaan tietoturvallisuuteen niin protokolla- kuin laitteistotasollakin. Pääpaino turvallisuuden kehittämisessä on suunnattu teollisuuden tarpeisiin. Tässä työssä kerrotaan myös erilaisista kuljetustekniikoista, joita WAP-arkkitehtuuri voi hyödyntää. Lisäksi työssä käsitellään erilaisia sovellusten toteuttamistapoja ja kerrotaan WAP:in mahdollisuuksista automaatiossa. Viimeisenä esitellään Tampereen teknillisen korkeakoulun Automaatio- ja säätötekniikan laitoksella toteutettuja WAP-pohjaisia sovelluksia. Näiden sovellusten suunnittelussa esiin tulleet asiat ja niistä saadut tutkimustulokset ovat näyttäneet suuntaa tätä työtä tehdessä.

TAMPERE UNIVERSITY OF TECHNOLOGY Degree Program in Automation Engineering Automation and Control Institute (ACI) Kulmala Harri: Desing and Implementation of WAP Applications in Automation Master of Science Thesis, 78 p. Examiner: Prof. Hannu Koivisto Funding: Automation and Control Institute Automation Department December 2000 Abstract Wireless Application Protocol (WAP) is designed to bring the characteristics of the internet to wireless terminals. WAP is developed from the requirements of wireless terminals, and it s based on existing WWW architecture and protocols. This Master of Science Thesis presents the WAP protocols and architecture. This thesis gives answers why WAP is needed in general, and why it is developed. This thesis was born from the expertise gained from the designing and implementation work done in WAP-based automation over a year period. In this thesis there is also a study about security and safety of WAP protocol, and a study how to implement different security solutions in automation and as well as in other application areas. This thesis concentrates on security in protocol and hardware level, main emphasis is on the needs of industry. This thesis presents different bearers used in WAP architecture. In addition there is a study about different ways to implement WAP applications, and opportunities of WAP in automation. Finally this thesis presents some of the implemented WAP-based applications that were developed at Tampere University of Techology in Automation and Control Institute. The results of these applications have showed the way when writing this thesis.

Käytetyt lyhenteet CGI CORBA CSD DES DLL GW GPRS GSM KBPS HSCSD HST HTML HTTP IP IPSEC IDEA OPC OSI PGP PIN PC RFC RMI RSA RTT Server SHA SIM SSL SMS Common Gateway Interface Common Object Request Broker Architecture Circuit Switched Data Data Encryption Standard Dynamic Link Library Gateway=yhdyskäytävä General Package Radio Service Global System for Mobile Phones Kilobytes Per Second High-Speed Circuit Switched Data Henkilön sähköinen tunnistaminen Hyper-text Markup Language HyperText Transfer Protocol Internet Protocol Internet Protocol Security International Data Encyption Algorithm Ole Process for Control Open Systems Interconnection Pretty Good Privacy Personal Identification Number Personal Computer Request For Comments Remote Method Invocation Rivest-Shamir-Adelman Round Trip Time Palvelin; internet-mallissa tietoja säilyttävä ja jakava osapuoli Secure Hash Algoritm Subscriber Identification Module Secure Sockets Layer Short Message Service

SMSC TCP TLS TTKK UMTS URL VPN W3C WAE WAP WDP WIM WML WSP WTA WTLS WTP WWW XHTML XML SMS Controller Transmission Control Protocol Transport Layer Security Tampereen teknillinen korkeakoulu Universal Mobile Telecommunications System Uniform Resource Locator Virtual Private Network World Wide Web Consortium Wireless Application Environment Wireless Application Protocol Wireless Datagram Protocol Wireless Identification Module Wireless Markup Language Wireless Session Protocol Wireless Telephony Application Wireless Transport Layer Security Wireless Transaction Protocol World-Wide Web Extensible Hypertext Markup Language Extensible Markup Language

Luku 1 Johdanto Internetin käyttäjien lukumäärä on kasvanut tasaisesti viime vuosina. Kasvussa on ollut myös matkapuhelinten käyttäjien lukumäärä. Samalla kun puhelimet ovat muuttuneet langattomiksi on langattomalle internetille syntynyt selvä tilaus. Vuoden 2002 jälkeen maailmassa on ennustettu olevan miljardi matkapuhelinta (kuva 1.1 seuraavalla sivulla). Luku on suuri; se tarkoittaa yhtä kuudesosaa koko maailman nykyisestä väkiluvusta. Vuoden 2000 alussa internetin käyttäjiä International Telecommunication Unionin tekemän tutkimuksen mukaan oli maailmassa lähes 400 miljoonaa [10]. Matkapuhelimia oli kuitenkin jo noin 1.6 kertaa enemmän, ja on ennustettu, että vuoteen 2002 mennessä matkapuhelimien määrä on lähes kaksinkertainen tavallisiin internet-yhteyksiin verrattuna. Useimmissa puhelimissa on jo tuolloin internet-valmius. Se merkitsee internet-palvelujen voimakasta kasvua mobiiliverkoissa. Wireless Application Protocol (WAP) on kehitetty tästä tarpeesta luoda uusi yhdyskäytävä langattomaan internetiin. WAP yhdistää näitä kahta merkittävää elementtiä, internetiä ja langattomuutta. 9

Johdanto 10 1000 800 milj. 600 400 matkapuh. lkm. PC lkm. Internet käytt. lkm. 200 0 1995 1996 1997 1998 1999 2000 2001 2002 Kuva 1.1 Matkapuhelimen lukumäärän kehitys [10]. WAP vaikuttaa matkapuhelimien ominaisuuksiin yhtä merkittävästi kuin WWW (World Wide Web) tietokoneiden. Dokumentit ympäri maailman ovat kaikkien saatavissa nyt matkapuhelimessa. Jo nyt voit ottaa WAP-puhelimesi mukaan, mihin ikinä oletkin menossa. Aamulla voit tarkistaa lähteekö lentosi aikataulun mukaisesti, ja matkalla lentokentälle voit lukea matkapuhelimella sähköpostisi ja vastata niihin. Määränpäässä WAP-puhelimesi saattaa ilmoittaa sinulle, että olet jättänyt kotona keittolevyn päälle ja olisi parempi sammuttaa se. Voit myös tarkkailla talosi lämpötilaa ja muuttaa sitä tarvittaessa jos haluat. Saatat saada puhelimeesi kiireellisiä viestejä yhtiösi internetpalvelimelta, ja voit joutua tarkkailemaan jonkun voimalaitoksen automaatiojärjestelmää tai jopa diagnosoimaan toisella puolen maapalloa sijaitsevia kenttälaitteita. Viime aikoina automaation tutkimusta on yhä enemmän suunnattu moderneja tietoverkkoja hyödyntävien automaatioratkaisujen soveltamiseen ja kehittämiseen. Hajautettuja tietoverkkoja hyödyntävä prosessiautomaatio on ollut todellisuutta jo jonkin aikaa. WWW-selainta käyttävät sovellukset integroivat koko tehtaan tuotannon- ja prosessinohjausjärjestelmän yhden käyttäjän ulottuville. Myös prosessien todellista etäkäyttö- ja etäsäätösovelluksia kehitetään voimakkaasti. Myös kodin laitteissa tietoverkot, automaatio ja langattomuus lisääntyvät jatkuvasti. Wireless Application Protocol on yksi vastaus näihin tarpeisiin; se tuo langattomuuden ja liikkuvuuden kaikenlaisiin internet-sovelluksiin.

Johdanto 11 1.1 Tavoitteet Tämän diplomityön tavoitteena on tutkia WAP-sovellusten suunnittelua ja toteuttamista automaatiossa. Tarkoituksena on esitellä erilaisia tapoja kehittää ja toteuttaa sovelluksia sekä tutkia WAP-arkkitehtuurin tietoturvaa ja yleistä luotettavuutta automaation näkökulmasta. Olen halunnut tehdä tästä diplomityöstä yksinkertaisen hakuteoksen automaatiosovelluksien suunnittelua varten ja samalla mahdollisimman kattavan teoksen WAP-arkkitehtuurin käytöstä automaatiossa. 1.2 Tutkimuksen laajuus ja perusta Tämän diplomityön perustava tutkimus sai alkunsa keväällä vuonna 1999, jolloin aloitin tutkimaan uutta langatonta protokollaa WAP:ia. Alussa tutkimus nivoutui yhteen automaation etäteknologioiden tutkimuksen kanssa. Ensimmäinen WAP-demonstraatio toteutettiin jo toukokuussa 1999. Se pohjautui Tommi Kylä-Kailan diplomityössä esitettyyn legorobotin etäohjaukseen [16]. Kesän 1999 aikana WAP standardista julkaistiin versio 1.1, ja syksyllä WAP:ista oli tullut jo paljon puhuttu, mutta silti huonosti ymmärretty ilmiö. Syksyllä tutkimusryhmämme toteutti WAP-protokollan avulla Internetistä logiikkaliitynnän prosessiin. Tämä langaton pilottimme esiteltiin Helsingissä Automaatiomessuilla '99 (14-16.9). Se oli ehkä maailman ensimmäinen interaktiivinen ja liikkuva WAP:illa toteutettu prosessisovellus. Vuoden 1999 tutkimustuloksia esiteltiin IASTED:in konferenssissa vuoden 2000 helmikuussa [15]. Vuoden 2000 alussa toteutimme OPC-pohjaisen WAP-ratkaisun ABB:lle, josta joitakin tutkimustuloksia on esitetty IEEE:n konferenssissa ja on saatavissa lähteestä [13]. Kesään 2000 mennessä yhä useammat yritykset ja palveluntarjoajat ovat tehneet WAP-sovelluksia erilaisiin tarpeisiin. WAP:in uutuuden viehätys on muuttunut todelliseksi sovelluskehitykseksi. Viimeisimmät Automaatio- ja säätötekniikan laitoksen WAP-tutkimukset liittyvät yhä useampiin meneillään oleviin projekteihin. Tekesin (Teknologian kehittämiskeskus) rahoittama projekti alkoi keväällä 2000, jossa yhtenä osaprojektina toteutetaan etäkunnossapitosovellusta.

Johdanto 12 1.3 Sisältö Luvussa kaksi esitellään yleisesti Wireless Application Protocol -standardin (WAP) perusidea, -arkkitehtuuri ja protokollapinon erilaiset tehtävät. Luvussa kolme esitellään turvallisuusnäkökulmia; tietoturvan perusteita sekä WAP:in turvallisuutta myös automaation kannalta. Neljännessä luvussa kerrotaan yleisesti miten WAP-sovelluksia kannattaa toteuttaa. Luvussa esitellään WAP:in toiminnallisuutta, eri kuljetustekniikoita ja erilaisia toteuttamistapoja. Luvun lopussa esitellään WAP:in mahdollisuuksia automaatiossa. Luvussa viisi on esitelty erilaisia automaatiosovelluksia, joita Automaatioja säätötekniikan laitos on toteuttanut vuosien 1999-2000 aikana. Viimeisenä on yhteenveto tästä diplomityöstä.

Luku 2 WAP esittely - internet ja langattomuus yhdistyy Tämän päivän langattomat verkot eivät usein takaa lisäarvopalvelujen vaativaa joustavuutta. Tämän takia on suhteellisen vaikeaa ja aikaa vievää tuoda uusia palveluja langattomaan verkkoon. Wireless Application Protocol (WAP) huomioi nämä seikat esittelemällä internetin langattomien palveluiden alustana. Internetin on todettu olevan helppo ja tehokas tapa toimittaa kaikenlaisia palveluja "langallisten" laitteiden käyttäjille. Vuonna 1997 Ericsson, Motorola, Nokia ja Unwired Planet perustivat WAP Forumin, jonka tehtävä oli tuoda internet myös langattomiin laitteisiin. WAP Forum on saanut suurta huomiota langattomassa teollisuudessa ympäri maailman. Kesäkuuhun 2000 mennessä yli 200 yritystä oli liittynyt WAP Forumin jäseneksi Tässä luvussa esitellään yleisesti WAP:in perusideaa ja käsitellään WAP:in ohjelmointimallia. Luvussa vastataan kysymyksiin: "Mikä on WAP ja miksi sitä käytetään?". Luvussa esitellään myös WAP-arkkitehtuuri ja protokollapinon erilaiset 13

WAP esittely 14 tehtävät. Luku keskittyy pääosin WAP-standardin versioon 1.1, joka julkaistiin WAP Forumissa kesäkuussa 1999. 2.1 Mikä on WAP? WAP:in perusidea on tuoda samat palvelut, joita käytetään internetissä myös matkapuhelimiin. WAP:ia voidaan kuvailla karkeasti joukoksi protokollia, jotka ovat perineet toiminnallisuutensa ja ominaisuutensa olemassa olevista internet-standardeista, ja joukoksi standardeja, joita on ollut kehittämässä useat maailman suurimmat langattoman teollisuuden yritykset. WAP on siis rinnastettavissa matkapuhelimien WWW:hen. WAPstandardi on laaja; se määrittelee niin sovellusympäristön sekä kommunikointiprotokollan että sovelluskerroksen palvelut, kuten merkkikielen [46] ja skriptikielen [47]. WAPstandardi on tehty matkapuhelimien rajoitukset huomioon ottaen: pienet näytöt, hidas tiedonsiirto ja rajalliset syöttömahdollisuudet (ei näppäimistöä tai hiirtä). WAP Forum Kesäkuun 26.päivänä vuonna 1997 Ericsson, Motorola, Nokia ja Unwired Planet tekivät aloitteen standardista, joka toisi kehittyneet internet-palvelut langattomaan maailmaan. WAP Forum [42] perustettiin virallisesti joulukuussa 1997. Huhtikuusta 1998 lähtien, WAP 1.0 spesifikaation julkaisun jälkeen, WAP Forum on ollut avoin kaikille. Nykyään WAP Forumissa on jäsenenä yli 200 yritystä. 2.1.2 WAP-ohjelmointimalli WAP:in ohjelmointimalli perustuu WWW:n ohjelmointimalliin. WWW-standardin mukaiset URL-osoitteet ovat käytössä myös WAP-arkkitehtuurissa. Tärkein elementti WAP-standardissa on WAP-yhdyskäytävä, joka erottaa sen tavallisesta WWW:stä. Yhdyskäytävä sijaitsee langattoman verkon ja tietokoneverkon (Internet) välissä. Yhdyskäytävä ohjaa pyynnöt päätelaitteelta (asiakas) sovelluspalvelimelle, jotka tarjoavat tiettyjä sovelluksia. Yhdyskäytävän tehtävä on myös muuntaa päätelaitteen (esim. WAP-

WAP esittely 15 puhelin) pyynnöt WAP-protokollasta muiksi perinteisiksi protokolliksi kuten WWW:ssä käytetyiksi HTTP-, SSL ja TCP/IP-protokolliksi. Kuvassa 2.1 esitetään WAP:in ohjelmointimalli. WAP protokollat Internet protokollat ASIAKAS YHDYSKÄYTÄVÄ PALVELIN binäärinen pyyntö langaton verkko pyyntö Internet Internet binäärinen vastaus vastaus (sisältö) Kuva 2.1 WAP-malli. Sisäiseltä olemukseltaan WAP tarkoittaa langatonta HTTP:tä; sovelluspalvelin tuottaa Wireless Markup Language (WML)-sivuja (HTML-sivujen sijaan), jotka muutetaan binääriseen muotoon WAP-yhdyskäytävässä. WML-sivut koostuvat pakasta ja korteista. Periaate on, että päätelaitteelle ladataan yksi pakka, jossa voi olla useampia kortteja (kts. kuva 2.2). Tarkka kuvaus WML:stä löytyy lähteestä [46], ja lisää WML-sivujen rakenteesta kerrotaan tämän diplomityön kappaleessa 4.2. kortti kortti kortti kortti pakka Kuva 2.2 WML:n "pakka-kortti" periaate.

WAP esittely 16 Esimerkki yksinkertaisesta WML-sivusta: <wml> <card id="kortti1"> <p> <do type="accept"> <go href="#kortti2"/> </do> Hei maailma, täältä tullaan! Tämä on ensimmäinen kortti... </p> </card> <card id="kortti2"> <p> Tämä on toinen kortti. </p> </card> </wml> Yksinkertainen WAP-sovellus koostuu asiakassovelluksesta (WML tai WMLScriptsivuista), jonka yhdyskäytävä lataa sovelluspalvelimelta ja lähettää sen päätelaitteelle suoritettavaksi. Monimutkaisemmat ja tehokkaammat sovellukset tehdään palvelinpuolen ohjelmoinnilla, kuten CGI-scriptillä, servleteillä jne. Varsinainen sovellus voi sijaita myös yhdyskäytävässä, mutta jos sovelluksen sisältö kuitenkin ladataan yhdyskäytävän kautta erilliseltä internet-palvelimelta, niin malli toimii seuraavasti: 1. Päätelaite lähettää URL-pyynnön WAP-yhdyskäytävään käyttäen WAPprotokollaa. 2. WAP-yhdyskäytävä generoi HTTP-pyynnön määriteltyyn URL-osoitteeseen ja lähettää sen internet-palvelimelle. 3. Palvelin palauttaa WML-pakan lisättynä HTTP-otsikolla tai WML-tietoa CGI- tai jostain muusta skriptisovelluksesta. 4. WAP-yhdyskäytävä tarkistaa HTTP-otsikkotiedot sekä WML-tiedon ja muuttaa sen binääriseksi. Tämän jälkeen yhdyskäytävä lähettää tiedot päätelaitteelle WAPmuodossa. 5. Päätelaite vastaanottaa WAP-sanoman, jäsentää WML-tiedot ja näyttää ensimmäisen kortin WML-pakasta käyttäjälle. WAP-arkkitehtuurissa WAP-päätelaite ei siis voi muodostaa yhteyttä suoraan olemassa oleviin WWW-palveluihin, vaan välissä tarvitaan protokollamuutoksen tekevä WAPyhdyskäytävä. On kuitenkin syytä huomata, että fyysisesti WAP-yhdyskäytävä voi sijaita

WAP esittely 17 niin operaattorin, internet-palveluntarjoajan että yrityksen omassa hallussa, ja että palveluja tarjoavan yrityksen tulee myös ymmärtää näiden arkkitehtuurivaihtoehtojen eroavaisuudet. Käyttäjän näkökulmasta katsottuna WAP tarjoaa samankaltaisen dynaamisen käyttöliittymän matkapuhelimeen kuin internet-selain pöytäkoneeseen. 2.2 WAP-arkkitehtuuri Tässä kappaleessa esitellään lyhyesti WAP-arkkitehtuuria, seuraavassa kappaleessa kerrotaan tarkemmin protokollista. Kuvaukset eivät ole täydellisiä, ne ovat lähinnä WAP:in tärkeimpien ominaisuuksien ääriviivoja. Tarkemmat kuvaukset löytyvät WAParkkitehtuurin spesifikaatiosta [41]. WAP määrittelee erilaisia tehtäviä varten erikoistuneiden kerrosten muodostaman protokollapinon (kuva 2.3), jota kaikki WAP-laitteet tukevat. WAP on suunniteltu kerrokselliseksi ollakseen helposti laajennettava, joustava ja skaalautuva. WAP-standardi määrittelee niin sisältöformaatit, yhteyskäytännöt, tietoturvakäytännöt kuin tiedon siirtämiseen langattomissa verkoissa liittyviä seikkoja. Tämän lisäksi WAP Forum määrittelee jatkuvasti uusia ratkaisuja, joilla voidaan esimerkiksi ratkaista langattomilla laitteilla tapahtuvaan elektroniseen kaupankäyntiin liittyviä kysymyksiä, kuten asiakkaiden tunnistus luotettavasti ja miten varmistaa digitaalinen allekirjoitus. WAP-protokollapinossa on paljon samaa kuin internetin käytössä olevassa mallissa. Esimerkiksi WAP-sivujen luontiin käytettävä WML-kieli, joka on varsinaisesti määritelty XML-dokumenttityyppinä (Extensible Markup Language) [52] on hyvin samanlainen kuin WWW:ssä käytetty HTML. Vastaavasti WMLScript pohjautuu JavaScriptiin. Kuvassa 2.3 esitetään WAP-protokollapino. Siitä käy ilmi myös kuinka se liittyy internetissä käytettyihin protokolliin. Kuljetustekniikat eivät kuulu varsinaiseen WAPprotokollapinoon, niistä kerrotaan tarkemmin luvussa 4.1.

WAP esittely 18 sovelluskerros (WAE) HTML istuntokerros (WSP) tapahtumakerros (WTP) tietoturvakerros (WTLS) kuljetuskerros (WDP) kuljetustekniikat HTTP TLS-SSL TCP/IP Kuva 2.3 WAP-protokollapino verrattuna Internetin pinoon. 2.2.1 WAP-sovelluskerros WAP-protokollan ylin kerros, sovelluskerros (WAE-Wireless Application Environment) [40] tarjoaa ympäristön laajalle valikoimalle langattomissa laitteissa käytettäviä sovelluksia. WAE määrittelee mm. WML:n, WMLScriptin ja Wireless Telephony Application (WTA, WTAI)-ympäristön. Jotta edellä kuvatut ominaisuudet toimivat, WAP olettaa että kaksi käyttäjäagenttia ovat käytettävissä langattomassa laitteessa; WMLkäyttäjäagentti ja WTA-käyttäjäagentti. Käyttäjäagentti tässä asiayhteydessä tarkoittaa laitteen sisässä olevaa sovellusta, joka tulkkaa sisältöä hyvin määritellyllä tavalla ja on käyttäjän kanssa vuorovaikutuksessa [1]. Langallisessa maailmassa käyttäjäagentti yleensä ymmärretään selaimena; esim. Microsoft Internet Exploreria ja Netscape Navigatoria käytetään pöytäkoneissa. WML-käyttäjäagentti ei vain pelkästään tulkkaa WML:ää, vaan myös WMLScriptiä jne. Tämä käyttäjäagentti, toisin kuin WTA-käyttäjäagentti, ei pysty käsittelemään puhelinsovelluksia.

WAP esittely 19 WTA - Wireless Telephony Applications Wireless Telephony Application ympäristö [49] tarjoaa keinoja rakentaa puhelinpalveluita WAP:ia käyttämällä. WTA-käyttäjäagentti perustuu WMLkäyttäjäagenttiin; siihen on lisätty toiminnallisuuksia, jotka vastaavat puhelinpalveluiden tarpeita. 2.3 WAP-protokollat WAP-protokollaryhmä koostuu kolmesta protokollasta (WSP, WTP ja WDP) ja yhdestä valinnaisesta protokollasta (WTLS esitellään luvussa 3.2.1). Nämä protokollat ovat mallinnettu olemassa olevien internet-protokollien pohjalta, ja niitä voidaan käyttää neljällä erilaisella konfiguraatiolla: Yhteydetön tila Tämä konfiguraatio käyttää ainoastaan WSP:tä WDP:n päällä. Se tarjoaa palveluita, joita ei kuitata vastaanotetuiksi. Tila tarkoittaa yksinkertaista "lähetä ja unohda"-mallia. Yhteydetön ja turvallinen tila Yllä kerrotun lisäksi tämä konfiguraatio käyttää WTLS:ää mm. autentikointiin ja tietojen salaamiseen. Yhteydellinen tila Tämä yhteysmalli käyttää WTP:tä WSP:n ja WDP:n lisäksi. WTP tarjoaa luotettavaa tiedonsiirtoa, jossa kaikki paketit kuitataan vastaanotetuiksi. Konfiguraatio käyttää lisäksi WSP:tä hoitamaan pitkiä yhteyksiä. Yhteydellinen ja turvallinen tila Yllä kerrotun lisäksi tämä konfiguraatio käyttää WTLS:ää mm. autentikointiin ja tietojen salaamiseen.

WAP esittely 20 2.3.1 WSP Wireless Session Protocol WSP [48] on rajapinta WAE:n ja muun protokollapinon välillä. WSP on HTTP 1.1:n binäärinen versio, johon on lisätty mm. seuraavia ominaisuuksia kyvykkyysneuvottelu, otsikkotietojen varastointi, pitkäaikaiset yhteydet ja push. Kaksi olennaisinta protokollapinokonfiguraatiota (yhteydellinen ja yhteydetön) on nimetty istuntokerroksen (WSP) tarjoamien palvelujen mukaan. Yhteydetön tila on pohjimmiltaan ohut kerros, jota WAE pystyy käyttämään kun ei tarvita luotettavaa tiedonsiirtoa. WSP:n yhteydellisen tilan pääasiallinen toiminnallisuus on perustaa yhteys (istunto) asiakkaan ja WAP-yhdyskäytävän kanssa. Tämä istunto käsittelee kyvykkyysneuvottelun yhteyden alussa ja kuljetustekniikan valinnan vikatilanteissa. Istunnon otetaan olevan pitkäaikainen ja se voidaan tilapäisesti keskeyttää ja myöhemmin jatkaa ilman että yhteys täytyisi perustaa uudelleen. Tämä tarkoittaa sitä, että yhteyden jatkuessa ei tarvita uusia neuvotteluja laitteiden kyvykkyydestä keskustella keskenään; tämä vähentää luonnollisesti liikennettä. WSP tukee myös otsikkotietojen varastointia vähentääkseen kuljetustekniikoiden käyttöä. Esimerkiksi HTTP:ssä, joka ei tue tätä ominaisuutta, noin 90% pyynnöistä sisältää staattisia otsikkotietoja, joita joudutaan lähettämään yhä uudelleen ja uudelleen [1]. PUSH-tekniikka WAP esittelee versiossa 1.2 uuden tavan tiedonsiirtoon ilman käyttäjän vuorovaikutusta (ns. push-tekniikka [26]). Tavallisessa asiakas/palvelin mallissa asiakas pyytää palveluja tai tietoja palvelimelta, joka vastaa lähettämällä pyydetyt tiedot asiakkaalle. Tämä tekniikka on nimeltään pull (vetää); mallissa asiakas vetää tiedon palvelimelta (kuva 2.4). Hyvänä esimerkkinä voidaan pitää perinteistä WWW-sivujen selailua. Tämän vastakohta on tekniikka nimeltä push (työntää), joka perustuu myös asiakas/palvelinmalliin, mutta siitä puuttuu tiedonsiirron käynnistävä eksplisiittinen kutsu asiakkaalta.

WAP esittely 21 PUSH PULL asiakas palvelin Kuva 2.4 Pull- ja push-tekniikoiden vertailu. 2.3.2 WTP Wireless Transaction Protocol WTP [51] on vastuussa lähetetyistä ja vastaanotetuista paketeista. Se tarjoaa luotettavaa tiedonsiirtoa. Paketit tunnistetaan yksilöllisesti; samaa pakettia ei hyväksytä toista kertaa, ja puuttuneet paketit pyydetään lähettämään uudelleen. WTP on analoginen TCP:n [29] kanssa WTP on sovitettu langattomien kuljetustekniikoiden rajoituksiin siten, että se minimoi protokollien käyttöä. Esimerkiksi WTP minimoi uudelleenlähettämisen tarvetta mm. ketjuttamalla viestejä ja kuittaamalla vastaanotettuja paketteja. WSP ja WTP on mallinnettu yhdessä siten, että erilaisilla WSP:n ominaisuuksilla on johdonmukaiset ja hyvin määritellyt käyttötarkoitukset WTP:ssä. 2.3.3 WDP Wireless Datagram Protocol WAP-protokollapinon alimmaisena on kuljetuskerros WDP [44], joka tarjoaa yhtenäisen rajapinnan pinon ylemmille kerroksille. Jos WAP:ia käytetään UDP:n (User Datagram Protocol [28]) päällä, WDP-kerrosta ei tarvita. Muilla kuljetustekniikoilla, kuten esimerkiksi lyhytsanomatekniikka [32], kuljetuskerroksen palvelun tarjoaa WDP.

WAP esittely 22 WDP:tä voidaan myös laajentaa valinnaisella virheenkäsittelyprotokollalla WCMP (Wireless Control Message Protocol [43]) Tätä protokollaa voidaan käyttää kun WAP:ia ei käytetä IP-kuljetustekniikoilla. WCMP:tä käytetään myös sisäiseen tiedonkeräämiseen ja diagnostikkaan. 2.4 Miksi WAP? Miksi WAP ei käytä olemassa olevia internet-standardeja, vaan on kehittänyt niiden rinnalle omat standardit kuitenkaan tarjoamatta mitään selvästi uutta olemassa oleviin palveluihin? Vastaus on yksinkertaisempi mitä voisi luulla Matkapuhelin ei vedä vertoja pöytäkoneelle, eikä langaton verkko pysty kilpailemaan langallisen verkon kanssa. WAP puuttuu tähän asiaan mitoittamalla langattoman internetin ja verkon rajoitukset. Molemmat sekä tietoliikenneverkon että päätelaitteen rajoitukset otetaan huomioon. Langattoman verkon rajoitukset WAP toimii useissa erilaisissa verkoissa ja monilla erilaisilla kuljetustekniikoilla. WAP on suunniteltu siten, että sillä voi ottaa yhteyden internetiin niin yksinkertaisilla lyhytsanomilla (SMS) kuin nopeilla pakettikytkentäisillä verkoilla, kuten GPRS (General Packet Radio Service [6]). Kun käytetään langattomia siirtotekniikoita matalalalla kaistanleveydellä, huono suorituskyky näkyy erityisesti silloin kun käyttäjä ei ole täysin tietoinen mitä palveluja hän käyttää. Tämä siksi, että langattomien palvelujen ei tulisi käyttää paljoa kaistaa jotta ne sopisivat langattomiin laitteisiin. Suuri osa markkinoista sekä useat käyttäjät eivät tiedosta tätä ongelmaa. Toisaalta käyttäjällä tulisi olla käytössään aina mahdollisimman hyvät yhteydet ja tekniikat, riippumatta siitä tietääkö käyttäjä mitä palvelua kulloinkin käyttää.

WAP esittely 23 WAP lähestyy tätä ongelmaa minimoimalla liikennettä ilma-rajapinnassa. WML ja WMLScript koodataan binäärisiksi kompaktiin muotoon, jotta ilmassa matkaavat bitit ja tavut saadaan minimoitua. Esimerkiksi HTTP:ssä tieto lähetetään sellaisenaan ilman koodausta. Tällainen tapa ei sovellu langattomaan verkkoon. WSP, WAP:in vastine HTTP:lle on siksi myös binäärinen. Lisäksi se tukee pitkäaikaisia yhteyksiä, joita voidaan keskeyttää ja jatkaa ilman uutta alkuneuvottelua, sekä otsikkotietojen varastoimista; säästämällä kallisarvoista kaistanleveyttä. WTP, joka on analoginen internetin TCP:n kanssa, on suunniteltu minimoimaan liikkuvan tiedon ja transaktioiden määrää. Langattomien verkkojen viiveet ovat huomattavasti pitempiä kuin langallisten verkkojen. Tämä rajoitus liittyy kaikkiin tämän päivän langattomiin verkkoihin, jopa suurta kaistanlevyttä tarjoaviin. Tätä ongelmaa WAP:issa lähestytään minimoimalla langattomien laitteiden ja langattoman verkon välistä edestakaista viivettä. Myös tahdistamatonta pyyntö/vastaus-mallia käytetään. Langattomat verkot eivät tarjoa samanlaista luotettavaa yhteyttä verkkoon kuin langalliset yhteydet, vaan langattomien verkkojen kuljetustekniikat voivat olla tilapäisesti käyttämättömissä häipymisestä, verkon peiton häviöstä tai vajavaisesta kapasiteetista johtuen. Yhteydet saadaan stabiileiksi WAP:issa WSP:llä; se sallii kadonneiden yhteyksien jatkamisen, jopa dynaamisilla IP-numeroilla. Siirtokerros (WTP) on paljon yksinkertaisempi TCP:hen verrattuna. Langattoman yhteyden luonteeseen kuuluu, että joitakin viestin pieniä segmenttejä katoaa tiedonsiirrossa. WTP:ssä vain kadonneet segmentit lähetetään uudelleen, ei koko viestiä kuten TCP:ssä. Kuten siis edellä on mainittu, olemassa olevat Internet-standardit kuten TCP, HTTP, HTML ja TLS ovat langattomaan tiedonsiirtoon liian raskaita ja tehottomia. Ne vaativat yhteyden aikana lähetettäväksi suuria määriä lähinnä tekstimuotoista tietoa. TCP ja HTTP eivät sovellu ajoittaiseen ja viiveiseen tiedonsiirtoon. Matkapuhelinten rajoitettu kaistanleveys ei sovellu sekään toimimaan HTTP:llä eikä TCP:llä. HTTP:ssä otsikkokentät ja data lähetetään tehottomasti tekstimuotoisena sen sijaan että se

WAP esittely 24 koodattaisiin binääriseksi. Näitä olemassa olevia protokollia käyttävät langattomat laitteet ovat usein kalliita, hitaita ja vaikeita käyttää. Langattomien päätelaitteiden rajoitukset WAP on tarkoitettu toimimaan monenlaisissa kannettavissa, kädessä pidettävissä laitteissa. Samat palvelut tulisi olla saatavissa sekä kämmenmikrossa että pienessä matkapuhelimessa. Kuvasta 2.5 näemme päätelaitteen pullonkaulat, joita käsitellään lyhyesti seuraavaksi. kaistanleveys näyttö muisti + akku näppäimistö Kuva 2.5 Päälaitteen rajoitukset. Kun käytämme internet-palveluja pöytätietokoneella, näytön koko ei rajoita käyttömukavuutta. Suurimmassa osassa langattomia laitteita on pienet näytöt, kuten esimerkiksi korkean mobilitettiasteen mahdollistavissa matkapuhelimissa. Olivatpa nämä matkapuhelimien näytöt sitten niin hyvälaatuisia kuin tulevaisuudessa on mahdollista, niin käyttäjän käden koko tulee aina rajoittamaan matkapuhelimen näytön kokoa. Matkapuhelimissa ei voida luonnollisesti näyttää samaa määrää informaatiota kuten esimerkiksi pöytäkoneissa. Sen sijaan että matkapuhelimissa käytettäisiin HTML:ää, on WAP-standardiin valittu WML-sivunkuvauskieli, joka strukturoi dokumentit pakoiksi ja korteiksi. Käyttäjälle yksi kortti on kerrallaan näkyvissä oleva dokumentti, joka voi olla esimerkiksi pelkkää tekstiä,

WAP esittely 25 valintalista, syöttökenttä tai näiden yhdistelmä. Kortissa on yleensä niin vähän tietoa, että se näkyy pienelläkin näytöllä vähällä vierittämisellä. Langattomissa laitteissa ei yleensä ole samanlaisia syöttömahdollisuuksia kuin langallisissa laitteissa; niistä puuttuu "QWERTY"-näppäimistö eikä niissä ole hiirtä. WML korjaa myöskin tätä asiaa. Pakkojen ja korttien käyttö vaatii vain vähän sivun sisällä tapahtuvaa navigointia, koska käyttäjä käy läpi korttisarjoja sen sijaan että hänen täytyisi vierittää isoa sivua ylös ja alas tai sivulle. Langattomissa laitteissa ei ole käytettävissä suuria määriä muistia tai laskentakapasiteettia verrattuna pöytäkoneisiin. Vaikka tulevaisuudessa langattomiin laitteisiin on saatavissa enemmän muistia ja laskentatehoa, niin olennainen ero pöytäkoneiden ja langattomien laitteiden välillä säilynee. WAP lähestyy tätä rajoitusta määrittelemällä kevyen protokollapinon, joka sopii hyvin langattomiin käyttötarkoituksiin. Suurin kompastuskivi langattomassa tiedonsiirrossa on tällä hetkellä laitteiden valmiusaika; akun teho rajoittaa käyttöä. WAP:issa akun kulutusta on laskettu minimoimalla kaistanleveyttä pitämällä kuljetustekniikoiden käyttö mahdollisimman pienenä.

Luku 3 WAP:in tietoturva Tässä luvussa kerrotaan tietoturvan perusteista sekä langattoman internetin turvallisuudesta. Luvussa keskitytään WAP:in turvallisuuteen ja sen tapaan toteuttaa tietoturvaan liittyviä asioita. Tässä luvussa tutkitaan myös tarkemmin Wireless Transport Layerin (WTLS) toimintamekanismia, joka mahdollistaa turvallisen ja varmistetun ympäristön langattomalle internetille. Lopuksi tarkastellaan turvallisuutta myös automaation kannalta ja siitä miten se automaatiosovelluksissa kannattaa toteuttaa. 3.1 Tietoturvan perusteet Turvallisuus tai turvattomuus syntyy ympäröivien uhkien ja riskien sekä niitä vastaan suunnattujen toimien yhteisvaikutuksesta [19]. Garfinkel ja Spafford [4] määrittelevät tietoverkkojen tietoturvan olevan joukko prosesseja, käytäntöjä ja tekniikoita jotka suojelevat palvelimia, käyttäjiä ja heitä ympäröiviä organisaatioita. Turvallisuus suojelee käyttäjää tietokoneen tai tietoverkon odottamattomalta käytökseltä. Tämän päivän tietoturvaratkaisut internetissä pitävät arkaluontoisen ja salaisen tiedon ulottumattomissa henkilöiltä, joilla ei tulisi olla pääsyä siihen. Jotta tietoturva toteutuisi, pitäisi ainakin seuraavaksi lueteltujen (pääsynvalvonta, eheys, aitous ja luottamuksellisuus) asioiden olla 26

WAP:in tietoturva 27 kunnossa. Koska mitään oikeaa listaa näistä asioista ei ole olemassa, määritelmät on kerätty eri lähteistä: [27], [37]. Pääsynvalvonta Pääsynvalvonta tarkoittaa yksityisyyttä eli sitä, että vain lähettäjä ja salatun viestin määrätty vastaanottaja voivat lukea viestin sisältöä. Tietoturvasovelluksen täytyy varmistaa, että asiattomilla henkilöillä ei ole oikeutta käyttää tai katsella internetissä liikkuvaa yksityistä tietoa, kuten osoitteita, luottokorttitietoja ja puhelinnumeroita. Eheys Eheys tarkoittaa tiedon oikeellisuutta. Eheys takaa sen, että viesti saapuessaan vastaanottajalle on täysin muuttumaton. Esimerkiksi internetin välityksellä tapahtuvassa pankkisiirrossa summat eivät saa muuttua. Jos näin tapahtuu, pyydetään yleensä lähettämään tieto uudelleen. Aitous autentikointi Aitous takaa sen, että kommunikaation osapuolet ovat keitä he väittävät olevansa. Autentikointi tarkoittaa osapuolen tunnistusta eli sitä, että tiedetään kuka on kommunikoiva osapuoli. Palvelin-autentikointi antaa käyttäjille mahdollisuuden todentaa, että he todella kommunikoivat juuri sen palvelimen kanssa johon he ovat ottaneet yhteyden. Asiakas-autentikointi takaa sen, että käyttäjä on se miksi hän itseään väittää. Kolmannen osapuolen varmentaman tunnistuksen ja autentikoinnin merkitys kasvaa ja se tulee olemaan ensiarvoisen tärkeää lähitulevaisuudessa. Luottamuksellisuus Tiedon luottamuksellisuus taataan yleensä jonkinlaisella allekirjoituksella. Jos autentikointi on onnistunut, voidaan myös taata että tieto on aitoa. Luottamuksellisuudella tarkoitetaan myös sitä, että tiedot ja järjestelmät ovat vain niiden käyttöön oikeutettujen

WAP:in tietoturva 28 käytettävissä ja sitä, että tietoja ei paljasteta sivullisille eikä heille anneta mahdollisuutta muuttaa tai tuhota tietoja. Nämä neljä erilaista tietoturvan muotoa ovat hyvin samanlaisia ja ne täydentävät toisiaan. Mikään sovellus ei ole täysin turvallinen ilman että kaikki edellä mainitut asiat olisivat kunnossa. Näitä tietoliikenteen turvaamiseen liittyviä asioita voidaan internetissä toteuttaa eri kerroksilla (kuva 3.1). Verkkokerroksella suojaamatonta TCP/IP-liikennettä turvataan suojatussa kanavassa (IPSEC ja Virtual Private Network [14] (VPN)). Kuljetuskerroksella käytetään SSL:ää [35] (Secure Socket Layer) tai TSL:ää [30] (Transport Layer Security), ja sovelluskerroksella esimerkiksi PGP:tä tai muuta vastaavaa tekniikkaa. HTTP FTP SMTP HTTP FTP SMTP SSL/TLS PGP, S/MIME, SET... HTTP FTP SMTP TCP IP/IPSec TCP IP TCP IP a) Verkkokerros b) Kuljetuskerros c) Sovelluskerros Kuva 3.1 TCP/IP-liikenteen turvaaminen eri kerroksilla WAP:issa tietoturva toteutetaan ilmarajapinnassa kuljetuskerroksen palveluilla. Sovellusja verkkokerroksen palveluita käytetään täydentämään tietoturvaa. Seuraavaksi käsitelläänkin SSL:n turvalliseen tiedonsiirtoon tarjoamia tekniikoita kuljetuskerroksella. Luvussa 3.2 kerrotaan WAP:in tavasta toteuttaa näitä samoja asioita, ja verkko- sekä sovelluskerroksen tekniikoista kerrotaan tarkemmin seuraavassa alaluvussa. Julkisen avaimen salaus Julkisen avaimen salaus on yksi SSL:n avainkomponenteista. Se käyttää avainpareja ja matemaattisia algoritmeja konvertoidakseen tekstiä salatuksi ja toisinpäin. Avainpari koostuu rekisteröidystä julkisesta avaimesta ja yksityisestä avaimesta, jonka käyttäjä pitää itsellään piilotettuna. Viesti, joka on salattu julkisella avaimella, voidaan avata vain

WAP:in tietoturva 29 yksityisellä avaimella. Kuten myös viesti, joka on salattu yksityisellä avaimella, voidaan avata vain julkisella avaimella [37, s 62-72]. Julkisen avaimen salaus käyttää kehittyneitä algoritmeja tiedon salaamiseen, ja siksi se on hyvin hidas ja raskas käyttää suurilla määrillä tietoa. Nopeampia symmetrisen avaimen salausalgoritmeja (lohko- ja vuosalaus) käytetään suurten määrien salaamiseen. Lohko-ja vuosalausalgoritmit käyttävät jaettua salaista avainta yhteyksien välillä tärkeimpien viestien salaamiseen internetissä. Nämä algoritmit ovat hankalia purkaa, koska jaettu salainen avain koostuu useasta bitistä. [36, s. 163-206]. SSL käyttää julkisen avaimen salausta, symmetrisiä avaimen salausalgoritmeja ja jaetun salaisen avaimen vaihtotekniikoita taatakseen yksityisyyttä internetissä. Taatakseen tiedon eheyttä SSL käyttää tiivistefunktioita (hash-koodaus), jolla luodaan viestin pieni matemaattinen sormenjälki. Jos sormenjälki ei vastaa vastaanottavassa päässä, on joku osa viestistä muuttunut. Tässä tapauksessa viesti lähetetään uudestaan. Koska kuka tahansa voi luoda avainpareja, on täysin mahdollista epärehellisin keinoin tehdä palvelin, joka on varustettu julkisella avaimella. Tämän takia käytetäänkin digitaalisia sertifikaatteja (digitaalisia varmenteita), jotta voidaan levittää autentikoituja julkisia ja yksityisiä avaimia. Digitaalisia sertifikaatteja käytetään myös osapuolien autentikointiin [37, s 73]. Digitaalinen sertifikaatti On olemassa erilaisia digitaalisia sertifikaatteja käyttötarkoituksesta riippuen. Palvelimissa käytetään palvelinsertifikaatteja ja asiakkaat käyttävät henkilökohtaisia asiakassertifikaatteja. Palvelinsertifikaatteja käytetään yleensä palvelin-autentikointiin, ja asiakassertifikaatteja tunnistamaan käyttäjiä internetissä (asiakas-autentikointi). Kummastakin sertifikaattityypistä käy ilmi sertifikaatin haltijan identiteetti ja julkinen avain sekä muita sertifikaatin autentikoinnissa tarvittavia tietoja. Sertifikaatti on salattu sertifikaatteja myöntävän viranomaisen yksityisellä avaimella. Tällaisia viranomaisia ovat mm. VeriSign [39] ja RSA Security [31].

WAP:in tietoturva 30 Kun selain pyytää salattua yhteyttä palvelimen kanssa, palvelin antaa selaimelle palvelinsertifikaatin. Selain tunnistaa palvelimen varmistamalla, että sertifikaatin on myöntänyt oikea sertifikaatteja myöntävä viranomainen. Tämän jälkeen se purkaa yhteisen salaisen avaimen sertifikaatin julkisella avaimella lähettääkseen sen palvelimelle. Yhteistä salaista avainta käytetään tämän jälkeen yhteyden aikaisen liikenteen salaamiseen. Yllä oleva esimerkki kertoi vain palvelin-autentikoinnista; asiakassertifikaatteja käytetään myös samoin, mutta nykyiset internet-sovellukset käyttävät yleensä yksinkertaista nimisalasana yhdistelmää käyttäjän autentikointiin. Digitaalinen allekirjoitus Luottamuksellisuus toteutetaan esimerkiksi asiakas-autentikoinnissa yksinkertaisella käyttäjänimi ja salasana yhdistelmällä. Sovellukset voivat myös pyytää asiakkaalta digitaalista allekirjoitusta, joka vaatii käyttäjän valtuutuksen transaktioihin. Valtuutus salataan käyttäjän yksityisellä avaimella. Digitaalinen allekirjoitus on analoginen oikean allekirjoituksen kanssa, se palvelee samoja käyttötarkoituksia jopa juridisesti. Erilaisia yhdistelmiä edellä esitellyistä turvallisuustekniikoista käytetään erilaisissa sovelluksissa, riippuen siitä mikä on tarvittava turvallisuuden aste ja missä määrin turvallisuus saa vaikuttaa käyttömukavuuteen. Hyvää kirjallisuutta tietoturvallisuudesta on löydettävissä paljon niin internetistä kuin monista kirjoistakin. Suositeltavia perusteoksia ovat mm. Pfleegerin kirjoittama perusteos [25] ja suomenkielinen Internet-tietoturva [19]. William Stallings on myös kirjoittanut kaksi hyvää tietoturvaan liittyvää kirjaa. Toinen kirjoista [37] on erittäin hyvä ja selkeästi kirjoitettu, ja se kattaa kaikki tieturvasovellukset ja standardit, kun taas toisessa [36] pääpaino on selkeästi kryptografiaan liittyvissä asioissa.

WAP:in tietoturva 31 3.2 WAP-ympäristön turvallisuus Langattoman kaupankäynnin alussa kuljetustekniikkana käytettiin SMS:ää. Pian tajuttiin, että SMS:ää ei voida käyttää yksinään sen turvattomuuden vuoksi. SMS soveltui vain tekstiviestien lähetykseen. Esimerkiksi sähköisissä pankki- tai kauppasovelluksissa liikkuu paljon tietoa, jonka täytyy olla salattua. Toisin kuin tekstiviestipohjainen tiedonsiirto WAP pystyy salaamaan tietoa. Todellisuudessa WAP voi käyttää SMS:ää kuljetustekniikkana, mutta WAP:illa tietoa voidaan tällöin siirtää myös salattuna. WAP:in turvallisuusmallissa on kolme peruselementtiä, jotka näkyvät alla olevasta kuvasta (kuva 3.2). Keskellä oleva WAP yhdyskäytävä käyttää SSL:ää kommunikoidessaan salatusti oikealla sijaitsevan palvelimen kanssa. ASIAKAS YHDYSKÄYTÄVÄ PALVELIN langaton verkko Internet Internet WTLS SSL Kuva 3.2 WAP-turvallisuusmalli Kuvan vasemmalla puolella yhdyskäytävä muuttaa SSL-salatut viestit palvelimelta langattomaan verkkoon WTLS-muotoon [50]. Viestit päätelaitteelta palvelimelle muutetaan samalla tavoin WTLS-muodosta SSL-muotoon. WAP yhdyskäytävä toimii siis jonkinlaisena siltana WTLS:n ja SSL:n välillä. WAP yhdyskäytävä käyttää WTLS:ää langattomassa verkossa taatakseen yksityisyyttä, tiedon eheyttä ja aitoutta päätelaitteen ja itsensä välillä. Langattoman verkon luonnosta johtuen (pieni kaistanleveys ja pitkät viiveet) WAP-malliin on jouduttu kehittämään uusi tietoturvaratkaisu WTLS, ja siksi tiedonsiirrossa perinteinen SSL joudutaan muuttamaan WTLS-muotoon ja päinvastoin. Koska SSL suunniteltiin alun perin pöytäkoneita ja langallisia yhteyksiä varten, joissa robustisuus saatiin aikaan

WAP:in tietoturva 32 kohtuullisen hyvällä kaistanleveydellä ja pienillä viiveillä, käytöstä tulisi aiheutumaan kohtuuttoman pitkiä viiveitä. langattomissa laitteissa SSL:n WTLS on suunniteltu varta vasten takaamaan turvallista tiedonsiirtoa ilman pöytäkoneiden muistia, laskentakapasiteettia ja tehoa. WTLS käsittelee salausalgoritmeja nopeammin minimoimalla protokollakustannuksia ja pakkaamalla tietoa enemmän kuin perinteiset SSL ratkaisut. Tuloksena WTLS toimii hyvin langattoman verkon rajoituksista huolimatta. Nämä erilaiset optimoinnit tarkoittavat sitä, että pienemmät, kannettavat päätelaitteet voivat nyt kommunikoida salatusti langattomassa internetissä. WAP yhdyskäytävässä tapahtuva WTLS-SSL konversio kestää joitakin millisekunteja ja tapahtuu yhdyskäytävän muistissa. Konversio mahdollistaa virtuaalisen, salatun yhteyden näiden kahden protokollan välille. Vaikka WAP version 1.1 turvallisuusmalli ei ota kantaa asiakas-autentikointiin eikä tiedon luottamuksellisuuteen. Yleensä nämä on kuitenkin otettu huomioon yhdyskäytävää toteuttaessa. Yhdyskäytävä käyttää yleensä jonkinlaisia asiakassertifikaatteja ja digitaalisia allekirjoituksia. Sovellukset voivat yhä edelleen varmistaa tiedon luottamuksellisuutta olemassa olevan tavan mukaan esimerkiksi käyttämällä käyttäjätunnuksia ja salasanoja. Sertifikaateista kerrotaan lisää luvussa 3.2.1. Jotta nykyisessä WAP:in turvallisuusmallissa voitaisiin tehdä mahdollisimman turvallinen sovellus, vaatii se paljon yhteistyötä verkko-operaattorin ja sisällöntuottajan välillä. Markkinoiden kasvaessa tietoturvallisuuden rooli vahvistuu ja siksi on luotava helpommin toteutettavia tietoturvaratkaisuja. Asiakkaalle on pystyttävä takaamaan se, että tieto pysyy salattuna koko sen matkan minkä viesti kulkee palvelimelta WAP-yhdyskäytävän kautta kannettavalle päätelaitteelle. 3.2.1 Wireless Transport Layer tietoturvakerros WAP:in protokollapinossa on valinnainen kerros WTLS (Wireless Transport Layer) [50], joka on tehty toteuttamaan WAP:in tietoturvaa. Tämä diplomityö käsittelee WTLS-

WAP:in tietoturva 33 protokollan versionumeroa 1.1. WTLS on kehitetty täysin langattoman internetin tarpeisiin ja se pohjautuu TLS v1:een [30], joka taas on kehitetty SSL v3:sta [35]. WTLS:ää on kuitenkin modifioitu niin paljon, että se ei ole yhteensopiva nykyisen TLS:n kanssa. Jos WTLS on käytössä, se sijaitsee WDP:n päällä ja näkymättömästi se salaa ja purkaa liikennettä (kuva 3.3). tapahtumakerros (WTP) WTLS Handshake Alert Application Change Cipher Spec Record protocol kuljetuskerros (WDP) Kuva 3.3 WTLS:n sijainti WAP-protokollapinossa Autentikointi WTLS:n yksi tärkeimmistä ominaisuuksista on sertifikaattien avulla toteutettu osapuolten autentikointi. Se voidaan suorittaa joko asiakkaan (WAP-päätelaite) ja palvelimen välillä, tai niin että asiakas autentikoi käyttämänsä palvelimen, mutta palvelin ei asiakasta. Tämä vaihtoehto voidaan suorittaa ainoastaan palvelimen sen salliessa. Palvelin voi myös vaatia asiakasta autentikoimaan itsensä palvelimelle. WTLS tukee tällä hetkellä kolmen tyyppisiä sertifikaatteja: X.509v3, X9.68 ja WTLSsertifikaatteja. WTLS-sertifikaatti on rajoitetulle siirto- ja laskentakapasiteetille koon mukaan optimoitu sertifikaatti, joka sisältää vain olennaisimmat tiedot. Autentikoinnin yhteydessä palvelin lähettää asiakkaalle joukon ketjutettuja sertifikaatteja. WTLS määrittelee myös optimoidun autentikoinnin, jossa lähetetään ainoastaan yksi sertifikaatti. Toiseen suuntaan optimointi ei ole niin tärkeää, koska palvelimella riittää luonnollisesti laskentatehoa huomattavasti päätelaitetta enemmän.

WAP:in tietoturva 34 WTLS-palvelinsertifikaatteja, jotka ovat määritelty osana WAP versiota 1.1, käytetään palvelin-autentikointiin. Nämä sertifikaatit muistuttavat hyvin läheisesti SSLpalvelinsertifikaatteja. Kuitenkin ne eroavat SSL:stä siten, että WTLS-sertifikaatteja on määritelty kaksi erilaista: X.509-sertifikaatit (kuten SSL:ssä) ja WTLS-minisertifikaatit, jotka ovat toiminnallisesti samanlaisia kuin X.509-sertifikaatit mutta ovat pienempiä ja yksinkertaisempia. Minisertifikaatti on pakollinen osa WTLS-sovellusta ja X.509- sertifikaatti on valinnainen. WTLS-asiakassertifikaatteja, jotka ovat määritelty osana WAP versiota 1.2, käytetään asiakas-autentikointiin. Ne voidaan myös jakaa X.509- ja minisertifikaatteihin. WAP-ympäristössä autentikointi asiakkaalta yhdyskäytävälle on määritelty osaksi WTLSarkkitehtuuria WAP versiossa 1.2. Autentikointi asiakkaalta sovellukselle vaatii toimintoja WTLS:ää ylemmälle kerrokselle. Näitä keinoja voidaan toteuttaa mm. WIM-tekniikalla (Wireless Identification Module); tästä tekniikasta kerrotaan lisää luvussa 3.2.2. Avaintenvaihto Kuten muissakin kryptografiaa käyttävissä protokollissa, myös WTLS:ssä suoritetaan yhteysavainten vaihto yhteyden alussa. WTLS voi käyttää avainten vaihtoon useampaa mekanismia. Nämä tunnetut ja hyväksi havaitut avaintenvaihtomenetelmät ovat RSA [31], [36, s 173-182], Diffie-Hellman [36, s 190-193] ja elliptisiä kurveja käyttävä Diffie- Hellman. Niin avaintenvaihdossa kuin autentikoinnissakin palvelin on parametreistä ja käytännöistä päättävä osapuoli. Päätelaite voi esittää avaintenvaihtomenetelmää, mutta viimekädessä palvelin päättää käytettävästä menetelmästä. Spesifikaation mukaan asiakkaan tai yhdyskäytävän tarvitsee tukea vain yhtä näistä algoritmeista, mutta luonnollisesti mitä useampaa algoritmia asiakas tai yhdyskäytävä tukee, sitä paremmin yhteyden suojaus voidaan taata.

WAP:in tietoturva 35 Salaus Asiakkaan ja palvelimen välistä salausta tarvitaan, jotta WAP-liikenteessä saavutettaisiin luottamuksellisuus. WTLS:n käyttämä salaustapa valitaan yhteyden kättelyvaiheessa (Server Hello -viesti). Asiakas voi tarjota listan vaihtoehdoista, joita se tukee. Näistä palvelin valitsee haluamansa. Mikäli sopivaa ei löydy, kättely epäonnistuu ja yhteys suljetaan. Salaustapa muodostuu tavallisesta lohkosalausalgoritmista sekä viestin eheyden takaavasta MAC (Message Authentication Code) algoritmista. WTLS:n käyttämät lohkosalausalgoritmit ovat: (suluissa käytetyt avainten pituudet): RC5 (40, 56 ja 128 bittiä) DES (40 ja 56 bittiä) 3DES IDEA (40, 56 ja 128 bittiä) Hyvä kuvaus yllä luetelluista algoritmeista löytyy lähteestä: [36]. Asiakas ja palvelin käyttävät salausavaimina useammasta osasta koottua avainlohkoa (key-block). Avainlohkoon kuuluvat mm. kättelyn yhteydessä vaihdetut satunnaisarvot sekä sekvenssinumero. Jotta WTLS on saatu mahdollisimman turvalliseksi avaimia uusitaan tietyin väliajoin (ns. avaimen virkistys). WTLS-kättelyn aikana asiakas ja yhdyskäytävä sopivat avaimen virkistystaajuudesta. Jos esimerkiksi avaimen virkistystaajuus on 4 viestiä, niin tiedon salaukseen ja purkuun käytettävät avaimet vaihdetaan joka neljännen viestin jälkeen. Myös sellaisten hyökkäysten onnistuminen, joissa kokeillaan kaikkia mahdollisia avaimia, saadaan tällä tavalla eliminoitua minimiin. Silloin kun hyökkäys onnistuu ja avain saadaan varastettua, niin se on yleensä jo seuraavassa viestissä vaihtunut. Eheys Tiedon eheys WTLS:ssä varmistetaan käyttämällä MAC-koodeja (Message Authentication Code). Käytettävä MAC-algoritmi päätetään kättelyn yhteydessä samalla kun asiakas ja palvelin sopivat käytettävästä salausalgoritmista. MAC-algoritmeina

WAP:in tietoturva 36 voidaan käyttää yleisimpiä algoritmeja kuten SHA [36, s 281-286] ja MD5 [36, s 272-280]. Näistä voidaan käyttää useampia eri versioita, esim. SHA voi laskea mm. 40- tai 80- bittisen MAC-koodin. Lisäksi WTLS-protokollassa voidaan käyttää erityistä SHA_XOR_40 -algoritmia, jossa data jaetaan 5-tavun lohkoihin ja lohkoille suoritetaan keskenään XOR. Vaatimuksena on, että näin saatu 5-tavuinen tarkistussumma salataan ja sitä käytetään vain CBC-moodia käyttävissä salaimissa, koska algoritmi itsessään on heikko. Algoritmi on erityisesti suunniteltu käytettäväksi laitteissa, joissa on pieni laskentakapasiteetti ja vähän muistia. WTLS sallii pitkiä salattuja istuntoja, jopa 2 16-1 istunnossa. viestiä voidaan välittää yhdessä WAP Forum parantaa jatkuvasti WTLS-arkkitehtuuria, ja version 1.2 mukainen WTLS pitäisi olla edelleen turvallisempi. Siinä mm. sertifikaateille ja digitaalisille allekirjoituksille on asetettu enemmän painoarvoa. Markku-Juhani Saarinen [17] on tutkinut WTLS:n tietoturva-aukkoja artikkelissaan "Attacks Against the WAP WTLS Protocol". Jotkut julkaisussa luetelluista hyökkäysmuodoista eivät enää ole mahdollisia nykyisessä parannetussa WTLS-versiossa. Yleisin tunnettu ongelma on hyökkäys autentikoimattomia hälytysviestejä vastaan, jossa hälytysviestin kokoa ja sisältöä voidaan muuttaa. Kryptografisesti SHA_XOR_40- algoritmi on yksi WTLS-protokollan heikoimmista lenkeistä. 3.2.2 WIM - Wireless Identification Module Wireless Identification Module (WIM) [45] on WAP-puhelimeen liittyvä moduli, joka tarjoaa WAP-ympäristöön mobiiliin kaupankäyntiin ja elektronisiin transaktioihin vaadittavaa kryptografiaa ja digitaalisia allekirjoituksia eheyden, aitouden ja luottamuksellisuuden saavuttamiseksi. WIM auttaa myös WTLS:n autentikoinnissa ja salauksessa käyttämien salaisten avaimien säilyttämisessä. Käytännössä WIM voidaan toteuttaa matkapuhelimen tai päätelaitteen sisällä olevalla Subscriber Identification Module (SIM) -kortilla tai erillisellä älykortilla. SIM-kortti on osa tavallista GSM-

WAP:in tietoturva 37 standardia, ja se pitää sisällään käyttäjän tiedot, joiden perusteella voidaan käyttäjä tunnistaa ja esimerkiksi laskutus hoitaa. Koska WIM toteutetaan älykortilla, on mahdollista siirtää käyttäjän identiteetti ja salaiset avaimet päätelaitteesta toiseen vain älykorttia vaihtamalla. Älykortit ovat kätevä ja turvallinen tapa säilyttää tietoturvan kannalta olennaisia käyttäjän salaisia avaimia. Mobiililiikenteen lisäksi älykortteihin perustuvia tietoturvaratkaisuja on tulossa yhä enemmän. Yhtenä esimerkkinä näistä on Suomessa toteutettu henkilön sähköinen tunnistaminen (HST) -projekti. WIM:in avulla saavutetaan kahden tyyppistä suojausta. Asiakas ja palvelin voivat autentikoida toisensa luotettavasti kryptografian ja riittävän pitkien (1024-bittiä) avainten avulla. Algoritmeina voidaan käyttää joko RSA-algoritmia tai tulevaisuudessa elliptisiin käyriin perustuvia algoritmeja. Toisena WIM:in tarjoamana toimintona ovat digitaaliset allekirjoitukset, joita tarvitaan mm. elektronisessa pankkitoiminnassa ja kaupankäynnissä. Allekirjoitusten avulla saavutetaan elektronisissa transaktioissa vaadittu luottamuksellisuus. 3.3 WAP:in tietoturva automaatiossa WAP-sovellusten käytöstä automaatiossa kerrotaan tarkemmin seuraavassa luvussa. Tässä alaluvussa listataan seikkoja joita tulee huomioida rakennettaessa tietoturvallista sovellusta automaation tarpeisiin. Tässä luvussa luetellut asiat eivät rajoitu ainoastaan automaatiosovelluksiin, vaan niitä voidaan käyttää lähtökohtana myös suunnitellessa mitä tahansa langatonta sovellusta. Taulukosta 3.1 näemme yhteenvedon eri tyyppisistä turvallisuusuhkista, niiden seurauksista ja ehkäisytavoista. Yksi tapa on luokitella nämä uhat passiivisiin ja aktiivisiin hyökkäyksiin. Passiivisiin hyökkäyksiin kuuluu kaikki salakuunteluun liittyvä ja tiedon passiivinen varastaminen. Aktiivisiin hyökkäyksiin kuuluu esiintyminen toisena käyttäjänä, tietojen muuttaminen ja liikenteen manipulointi. Kaikki alla luetellut uhat ovat vakavia, toiset ovat häiritsevämpiä kuin toiset ja toiset taas aivan huomaamattomia (esim. salakuuntelu). Lähes poikkeuksetta parannuskeinona alla lueteltuihin uhkiin voidaan pitää luvussa 3.1. lueteltuja tekniikoita.

WAP:in tietoturva 38 Uhka Seuraus Ehkäisy Pääsynvalvonta Käyttäjän yhteyden katkaiseminen Muistin tai levytilan tahallinen täyttäminen Tietojen luvaton tarkkailu ja käyttäminen Eheys Tietojen manipulointi Muistin manipulointi Liikenteen manipulointi Aitous Esiintyminen laillisena käyttäjänä Tietojen väärennös Luottamuksellisuus Salakuuntelu Palvelimen tietojen varastaminen Käyttäjän tietojen varastaminen Verkon konfigurointitietojen luvaton käyttö Tieto siitä mikä käyttäjä on yhteydessä palvelimeen Häiritsevä Estää työntekoa Yksityisyyden häviäminen Tiedon häviäminen Tiedon häviäminen Laitteiston epäluotettavuus Käyttäjien luottamuksellisuus kärsii Väärää tietoa luullaan oikeaksi Tiedon häviäminen Yksityisyyden häviäminen Salasanat, salaaminen Kryptografisia tarkistussummia Kryptografiset tekniikat Salaaminen, välitinpalvelimet Taulukko 3.1 Turvallisuusuhkien vertailu [32]. WAP-sovelluksen rakentamisessa tulee ottaa huomioon useita tietoturva-asioita. Kuvassa 3.4. on esitetty uhkia joille WAP-sovellus saattaa altistua. Jokaisessa tiedon varastointi-, konvertointi- ja siirtovaiheessa pitää varautua siihen, että tietoturva on riittävä. WAParkkitehtuuri yhdyskäytävineen ja tukiasemineen on herkkä hyökkäyksille. Lähetettyä tietoa voidaan vakoilla jo ilmarajapinnassa, ja jos myöhemmin käytetään langallista verkkoa niin ei sekään ole turvassa hyökkäyksiltä. Pitää huomioida myös ne fyysiset paikat, jossa tieto on vaarassa. Yhdyskäytävään murtautunut pystyy tutkimaan ja mahdollisesti muuttamaan esimerkiksi käyttäjän päätelaitteelta jollekin automaatiolaitteelle lähettämiä ohjauskäskyjä. Sovellukset eivät saa myöskään sekoittaa toistensa toimintaa. Esimerkiksi jonkin laitteen tilatietoja tarkasteltaessa on tärkeää ettei kukaan muu pysty muuttamaan laitteen tilaa kesken tarkastelun.

WAP:in tietoturva 39 Palvelin Sovellus Yhdyskäytävä Tukiasema Käyttäjä Kuva 3.4 Uhat WAP-sovelluksessa

WAP:in tietoturva 40 Tietoturvan rakentamisen prosessi Garfinkelin ja Spafforin mukaan [4] perusmalli tietoturvatyölle on seuraava: Ensimmäiseksi arvioidaan sovelluksen riskit ja tämän jälkeen tehdään kustannus-hyöty analyysi eli punnitaan tietoturvaratkaisujen hintaa ja niiden hyötyä. Seuraavaksi prosessissa on tietoturvapolitiikkojen luominen ja tämän jälkeen niiden toteutus. Viimeiseksi prosessiin kuuluu tietoturvaratkaisujen ylläpito ja järjestelmän tarkkailu. Sovelluspalvelimen turvaaminen WAP-mallissa sovelluspalvelin voi olla erillinen palvelin tai sovellukset voivat sijaita myös yhdyskäytävässä. Jotta sovelluspalvelin saadaan turvalliseksi, täytyy kiinnittää huomiota kahteen asiaan. Ensiksi tietokone (palvelin) täytyy turvata perinteisillä tietoturvatekniikoilla. Nämä tekniikat takaavat sen että autentikoidut käyttäjät saavat oikeudet ainoastaan niihin asioihin, jotka ovat käyttäjälle tarkoitettu. Esimerkiksi saatamme antaa anonyymeille käyttäjille mahdollisuuden lukea palvelimella sijaitsevia dokumentteja, mutta emme halua heidän pystyvän sammuttaa tietokonetta tai käsittelevän kirjanpitoa. Näiden tekniikoiden tulisi myös taata palvelimen turvallisuus hyökkäyksiä vastaan. Tekniikat on esitelty lyhyesti kappaleessa 3.1 Tietoturvan perusteet. Sovelluspalvelimella tulisi tehdä vain asioita johon se on tarkoitettu. Palvelin pitäisi olla täysin omistettu yhteen käyttötarkoitukseen; sillä ei tulisi tehdä muita asioita eikä siinä saa olla enempää ohjelmistoa kuin sovellukset vaativat. Sovelluspalvelin pitäisi myös pystyä eristämään yrityksen olemassa olevasta verkosta. Sovelluspalvelimelta ei pitäisi olla mahdollisuutta ottaa yhteyksiä esimerkiksi yrityksen lähiverkon tietokoneisiin ilman tarkkoja rajoituksia. Esimerkiksi huonosti kirjoitettu CGI-ohjelma voi mahdollistaa hyökkäyksen palvelimen kokoonpanotietoihin ja tätä kautta käyttöoikeuksien muuttamisen. Käyttämällä hyväkseen isäntäkoneen turvallisuusratkaisujen rakennevikoja hyökkääjä voi luoda etuoikeutetun CGI-ohjelman, jolla voidaan saada pääsyoikeudet suljettuun verkkoon. Toinen hyvä tekniikka palvelimella sijaitsevan tiedon turvaamiseksi on rajoittaa pääsyä palvelimelle. Palvelimen tulisi sijaita turvallisessa paikassa siten, että vain ylläpitäjillä on

WAP:in tietoturva 41 fyysinen yhteys palvelimeen. Valtuutettujen käyttäjien lukumäärään on myös syytä kiinnittää huomiota; mitä vähemmän sen parempi. Alla on lueteltu asioita joita WAP-yhdyskäytävän tulee toteuttaa ollakseen turvallinen. Tiedon tulee olla salattua aina kun liikutaan palvelimen ja asiakkaan tai muun verkon välillä. Muiden kuin käyttäjän tulee olla mahdoton lukea, muuttaa tai tuhota tietoja. Yhdyskäytävä ei saa säilyttää WTLS/SSL konversion aikana purettua tietoa sellaisessa paikassa, että siihen pääsisi käsiksi. Konversion aikana purettua tietoa ei saa säilyttää yhdyskäytävän muistissa pitempään kuin on pakko. Yhdyskäytävä täytyy eristää fyysisesti siten, että vain valtuutetuilla ylläpitäjillä on pääsy koneelle. Yhdyskäytään saa ottaa yhteyksiä vain määrätyiltä koneilta ja vain palomuurin sisältä. Tietokoneessa, jossa yhdyskäytävä toimii, saa olla vain välttämät sen täydellisen toiminnan edellyttämät ohjelmat Käyttäjän henkilöllisyys on oltava tunnistettavissa käyttäjätunnus-salasana yhdistelmällä tai jollain muulla luotettavalla tavalla. Käyttäjän on pystyttävä tunnistamaan mitä yhdyskäytävää ja palvelinta käyttää ja luottamaan niiden turvallisuuteen. Tietoliikenteen turvaaminen Tietoliikenteen turvaamiseen on kiinnitettävä paljon huomiota. Internet sellaisenaan ei ole turvallinen tiedonsiirtokanava, vaan tarvitaan paljon suojausta. Hyviä tapoja suojata tietoa salakuuntelulta on suojata verkko fyysisesti tai piilottaa ja salata arkaluontoinen tieto viestissä. Näistä tekniikoista salaus on ainoa käytännöllinen tapa, sillä fyysinen suojaus on mahdotonta ja tiedon piilottaminen on vaikeaa. Tehokkaan salauksen avulla on mahdollista rakentaa turvallinen käytävä internetin läpi kahden tai useamman pisteen välille. Esimerkiksi VPN-ratkaisut [14] eristävät yrityksen verkon luvattoman käytön ulkopuolelle.

WAP:in tietoturva 42 Langattoman tietoliikenteen suojaamiseen on kiinnitettävä huomiota yhtälailla kuin langallisen tietoliikenteen turvaamiseen. Langattomassa tietoliikenteessä ei voi luottaa siihen että se olisi automaattisesti turvallista tai että kukaan ei kuuntelisi sitä. Itseasiassa yhtiön työntekijät voivat jakaa saman ilmarajapinnan kilpailijoiden, rikollisten, hakkereiden ja terroristien kanssa. Mobiliteettiasteen nousu siis lisää näitä pelottavia ongelmia, joita ainakin toistaiseksi on ollut vaikea välttää. Toinen merkittävä asia tietoliikenteen turvaamisessa on siirtoverkon kunto ja mahdollisuus häiritä tiedonsiirtoa tekemällä verkossa muutoksia. Näiltä riskeiltä on vaikea suojautua; ohjelmointivirhe reititystaulukossa, kaapelin tai yhteyden katkeaminen aiheuttavat lähes poikkeuksetta ongelmia tiedonsiirrossa. Nämä asiat on kuitenkin hyvä tiedostaa, jotta näihin ongelmiin kohdattaessa tiedetään toimia oikein. Päätelaitteen turvaaminen Päätelaitteen turvaaminen on jonkin verran vaikeampaa kuin sovelluspalvelimen, vaikka päätelaite kulkisikin aina käyttäjän mukana. Päätelaitteen hukkaamisella voi olla yhtä kohtalokkaita seurauksia kuin sovelluspalvelimeen murtautumisella. Päätelaite voidaan myös varastaa tai kloonata. Jos päätelaitteella on oikeudet yhtiön arkaluontoisiin tietoihin tai oikeus käyttää jotakin automaatiojärjestelmän komponenttia, niin selviä tietoturvariskejä on olemassa. Näitä voidaan tietenkin torjua käyttäjätunnus-salasana yhdistelmällä ja PIN-koodia kysymällä, mutta täysin aukottomia nämäkään tekniikat eivät ole. Uusimpia riskejä päätelaitteen turvallisuudessa ovat virukset, joita on kehitetty jo matkapuhelimiinkin. Puhelimen liittymäkorttiin (SIM-kortti) voidaan nykyään tallentaa digitaalisia sertifikaatteja, elektroninen identiteetti ja tietoja käyttäjän tietoturvan tasosta. Näitä tietoja voidaan myös päivittää muualta käsin, kuten esimerkiksi SmartTrustin ratkaisussa [33]. Tämä tapa perustuu aikaisemmin esitettyyn WIM-malliin.

WAP:in tietoturva 43 Palomuuri osa turvallisuusratkaisua Palomuuri eristää yhtiön sisäisen verkon internetistä sallimalla tiettyjä yhteyksiä ja estämällä toisia. Yleisesti palomuurit konfiguroidaan siten, että kaikki ulkoapäin tulevat yhteydet sisäiseen verkkoon on rajoitettu tarkkoihin paikkoihin. Jos yhdyskäytävä sijaitsee omassa verkossa, palomuurin voi sijoittaa esimerkiksi WAPyhdyskäytävän ja internetin väliin tai yhtiön sisäisen verkon ja WAP-yhdyskäytävän väliin (kuvassa 3.5 palomuurit A ja B). Jos käytetään erillisiä sovelluspalvelimia, tapa B lienee suositelluin koska siinä yhdyskäytävään voi ottaa yhteyden mistä tahansa (yhdyskäytävä hoitaa pääsynvalvonnan tarjoamiinsa palveluihin), mutta yhtiön verkossa ei pääse edes yhdyskäytävän kautta sellaisiin kohteisiin mihin ei tulisikaan olla pääsyä. Kuvassa 3.4 WAP-yhdyskäytävä on sijoitettu palomuurin B ulkopuolelle. Tämän mallin huono puoli on se, että yhdyskäytävä on herkkä hyökkäyksille koska sitä ei ole suojattu palomuurilla. Internet Internet Palomuuri A Yhdyskäytävä Palomuuri B Lähiverkko Kuva 3.5 Palomuurin sijainti WAP-yhdyskäytävään nähden

WAP:in tietoturva 44 Jos yhdyskäytävä toimii sovelluspalvelimena, eli jos se hoitaa suorat yhteydet esimerkiksi prosesseihin ja tietokantoihin, on suositeltavaa sijoittaa yhdyskäytävä palomuurin sisälle kuvan 3.5 palomuurin A mukaisesti. Tällä tavoin luvaton käyttö pystytään minimoimaan. Palomuuria käytettäessä täytyy muistaa, että se ei yksinään ole täysin turvallinen. Muita suojaustapoja on syytä käyttää palomuurin kanssa. Riskinhallinta Riskillä tarkoitetaan toisiinsa yhdistettynä mahdollisen vahingon vakavuutta ja todennäköisyyttä. Usein mallina käytetään näiden kahden tuloa, jolloin vakavuus arvioidaan rahassa. Riskianalyysissä selvitetään uhkat, niiden toteutumisen todennäköisyys ja niiden aiheuttamien vahinkojen suuruus. Riskianalyysi täytyy suorittaa, jotta saataisiin jokin järkevä pohja päätöksille siitä, mitkä suojautumismenetelmät ovat taloudellisesti järkeviä. Kuten tästä luvusta on käynyt ilmi, turvallisuus on asteittaista. Se voi olla näkymätöntä käyttäjälle, mutta sen käyttö ei koskaan ole aivan kivutonta. Tietoturvallisuus koostuu monista asioista. Siksi onkin tärkeää, että jo sovellusten suunnitteluvaiheessa mietitään kuinka paljon on järkevää käyttää tietoturvatekniikoita, ja että kuinka paljon tietoturvaan kannattaa panostaa. Pienistä osista syntyy monimutkainen palapeli, jossa tietoturva on vain yksi tai useampi reunapala myös ilman niitä palapeli saattaa pysyä koossa. Huolellinen suunnittelu ja toteutuksen tarkka testaus ovat menestyksellisen sovelluksen käyttöönoton edellytys.

Luku 4 WAP-sovellusten toteuttaminen Tässä luvussa tutkitaan WAP-sovellusten toteuttamistapoja. Ensiksi käsitellään yleisesti WAP:in toiminnallisuutta ja tämän hetken kuljetustekniikoita. Seuraavaksi luetellaan tapoja tehdä erilaisia WAP-sovelluksia ja viimeiseksi kerrotaan WAP-sovellusten mahdollisuuksista automaatiossa. 4.1 WAP:in toiminnallisuus GSM-puhelin on ehkä maailman yleisin ja tunnetuin väline, jota voi soveltaa etäautomaatioon. Teknillisestä näkökulmasta katsoen WAP vaikuttaa mielenkiintoiselta ja omaa paljon potentiaalia. WAP on kehittynyt teollisuuden kokemuksesta käyttää internetiä. Se eliminoi internetin heikkoudet langattomassa maailmassa ja parantaa sen hyviä puolia. Lisäksi koska WAP on suunnattu langattomiin laitteisiin, matkapuhelimiin, sovellukset on rakennettu puhtaalle pöydälle langattoman internetin ehdoilla. Toisaalta johtuen siitä, että WAP on täysin uusi tekniikka, niin kaikki sovelluksia myöten on uusittava. Toisaalta olemassa olevat WWW-pohjaiset sovellukset sopivat hyvin uusien sovellusten pohjaksi. WAP:in toiminnallisuudessa on kiinnitetty huomiota lähetysaikoihin ja sellaisiin asioihin, jotka ovat kriittisiä ja joita esiintyy vain pienissä langattomissa 45

WAP-sovellusten toteuttaminen 46 laitteissa. Lähetettyjen bittien määrän pienentäminen tuo myös säästöjä edestakaiseen viiveeseen asiakkaan pyynnön ja vastauksen kuittauksen välillä. Jotkut teknilliset näkökulmat ja tekniset suunnittelut ovat toisaalta myös kyseenalaisia. WTP:n ominaisuutta olla joko luotettava tai epäluotettava on kritisoitu. Yksi syy tähän on se, että tämä ominaisuus pakottaa joitakin tapahtumakerroksen palveluita (esim. uudelleenlähetys) ylemmälle istuntokerrokselle (WSP), ja tämä taas tuhoaa OSI-mallia. Koska tiedonsiirto tapahtuu binäärisenä, täytyy tieto muuttaa tekstimuotoisesta (WML) tiedosta binääriseksi. Tämä muutos vie luonnollisesti aikaa ja hidastaa yhteyksiä, joissa lähetetään vain pieniä määriä dataa. Toisaalta binäärisen tiedon siirtäminen on helpompaa ja soveltuu paremmin langattomiin yhteyksiin (kts. luku 2.4). WAP versio 1.2 tosin puuttuu näihin ongelmiin ja yrittää parantaa tiedonsiirron nopeutta palvelimen ja päätelaitteen välillä. WAP-arkkitehtuuri on monimutkaisempi kuin WWW-arkkitehtuuri. Toisaalta WAParkkitehtuurissa on mahdollisuus käyttää yhdyskäytävää samalla sovelluspalvelimena (kuva 4.1), ja näin saadaan vähennettyä erillisten palvelimien ja turhan tiedonsiirron määrää. Kuvasta näkee myös sen tosiasian, että WAP rakentuu olemassa olevan WWWarkkitehtuurin päälle, eikä voida sanoa että nämä kaksi tekniikkaa olisivat kilpailevia tekniikoita. WAP-sovelluksia rakentaessa on mahdollista ja kannattaa hyödyntää jo olemassa olevia WWW-ratkaisuja ja sovelluksia. Langaton päätelaite WSP/WML WAP Server HTTP/WML Dataa, sovelluksia jne Web-selain HTTP/HTML Web Server Kuva 4.1 WAP-arkkitehtuuri ja WWW-arkkitehtuuri samassa mallissa

WAP-sovellusten toteuttaminen 47 Koska WAP-yhdyskäytävä on suunniteltu käytettäväksi operaattori-verkossa, niin tästä seuraa joitakin ongelmia. Nämä ongelmat on lueteltu alla. Yhteensopivuus, verkot ja SMS-keskukset ovat erilaisia Puhelimet ovat erilaisia, WTLS toimii niissä mahdollisesti eri tavoin (kaikki eivät edes tue sitä) Operaattorin (yhdyskäytävän) vaihto on vaikeaa, se vaatii paljon manuaalista konfigurointia puhelimeen Laatuseikat; milloin laatu on peräisin operaattorilta, sisällöntuottajalta tai päätelaitteen valmistajalta? Hallintaongelmia; myös verkon ulkopuolella olevia asiakkaita täytyy palvella 4.1.1 Kuljetustekniikat SMS, CSD ja GPRS Tällä hetkellä WAP:in käytössä olevat kuljetustekniikat ovat lyhytsanomatekniikka (SMS) ja datapuhelu (CSD). Ensi vuoden alussa on odotettavissa myöskin GPRS-pohjaisia WAPsovelluksia, myöhemmin langatonta tiedonsiirtoa tulee muuttamaan UMTS-tekniikka [38]. Seuraavaksi tarkastellaan tarkemmin lueteltuja tekniikoita (SMS, CSD ja GPRS) ja niiden soveltuvuutta automaatioon. Mobile Lifestreams on listannut useissa artikkeleissaan joitakin etuja ja haittoja erilaisten kuljetustekniikoiden käytöstä langattomissa mobiiliverkoissa. Nämä artikkelit ovat tutustumisen arvoisia ja ovat saatavissa lähteestä [18]. SMS - Short Message Service Lyhytsanomatekniikassa [34] viestin pituus on rajattu 160 merkkiin. Tämä rajoittaa SMS:n käyttöä WAP:in kuljetustekniikkana. Jo pelkästään yksinkertaiset WAP-transaktiot vaativat useita viestejä lähetettäväksi SMS:llä. Jos SMS:ää kuitenkin käytetään WAP:in kuljetustekniikkana, niin se vie paljon aikaa ja on kallista. Lyhytsanomatekniikkaa käytettäessä viestit kulkevat teleoperaattorin SMS-keskuksen kautta, niiden rajaaminen vain omaan verkkoon on vaikeaa. Kuvassa 4.2 on kuvattu päätelaitteen ja yhdyskäytävän

WAP-sovellusten toteuttaminen 48 (server) protokollapinot ja alimpana oleva kuljetustekniikka, joka tässä tapauksessa on SMS. Asiakas Päätelaite WAP Server WAE WSP WAE Apps on other servers WSP WTP SMSC WTP WDP WDP SMS SMS WDP Tunnel Protocol WDP Tunnel Protocol Subnetwork Subnetwork Kuva 4.2 WAP lyhytsanomatekniikalla CSD - Circuit Switched Data Suurin osa tämän hetkisistä WAP-palveluista toimii piirikytkentäisellä kuljetustekniikalla. Perinteinen piirikytkentäinen CSD-yhteys mahdollistaa nimellisen 9.6 kilobitin sekuntinopeuden, todellisuudessa sovellusten saama nopeus jää usein noin 6 kilobitin luokkaan. CSD-tekniikan huonona puolena on yleisesti pidetty sen hitautta; tavallinen yhteydenotto WAP-päätelaitteelta WAP-yhdyskäytävään vie vähintään 10 sekuntia jo silloinkin kun yhteys on täysin digitaalinen. Jos käytetään analogista modeemia kättelyineen, yhteydenotto saattaa kestää puolisen minuuttia. Nykyinen GSMverkko mahdollistaa Suomessa rajoitetuilla alueilla 14.4 ja 56 kbps:n nimelliset nopeudet. Tämä laajennus on nimeltään HSCSD (High Speed CSD), joka on periaatteessa tehty kytkemällä useita 9.6 kbps:n linjoja samaan loogiseen yhteyteen. Kuvassa 4.3 näemme protokollapinot ja niiden välisen toiminnallisuuden piirikytkentäisellä tekniikalla.

WAP-sovellusten toteuttaminen 49 Päätelaite WAP Server WAE WSP WTP UDP IP IWF ISP/RAS IP WAE Apps on Other Servers WSP WTP UDP IP PPP PPP CSD-RF CSD- RF PSTN Circuit PSTN Circuit Subnetwork Subnetwork RAS - Remote Access Server IWF - InterWorking Function Kuva 4.3 WAP piirikytkentäisellä kuljetustekniikalla GPRS - General Packet Radio System GPRS [6] on uusi pakettikytkentäinen verkko, joka tullee Suomessa mobiiliverkkoihin vuoden 2000 lopusta lähtien. GPRS on mielenkiintoinen siitä syystä, että yhteys on aina auki (ei tarvita "dial-up"-yhteyttä), se on suhteellisen nopea ja se tukee virtuaalisia yhteyksiä. GPRS tuo langattomiin palveluihin kuitenkin enemmän laatua kuin nopeutta. Käytännössä GPRS:n kokonaisnopeus jää välille 40-80 kbps normaaleissa verkkoolosuhteissa. GPRS:n etuihin kuuluu parempi IP-yhteensopivuus ja nopeampi yhteyden muodostaminen. Kaikki WAP-puhelimet tulevat tukemaan luonnollisesti GPRS:ää sen tultua markkinoille, koska nykyinen CSD ei ole tarpeeksi nopea (yhteyden perustaminen kestää sekunteja), ja toisaalta vaikka SMS on suhteellisen nopea niin siinä data aina säilytetään tilapäisesti ja lähetetään eteenpäin, vaikka käyttäjä pyytäisikin tietoja omalta päätteeltään. Uusien GPRS-pohjaisien palveluiden tullessa markkinoille hinta tullee olemaan oleellinen asia, sillä tällä hetkellä SMS- ja CSD-pohjaisia palveluita pidetään yleisesti kalliina käyttää. WAP:in merkitys kasvanee GPRS-pohjaisten sovellusten myötä. WAP tarjoaa hyvän mahdollisuuden käyttää samoja sovelluksia erilaisilla kuljetustekniikoilla, jopa tulevaisuuden kuljetustekniikoilla, koska kuljetustekniikka on erotettu standardin WAPprotokollapinosta.

WAP-sovellusten toteuttaminen 50 4.2 Erilaisia toteuttamistapoja Seuraavaksi käsitellään erilaisia mahdollisuuksia tehdä sovelluksia lähes kaikkiin tarpeisiin. Asioita käsitellään kuitenkin automaatiosovellusten tärkeiden asioiden kannalta. Ensinnä käsitellään WML-sivunkuvauskieltä ja seuraavaksi kerrotaan WML-kieltä laajentavista tekniikoista, WMLScriptistä, CGI-ohjelmoinnista ja Java-servleteistä. Hyviä WAP-oppaita WML-, WMLScript-, CGI- ja Java-servlet ohjelmointiin löytyy mm. lähteistä: [20] ja [21]. 4.2.1 WML Wireless Markup Language (WML) on WAP:in vastine WWW:ssä käytettyyn HTML:ään. WML perustuu Extensible Markup Language (XML) kieleen. WML:ää on käsitelty tässä diplomityössä luvussa 2. WML:n avainkäsitteisiin kuuluu: muuttujat tekstin muotoilu kuvien tuki navigointi erilaisia vuorovaikutuskeinoja (valintalistoja, syöttökenttiä) WML:llä pystytään luomaan sovelluksien käyttöliittymiä, mutta pelkkä WML-kieli ei kuitenkaan mahdollista tämän monimutkaisempia palveluja. Sillä on mahdollista tehdä staattisia dokumentteja ilman vuorovaikutusta. Dynaamisuus jää dokumenttien ylläpitäjien ja päivittäjien harteille. Näitä puutteita voidaan paikata WMLScript-funktioiden, CGIrajapinnan ja Java-servlettien avulla. WMLScriptin avulla voidaan antaa välitöntä palautetta ja reagoida käyttäjän tekemiin toimiin suoraan. WMLScript-kieli onkin hyödyllinen esimerkiksi lomakekenttien datan tarkastamisessa, tai vaikkapa pienten pelien ohjelmoinnissa. CGI-ohjelmien ja Java-servlettien avulla voidaan puolestaan lomakekenttien syötteitä käsitellä monipuolisesti, tarvittaessa tallentaa tietokantaan, lukea tietokannasta, luoda dynaamisia WML-dokumentteja jne. Periaatteessa CGI-rajapinnan ja

WAP-sovellusten toteuttaminen 51 Java-servlettien avulla voidaan WAP-arkkitehtuurissa ja laitteissa tehdä kaikki samat toiminnot kuin internetissäkin. XML:n merkitys kasvaa jatkuvasti mobiiliratkaisuissa ja tulevaisuudessa WAP-ratkaisut tulevatkin mahdollisesti liittymään läheisesti XML-kuvauskieleen. WML:n potentiaaliseksi seuraajaksi onkin nimetty XHTML (Extensible Hypertext Markup Language), joka on muodostettu HTML 4.0:sta uudelleenmuotoilemalla se XML:n mukaiseksi. 4.2.2 WMLScript WMLScript perustuu ECMAScriptiin, joka on sama skriptikieli johon JavaScriptkin perustuu. WMLScriptiä voidaan käyttää WML:llä kirjoitettujen palvelujen laajentamiseen, esimerkiksi toistuvien asioiden logiikkaan, silmukoihin ja laskennallisiin funktioihin. WMLScript-kielen suurin puute on se, ettei sillä voi helposti käsitellä palvelinkoneella olevia tietoja. Esimerkiksi tietokantojen käsittely WMLScript-kielen avulla ei ole mahdollista. Seuraavaksi perehdytäänkin CGI-rajapintaan ja Java-servlet ohjelmointiin, joiden avulla voidaan tehdä samat asiat kuin WMLScriptilläkin, mutta sen lisäksi lukematon määrä muita hyödyllisiä ja monimutkaisia asioita. Yritysten monipuolisia ja monimutkaisia WAP-ratkaisuja onkin järkevintä tällä hetkellä toteuttaa joko CGIrajapinnan tai Java-servlettien avulla. 4.2.3 Common Gateway Interface CGI CGI oli ensimmäinen varteenotettava tekniikka, jolla pystyi luomaan dynaamista sisältöä internetiin. CGI-sovellukseksi (tai skriptiksi) kutsutaan palvelinkoneella olevaa ohjelmaa, kirjastoa tai alirutiinia, joka kommunikoi CGI-rajapinnan välityksellä WWWtai WAP-dokumentin kanssa [21]. Sovellusohjelmien ja dokumenttien välillä CGI-rajapinta mahdollistaa käyttäjän syötteistä riippuvien dynaamisten ja vuorovaikutteisten dokumenttien luomisen. Tämä ei ole mahdollista WML- tai HTML-muotoilukielellä. CGI-rajapinnan avulla kaikki tieto

WAP-sovellusten toteuttaminen 52 voidaan tallentaa tietokantaan, jossa sitä voidaan ylläpitää. Käyttäjä voi hakea tietoa tästä tietokannasta WAP-laitteen tai WWW-sivun välityksellä. CGI-skripti hakee tarvittavat tiedot ja esittää ne käyttäjälle päätelaitteella. Tietokantaa voidaan myös muuttaa tai tietueita voidaan lisätä, poistaa ja muokata. CGI-ohjelmat siis mahdollistavat dokumenttien tekemisen vuorovaikutteisiksi. CGI-ohjelmien suurin rajoittava tekijä on niiden toiminnallinen elinkaari (kts kuva 4.4). Kun palvelin vastaanottaa pyynnön CGI-ohjelman käyttämiseen, sen tarvitsee luoda aina uusi prosessi ajaakseen CGI-ohjelmaa. Tällainen prosessien yhtämittainen luonti jokaista pyyntöä kohden vaatii paljon aikaa ja voimavaroja palvelimelta, mikä taas rajoittaa niiden pyyntöjen määrää joita palvelin pystyy käsittelemään samanaikaisesti. CGI-pohjainen Web palvelin pyyntö CGI1 pyyntö CGI2 pyyntö CGI1 prosessi CGI1-lapsiprosessi CGI2-lapsiprosessi CGI1-lapsiprosessi Kuva 4.4 CGI-ohjelman elinkaari CGI-arkkitehtuuria on myös kehitetty ja yksi tällainen parannus on FastCGI, joka toimii kuten CGI tärkein ero on siinä että FastCGI luo yhden pysyvän prosessin jokaista FastCGI-ohjelmaa varten. Tämä poistaa tarpeen luoda aina uusi prosessi jokaista pyyntöä kohden. Vaikka FastCGI onkin askel oikeaan suuntaan, niin CGI:n perusongelma säilyy: jokaista ohjelmaa kohden on olemassa ainakin yksi prosessi. Jos FastCGI-ohjelman tarvitsee käsitellä samanaikaisia pyyntöjä, se tarvitsee prosessivarannon, yhden jokaista pyyntöä kohden. Toinen FastCGI:n ongelma on se, että sekään tavallisen CGI:n tavoin ei helpota vuorovaikutusta palvelimen kanssa. CGI-ohjelmissa piilee myös tietoturvariski. Paljolti CGI-ohjelmien tehokkuuden takia ne voivat haavoittaa palvelinta, jossa ne toimivat. Tämä siksi, että mitä tahansa ohjelmaa voidaan käyttää CGI-rajapinnan kautta. Esimerkiksi ohjelmia, jotka valvovat pääsyä laitteistoon, ja ohjelmia jotka voivat muuttaa tai tuhota tiedostoja tietokoneella.

WAP-sovellusten toteuttaminen 53 Käyttämällä alle lueteltuja tapoja voidaan CGI-ohjelmien tietoturvaa parantaa. CGI-ohjelmat tulisi tarkistaa siten, että niillä voi käyttää vain haluttuja ohjelmia ja toimintoja. CGI-ohjelmat tulisi sijoittaa rajattuun ympäristöön. Windows 3.1, Windows 95 ja Macintosh käyttöjärjestelmät eivät ole hyviä valintoja, koska niissä CGI-ohjelmien toimintaa ei voi rajoittaa. Esimerkiksi lähteessä [4] on lueteltu esimerkkejä turvallisista CGI-ohjelmista ja annettu vinkkejä tietoturvalliseen ohjelmointiin. 4.2.4 Java-servletit Servletit ovat Java-kielellä [11] kirjoitettuja Java-tavukoodiksi käännettyjä moduuleita, joiden avulla voidaan laajentaa WWW- ja WAP-palvelinten toiminnallisuutta monella tavalla. Servlet-arkkitehtuuri on monilta osin analoginen CGI-arkkitehtuurin kanssa: päätelaitteen lähettäessä pyynnön servletti käsittelee sen, tekee tarvittavat toimenpiteet ja tulostaa vastauksen, joka ohjataan pyynnön esittäneelle päätelaitteelle. CGI-skriptin tapaan myös servletti voi kommunikoida ulkoisten resurssien kanssa ennen vastauksen lähettämistä. Servlet on samanlainen kuin sovelluskohtaiset palvelinlaajennukset, lukuun ottamatta sitä seikkaa että servlet toimii Javan virtuaalikoneessa (Java Virtual Machine), joka tekee servletit turvallisiksi ja siirrettäviksi. Servletit toimivat täysin palvelimen toiminta-alalla. Ne eivät vaadi asiakaskoneelta tukea Javalle.[9] Toisin kuin CGI ja FastCGI, jotka tarvitsevat useita prosesseja käsitelläkseen eri pyyntöjä, servlettien pyynnöt käsitellään erillisillä säikeillä (kts kuva 4.5). Servletit ovat tästä johtuen suhteellisen tehokkaita ja skaalautuvia. Koska servletit toimivat palvelinkoneessa, ne voivat olla läheisessä vuorovaikutuksessa palvelimen kanssa ja tehdä asioita joita on mahdoton tehdä CGI-skriptillä.

WAP-sovellusten toteuttaminen 54 Java-servlet -pohjainen Web palvelin pyyntö Servlet1 pyyntö Servlet2 pyyntö Servlet1 säie Java Virtual Machine Servlet1 säie säie Servlet2 prosessi Kuva 4.5 Java-servletin elinkaari Toinen etu servlettien käytössä on niiden siirrettävyys: riippumatta käyttöjärjestelmistä ja palvelimista Java toimii kaikilla alustoilla. Java-servletit ovatkin tästä johtuen mahdollisesti yksi parhaista alustoista tehdä niin WAP- kuin WWW-sovelluksiakin. Java-servlettien elinkaareen kuuluu kolme erilaista vaihetta (kuva 4.6). Ensimmäiseksi servlet latautuu suoritusympäristöönsä ja aktivoituu toimintaan. Servletit ladataan aina dynaamisesti ja lataus suoritetaan palvelinkohtaisesti. Servlettien lataus voidaan suorittaa myös etälatauksena käyttäen Java-luokan latausmekanismia (Class Loading). Näin tarjolla olevia resursseja pystytään keskittämään. WAP-pyyntö WAP-vastaus WAP-palvelin init() service() Servletti destroy() Kuva 4.6 Elinkaaren eri vaiheet. Hetkellä, jolloin palvelin aktivoi servletin, suoritetaan init-metodin kutsu. Ohjelman kirjoittaja voi halutessaan myös kirjoittaa oman implementoinnin init-metodille, jolloin

WAP-sovellusten toteuttaminen 55 servletti saadaan sopeutettua ympäristöönsä, ja samalla voidaan suorittaa mahdollisia raskaita alustuksia (esim. I/O tyyppisiä) vain kerran, toisin kuin kohdistaa ne erikseen jokaiselle pyynnölle (Request). Servleteillä on myös mahdollista saada tietoa suoritusympäristöstään ServletContext-olion välityksellä. Aktivoitumisen jälkeen servletti on muistiavaruudessa valmiina ottamaan vastaan erilaisia pyyntöjä. Servletille tullut pyyntö käsitellään service-jäsenfunktiossa. Parametrinä välitettävä ServletRequest-olio sisältää tiedon asiakkaalta tulleesta pyynnöstä. ServletResponse-olio taas huolehtii vastauksen lähettämisestä. Servletin elinkaaren viimeinen vaihe on sen tuhoutuminen, joka tapahtuu kun palvelin ekspliittisesti kutsuu servletin destroy-metodia. Virtuaalikoneen roskienkeruujärjestelmä huolehtii tästä eteenpäin resurssien vapauttamisesta. Javaa käytettäessä voidaan sovelluksen suunnittelua laajentaa koskemaan myös järjestelmässä käytettävän logiikan ohjelmointia. Esimerkiksi Enterprise JavaBeans (EJB) [11] on malli uudelleen käytettäville Java-palvelinkomponenteille. EJB-arkkitehtuuri on suunniteltu tarjoamaan tuotekehittäjille ja palvelualustojen suunnittelijoille mahdollisuus Java-pohjaisten hajautettujen järjestelmien valmistamiseen laite- ja ohjelmistoriippumattomalla tavalla. EJB-arkkitehtuuri on yhteensopiva jo olemassa olevien palvelinalustojen sekä CORBA:n (Common Object Request Broker Architecture) [22] kanssa. Javaa on yleisesti pidetty jokseenkin turvallisena kielenä, koska Java-ohjelmat harvoin käyttäytyvät arvaamattomasti jos annettu data on odottamatonta. Lähteessä [4, s 41-43] on lueteltu seikkoja jotka tekevät Javan turvalliseksi kieleksi: Automaattinen roskien keräys Ei C++ -kielen tapaisia osoittimia Kehittynyt poikkeuskäsittely Samassa lähteessä on myös kerrottu useista asioista, jotka kannattaa ottaa huomioon suunnitellessa tietoturvallista Java-sovellusta.

WAP-sovellusten toteuttaminen 56 4.3 WAP:in mahdollisuudet automaatiossa Automaatiosovellusten käyttäminen kauempaa kuin saman rakennuksen sisältä langattoman verkon välityksellä vaatii yksinkertaista sovellusta. Tällainen sovellus ei välttämättä voi olla kuin kahdessa tai kolmessa tilassa (esimerkiksi päällä ja pois). Siinä ei voi olla monimutkaisia ohjaustoimintoja tai aikakriittisiä ominaisuuksia. Tällä hetkellä automaatiosovellukset ovat vielä rajattuja ja erittäin yksinkertaisia. Kun WAP:in toiminnallisuus, turvallisuus, nopeus ja luotettavuus vielä kehittyvät, niin pian voidaan puhua oikeista sovelluksista. WAP:ia voidaan kuitenkin jo nyt pitää varteenotettavana tekniikkana. WAP on hyödyllinen esimerkiksi silloin, kun sovelluksen käyttäjä ei ole tietokoneen äärellä ja hänen täytyy saada tietoa jostakin kauempana sijaitsevasta sovelluksesta. WAP-sovellus on hyödyllisimmillään silloin, kun WAP-päätelaitteen käyttäjä on kiinnostunut lyhyestä ja nopeasta tiedosta. Tuleva WAP-spesifikaatio 1.2 lisännee WAP:in merkitystä edelleen automaatiossa. Version 1.2 pitäisi tuoda olemassa olevaan arkkitehtuuriin lisäpalveluita, kuten pushtekniikka [26], jotka ovat erittäin hyödyllisiä automaatiossa. WAP-pohjaisen automaatiosovelluksen tulisi olla luotettava. Sen täytyisi toimia vähintään samalla luotettavuudella kuin luotettavimmat WWW-pohjaiset automaatiosovellukset. Hyvän WAP-sovelluksen tulisi täyttää myös seuraavat kohdat: Eristää sisältö langattoman verkon toteutuksesta siten että sovellus on riippumaton verkosta ja lyhytsanomakeskuksesta Mahdollistaa yhteys kaikista WAP-laitteista Laadunhallinta; täytyy tietää milloin palvelun laatu riippuu operaattorista ja milloin sisällöstä Tietoturvanhallinta; täytyy olla mahdollisuus käyttää tuleviakin sovelluksia Kaupallisuus; tietoturvaratkaisuja voi hankkia muualta WAP-pohjaista automaatiosovellusta suunniteltaessa on kiinnitettävä huomiota useisiin asioihin. Nämä asiat eroavat selvästi perinteisestä WWW-suunnittelusta ja on lueteltu seuraavaksi.

WAP-sovellusten toteuttaminen 57 Miten saada informaatio näkyville selkeästi? Puhelimen näyttö on pieni verrattuna esimerkiksi kannettavan tietokoneen näyttöön. Tavallisen WAP-puhelimen näytölle saadaan mahtumaan noin 4-6 riviä tekstiä ja 16-20 merkkiä jokaiselle riville. Informaatiosisältö ei ole siis läheskään yhtä hyvä kuin pöytäkoneiden WWW-selaimissa. Informaation asetteluun ja käyttöliittymän suunnitteluun kannattaa kiinnittää huomiota. On tärkeää, ettei olennainen tieto huku muun tekstin ja kuvien joukkoon. Informaatiosta tulisi olla esillä vain olennaisin, lisää tietoa pitäisi tarjota tarpeen mukaan linkeillä. Kannattaako valita oma yhdyskäytävä vai käyttää jo olemassa olevaa? Oman yhdyskäytävän hankinta on aina isompi investointi kuin esimerkiksi operaattorin olemassa olevan yhdyskäytävän käyttö. Oma yhdyskäytävä on välttämättömyys, jos yhdyskäytävän läpi kulkee sellaista tietoa jota ei haluta kenenkään muun kuin yhtiön tiettyjen työntekijöiden saataville (esimerkiksi pankkisalaisuuksia tai prosessin ohjauskäskyjä). Jos yhdyskäytävää käytetään vähäpätöisempiin tehtäviin, kuten tiedon hakemiseen, niin ei ole välttämätöntä omistaa yhdyskäytävää vaan voidaan käyttää myös muidenkin käyttämää operaattorin yhdyskäytävää. Toisaalta asiaan vaikuttaa myös ylläpidon laatu. Vaikka omaa yhdyskäytävää on kohtuullisen helppo pitää yllä, se vie kuitenkin jonkin verran ylimääräisiä resursseja. Miten helpottaa navigointia ja tiedon hakemista? Navigointi on matkapuhelimen avulla vaikeaa. Pieni tiedon määrä yhdellä kortilla pakottaa tekemään monimutkaisempia navigointimalleja. Linkkien ja valintalistojen täytyy kuitenkin olla johdonmukaisesti esillä ja navigoinnin on oltava selkeää. Syöttömahdollisuudet matkapuhelinten näppäimistöllä. Matkapuhelimessa ei yleensä ole erillistä näppäintä jokaiselle kirjaimelle. Syöttömahdollisuuksiin on siis kiinnitettävä huomiota. Valintalistojen käyttö on suositeltavampaa kuin tekstinsyöttökenttien.

WAP-sovellusten toteuttaminen 58 Kuvat ja trendit ovat pieniä ja epäselviä, miten parantaa niiden informatiivisuutta? Kuten ensimmäisessä kohdassa jo kerrottiin matkapuhelimen näyttö on pieni ja sillä voi esittää vain pienen määrän siitä tiedosta mitä pöytäkoneen näytöllä. Kuvat ovat vielä toistaiseksi nykyisissä matkapuhelimissa täysin mustavalkoisia. Sen lisäksi että ne ovat pieniä, ne ovat vielä epäselviäkin. Kuvien liiallista käyttöä kannattaa siis välttää, vain tärkeimmät trendit tai logot kannattaa jättää. WAP ei ole sama asia kuin WWW. Samat suunnitteluseikat eivät päde WWW-sovelluksia ja WAP-sovelluksia suunniteltaessa. WAP-sovelluksissa täytyy ottaa päätelaitteen rajoitusten lisäksi huomioon myös langaton tiedonsiirto, joka on kohtuullisen hidasta ja epävarmaa. Kappaleessa 2 on kerrottu WAP:in ja WWW:n eroavaisuuksista. Yhteensopivuus muiden WAP-laitteiden tai -yhdyskäytävien kanssa? Ainakaan vielä yhteensopivuus WAP-arkkitehtuurissa ei ole itsestäänselvyys. Eri valmistajien WAP-päätelaitteet näyttävät WAP-sisällön eri tavalla. Eri valmistajan WAPyhdyskäytävään ei välttämättä voi ottaa yhteyttä eri valmistajan WAP-päätelaitteella. WAP selaimia on olemassa neljää eri tyyppiä: Nokian, Ericssonin, Phone-comin ja Microsoftin selaimet, joiden kaikkien tulisi toimia samalla tavoin kaikissa sovelluksissa. Yhteensopivuus kannattaa siis aina selvittää. Sovellusten aikakriittisyys ja monimutkaisuus. Kuten edellä on jo useasti mainittu WAP-sovellukset eivät voi olla toteutukseltaan monimutkaisia. Puhelimen näyttö ja kaistan nopeus sanelevat WAP-sovellusten käytettävyyden asteen. Sovellukset eivät voi olla aikakriittisiä, koska viivettä esiintyy lähes poikkeuksetta aina.

WAP-sovellusten toteuttaminen 59 Transaktiot täytyy varmistaa. Automaatiosovelluksissa on tärkeää, että operoitavaan prosessiin saa ottaa yhteyden vain yhdestä paikasta. Samanaikaisia yhteyksiä ei pitäisi sallia ja transaktiot tulisi aina valmistaa. Esimerkiksi laskunmaksusovelluksessa on tärkeää, että transaktiot tapahtuvat oikeassa järjestyksessä ja eivät jää tapahtumatta. Esimerkiksi laskua maksettaessa maksajan pankkitililtä tulisi vähentää ensiksi laskun summa ja tämän jälkeen rahat tulisi lisätä saajan tilille. Sovelluksessa on tärkeää, ettei rahaa häviä eikä ilmesty tyhjästä. Transaktioiden varmistaminen helpottuu, jos toteutuksessa käytetään komponenttipohjaisia palvelinratkaisuja..

Luku 5 WAP-sovelluksia automaatioon Tässä luvussa esitellään WAP-pohjaisia automaatiosovelluksia. Sovellukset on toteutettu Tampereen teknillisen korkeakoulun Automaatio-ja säätötekniikan laitoksella vuoden 1999 kesästä vuoden 2000 syksyyn asti, ja lisätietoja löytyy useista lähteistä. Näiden sovellusten suunnittelussa esiin tulleet asiat ja niistä saadut tutkimustulokset ovat näyttäneet suuntaa tätä työtä tehdessä. Sovellukset on esitetty kronologisessa järjestyksessä. Ensimmäisenä esitellään toukokuussa 1999 toteutettu sovellus, jossa Legorobottia ohjataan WAP:in avulla. Seuraavaksi tarkastellaan WAP-ohjattua logiikkaa, joka oli ensimmäinen varsinainen WAP-pilottimme joka saavutti suuren yleisön tietoisuuden. Kolmantena seuraa vuoden 2000 alussa ABB:lle toteutettu OPC-pohjainen WAP sovellus. Tämän jälkeen tutkitaan tarkemmin mahdollisuuksia toteuttaa WAP-pohjaisia etäkunnossapitosovelluksia. 5.1 WAP-operoitava Lego-robotti Tämä sovellus tehtiin olemassa olevan WWW-ohjauksen pohjalta. Alkuperäisessä etäkäyttösovelluksessa Lego-robottia ohjattiin internetin kautta CGI-ohjelmien välityksellä. Tämän laitteiston kokoonpano ja tarkemmat tiedot löytyvät Tommi Kylä- Kailan diplomityöstä [16]. Sovellus tehtiin WAP versiolle 1.0 ja se on myöhemmin päivitetty nykyisen version 1.1 mukaiseksi. 60

WAP-sovelluksia automaatioon 61 päätelaite langaton verkko WAP Server Internet Web Server CGI Kuva 5.1 Sovelluksen arkkitehtuuri Sovelluksen arkkitehtuuri on esitetty kuvassa 5.1. Olemassa olevia robotin liikuttamiseen tehtyjä WWW-pohjaisia CGI-komentoja modifioitiin siten, että ne palvelivat uudessa muodossaan WAP-arkkitehtuuria. Suurimmat muutokset jouduttiin tekemään luonnollisesti käyttöliittymään, joka ei voinut enää esittää yhtä paljon informaatiota kuin WWW-pohjainen (kuva 5.2). Sovelluksen CGI-ohjelmat muutettiin siten, että niiden vastaukset olivatkin WML-muotoista dataa HTML-muotoisen sijaan. Alkuperäiseen WWW-arkkitehtuurin jouduttiin lisäämään myös yksi ylimääräinen palvelin (kuvassa 5.1 WAP Server) palvelemaan yhdyskäytävänä. Kuva 5.2 Päätelaitteen näyttö Sovelluksemme toimi kuten pitikin, mutta myös jonkun verran ohjauskomentoja jäi saapumatta robotille. Sovellus tarvitsi näköyhteyden robottiin, jotta sitä voitiin loogisesti liikuttaa. Tämä tehtiinkin WWW-sovellukseen, joka lähetti jatkuvaa videokuvaa pöytäkoneessa toimivan selaimen ruudulle.

WAP-sovelluksia automaatioon 62 5.2 WAP-ohjattu logiikka Keskitymme tässä järjestelmän toiminnallisuuteen ja toteutusseikkoihin vastaavien automaatiosovellusten kannalta. Toteutetun järjestelmän kokoonpano ja tehtävät on selostettu pääpiirteittäin TTKK:n Automaatio-ja säätötekniikan laitokselle tehdyssä erikoistyössä [7] sekä Tommi Kylä-Kailan diplomityössä [16, s 77-85]. Tämän ensimmäisen pilottihankkeemme tarkoituksena oli tehdä teollisuustason ohjelmoitava logiikka WAP-operoitavaksi. Hanke toteutettiin kesän 1999 aikana ja on syytä huomata, että tuolloin saatavissa olleet palvelin-yhdyskäytävä ratkaisut ja päätelaitteet olivat vielä beta-vaiheessa. Myöhemmin sovellusta on kehitetty uusien ja parannettujen laitteistojen mukaan. Päätavoite oli arvioida yksinkertaisen mutta silti oikeaan teollisuusratkaisuun perustuvan WAP-sovelluksen suorituskykyä ja toiminnalisuutta. Palvelinpuolen ohjelmointi pyrittiin pitämään mahdollisimman pienenä. Tämä pilottihanke oli tutkimusryhmämme tekemä ensimmäinen oikea sovellus. Se esiteltiin Automaatiomessuilla Helsingissä syyskuussa 1999. Sovelluksen kokoonpano ja pääpiirteet ovat esitelty lyhyesti alla (kts. myös kuva 5.3): päätelaite langaton verkko WAP Server Ethernet Internet logiikka prosessi Web Server Ethernet Kuva 5.3 Sovelluksen arkkitehtuuri

WAP-sovelluksia automaatioon 63 Prosessi/Verhojärjestelmä: Verhoa liikutetaan ylös ja alas DC-moottorin avulla. Nopeutta voidaan myös muuttaa (kaksi asentoa nopea ja hidas). Ylä- ja alaasemat tunnistetaan Omronin rajakytkimillä. Omronin [23] C200HX logiikka: Prosessi on kytketty internetiin Ethernetmoduulin kautta. Logiikan muistissa oleva ohjelma ohjaa verhojärjestelmää. WAPpäätelaitteen komennot lähetetään logiikkaan UDP-paketteina porttiin 9600. WWW-palvelin (valinnainen): CGI-ohjelmat ja WML-pakat sijaitsevat palvelimen kovalevyllä. WAP-palvelin: Käytimme palvelimena Nokia WAP Serveria (pääosin 1.0 betaa [3]). CGI-ratkaisussa WAP-palvelin toimii yhdyskäytävänä. Ulkoinen modeemi: Käyttäjä ottaa yhteyden WAP-palvelimeen modeemin kautta. WAP-päätelaite: Nokia 7110 matkapuhelin. Kuvassa 5.4 on esitelty sovelluksen käyttöliittymä ja tilatietoja sellaisena kun ne näyttävät puhelimen näytöllä. Kuva 5.4 Käyttöliittymä ja tilatiedot Yhdyskäytävä (Nokia WAP Server) asennettiin tietokoneeseen, jossa käyttöjärjestelmänä toimi Windows 2000 Professional. Tietokone varustettiin modeemilla ja vastaavat RAS (Remote Access Service) palvelut konfiguroitiin. Sovelluspalvelin (Sambar 4.3 beta2) asennettiin toiseen PC:hen. Logiikka liitettiin Ethernetiin. Kaikki tietokoneet liitettiin myös Automaatio-ja säätötekniikan laitoksen lähiverkkoon testataksemme Tampereen teknillisen korkeakoulun modeemipoolia WAP-yhdyskäytävänä. CGI-ratkaisu Tässä ratkaisussa WWW-palvelin ohjaa logiikkaa C-ohjelmointikielellä tehdyillä CGIohjelmilla, joita on yksi jokaista komentoa kohden. Sovellus toimi kuten odotimme; pääosin hyvin mutta jokseenkin hitaasti ja joskus virheellisesti. Sovellus tarjosi kuitenkin tehokkaan tavan arvioida WAP:in mahdollisuuksia tämän kaltaisissa

WAP-sovelluksia automaatioon 64 teollisuussovelluksissa. CGI-tyyliset palvelinpuolen ohjelmointiratkaisut nähtiin selvästi rajoittavana lähestymistapana. CGI on tilaton ja vuorovaikutus eri skriptien välillä on hankalaa. Tämän ongelman ratkaisemiseksi on olemassa monta vaihtoehtoa (kts. luku 4.2), kuten esimerkiksi FastCGI, mutta koska olemassa oleva WAP-yhdyskäytävä tuki suoraan Java-servlettejä, niin valitsimme tämän lähestymistavan seuraavan ratkaisun pohjaksi. CGI:n ja Java-servlettien soveltuvuudesta WAP-sovelluksiin on käsitelty myös IASTED:in konferenssijulkaisussa [15] ja tämän diplomityön edellisessä luvussa. Servlet-ratkaisu Seuraavaa ratkaisua käytettiin testaamaan palvelinpuolen ohjelmointiratkaisujen potentiaalia ja soveltuvuutta automaatiosovelluksiin. CGI-ohjelmista poiketen servletit lataantuvat vain kerran ja pysyvät sitten muistissa. Tulevat pyynnöt ovat siten nopeampia, koska servletti on jo muistissa. Tilatietojen käsittely on myös helpompaa kuin CGIohjelmilla sekä vuorovaikutus servlettien kesken on suhteellisen helppo toteuttaa. Ensimmäinen huomattava seikka, kun vertasimme CGI-ratkaisua servlet-ratkaisuun oli sovelluksen nopeus. Servletit sijaitsivat WAP-yhdyskäytävässä ja näin pystyimme vähentämään tietokoneiden ja tiedonsiirron määrää. Yhteys päätelaitteesta voitiin ottaa suoraan PC:hen, jossa WAP-yhdyskäytävä sijaitsi eikä tarvittu ylimääräistä sovelluspalvelinta servlet-ohjelmia varten. Luonnollisesti servletit lataantuvat nopeammin, koska ne ladataan vain kerran. Tässä ratkaisussa turvallisuusseikat olivat myös parempia. Tarpeetonta tiedonsiirtoa ei tapahtunut, vain soketti-komentoja lähetettiin. Nokian WAP-palvelimen WAP Servlet API sisältää AcknowledgementListener luokan, jolla voidaan varmistaa se että WAP-sisältö saavuttanut käyttäjän päätelaitteen. Tämä antaa hyvän pohjan tuleville PUSH-sovelluksille. Samanlaisia ominaisuuksia löytyy myös muista kaupallisista WAP-yhdyskäytävistä ja palvelimista. Tämä tutkimus oli selvästi toteuttamiskelpoinen ratkaisu ja se herätti paljon kiinnostusta erilaisten laitteiden ohjaamiseen WAP:illa. Servleteillä pystyimme luomaan sulautetun ratkaisun yhteen palvelimeen ja saavutimme näin hyvän yhteyden prosessiin.

WAP-sovelluksia automaatioon 65 Tämä ratkaisu osoitti integroitujen sovellusten tärkeyden. Tällä tavalla palvelut voitiin implementoida suoraan WAP-alustalle. Käyttämällä Nokian WAP-yhdyskäytävää ei ole pakko käyttää ylimääräistä sovelluspalvelinta, koska yhdyskäytävä voi hoitaa sovelluspalvelimen tehtävät itse. Näiden pilottiratkaisujen jälkeen alkoi varsinainen sovelluskehitys. Tarvittava pohjatyö oli tehty ja seuraavaksi halusimme tietää miten liittää servlet-pohjaiset moduulit OPCpohjaiseen [24] automaatiojärjestelmään (OPC, OLE for Process Control). Tulevaisuudessa OPC tullee olemaan vallitseva standardi-rajapinta erilaisten automaatiojärjestelmien välillä. 5.3 OPC-pohjainen WAP-sovellus Tämä WAP-pohjainen moottorinohjaussovellus kehitettiin ABB Control Oy:n kanssa yhteistyössä. Joitakin tutkimustuloksia on esitetty IEEE:n konferenssissa [13]. Tämän projektin päätarkoitus oli kehittää sovellus, jossa WAP-päätelaitteella pystyttäisiin ohjaamaan sähkömoottoreita. Sovelluspalvelimena käytettiin PC:tä, jossa käyttöjärjestelmänä oli Windows NT 4.0 Workstation. Sovelluspalvelin toimi sekä yhdyskäytävänä ja palvelimena. Tämän toiminnallisuuden tarjosi Nokia WAP Server 1.0. OPC-palvelimena käytettiin Easylonin palvelinta [5] ja Siemensin M20T GSM-modeemia käytettiin RAS-laitteena, joka vastasi tuleviin datapuheluihin sekä autentikoi käyttäjät. LonWorksin [2] kenttäväylä mahdollisti liitynnän PC:stä sähkömoottoriin ABB:n Insum MCU:n (Motor Control Unit) kautta. Kuvasta 5.5 näemme laitteiston yleiskuvan ja yhteydet. Tarkemmat kokoonpanotiedot löytyvät lähteestä [13]. päätelaite langaton verkko WAP OPC Server Server LON fieldbus prosessi Kuva 5.5 Sovelluksen arkkitehtuuri

WAP-sovelluksia automaatioon 66 Aikaisempien kokemuksien perusteella Java valittiin sovelluksen toteuttamiskieleksi jo suunnitteluvaiheessa. Implementoitu servlet-olio tuottaa WML-pohjaisen käyttöliittymän ja luo niin monta Java OPC Client olioinstanssia kuin sähkömoottoreita on määritelty LonWorks verkossa. Näiden Java OPC palveluiden implementointi perustui Java2OPC ohjelmistoon [8], joka mahdollistaa Java sovellusten kirjoittamisen mille tahansa OPCpalvelimelle. Toteutettu ohjelmisto toimii Nokian WAP-palvelimen servlettimoottorissa. Java2OPC kutsuu java2opc.dll:ää (dynamic link library), joka käyttää OLE/COM liityntää kommunikoidakseen OPC-palvelimen kanssa. Sovellukseen implementoitiin neljä perustoimintoa. Operaattori pystyi valitsemaan moottorin, jota hän halusi käyttää. Operaattori pystyi tämän jälkeen käynnistämään, pysäyttämään ja nollaamaan moottorin. Nollausta tarvittiin silloin, kun moottori oli ajettu vikatilanteeseen. Tilatietoja ja virheilmoituksia voitiin myös tarkastella erillisiltä pakoilta. Myös hälytystoimintoa kokeiltiin SMS-muodossa, koska PUSH ominaisuudet eivät ole vielä käytettävissä WAP-arkkitehtuurin versiossa 1.1. Sovelluksessa ei esiintynyt vakavia turvallisuusongelmia, koska sovelluksessa ei ollut yhteyttä Internetiin ja käyttäjä autentikoitiin soittamalla RAS:iin käyttäjänimi-salasana yhdistelmällä. Luonnollisesti turvallisuusongelmat ovat vastassa jos tehdään yhteys Internetiin. Esimerkiksi OPC-palvelimessa itsessään ei ole mitään autentikointimenetelmää. Tässä tapauksessa kuka tahansa palvelimen olemassa olosta tietävä pystyisi operoimaan sillä. Tämän vuoksi palomuuri vaikuttaa parhaimmalta ratkaisulta välttää vihamielinen väärinkäyttö.

WAP-sovelluksia automaatioon 67 5.4 Harvesterin etäkunnossapito WAP:in avulla Plustechin kanssa yhteistyössä toteutetussa projektissa tutkittiin langattoman internetin sekä mobiilien laitteiden soveltuvuutta harvesterin kunnossapitoon ja tietojen välittämiseen. Projektin tarkoituksena oli helpottaa sitä tiedonsiirtoa, mikä tapahtuu harvesterin muiden instassien, kuten metsäyhtiön tai huoltomiehen välillä. Tarkoituksena oli muodostaa välitön yhteys harvesteriin ja saada siitä tietoja matkapuhelimen näytölle. Tällä tavoin on mahdollisuus saada muidenkin kuin harvesterin operaattorin käyttöön esimerkiksi hydraulijärjestelmän paineita, moottorin lämpötilaa, työvuororaportteja jne. Kunnossapito voi tarkistaa erilaisia parametrejä, ja voi sitten ilmoittaa harvesterin operaattorille mitä suureita pitää muuttaa. Näin huoltomiehet välttävät pitkiä työmatkoja sellaisten asioiden vuoksi, joihin operaattori voi vaikuttaa. Tällainen harvesterin etäkunnossapito on mahdollista kaikkialla GSM-verkon kuuluvuusalueella. WAP-pohjainen tiedonhaku on luonnollisesti rajatumpaa kuin WWW-pohjaisen jo pelkästään näyttölaitteen koosta johtuen (kuva 5.6). Tämän vuoksi tarkoituksena olikin luoda WAP-sovellus täydentämään yksityiskohtaisempiin asioihin pystyvää WWW-sovellusta. Kuva 5.6 Päätelaitteen näyttö Kuvassa 5.7 on esitetty erilaisten käyttäjien yhteys harvesteriin ja toisiinsa. Huoltomies voi ottaa yhteyden harvesteriin tarkistaakseen siitä esimerkiksi joitakin parametrejä joko kannettavalla tietokoneella (jolloin hän käyttää WWW- tai WAP-palveluita) tai matkapuhelimella (jolloin hän käyttää WAP-palveluita). Huoltomiehellä on myös yhteys tietokantapalvelimeen, johon on kerätty pidemmältä ajalta joitakin harvesterin tunnuslukuja. Metsäyhtiö voi myös käyttää samoja palveluita, esimerkiksi lukeakseen tietokantapalvelimelta hakkuutietoja.