En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen Henrik Dæhli og Joakim Hjertås 23. juni 2005
Plan Problemstilling Bakgrunn Maude sikkerhet π-kalkylen og varianter av denne en Maude-modell av asynkron π-kalkyle Arbeid anvendt asynkron π-kalkyle vår Maude-modell av kalkylen analyse og bruk av vår Maude-modell Konklusjon 1
Problemstilling Hvordan kan Maude brukes som analyseverktøy for sikkerhetsegenskaper ved asynkron kommunikasjon i π-kalkylen? 2
Maude Deklarativt programmeringsspråk Basert på omskrivningslogikk ligninger: ubetingede: eq t = u. betingede: ceq t = u if c. regler: ubetingede: rl [l] : t -> u. betingede: crl [l] : t -> u if c. Spesifikasjoner: funksjoner, sorter, subsorter, moduler Omskrivninger og søk: rew, frew, search 3
Sikkerhet Sikkerhetstjenester autentisering tilgangskontroll integritet konfidensialitet ikke-fornektelse Sikkerhetsmekanismer hashing kryptografi - symmetrisk - asymmetrisk digitale signaturer 4
Typer angrep Verste-tilfelle analyse («worst-case») Vårt fokus er logiske angrep feil bruk av sikkerhetsmekanismer protokollfeil Essensielt: er ønsket sikkerhet oppnådd antatt at sikkerhetsmekanismene er sikre? Ser ikke på angrep rettet mot selve sikkerhetsmekanismene sikkerhet ved «tåkelegging» («security by obscurity»), antar derfor at protokollen er kjent 5
π-kalkylen Formell kalkyle for modellering av: parallellitet kommunikasjon mobilitet Uendelig mengde navn benyttes både for verdier og kanaler, typisk brukes a, b, c... Høynivå modellering av prosesser. 6
Definering av π-kalkylen Syntaks Strukturell kongruens Operasjonell semantikk 7
Eksempel Output: Input: Parallell: ax. P a(y). Q ax. P a(y). Q Handling: ax. P a(y). Q τ P Q{x/y} Restriksjon: (Vx) P 8
Varianter av π-kalkylen Asynkron π-kalkyle Anvendt π-kalkyle («applied π-calculus») 9
Asynkron π-kalkyle Modellering av asynkron kommunikasjon Kan oppnås ved å legge ekstra krav på uttrykkene i vanlig π-kalkyle (subkalkyle) 10
Anvendt π-kalkyle Utvidelse av π-kalkylen Underliggende likhetslogikk signatur sorter likheter Muliggjør sending av verdier laget ved applisering av funksjoner Funksjoner passer godt til modellering av sikkerhetsmekanismer 11
Eksempel: anvendt π-kalkyle Hashing h(data) Ingen ligninger a h(t). P Symmetrisk kryptografi enc(data, nøkkel) dec(chiffer, nøkkel) dec ( enc(d, k), k ) = d (Vk) ( a enc(d, k). P a(y). b dec(y, k). Q ) 12
Maude-modell av asynkron π-kalkyle Thati, Sen og Martí-Oliet har laget en Maude-modell for denne varianten av π-kalkylen. bygge opp π-kalkyle-uttrykk og gjøre omskrivinger på disse søke gjennom mulige omskrivinger innfører et eksekveringsmiljø Kalkyleregel: P 0 Q 0,..., P n Q n P Q Maude-regel: crl [l] : P -> Q if P 0 -> Q 0 /\... /\ P n -> Q n 13
Rekapitulasjon Vi har sett på: asynkron π-kalkyle anvendt π-kalkyle en Maude-modell av asynkron π-kalkyle Vi ønsker en Maude-modell med elementer både fra asynkron og anvendt π-kalkyle for å benytte denne for analyse av asynkron sikker kommunikasjon. 14
Plan To muligheter: utvide Maude-modellen direkte utvide på kalkylenivå og deretter utvide Maude-modellen Vi valgte sistnevnte strategi, med følgende argumenter: fordel å ha en veldefinert kalkyle på tradisjonelt vis mer oversiktlig å utvide Maude-modellen med kalkylen definert først 15
Ny kalkyle: anvendt asynkron π-kalkyle En kombinasjon av asynkron og anvendt π-kalkyle: basert på asynkron π-kalkyle utvidet med hovedelementene fra anvendt π-kalkyle laget med tanke på å kunne modelleres i Maude 16
Kombinering av kalkylene tilpasse elementene i anvendt til formen på den asynkrone kalkylen tilpassing til å lage Maude-modell av begrenset strukturell kongruens: assoc, comm normalform? verdioverføring, uten «pekere» fjerning av aktive substitusjoner restriksjoner ved output 17
Utvidelse av Maude-modellen Miljø liste over mottatte meldinger kunnskapsmengde spesifisering av miljøets handlinger Fra navn til termer spesifisering av underliggede funksjoner og likheter ikke kun en term, men modul og term Sortsystemet Name og Data subsorting 18
Analyse i vår modell Miljøet utgjør rollen som angriper Eksplisitt spesifisering av miljøets oppførsel Maude-systemet muliggjør: «tilfeldig» omskriving (rew, frew) søk gjennom mulige tilstander (search) Viktig å kunne spesifisere interessante tilstander ved søk Ofte enklest å finne problemer ved mot-eksempler (dvs. en tilstand som bryter med et sikkerhetskrav) 19
Analyseverktøy Spesifisering av tilstander inenvironment inputcheck outputcheck Forslag til metode for reduksjon av tilstandsrommet rt rtl } forsøk viste signifikant forminskning i antall tilstander 20
Eksempel: kode for hashing in modell mod EXAMPLE-HASHING is including PI. sort Hash. subsort Hash < Data. op hash : Data -> Hash. var S : Subst. var D : Data. eq namesin(hash(d)) = namesin(d). eq apply S to hash(d) = hash(apply S to D). endm 21
Eksempel: eksekvering av hashing Kode: op sendhash : -> TraceTrm. eq sendhash = [ [emptylist +++ emptyset] a < hash( msg) > ]. rew sendhash. Kjøring: rewrite in EXAMPLE-HASHING-ANALYZE : sendhash. rewrites: 3 in 0ms cpu (0ms real) (~ rewrites/second) result TraceTrm: {output(hash( msg) on a, emptyset)}[hash( msg) on a +++ hash( msg)]nil 22
Eksempel: symmetrisk kryptografi op enc : Data Name -> Data. op dec : Data Name -> Data. eq dec(enc(d,n),n) = D. ceq [ L +++ kunnskap {}}{ agenten {}}{ N enc(d,n) M ] A = [ L +++ N enc(d,n) D M ] A if ny kunnskap betingelse {}}{ not D in M. 23
Eksempel: analyse Kommando: search [ [emptylist +++ emptyset] new [ k] ( x < k > y < enc( msg, k) > ) ] =>* X:TraceTrm such that inenvironment(x:tracetrm, msg). Resultat: {output( k on x, k)} {output(enc( msg, k) on y, emptyset)} [ k on x :: enc( msg, k) on y +++ k msg enc( msg, k)] nil nil 24
Konklusjon Problemstilling: Hvordan kan Maude brukes som analyseverktøy for sikkerhetsegenskaper ved asynkron kommunikasjon i π-kalkylen? Oppsummering: Laget ny kombinert kalkyle Modellert denne i Maude Foreslått metoder for analyse i denne Vist bruk av, og analyse i, modellen ved flere eksempler 25