Aksess kontroll None shall pass
Definisjoner Objekt – Enhet en bruker/prosess utfører arbeid på (lese fil, kalle metoder etc.) Subjekt – Bruker/prosess/objekt som utfører arbeid på et objekt Aksessrettigheter – bestemmer om et subjekt har tilgang til et objekt Aksesskontroll – verifisering av aksessrettigheter Autorisasjon – tildeling av aksessrettigheter
Referanse monitor Program som kontrollerer tilgangen til et objekt, samt hvilke operasjoner et subjekt kan utføre på objektet Subjekt Referanse monitor Objekt Forespørsel Autorisert utførelse
Subjekt Referanse monitor Objekt
- I don’t know that Aaaaaaaaaaaa… ...aaaaaaaaaaaaaahhh
Aksesskontroll matrise En matrise M[s,o] som inneholder aksessrettigheter i form av subjekt-objekt-par Problem: Hvis et system skal ha en matrise for hele systemet, vil denne bli ufattelig stor. Den vil også kunne bli en flaskehals for systemet
Aksesskontroll-liste En løsning på problemet med aksesskontrollmatrisens størrelse Hvert objekt har en liste over subjekter og hvilke rettigheter de har
”Capabilities” Subjektene har lister over hva de kan gjøre på forskjellige objekter Kan sammenlignes med en billett. Må beskyttes mot endring
Beskyttelsesområder Metode for redusering av størrelse på aksesskontroll-lister Grupper – subjekter er medlem av grupper med gitte rettigheter forbundet til dem Roller – subjekter har rettigheter forbundet med arbeidet den skal utføre
Brannmur Packet-filtering gateway – kontrollerer pakker på header, dvs. sjekker ipadresse for mottaker og sender, samt hvilken port pakken er adressert til Application-level gateway – Sjekker innholdet i pakkene (mailgateway) Proxy gateway – Utfører arbeidet for subjektet, sjekker innhold og videreformidler bare det som møter gitte kriterier. Bestemmer hvilke operasjoner som kan utføres.
Sikker mobil kode Agenten må beskyttes mot uautorisert aksess fra ”skumle” servere Serverne må beskyttes mot ”skumle” agenter
Trojansk hest/kanin
Cnew = K+owner(Cold, sig(S,X), S) Beskyttelse av agent Read-only state – tilstand/innhold signeres med avsenders private nøkkel Append-only logs – Serverne legger til i loggen og signerer hele loggen med privat nøkkel Cnew = K+owner(Cold, sig(S,X), S)
Beskyttelse av server Sandbox Brukes bl.a. for applets. Nedlasting av kode kan bare skje vha. godkjente Class Loaders Java Virtual Machine bruker en byte code verifier påser at koden oppfyller gitte sikkerhetskrav En security manager utfører sjekking av operasjoner mens programmet kjører
Playground Egen server som kjører den mobile koden Leikegrind-serveren har ikke tilgang til ressurser på andre maskiner, men den mobile koden aksesseres fra andre maskiner vha. for eksempel RPC Andre maskiner i nettet kan ikke kjøre mobil kode
Kodesignering Utvikler signerer kode Bare kode fra enheter man stoler på blir kjørt
Security policy Strong type-checking Stack introspection Navnerom Oppslag på navn gir forskjellige resultat etter hvor koden kommer fra og kjøres Stack frame 02 Kall til enable_privilege Disable privilege Stack frame 01 Sjekk av aksess- rettigheter . : Stack frame for første metodekall Disable privilege
Jolly good! Bravo lads! Any questions?