Oppikerta 7, 23.2.1999

Koko oppikerta käytetään tämän kerran artikkelin käsittelyyn. Erityisesti käydään läpi joitakin sen esimerkkejä - jossain määrin harjoituksenomaisesti.

Protokollien analysointi BAN-logiikalla

Burrowsin, Abadin ja Needhamin "A logic of authentication" on oikeastaan uskomusten logiikkaa (eräänlaista modaalilogiikkaa siis). Sitä käytetään autentisointiprotokollien analysointiin. Tälläkin kurssilla protokollien saavutetuksia on perusteltu juuri uskomusten avulla. Jos esimerkiksi uskot, että K on Ainon julkinen avain, niin saatuasi viestin, jonka salauksen voit purkaa K:n avulla, voit uskoa, että viesti on alunperin Ainolta. Yleisenä taustaoletuksena BAN-logiikassa on, että viesteissä on aina riittävästi redundanssia sen havaitsemiseksi, oliko purkuavain oikea. Toinen yleinen taustaoletus on että käytettyyn kryptosysteemiin voi luottaa eikä esim. salaisia avaimia ole vuotanut julkisuuteen.

Logiikan keskeisenä rakenteena on kaava "P believes X". Jos tämä kaava on tosi - eli se voidaan analyysin kuluessa johtaa tehdyista oletuksista - se merkitsee, että osapuoli P voi toimia ikäänkuin X olisi tosi (vrt. Abadi-Needhamin periaate 2 "toimintaehdot").

Protokollan analyysissa on seuraavat vaiheet:

  1. Alkuperäinen protokolla idealisoidaan/abstrahoidaan sellaiseksi, että sen viestit ovat jäljempänä olevan notaation mukaisia logiikan kaavoja. Erityisesti jätetään pois sellaiset viestin osat, joita ei ole salattu. Vaikka ne ovat tärkeitä vihjeitä osapuolten tehokkaan toiminnan kannalta, niillä ei kuitenkaan voi ole merkitystä autenttisuuden kannalta, koska ne voivat olla väärennettyjä. Pois jätetään myös muu sellainen aines, joka ei voi vaikuttaa osapuolten uskomuksiin.
  2. Lähtötilannetta koskevat oletukset kirjataan, ts. loogisilla kaavoilla ilmaistaan, mitä uskomuksia milläkin osapuolella on. Nämä koskevat tyypillisesti osapuolten yhteisiä avaimia ja aikaleimojen tai nonce-arvojen tuoreutta.
  3. Protokollan vaiheet varustetaan niiden jälkeen vallitsevaa tilaa koskevilla loogisilla kaavoilla ("annotaatiot"). Viestin lähettäminen merkitsee tyypillisesti sitä, että tarkoitetun vastaanottajan oletetaan sen jälkeen "näkevän" jotain uutta (kaavoja). Tässäkin on siis idealisointia sikäli, ettei viestien estämistä oteta huomioon.
  4. Päättelysääntöjä sovelletaan kohtien 2 ja 3 kaavoihin. Tuloksena saadaan tietoa siitä, mitä uskomuksia osapuolilla on protokollan suorituksen jälkeen (oikeastaan jo jokaisen vaiheenkin jälkeen).
Autentisointiprotokollan päämäärä voi eri yhteyksissä olla hieman erilainen. Yksi luonnollinen tavoite on tilanne, jossa A ja B autentikoivat toisensa ja tuloksena on vain heidän tiedossaan oleva symmetrinen avain K eli "A <-K-> B". Tämä tilanne voidaan formalisoida seuraavasti:
A believes A <-K-> B ,   B believes A <-K-> B
Enemmänkin voidaan saavuttaa, esimerkiksi se, että B uskoo ensimmäisen ylläolevista väitteistä ja A jälkimmäisen.
Notaatio (syntaksi, jolla semanttinen selitys)
Seuraavassa P ja Q ovat osapuolia, X ja Y ovat väitteitä ja K on salausavain. Viimeksi mainittu yhdistelmä on erikoistapaus. Yleinen tapa ilmaista, että viesti tai väite koostuu osista, on merkitä osat sulkuihin pilkuilla eroteltuina, esim. (X,Y) koostuu osista X ja Y. Varsinaisesti tässä on kyseessä looginen konjunktio: Pilkku edustaa siis operaatiota AND.

Varsinaisesti syntaksi muodostuu pelkästään em. kaavoista ja niiden yhdistelemisen säännöistä, jotka ovat varsin yksinkertaiset: AND on ainoa konnektiivi ja "kontrolloituihin" avaimiin liittyy implisiittisesti kaikki-kvantifiointi: ts. jos palvelimen uskotaan hallitsevan avaimia, niin silloin uskotaan kaikkiin sen tuottamiin avaimiin. Merkitysten selitykset puolestaan ovat semantiikkaa, jonka tehtävänä on sitoa syntaksin mukainen formaali kieli todellisuuteen, joskin idealisoituun sellaiseen. Artikkelin laajempi versio luonnostelee logiikalle myös formaalista semantiikkaa.

Tässä logiikassa ei oteta huomioon aikaa eikä tapahtumien rinnakkaisuutta saman protokollan sisällä. Ainoa erottelu on aikaisempien protokollien ja viestien mennyt aika ja nykyhetki, jota meneillään olevan protokolla kaikkineen edustaa.

Alustava esimerkki ja harjoitus. Wide-mouthed frog-protokolla:
Viesti 1 A--> S: A, { TA, B, KAB } KAS
Viesti 2 S--> B: A, { TS, A, KAB } KBS

Mitä tässä tapahtuu ja mitä oletuksia siihen liittyy?

Oletukset ovat:

Viestit näyttävät idealisoituina seuraavilta:
Viesti 1 A--> S: { TA, A <-KAB-> B } KAS
Viesti 2 S--> B: { TS, A believes A <-KAB-> B } KBS

Seuraavaksi esiteltäviä päättelysääntöjä käyttäen voidaan johtaa uskomukset:

Päättelysääntöjä
Seuraavilla säännöillä voidaan aiemmista väitteistä johtaa uusia.

Viestin tulkintaa koskevat säännöt: Voidaan päätellä "P believes Q said X", jos premisseinä on jokin seuraavista

Viestin tuoreus johtaa uskomaan enempäänkin seuraavasti (tämä on ainoa sääntö, jolla jokin sanottu ylennetään uskottuun asemaan):
Jos "P believes fresh(X) ,   P believes Q said X", niin
"P believes Q believes X"

Osapuolen luottamusta "controls"-auktoriteettiin kuvaa sääntö:
Jos "P believes Q controls X" ja "P believes Q believes X", niin
"P believes X".

Viestin osien näkemistä koskevat säännöt: Päätelmä "P sees X" voidaan tehdä, jos premisseinä on jokin seuraavista:

Osan tuoreus takaa kokonaisuuden tuoreuden eli:
Jos "P believes fresh(X)" niin "P believes fresh(X,Y)".

Edellä mainitut säännöt löytyvät tämän kerran artikkelin suppeasta versiosta. Laajemmassa versiossa on lisäksi sääntöjä, jotka koskevat viestin osia ja avainten tai salaisuuksien symmetriaa. Ensin mainittuihin liittyy havainnollisia huomautuksia, siitä millaiset säännöt eivät ole voimassa:

Harjoitus: Mitä luonnolliselta tuntuvaa ei saa päätellä seuraavissa tilanteissa ja miksei?
  1. "P believes Q said X" ja "P believes Q said X"
  2. "P sees X" ja "P sees Y"
Symmetriasäännöt ovat ilmeisiä ja ne jätetään kirjaamatta tähän.

Esimerkit

Artikkeleissa käsitellään kahdeksaa protokollaa. Noin kuudessa tapauksessa niiden tarkoituksena sopia istuntoavaimesta siten, että sopijapuolet päätyvät jonkinlaiseen varmuuteen siitä, kenen kanssa sopimus tehtiin - lyhyesti sanoen kyse on siis autentisoidusta avaimenvaihdosta.

Suppeammassa artikkelissa analysoidaan neljä protokollaa mutta esitetään taulukkona tiivistelmä kaikista kahdeksasta. Mainitut neljä ovat:

Laajemmassa versiossa on lisäksi seuraavat neljä protokollaa ja näistäkin kaikista löytyy huomautettavaa. Kaikki neljä käyttävät symmetristä salausta ja autentisointipalvelinta.
Esimerkit/harjoitukset

BAN-logiikan kritiikkiä ja myöhempiä kehittelyjä

BAN on yksinkertainen ja intuitiivinen ja sen seurauksena tietenkin monin tavoin rajoittunut: Yksi syy viimeksi mainittuun on se, ettei BAN ole täydellinen (complete) eli on olemassa tosia kaavoja, joita ei voi johtaa päättelysäännöillä. Yksi esimerkki tästä epätäydellisyyden ongelmasta on se, ettei havaita, että jollekulle muullekin kuin A:lle ja B:lle (ja palvelimelle) saattaa muodostua uskomuksia avaimesta KAB. BAN on kuitenkin konsistentti eli terve (sound), eli vain tosia kaavoja voidaan johtaa.

BAN-logiikasta on useita modifikaatioita, mm.:

  • GNY (Gong-Needham-Yahalom), monimutkainen rakennelma: ei oleta salatekstien redundanssia; osapuolen uskomien kaavojen lisäksi mallinnetaan hänen hallussaan olevien kaavojen joukko; mahdollistaa luottamuksen tason erittelyn.
  • AT (Abadi-Tuttle) muunnelma joka sisältää myös semantiikan
  • SvO (Syverson-van Oorschot), joka on yhdistelmä edellisistä ja BAN:sta itsestään. Tätäkin on jo kehitelty eteenpäin (tuoreimman version esittelyä PS:nä) Kaikissa näissä on sama idealisointiongelma. Siihen on tarjonnut lääkettä mm. Wenbo Mao artikkelissaan "An Augmentation of BAN-Like Logics" ( 8th IEEE Computer Security Foundations Workshop, IEEE Computer Society Press, June 1995, sivut 44-56 [PS]). Hän ehdottaa sääntöpohjaista tekniikka, jolla protokollan idealisoinnista tulee protokollan syntaksin symbolista manipulointia. Perusajatus on BAN-tyyppisten logiikkojen vaatiman yhden ison idealisointiaskeleen sijasta tehdä useita pieniä, jotka on helpompi ymmärtää ja saada oikein.


    Luettavaksi: Steve Schneider: Security Properties and CSP, IEEE Symposium on Security and Privacy 1996, 174-189. Tässä artikkelissa on liikaa uutta asiaa, jotta sitä voisi käsitellä vastaavalla tarkkuudella kuin tämänkertaista. Ensi kerralla on sitä paitsi hieman yleistäkin asiaa. Siispä artikkeliin tosiaan kannattaa tutustua etukäteen. Jos CSP:stä haluaa pikalisätietoa voi selata johdannoksi (sivulta 6 alkaen) myös Carl Gunterin esitelmän kalvot, jotka löytyvät pakattuna PS:nä.