Etusivu / Frontpage - Dokumentit / Documents - Linkit / Links - Muuta / Other stuff


AEGIS-arkkitehtuuri




Arbaugh, Farber ja Smith esittelivät AEGISiksi kutsumansa käynnistysprosessin ensimmäisen kerran IEEE:n symposiumissa v. 1997. Se patentoitiin USA:ssa 2001 nimellä Secure and Reliable Bootstrap Architechture. Tässä selonteossa ei puututa käytettyihin salausalgoritmeihin, kattavammat selvitykset löytyvät Arbaughin & co. esityksistä A Secure and Reliable Bootstrap Architecture ja Automated Recovery in a Secure Bootstrap Process.

Johdanto

AEGISin filosofia on seuraavanlainen:

Tietokonejärjestelmissä korkeamman tason prosessit (käyttöjärjestelmä ja ohjelmistot) pitävät alemman tason prosessien (raudan funktiot) luotettavuutta itsestäänselvinä. Alempien kerrosten luotettavuudesta voidaan kuitenkin olla varmoja ainoastaan, jos

  1. alempien kerrosten luotettavuus tarkistetaan ja
  2. kontrollin siirtäminen ylemmille kerroksille tapahtuu vasta, kun niiden luotettavuus on varmistettu.

Kun käynnistysprosessi ei täytä näitä määreitä, sen luotettavuutta ei voida mitenkään taata. Näin on nykyisten datankäsittelyjärjestelmien laita. Kuitenkin uudet sovellukset kuten e-commerce ja erilaiset turvallisuusjärjestelmät vaativat ehdotonta varmuutta.

Käynnistysprosessin luotettavuuden tärkeyttä valottaa Intelin tiedote, jonka mukaan Pentium Pro ja Pentium II -prosessorien mikrokoodi voidaan päivittää käynnistysprosessin yhteydessä BIOSin (Basic Input/Output System) ja POST:in (Power On Self Test) ominaisuuksien avulla. Tämä voidaan käyttää hyväksi päivityksissä, mutta se myös muodostaa turvallisuusriskin. AEGIS-malli takaa sekä BIOSin että prosessorin mikrokoodin eheyden sekä tarjoaa tavan suorittaa päivitykset turvallisesti (mukaanlukien prosessorin mikrokoodi).

Taatakseen järjestelmän eheyden AEGIS nojaa kolmeen oletukseen:
  1. Emolevy, prosessori ja osa järjestelmän ROMista (BIOS) on suojattu eli murtoa yrittävä ei joko voi tai halua vaihtaa emoleyvä tai BIOSia.
  2. On olemassa infrastruktuuri, jonka avulla julkinen salausavain voidaan sitoa tiettyyn identiteettiin, mutta infrastruktuurin rakennetta ei ole rajoitettu.
  3. Palautusta varten on olemassa luotettu säilytyspaikka. Se voi olla verkkopalvelin, johon otetaan yhteyttä suojatun kommunikaatioprotokollan avulla, tai se voi olla luotettu ROM kortti järjestelmässä.

AEGIS-arkkitehtuuri sisältää palautusmekansimin, jonka avulla virhetilanteista voidaan toipua ja tarjoaa suojan eräitä DoS-hyökkäystapoja (Denial of Service) vastaan. Sille antaa lisäarvoa, että se voi laskea järjestelmän kokonaiskäyttökustannuksia vähentämällä vikailmoituksia ja lyhentämällä aikaa, jonka järjestelmä on vika- tai päivitystilanteessa alhaalla.

AEGIS takaa turvallisen käynnistysprosessin kahdella tavalla. Ensimmäinen on se, ettei mitään koodia suoriteta ellei se ole luotettu tai sen eheyttä tarkasteta ennen suoritusta. Toinen on se, että komponenttivirheen sattuessa järjestelmä voi toipua virhetilanteesta turvallisen protokollan avulla.

Nykyisen PC:n käynnistysprosessi

Jokainen IBM PC-arkkitehtuuria noudattava tietokone käynnistyy osapuilleen saman kaavan mukaan (kuva 1). Tämä on esityksessä jaettu neljään tasoon, jotka vastaavat käynnistysprosessin eri operaatioita.




Kuva 1. PC:n käynnistysprosessi



Ensimmäinen operaatio on käynnistystestauksen (Power On Self Test, POST) alustus. Tämä voi tapahtua neljällä tavalla:

  1. Koneen käynnistäminen aloittaa POST:in automaattisesti
  2. "Kylmä" resetointi (RESET-nappi)
  3. "Lämmin" käynnistys (CTRL - ALT - DEL); tämä ohittaa POST:in muistitarkistuksen
  4. Ohjelmallinen resetointi käyttöjärjestelmän salliessa

Jokaisessa yllämainitussa tapauksessa suoritetaan sarja perustestejä, joista kaikkia muita paitsi prosessorin itsetestausta kontrolloi BIOS. Kuvassa POST:in suoritus tapahtuu tasojen 1 - 3 aikana.

Kun BIOSin käynnistysrutiini on suoritettu, se etsii koneessa mahdollisesti olevat lisäkorttien ROMit (Option ROM, Expansion ROM). Löytäessään sellaisen BIOS luovuttaa kontrollin sille ja suoritettuaan omat rutiininsa lisäROM palauttaa kontrollin takaisin BIOSille.

POST:in viimeinen prosessi käynnistää käyttöjärjestelmän latauksen. Bootstrap-koodi etsii ensimmäiseksi levyn, jolla käyttöjärjestelmä sijaitsee CMOS:in määräämän järjestyksen mukaan. Kun se löytää käynnistyvän levyn, se lataa käynnistyslohkon muistiin ja siirtää kontrollin sille. Käynnistyslohko puolestaan lataa käyttöjärjestelmästä riippuen käyttöjärjestelmän, sen lataajan tai toissijaisen käynnistyslohkon.

AEGIS-käynnistysprosessi

Jotta mallilla voisi olla käytännön merkitystä, AEGIS-arkkitehtuurin tulisi toimia ilman suuria muutoksia nykyisessä raudassa. IBM PC-arkkitehtuuri valittiin prototyyppialustaksi sen laajan levinneisyyden vuoksi ja koska käytettävissä oli useiden käyttöjärjestelmien lähdekoodi. Kehitystyössä käytettiin FreeBSD:tä, mutta AEGIS ei ole käyttöjärjestelmäsidonnainen. Sen soveltaminen edellyttää vain muutamia pieniä muutoksia käynnistysrutiinissa, jolloin käyttöjärjestelmän ydin (kernel) voidaan varmentaa ennen kuin kontrolli luovutetaan sille. Koska varmennusrutiini sisältyy BIOSiin, käyttöjärjestelmän lataajan tai käynnistyslohkon koko ei merkittävästä muutu.

AEGIS muuttaa käynnistysrutiinia kuvan 2 mukaisesti niin, että BIOSin käynnistyslohkoa lukuunottamatta kaikki käynnistettävät prosessit varmennetaan ennen suoritusta salattujen digitaalisten allekirjoitusten avulla. Tämä saavutetaan rautaan lisättävällä ROM-piirillä ja pienillä BIOS-muutoksilla. BIOS ja AEGIS ROM sisältävät varmennuskoodin ja käytettävät salausavaimet. AEGIS ROM sisältää myös palautusprosessin, jolla käynnistysprosessin aikana tapahtuneet virheet korjataan. BIOSin käynnistyslohko ja AEGIS ROM toimivat luottosuhteiden varmistuksen pohjana siten, että järjestelmän luotettavuus voidaan varmistaa käyttöjärjestelmään ja käytettäviin sovelluksiin asti.

AEGIS-käynnistysprosessissa käynnistyy varmennuksen tuloksista riippuen joko käyttöjärjestelmän ydin tai palautusprosessi virheiden korjaamiseksi. Kun virheet on korjattu, järjestelmä käynnistetään uudelleen. Koko palautusprosessi tapahtuu ilman käyttäjän asiaan puuttumista.

Koska AEGIS sisältää kopion jokaisen rautaosan digitaalisesta allekirjoituksesta, sitä voidaan käyttää myös koneen rautakokoonpanon ylläpitoon. Lisätty laajennuskortti aiheuttaa käynnistysvirheen. Samoin uutta käyttöjärjestelmää ei voida käynnistää, koska tämä muuttaisi käynnistyslohkoa, joka muutettuna ei läpäise luottovarmennusta.

AEGIS lisää PC:n käynnistysrutiiniin uusia tasoja. Taso 0 sisältää BIOSin käynnistyslohkon (pieni, luotettu koodin osa), digitaaliset allekirjoitukset, julkiset salausavaimet ja palautuskoodin. Taso 1 sisältää BIOSin loppukoodin ja CMOSin. Taso 2 sisältää kaikki lisäkortit ja niiden mahdolliset ROMit. Taso 3 sisältää käyttöjärjestelmän käynnistyslohkon(/t). Nämä sijaitsevat käynnistettävällä levyllä ja vastaavat käyttöjärjestelmän ytimen lataamisesta. Taso 4 sisältää käyttöjärjestelmän ja viimeinen käyttäjän ohjelmistot ja kaikki verkon takana olevat palvelimet.

Perinteisessä käynnistysrutiinissa tasolta toiselle siirrytään automaattisesti, mutta AEGIS tarkistaa jokaisen tason prosessit ennen kontrollin luovutusta. Sen palautusprosessi varmistaa järjestelmän eheyden virheen sattuessa.




kuva 2. AEGIS-käynnistysprosessi



AEGIS jakaa BIOSin kahteen loogiseen osaan. Sen ensimäinen osa muodostaa AEGIS ROMin kanssa varmennuksien perustan. Se suorittaa tarkistussummalaskennan ROM-virheiden eliminoimiseksi. Jos laskennan tulos täsmää, toisen osan salaussumma lasketaan ja sitä verrataan säilöttyyn allekirjoitukseen. Jos tulos täsmää, kontrolli luovutetaan toiselle osalle (taso 1).

Toinen osa suoritetaan normaalisti, ainoa muutos on lisäROMien tarkistuslaskenta ennen kontrollin luovutusta. Kun kaikkien lisäROMien varmistus on suoritettu, BIOS luovuttaa kontrollin käyttöjärjestelmän käynnistyskoodille (bootstrap code), joka tarkastetaan jo BIOSin jälkimmäisen osan varmennuksen yhteydessä.

Olettaen, että käyttöjärjestelmän käynnistyskoodi on onnistuneesti varmennettu, se etsii käyttöjärjestelmän käynnistyslohkon (taso 3), varmentaa sen ja luovuttaa kontrollin sille. Jos toissijaista käynnistyslohkoa tarvitaan, ensisijainen lohko varmentaa sen ennen kontrollin siirtoa. Viimeisenä tarkistetaan käyttöjärjestelmän ydin ja siirretään kontrolli sen haltuun (taso 4).

Varmennusprosessi tapahtuu kaiken kaikkiaan sekunnin kymmenysosien aikana, joten se ei lisää merkittävästi nykyisen PC:n käynnistymiseen kuluvaa aikaa.

Palautus virhetilanteessa

Virhetilanteessa järjestelmällä on kolme mahdollista toimintatapaa:
  1. Jatkaa käynnistystä normaalisti ja tuottaa virheilmoitus. Tämä voi aiheuttaa korruptoituneen tai saastuneen komponentin suorituksen.
  2. Jättää virhetilanteen aiheuttanut komponentti käyttämättä tai suorittamatta. Tätä lähestymistapaa kutsutaan nimellä fail secure ja se voi aiheuttaa DoS-hyökkäyksen.
  3. Korjata tai korvata virhe luotetun säilön avulla ennen komponentin käyttöä tai suoritusta.

Kahta ensimmäistä käynnistystapaa ei voida hyväksyä, jos kyseessä on olennainen verkkolaite kuten kytkin tai palomuuri tai jos laitetta käytetään e-commerce -sovelluksessa, koska ne estävät laitteen tarjoaman palvelun käytön tai käynnistävät laitteen epäluotettavaan tilaan.

AEGISin palautusprotokollalla on kuusi pääasiallista maalia:

  1. Sallia AEGIS-clientin ja luotettavan säilön tunnistautua toisilleen myös, kun niiden välillä ei ole ollut aiempaa kontaktia tai kun kontakti on ollut rajoitettu.
  2. Estää Man in the Middle -hyökkäykset.
  3. Estää Replay-hyökkäykset
  4. Minimoida tiettyjä DoS-hyökkäystapoja.
  5. Antaa osanottajille mahdollisuus käyttää turvallisella tavalla yhteistä salaisuutta tulevien viestien autentikoinnin nopeuttamiseksi.
  6. KISS (Keep It Simple and Secure): Monimutkaisuus aiheuttaa haavoittuvuuksia suunnittelussa ja sovelluksessa.
AEGISin eheystarkistus voi estää rauta- tai ohjelmakomponentin suorituksen, jos sen eheyttä ei voida varmistaa. Komponentin luotettavuus voi vaarantua:
  1. Rauta- tai ohjelmavirheen vuoksi.
  2. Hyökkäyksen tai muun tarkoituksellisen toiminnan seurauksena.
  3. Jos sen sertifikaatti on vanhentunut.

Jokaisessa tapauksessa järjestelmän TÄYTYY yrittää palautusta luotetun säilön avulla. Jos siihen ei useammalla yrityksellä saada yhteyttä, järjestelmän toiminta riippuu käyttäjän määrittelyistä. Käyttäjä voi esimerkiksi määrätä, että laitteen toiminta on rajoittunutta tai että sen käynnistyminen estetään tyystin.

Luotettu säilö voi olla paikallinen ROM-kortti, joka sisältää kopiot haluttujen komponenttien koodista tai se voi olla verkossa oleva palvelin. Paikallista korttia käytettävissä virhetilanteista voidaan selvitä yksinkertaisten kopiontirutiinien avulla. Verkossa olevan palvelimen käyttäminen vaatii vahvan tunnistusprotokollan.

Jos virheellinen komponentti on BIOSin osa, se on palautettava paikallisesta kopiosta. Palautusprosessissa yksinkertaisesti kopioidaan virheellinen koodin osa virheen tuottaneen komponentin osoiteavaruuteen, jolloin sen sisältämä virheellinen koodi varjostetaan.

BIOSin jälkeen tapahtuva virhe aiheuttaa järjestelmän käynnistymisen ROM-kortilla säilytettävään palautusjärjestelmään. Se puolestaan ottaa yhteyttä verkon yli luotettuun palvelimeen turvallisen protokollan avulla (IPv6), saa siltä virheellisen komponentin oikean koodin ja joko varjostaa tai mahdollisuuksien mukaan korjaa virheellisen koodin ja järjestelmä käynnistetään uudelleen.

Arbaugh & co. antavat myös esimerkin nykyisiin DHCP- ja TFTP-protokolliin (vrt. NetPC-määritys, jonka Intel, HP, Compaq ja Microsoft julkaisivat 1997) perustuvasta palautusprotokollasta. Jotta niitä voitaisiin käyttää AEGISin yhteydessä protokolliin ei vaadita muita muutoksia tunnistuksen lisäämisen lisäksi.




Lähteet:




Kiitän mielenkiinnosta.

StopTCPA Admin
Life is free or not life




Tähän dokumenttiin sovelletaan GNU Free Documentation License -lisenssisopimusta.


Etusivu / Frontpage - Dokumentit / Documents - Linkit / Links - Muuta / Other stuff


Created on ... January 04, 2003