23
TEKNIIKAN JA TALOUDEN YLIOPISTO www.lut.fi

Symbian ohjelmointi

Embed Size (px)

DESCRIPTION

Symbian ohjelmointi. 7. Luento Juha Turunen ([email protected]). Sisältö. Tietoturva matkapuhelimissa Symbian security Lokalisaatio. Tietoturva matkapuhelimissa. Tarve turvallisuudelle - PowerPoint PPT Presentation

Citation preview

Page 1: Symbian ohjelmointi

TEKNIIKAN JA TALOUDEN YLIOPISTO

www.lut.fi

Page 2: Symbian ohjelmointi

Symbian ohjelmointi

7. Luento

Juha Turunen ([email protected])

Page 3: Symbian ohjelmointi

Sisältö

• Tietoturva matkapuhelimissa• Symbian security• Lokalisaatio

Page 4: Symbian ohjelmointi

Tietoturva matkapuhelimissa

• Tarve turvallisuudelle– Matkapuhelinten muuttuessa yhä enemmän

tietokoneen kaltaisiksi ja niiden ollessa kytkeytyneenä erilaisiin verkkoihin, uhkaavat PC-maailman ongelmat matkapuhelimia

– Operaattorit vaativat turvallisuusmekanismeja taloudellisten menetysten pelossa

• Uhat– Arkaluontoisen tiedon leviäminen– Taloudelliset menetykset valmistajalle ja

loppukäyttäjälle– Henkilökohtaisesti arvokkaan informaation menetys– Fyysiseen turvallisuuteen kohdistuvat uhat

Page 5: Symbian ohjelmointi

Tietoturva matkapuhelimissa

• Suurin osa puhelinten käyttäjistä eivät miellä puhelinta tietokoneeksi ja olettavat puhelimen olevan turvassa uhilta

• Mekanismit turvallisuuden takaamiseksi– Salaus, tiivisteet (hash), allekirjoitus– Autentikaatio & autorisointi– Sertifiointi– Pääsynvalvonta

• Secure hardware– Varmistaa ohjelmistojen eheyden ja koskemattomuuden

asennuksen jälkeen– Ei niin kriittinen loppukäyttäjän kannalta, koska vaatii fyysistä

pääsyä laitteeseen• Secure software

– Varmistaa turvallisen sovellustason toiminnan– Applikaatiotason turvallisuus on tärkeää, koska natiiveilla (C++)

Symbian-sovelluksilla on laaja pääsy laitteen tarjoamiin rajapintoihin

• Puhelut, viestit, massamuistit, jne…

Page 6: Symbian ohjelmointi

Symbian security

• Symbian OS 9.1 (S60 3rd edition) ->• Tärkeimmät toiminnot

– Suojaa puhelimen ja sen sisältämien ohjelmien eheyttä

– Mahdollistaa luottamuksellisen tiedon suojaamisen sovelluksilta

– Kontrolloi pääsyä järjestelmän resursseihin (esim. puhelut)

• Koostuu pääpiirteittäin kolmesta osasta– TCB– Data caging– Capability model

Page 7: Symbian ohjelmointi

TCB

• Trusted Computing Base– Kernel– File server– Installer

• TCB toimeenpanee capability modelin ja data cagingin• TCB:n virheettömyys elintärkeää, koska kaikki muut

turvallisuusmekanismit rakentuvat TCB:n palveluiden varaan

Page 8: Symbian ohjelmointi

Sovellusten yksilöinti ja eheys

• Symbian security mallissa sovellukset asennetaan allekirjoitetuista SIS-paketeista

• SIS-paketin sisältöä on mahdoton muuttaa rikkomatta allekirjoitusta

• Sovellukset yksilöidään SID ja VID tunnisteiden avulla– Secure ID:n avulla tunnistetaan yksittäiset sovellukset– Vendor ID:n avulla tunnistetaan ohjelmistojen

valmistajat• Puhelimen muistiin asennetut sovellukset ovat sijoitettu

tiedostojärjestelmään siten etteivät ajettavat ohjelmat pysty muuttamaan niitä

• Siirrettäville medioille asennetuista ohjelmista lasketaan hajaute, joka tallennetaan suojattuun paikkaan

Page 9: Symbian ohjelmointi

Capability model

• Oikeudet (capabilities) määrittelevät mitä sovellus saa tehdä sekä kuinka paljon komponenttiin luotetaan

• Oikeudet voidaan jakaa neljään ryhmään– Kaikille avoimet

• ~60% API:sta ovat kaikille avoimia– Käyttäjän myöntämät

• Asennettaessa sovellusta käyttäjä voi myöntää sovellukselle esim. oikeuden muodostaa verkkoyhteyksiä tai kirjoittaa kalenteritietoja

– Symbian signed prosessin kautta myönnetyt• Sovelluksen tulee käydä läpi sertifiointiprosessi• Esim. paikkatieto

– Valmistajan myöntämät• TCB, DRM

• Käynnistettäessä uusi prosessi, perii prosessi oikeutensa ajettavalta ohjelmakoodilta (exe)– Prosessin oikeudet eivät koskaan voi muuttua sen elinkaaren aikana– Kernel pitää kirjaa eri prosessien oikeuksista

Page 10: Symbian ohjelmointi

Capability model

• Prosessi voi ladata DLL:n jos ja vain jos ladattavalla DLL:lla on samat tai useampia oikeuksia kuin prosessilla– Tässä tapauksessa oikeuksilla ilmaistaan

luottamuksen taso DLL:yyn eikä sitä, mitä DLL varsinaisesti tekee

– Koska DLL:n sisältämä koodi ajetaan prosessissa, on DLL:n sisältämällä koodilla käytettävissään samat oikeudet kuin prosessilla riippumatta siitä mitä oikeuksia varsinaisella DLL:lla on

• Server voi tarkistaa pyynnön tehneen prosessin oikeudet ennen pyynnön suorittamista

Page 11: Symbian ohjelmointi

Data caging

• Data caging –mekanismilla rajoitetaan prosessien pääsyä eri puolille tiedostojärjestelmää

• Resursseille ja ajettaville ohjelmille omat erityishakemistot, joita voi käyttää vain sovellukset, joilla on riittävästi oikeuksia– Esim. ainoastaan file server ja installer voivat lukea ja

kirjoittaa ajettavia ohjelmia• Jokaisella ajettavalla sovelluksella (palvelin, UI-sovellus,

jne) on oma yksityinen hakemisto (yksilöity SID:llä), jota voi lukea ja kirjoittaa ainoastaan sovellus itse tai riittävät oikeudet omaava sovellus– Sovellus voi jakaa avoimia kahvoja yksityisen

hakemiston tiedostoihin IPC:n kautta

Page 12: Symbian ohjelmointi

Data caging

• Erityishakemistot– \sys\

• Systeemikriittiset tiedostot ja ajettavat ohjelmat (\sys\bin)

• Java MIDlettien tallennettu muualle ja niiden eheydestä huolehtiminen on VM:n vastuulla

– \resource\• Lukeminen mahdollinen mahdollista kaikille• Kirjoittaminen mahdollista ainoastaan installerille

– \private\• Sovellusten suojatut hakemistot (\private\<SID>\)

– Julkinen alihakemisto

• Muut hakemistot eivät ole suojattuja millään tavalla

Page 13: Symbian ohjelmointi

Resurssien suojaus

• Symbianin turvallisuusmallissa resurssien käyttöä kontrolloidaan luomalla niiden ympärille prosessirajoja

• Server-prosessi voi tarkistaa pyynnön tehneen clientin oikeudet, SID:n ja VID:n ennen clientin palvelemista– Esim. lähetetään tekstiviesti vain, jos clientilla on

NetworkServices oikeus– Esim. kieltäydytään palvelemasta tiettyä sovellusta (SID), joka

oletetaan riskiksi– Esim. tarjotaan palvelu vain tietyn valmistajan (VID) sovelluksille

• Jos kontrolloitava resurssi on esimerkiksi salasana-tietokanta, tehdään salasanoja säilyttävä server, joka tallettaa tiedot omaan yksityiseen hakemistoonsa ja jakaa tietoja clienteille määriteltyjen sääntöjen puitteissa

Page 14: Symbian ohjelmointi

Trusted UI

• Hyökkääjä voi yrittää kaapata laitteen käyttöliittymän ja esittää käyttäjälle mitä tahansa tuttua käyttöliittymää kaapatakseen käyttäjältä tietoja (esim. salasanoja)

• Trusted input– Takaa, että ainoastaan riittävillä oikeuksilla varustetut

moduulit voivat vastaanottaa (FEP) ja lähettää näppäimistön painalluksia

– Keyloggerit• Trusted output

– Informoi käyttäjää siitä, että käyttäjän näkemä UI (esim. salasana dialogi) on aito (esim. merkkivalo)

– Sovellus voi olla varma siitä, että näkymän päällä ei ole esim. muita dialogeja (paitsi sovellusten joilla on TrustedUI oikeus)

Page 15: Symbian ohjelmointi

Secure software installer

• Laitteeseen voidaan asentaa allekirjoittamattomia ja allekirjoitettuja ohjelmistoja– Allekirjoittamattomat ohjelmistot voivat saada

ainoastaan käyttäjän myöntämiä oikeuksia• Asennettaessa allekirjoittamatonta sovellusta käyttäjä voi

myöntää sovellukselle tiettyjä oikeuksia (esim. oikeus tehdä puheluita)– Näin käyttäjää informoidaan sovelluksen mahdollisesti

sisältämistä riskeistä (ja vastuu vahingoista siirtyy näppärästi kuluttajalle)

• Allekirjoitetut ohjelmat ovat Symbian signed prosessin läpikäyneitä eikä käyttäjän tarvitse eksplisiittisesti ilmoittaa luottavansa niihin, koska sovellukset on hyväksytty Symbianin toimesta

Page 16: Symbian ohjelmointi

Secure software installer

Page 17: Symbian ohjelmointi

Symbian signed

• Symbian signed on Symbianin prosessi, joka tarjoaa riippumattomien ohjelmistovalmistajien ohjelmistoille digitaalisen allekirjoituksen

• Jotta sovellus voisi saada käyttäjän annettivassa olevia oikeuksia vahvempia oikeuksia, tulee sovelluksen olla allekirjoitettu ja näin ollen läpäistä Symbian signed verifikaatio-prosessi

• Allekirjoitettua sovellusta ei ole mahdollista muuttaa allekirjoittamisen jälkeen

• Allekirjoitetun sovelluksen alkuperästä voidaan olla varmoja

• Tulevaisuudessa allekirjoituksia voidaan mitätöidä, mikäli allekirjoitetussa ohjelmassa havaitaan turvallisuusriskejä– Mitätöinnit OTA:na

Page 18: Symbian ohjelmointi

Symbian signed prosessi

Page 19: Symbian ohjelmointi

Symbian signed prosessi

• Ennen sovelluksen lähettämistä STH:lle verifioitavaksi, sovellusta kehitetään emulaattorissa ja kohderaudalla

• Emulaattorissa kehittäjä voi vapaasti määritellä sovellukselleen joukon oikeuksia

• Itsenäisten ohjelmistovalmistajien tapauksessa testilaitteet kuitenkin ovat useimmiten tavallisia kuluttajille myytäviä laitteita– Kehittäjä voi tilata Symbianilta puhelimeensa erityisen

kehittäjäsertifikaatin, jonka avulla puhelimeen voidaan asentaa kehittäjän itse allekirjoittamia ohjelmia vapaasti valittavalla joukolla oikeuksia

– Kehittäjäsertifikaatit ovat sidottu puhelimen IMEI koodeihin joiden määrä on sidottu kehittäjän asemaan Symbian ekosysteemissä

Page 20: Symbian ohjelmointi

Muut turvallisuus mekanismit

• Uusimmat Symbian OS ja S60 versiot tarjoavat TCB:n lisäksi myös muita turvallisuusmekanismeja– VPN– IPSec– PKI– DRM

Page 21: Symbian ohjelmointi

Muita näkökohtia ja kritiikkiä

• Deskriptorien ansiosta Symbian-ympäristö on kohtuullisen turvassa hyökkäyksiltä, jotka kohdistuvat protokollatoteusten ja verkkosovellusten buffer overflow heikkouksiin

• Hyökkäjien ansaintalogiikan kannalta olennaiset verkkopalvelut on jätetty käyttäjän sallittavaksi!– Perinteinen trade-off tilanne. Mikäli kaikki verkkoa

käyttävät sovellukset pitäisi allekirjoittaa, hidastaisi se liikaa sovellusmarkkinoiden kehitystä

• S60 alusta tallentaa esim. käyttäjän kuvatiedostot edelleen suojaamattomiin hakemistoihin

Page 22: Symbian ohjelmointi

Lokalisointi

• Internationalization (I18N)– Proaktiivinen lokalisaatiota tukeva ohjelmistosuunnittelu

• Localization (L10N)– Tuotteen varsinainen räätälöinti eri kielille ja markkina-alueille

• Lokalisoitavia asioita– Kaikki mitä käyttäjälle näytetään– Mahdollisesti ikonit– Fontit, värit– Päiväyksen ja kellonajan esitysmuoto– Desimaalipiste vs. –pilkku– Lajittelu– jne...

Page 23: Symbian ohjelmointi

Lokalisoinnin toteutus

• Tapahtuu pääasiallisesti resurssitiedostojen avulla• Jokaisesta lokalisoitavasta resurssitiedostosta yksi

kappale per variantti– MyApp.r01, MyApp.r05, jne...– Numero tiedostopäätteessä kertoo kielivariantin, jolle

resurssitiedosto on tarkoitettu• Application framework valitsee automaattisesti

sopivimman resurssitiedoston– Nearest language

• Resursseissa käytetään loogisia nimiä, jotka viittaavat erilliseen tiedostoon, jossa varsinainen merkkijono määritellään