- COMP.SEC.100
- 21. Laitteiston tietoturvallisuus
- 21.2 Tietoturvalliset alustat (syventävä)
Tietoturvalliset alustat (syventävä)¶
Tässä osiossa esitellään turva-alustoja, jotka ovat prosessorisiruja tai piirilevyjä, jotka laitteistosuunnittelija voi ottaa luotetuksi pohjaksi laskennalle. Niistä tulee luottamusjuuri, joka tarjoaa etenkin kryptografiaa, joka on fyysisesti suojassa koteloituna. Yhteistä näille alustoille on se, että ne ovat itsenäisiä moduuleja, joilla on tiukka pääsynvalvonta. Variaatiota esiintyy tarjotuissa toiminnoissa, peukaloinnin kestävyyden ja muun suojauksen tasossa sekä viestintärajapinnassa. Kolme tärkeää alustaa ovat HSM, Turvaelementti ja TPM. Näistä HSM = Hardware Security Module, TPM = Trusted Platform Module, ja turvaelementeistä keskeinen esimerkki on SIM, Subscriber Identity Module.
Hardware Security Module (HSM) (syventävä)¶
HSM-moduuli tarjoaa tyypillisesti kryptografisia operaatioita, esim. joukon julkisen ja salaisen avaimen algoritmeja sekä suojatun avainten hallinnan. Olennaista on, että nämä toiminnot tapahtuvat vahvennetussa ja peukaloinnin kestävässä ympäristössä. Todellisen satunnaisuuden lähde (TRNG) ja tosiaikainen kello ovat yleensä myös mukana. HSM-moduuleja käytetään enimmäkseen palvelinten taustajärjestelmissä tai maksujenhallinnan järjestelmissä, esim. pankeissa.
HSM-moduulia käytetään apuprosessorina, joka on liitetty isäntäjärjestelmään. HSM:n arkkitehtuuri sisältää tyypillisesti mikroprosessorin/mikro-ohjaimen, joukon krypto-apuprosessoreita, suojatun haihtuvan ja ei-haihtuvan muistin, TRNG:n, reaaliaikakellon ja I/O-prosessorit.
Perinteisesti HSM-moduuli toimii peukaloinnin kestävässä kotelossa, jossa on useita komponentteja sisältävä yksi piirilevy (emolevy). Viime aikoina joillakin sovellusalueilla, kuten autoteollisuudessa, HSM-toimintoja ei tuoteta erillisenä moduulina, vaan ne on integroitu turvalliseksi apuprosessoriksi suurempaan moduuliin, SoC-tekniikalla (System on a Chip).
Mitä HSM-toiminnot kattavat tarkalleen, riippuu sovellusalueesta. Siksi turvatasojen noudattamista arvioivat myös siihen erikoistuneet riippumattomat arviointilaboratoriot erityisten suojausprofiilien mukaan.
Turvaelementti ja SIM (syventävä)¶
Turvaelementti (Secure element) on yleisnimi HSM:ää pienemmille ja paljon halvemmille yleensä yksisiruisille laitteille, joilla on samanlaiset tavoitteet HSM-moduulilla: avainten luonti, tallennus ja kryptototeutukset. Turvaelementtejä valmistetaan suuria määriä ja niiden on oltava erittäin halpoja, koska niitä käytetään SIM-korteissa, puhelimissa (sulautettuna rakenteena), pankkikorteissa, maksu-tv-järjestelmien pääsykorteissa, henkilökorteissa, passeissa, IoT-laitteissa, ajoneuvojärjestelmissä ja niin edelleen.
Turvaelementin koko vaihtelee noin 50 cm2:stä alle 1 cm2:een. Tyypillinen sulautettu turvaelementti on yksi integroitu piiri, jossa ei ole ulkoisia komponentteja. Se koostuu pienestä mikro-ohjaimesta, jossa on kryptografiset apuprosessorit, suojattu haihtuva ja haihtumaton tallennustila, satunnaisuuden lähde (TRNG) jne. Tietoliikenne on yleensä rajoitettu tiettyyn nastasarjaan tai langattomaan NFC-yhteyteen. Turvaelementin rakentaminen on haaste laitteistosuunnittelijalle, koska on yhdistettävä turvallisuus sulautettujen piirien muihin vaatimuksiin: pieni koko ilman ulkoista muistia, alhainen teho ja/tai alhainen energiankulutus. Turvallisuudelle välttämätöntä on peukaloinnin estäminen ja hyvä sietokyky fyysisiä hyökkäyksiä kuten sivukanava- ja vikahyökkäyksiä vastaan.
Trusted Platform Module (TPM) (syventävä)¶
TPM-moduulin on määritellyt Trusted Computing Group (TCG) tarjoamaan tiettyjä suojaustoimintoja PC-alustalle. Tarkemmin sanottuna TPM on PC-alustaan upotettu luottamusjuuri, joten PC+TPM voi tunnistaa itsensä ja nykyisen kokoonpanonsa ja käynnissä olevan ohjelmiston. TPM tarjoaa kolme erityistä luottamusjuurta: RTM, RTS ja RTR, eli Root of Trust for Measurement, Storage ja Reporting. Näiden kolmen perustoiminnon lisäksi on tarjolla pääsy kryptoalgoritmeihin, suojattu avainten tallennus, tuki suojatulle sisäänkirjautumiselle jne.
TPM on toteutettu erillisenä suojausmoduulina, aivan kuten turvaelementti, mutta erityisellä väyläliitännällä PC-alustalle, esim. LPC- tai I2C-väylän kautta. Sen arkkitehtuuri koostuu minimissään sulautetusta mikro-ohjaimesta, useista kryptografisista apuprosessoreista, suojatusta haihtuvasta ja haihtumattomasta juuriavainten tallennuksesta ja korkealaatuisesta todellisesta satunnaislukugeneraattorista. Laitteistoa on hash-funktioille (SHA1 ja SHA256), julkiselle avaimelle (RSA ja ECC), salaiselle avaimelle (AES) ja HMAC-laskennalle. Koska TPM on erillinen moduuli, fyysinen suojaus ja peukaloinnin esto ovat tärkeitä. TPM:n päätehtävän eli eheyden suojaamisen ohella TPM sisältää myös sovelluksia levyn salaukseen, digitaalisten oikeuksien hallintaan ynnä muuhun.
Viimeisin versio TPM 2.0 laajentaa sovellusaluetta PC-suuntautumisesta verkottumisen tukeen, sulautettuihin järjestelmiin, autoteollisuuteen, IoT:hen ynnä muuhun. Versio tarjoaa myös joustavamman lähestymistavan siihen, mitä toiminnallisuuksia toteutuksiin sisällytetään. TPM-tyyppejä on neljä: Korkeimman turvatason tarjoaa erillinen “diskreetti TPM”. Yhtä askelta alemmalla turvatasolla on “integroitu TPM” moduulina laajemmassa SoC:ssa. Alimman tason suojauksen tarjoavat laiteohjelmisto-TPM:t ja ohjelmisto-TPM:t. Edelliset ovat toteutuksia CPU:n oman luotetun ympäristön (esim. UEFI) sisällä. Jälkimmäiset puolestaan eivät eroa muista ohjelmistoista ja ne soveltuvat lähinnä kehitystyöhön.
TPM:ien käyttöönotto on kehittynyt eri tavalla kuin TCG alun perin suunnitteli. Aluksi pääpaino oli turvallisen käynnistyksen ja siihen liittyvän ohjelmistopinon tukemisessa, jotta asennetun ohjelmiston täydellinen arviointi voitiin tehdä. Ongelmana on, että ohjelmistokannan monimutkaisuus on kasvanut liian nopeasti, jotta voitaisiin arvioida kaikki kelvolliset konfiguraatiot. Siten TPM-moduuleja ei useinkaan enää käytetä ohjelmistopinon täydelliseen suojaamiseen ylimpiin kerroksiin asti. Useimmissa uusissa tietokoneissa on nykyään TPM-moduuli, mutta sitä käytetään suojaamaan salausavaimia, estämään laiteohjelmiston palautusta aiempaan versioon ja auttamaan käynnistysprosessia yleensä.
Kurssimateriaalissa TPM:ää käsitellään myös täällä.