230 likes | 312 Views
Symbian ohjelmointi. 7. Luento Juha Turunen (juha.turunen@lut.fi). Sisältö. Tietoturva matkapuhelimissa Symbian security Lokalisaatio. Tietoturva matkapuhelimissa. Tarve turvallisuudelle
E N D
Symbian ohjelmointi • 7. Luento • Juha Turunen (juha.turunen@lut.fi)
Sisältö • Tietoturva matkapuhelimissa • Symbian security • Lokalisaatio
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
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…
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
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
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
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
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
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
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
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
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)
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
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
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ä
Muut turvallisuus mekanismit • Uusimmat Symbian OS ja S60 versiot tarjoavat TCB:n lisäksi myös muita turvallisuusmekanismeja • VPN • IPSec • PKI • DRM
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
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...
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