NO20101464A1 - Sikkert databehandlingssystem - Google Patents

Sikkert databehandlingssystem Download PDF

Info

Publication number
NO20101464A1
NO20101464A1 NO20101464A NO20101464A NO20101464A1 NO 20101464 A1 NO20101464 A1 NO 20101464A1 NO 20101464 A NO20101464 A NO 20101464A NO 20101464 A NO20101464 A NO 20101464A NO 20101464 A1 NO20101464 A1 NO 20101464A1
Authority
NO
Norway
Prior art keywords
security
integrity
level
power device
low
Prior art date
Application number
NO20101464A
Other languages
English (en)
Other versions
NO335189B1 (no
Inventor
Omar Nathaniel Ely
Original Assignee
Cupp Computing As
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=44993156&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=NO20101464(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Cupp Computing As filed Critical Cupp Computing As
Priority to NO20101464A priority Critical patent/NO335189B1/no
Priority to PCT/NO2011/000303 priority patent/WO2012057632A2/en
Priority to US13/822,847 priority patent/US9767297B2/en
Publication of NO20101464A1 publication Critical patent/NO20101464A1/no
Publication of NO335189B1 publication Critical patent/NO335189B1/no
Priority to US15/707,936 priority patent/US10162975B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)

Abstract

Et datasystem med flere sikkerhetsnivåer, hvor systemet omfatteren behandlingsanordning (130) med høy effekt, en behandlingsanordning (110) med lav effekt og en grensesnittenhet (120) som omfatter funksjoner for å flytte klassifisert informasjon mellom høyeffektsanordningen (130) og laveffektsanordningen (110) i henhold til formaliserte regler for konfidensialitet og/eller integritet. Ytterligere sikkerhetsaspekter, f.eks. tilgjengelighet, kan lett rommes. En fremgangsmåte for implementering av flere sikkerhetsnivåer langs et antall uavhengige sikkerhetsakser på systemet, er også beskrevet.

Description

Teknisk område
[0001]Foreliggende oppfinnelse vedrører et datasystem med flere sikkerhetsnivåer.
Bakgrunn for oppfinnelsen
[0002]Personlige datamaskiner er utbredt og blir i stadig økende grad brukt på internett til banktjenester, underholdning, sosiale formål, osv. En gjennomsnittlig bruker kan generelt ikke ventes å ha tekniske kunnskaper på høyt nivå eller spesielt det område som gjelder datasikkerhet. Kriminelle aktiviteter slik som svindel og tyveri blir dermed gjort lettere ved hjelp av mer eller mindre beskyttede personlige datamaskiner. For tiden er stor oppmerksomhet blitt viet til ondsinnet programvare, kort kalt skadeprogrammer, slik som virus, spionprogrammer, osv., som kan brukes til å ta kontroll over fjerntliggende datamaskiner, holde rede på en brukers aktiviteter for å skaffe seg passord og lignende. Noen skadeprogrammer, slik som programvare som brukes til å spore hvilke nettsider brukeren besøker, for å sende målrettet søppelpost, behøver ikke å være direkte kriminell. Det kan imidlertid være brysomt og i noen tilfeller gjøre en datamaskin langsommere eller stoppe den helt. Alle skadeprogrammer er følgelig uønsket.
[0003]Antivirusprogrammer fra en rekke forskjellige selgere leverer i dag et hovedforsvar mot skadeprogrammer. Antivirus-programmer avsøker typisk programvare etter snutter med kjent viruskode og tilveiebringer vanligvis også flere filtre for å detektere nettsider som forsøker å lure en bruker til å gi fra seg informasjon slik som passord eller et kredittkortnummer og videresende informasjon (nettfiske). Antivirus-programmer kan også bruke et antall andre teknikker for å oppdage, isolere og/eller fjerne skadeprogrammer.
[0004]Mange av de verktøy som brukes til å beskytte personlige datamaskiner, er utilstrekkelige ved at de er reaktive, f.eks. søker etter skadeprogrammer etter at PC-en er blitt infisert, de kan utføre post mortem-analyser, osv.
[0005]Fra de militære, statlige og finansielle sektorene er det velkjent at sikkerhet må bygges inn i systemarkitekturene fra begynnelsen av for å oppnå et virkelig robust og sikkert system uansett om det er et datasystem, et organisasjonssystem eller et hvilket som helst annet system. Det matematiske grunnlaget for slike sikre systemer, ble i 1970-årene hovedsakelig formulert av Bell, og LaPadula for hemmelighold og av Biba for integritet. En kort oversikt over disse modellene er nyttig for å forklare foreliggende oppfinnelse.
Kort oversikt over formaliserte sikkerhetsmodeller
[0006]Sikkerhet blir ofte definert som en kombinasjon av sikkerhetsaspektene hemmelighold, integritet og tilgjengelighet. I denne beskrivelsen blir uttrykket "sikkerhet" definert på en lignende måte. Det skal imidlertid bemerkes at det kan være flere aspekter ved integritet og at det ikke er noen klar forskjell mellom visse integritets- og tilgjengelighetsaspekter. Det skal også bemerkes at alle aspekter ved sikkerhet her er uavhengig av hverandre, dvs. at et sikkerhetsaspekt som kan uttrykkes som en kombinasjon av andre sikkerhetsaspekter, ikke betraktes som et separat sikkerhetsaspekt.
[0007]Hemmelighold betyr at informasjon ikke bør avsløres for noen som ikke er berettiget til å kjenne den. I Bell-LaPadula-modellen (BLP-modellen) blir et konfidensialitetsnivå tilordnet et informasjonsobjekt slik at et høyere nivå medfører mer hemmelighold. Et "subjekt", f.eks. en person eller en prosess, blir gitt en klarering ved et gitt hemmeligholdsnivå eller konfidensialitetsnivå. Informasjonsobjektet kan bare skrives til et subjekt som har en klarering ved eller over konfidensialitetsnivået til informasjonsobjektet. "Nedskriving" til et lavere konfidensialitetsnivå er med andre ord ikke tillatt, mens "oppskriving" er tillatt i BLP-modellen. Hvis to informasjonsobjekter med forskjellig konfidensialitetsnivå blir kombinert, f.eks. er til stede i ett og samme dokument, blir kombinasjonen videre tilordnet det høyeste av de to konfidensialitetsnivåene. Selv om informasjon kan oppskrives, kan den ikke skrives tilbake til et lavere nivå uten å krenke modellen. Dette gjelder også for en kombinasjon av informasjon etter kombinasjonsregelen. For å hindre at informasjon forflyttes til det høyest mulige konfidensialitetsnivå og må behandle en mengde offentlig kjent informasjon som om den var hemmelig, bør oppskriving dermed likevel holdes på et minimum. BLP-modellen kan utvides med kategorier eller felt for å implementere prinsippet med "behov for å vite". Et firma kan f.eks. bestemme at det ikke skal gis adgang til alle ansattes lønn med en klarering for KONFIDENSIELL, men bare for de som i tillegg tilhører en viss kategori, f.eks.
LØNNINGER.
[0008]Integritet angår hovedsakelig troverdigheten eller påliteligheten til informasjonen. Biba's strenge integritetsmodell, forkortet til "Biba-modellen", ligner på BLP-modellen ved at informasjon blir tilordnet et integritetsnivå og ved at et subjekt blir tilordnet en klarering. Et høyt integritetsnivå er tilordnet pålitelig og troverdig informasjon og/eller subjekter. Upålitelig informasjon bør imidlertid ikke bli tillatt blandet med pålitelig informasjon ved et høyere integritetsnivå ettersom informasjon ved det høyeste nivået da ikke vil bli mer pålitelig enn den minst pålitelige informasjonen som er tilskrevet dette nivået. Biba-modellen skiller seg dermed fra Bell-LaPadula-modellen ved at oppskriving er forbudt, nedskriving er tillatt og ved at en kombinasjon av informasjon fra to integritetsnivåer blir tilordnet det laveste nivået. I likhet med Bell-LaPadula-modellen, kan Biba-modellen utvides med kategorier eller felter, og selv om nedskriving er tillatt bør dette holdes på et minimum for å hindre informasjon fra å migrere til det lavest tilgjengelige integritetsnivået.
[0009]Noen sikkerhetsmodeller som kombinerer integritet og hemmelighold forut-setter at et subjekt med tilgang til konfidensiell informasjon, dvs. med en "høy sikkerhetsklarering", automatisk bør ha et "høyere integritetsnivå" enn noen med en lavere "sikkerhetsklarering". Dette er en sammenblanding av uttrykk. I denne beskrivelsen blir integritet og konfidensialitet ansett som fullstendig uavhengig av hverandre. Dette stemmer overens med foreliggende teori og betyr at informasjon kan være mer eller mindre pålitelig uansett sitt konfidensialitetsnivå, og at en dataprosess kan tildeles klarering langs en konfidensialitetsakse uansett den tilord-nede klareringen langs en integritetsakse. En pålitelig prosess med høyest tilgjengelig konfidensialitetsnivå og lavest mulig integritetsnivå, vil dermed kunne se eller lese all informasjon i et sikkerhetssystem, men det vil ikke tillates å skrive noen informasjon til lavere konfidensialitetsnivåer og/eller høyere integritetsnivåer. En prosess, kjørt på det lavest tilgjengelige konfidensialitetsnivået og det høyest mulig tilgjengelige integritetsnivået vil derimot kunne skrive informasjon til hvert konfidensialitetsnivå og integritetsnivå, men den vil ikke tillates å motta noen informasjon fra andre nivåer.
Informasjonssikkerhet og nettoppbygging
[0010]For å beskytte konfidensiell formasjon fra å bli avslørt for uautoriserte subjekter, kan informasjonen krypteres ved hjelp av en eller annen kryptografisk algo ritme ved bruk av en nøkkel. Det er selvfølgelig sjelden noe reelt behov for kryptering av en kakeoppskrift eller andre trivialiteter til samme nivå som topphemmelig militær informasjon. Noen systemer, f.eks. noen såkalte virtuelle private nett, krypterer imidlertid alle meldinger til samme nivå uansett innhold. For å holde de nødvendige systemressursene (og kostnadene) på et rimelig nivå, krypterer slike systemer vanligvis informasjonen til et nivå som passer til et middels konfidensialitetsnivå. Informasjon tilordnet et høyere konfidensialitetsnivå blir dermed ikke mulig å innføre i slike systemer uten ytterligere kryptering. Systemressurser er likevel bortkastet på kryptering av offentlig informasjon eller på kryptering av informasjon som allerede er blitt kryptert ved hjelp av en mer avansert og krevende algoritme. Fagkyndige på området vil kjenne til at forskjellige konfidensialitetsnivåer kan være tilordnet forskjellige krypteringsalgoritmer og/eller nøkler av forskjellig lengde for å kryptere informasjon i henhold til sitt konfidensialitetsnivå. Fagkyndige på området vil også kjenne til at oppgaven med å holde fra hverandre konfidensialitetsnivåer kan være mer krevende enn ganske enkelt å kryptere alt til et visst middels konfidensialitetsnivå.
[0011]Et viktig aspekt ved integritet er å sikre at informasjon og subjektet som aksesserer denne, er autentisk. Autentisering er følgelig nødvendig for å sikre at en bruker eller en prosess er den han, hun eller det krever å være, f.eks. brukeren eller prosessen som innleder en banktransaksjon fra en bankkonto. På det finansielle område kan et berettigeIsestegn eller en RSA-generator pluss et personlig passord og/eller andre personlige data kreves for å identifisere en person sikkert før han eller hun blir gitt tilgang til en banktjeneste. Et sertifikat eller lignende kan likeledes autentisere en dataprosess.
[0012]En teknikk for å hindre uautorisert endring innebærer beregning av en kryptografisk kontrollsum kalt en nøkkel. En nøkkel kan f.eks. beregnes fra en del av en programvarekode og lagres i et beskyttet område. Ved kjøring blir en ny nøkkel beregnet og sammenlignet med den lagrede nøkkelen. Hvis de to nøklene er forskjellige, blir koden ikke tillatt kjørt. Nøkkelberegning blir også brukt til å beskytte informasjon fra uautorisert endring (tukling) under transitt, f.eks. for å sikre at ingen endrer et kontonummer og/eller et beløp under en banktransaksjon. Den HTTT-sikre protokollen (https) implementerer autentisitet på denne måten og blir mye brukt i forbindelse med banktransaksjoner og andre overføringer over internett hvor integritet er viktig. Det skal bemerkes at selv om kryptering kan sikre et visst integritetsnivå i menneskelig baserte systemer, sikrer det ikke autentisitet i et datasystem. Grunnen er at en person lett kan gjenkjenne en dekryptert, endret melding som forvrengning. Så hvis en dekryptert melding er lesbar, er den sann-synligvis ikke blitt endret, og senderen kan antas å være autentisert siden han må ha den riktige nøkkelen for å kryptere meldingen. En dataprosess som mottar en lignende dekryptert, endret melding, kan ikke ventes å gjenkjenne det resulterende innholdet som forvrengning. Ingen konklusjon vedrørende tukling eller sender vil derfor bli trukket. En nøkkel kan kort sagt bevare integriteten mens kryptering ikke bevarer integriteten. Kryptering kan likeledes hindre konfidensialitet mens en nøkkel ikke bevarer konfidensialiteten.
[0013]Nåværende datasystemer med funksjonalitet og arkitekturer som under-støtter Bell-LaPadula-modellen, innbefatter, men er ikke begrenset til, Solaris versjon 10 og senere, alle nåværende Linux-distribusjoner så vel som sikre pro-dusenteide systemer brukt til militære og statlige formål. Under overføring, kan konfidensiell informasjon krypteres med algoritmer av forskjellig kompleksitet og nøkler av forskjellige lengder i henhold til konfidensialitetsnivået til informasjonen som overføres: Aktuelle Linux- og Solaris-systemer har noen funksjoner for integritet, f.eks. et passordsystem eller et "smartkort"-system for å brukerautentiserin-ger, hvor muligheten til å kontrollere en nøkkel før kjøring av et brukerprogram (autentisitet) og funksjoner for andre integritetshastigheter. Noen av funksjonene som er relatert til integritet, er implementert i maskinvare eller kjerneprogrammer, andre funksjoner er implementert ved hjelp av en tredje parts brukerprogrammer.
[0014] Funksjoner for det tredje sikkerhetsaspektet, tilgjengelighet, blir typisk implementert ved hjelp av en tredje parts verktøy, f.eks. backup- eller system-gjenvinningsverktøy i applikasjonslag eller leverandørspesifikke plateredundans-verktøy. Vi legger merke til at såkalte overfyllingsangrep noen ganger blir ansett som trusler mot tilgjengelighet. De kan like godt anses om uautoriserte innskrivnin-ger og kan som sådanne anses som en integritetstrussel. Uansett hvilke uttrykk som brukes, legger vi merke til at regler i likhet med Bell-LaPadula's og Biba's kan anvendes langs et antall akser hvorav noen kan kalles et integritetsaspekt eller et tilgjengelighetsaspekt, men likevel behandles i henhold til enten BLP- eller Biba-reglene som er beskrevet ovenfor.
[0015]I det minste noe av den trusselen som utgjøres av maskinvare, kan til-skrives mangel på systemunderstøttelse for formaliserte sikkerhetsmodeller. Hvis f.eks. konfidensialitet eller integritet blir krenket slik at en ekstern prosess er ute av stand til å skrive inn i et begrenset område, så kan et virus ikke forurense applika-sjonsprogrammer. Hvis en nøkkel videre må beregnes ved kjøretiden og må være identisk med en autentisert nøkkel som er lagret i et begrenset område, så kan videre skadelig kode automatisk hindres fra å bli kjørt, spesielt på begrensede områder.
[0016]Virkningene av maskinvare kan dermed reduseres eller endog elimineres hvis formaliserte sikkerhetsmodeller blir fremskyndet.
[0017]En ren fremskyndelse av sikkerheten medfører imidlertid nye problemer. Et eksempel er en integritetskontroll hvor en bruker må tilføye hver og en nettside som han eller hun besøker, til en liste over "betrodde" sider. I betraktning av det antall nettsider som besøkes av en gjennomsnittlig bruker, får dette raskt brukeren til automatisk å tilføye nettsider til listen. Etter en viss tid, kan brukeren endog frakople denne sikkerhetsfunksjonen for å bli kvitt det som oppfattes som bryderi. Det kan lett ses at denne type integritetskontroll har liten eller ingen effekt og at brukeren ikke kan være avhengig av i tilstrekkelig grad å vurdere integritet og/eller konfidensialitet.
[0018]Et annet problem er kostnader. Selv ved å starte fra et Solaris-system som implementerer mange av de nødvendige funksjonene og som har en mengde verifisert kode, kan i dag utvikling og verifisering av selv et forholdsvis enkelt system til forretningsbruk lett koste flere millioner dollar. Ved å begynne fra et Linux-system kan tilveiebringelse av nødvendig sertifisering for koden øke kost-naden før et pålitelig system kan settes i drift, for ikke å snakke om militære eller statlige anvendelser.
[0019]En viktig grunn til de høye kostnadene er bruken av uordnede kategorier i de formaliserte Bell-LaPadula- og Biba-modellene. Gitt et sett med N uordnede "sikkerhetskategorier", dvs. sikkerhetsrelaterte grupper som en bruker eller en prosess kan tilhøre, må et supersett med 2N<->1 elementer tas i betraktning i et matematisk ordnet og kontrollerbart sett. Hvis en bruker f.eks. kan tilhøre gruppene A, B og/eller C, er det supersettet med 2<3>elementer som en bruker kan tilhøre lik [0, {A}, {B}, {C},{A, B},{A, C}, {B, C}, {A, B, C}]. Formelt, må en bruker ha riktig sikkerhetsklarering OG tilhøre {A}, {A, B}, {A, C} eller {A, B, C} for å aksessere informasjon i kategori A. Det tomme settet 0 hvor en bruker ikke tilhører noen av gruppene A, B eller C, blir vanligvis ekskludert fra implementering av opplagte grunner. Det ordnede supersettet blir betraktet som et delsett i hvert av L sikkerhetsnivåer. Et sikkerhetssystem må derfor betrakte L-(2N<->1) ordnede nivåer langs en sikkerhetsakse, f.eks. konfidensialitetsaksen i de aktuelle systemene, antall mulige konfidensialitetsnivåer kan f.eks. være L=65536 eller større, og antall tilgjengelige kategorier kan f.eks. også være N=65536 eller større. Dette kan synes å være store tall, men noen få ti-talls tusener av kategorier i et system med flere hundre-talls tusener av brukere kan likevel være for lite. I den foreliggende forbindelse, vil imidlertid antall tilgjengelige nivåer langs hver akse, typisk være L=3 eller mindre, og antall kategorier kan lett reduseres til et par eller endog 1 som forklart nedenfor.
[0020]Det skal bemerkes at de forskjellige gruppene som blir skapt i et spesielt operativsystem for personlige datamaskiner, kan ha forskjellige formål og ikke nødvendigvis har formalisert betydning for sikkerheten. Et betydelig antall av gruppene som en brukes kan tilhøre i et typisk PC-system, vil f.eks. bare inneholde offentlig informasjon med ukjent pålitelighet. De rettighetene som er tilordnet prosesser i et PC-system er videre mange, forskjellige og kan neppe ses å utgjøre noe fullstendig formalisert sett med rettigheter i forbindelse med formalisert sikkerhet. Antallet formaliserte sikkerhetskategorier er dermed ikke så stort i et typisk PC-miljø rent generelt. I et sikkerhetsmiljø som kjører maskiner med forskjellige nivåer, er imidlertid en virtuell maskins "behov-for-å-vite" eksponert for å bli begrenset, og dermed blir sikkerhetskategoriene forventet å være lave, f.eks. 1 pr. virtuell maskin.
Kjent teknikk
[0021]Som nevnt ovenfor, innbefatter noen operativsystemer, f.eks. nåværende Linux-distribusjoner og noen UNIX-baserte systemer, sikkerhetsfunksjoner som benytter teknikker som igjen implementerer de formaliserte sikkerhetsmodellene. En slik teknikk er som kort fortalt ovenfor, å bruke en nøkkelalgoritme til å frem-bringe og lagre en programvarenøkkel under installasjon, beregne en ny nøkkel på kjøretidspunktet og bare tillate programmet å bli kjørt hvis nøkkel ved kjøretids- punktet er identisk med den lagrede nøkkelen. En annen teknikk er å kjøre applikasjoner i et "kammer" eller en "sandgrop" isolert fra annen programvare som kjøres på systemet. Kjøring av et helt operativt miljø på en virtuell maskin utgjort av et hyperovervåkningssystem kan betraktes som en variant av sandgrop-teknikken. Det er imidlertid kjent andre teknikker for fagkyndige på området, som alle kan brukes i forbindelse med foreliggende oppfinnelse. I denne beskrivelsen innbefatter uttrykket "operativmiljø" et hvilket som helst operativsystem og/eller hyperovervåkningssystem som er i stand til å kjøre datamaskinapplikasjoner, innbefattende forskjellige operativsystemer og brukergrensesnitt.
[0022] Kjente systemer for implementering av sikkerhet i et laveffektssystem innbefatter bruk av en prosessor og sertifikater og/eller nøkler innbakt i et plastkort på størrelse med et kredittkort. Slike kort kan innsettes i en kortleser forbundet med en datamaskin. Kortleseren kan være koplet gjennom en systembuss eller en periferibuss slik som f.eks. en universell seriebuss (USB). Slike sikkerhetskort har ingen indre kraftkilde, og elektrisk kraft blir levert fra et kjøresystem gjennom kart-leseren. Behandlingskapasiteten til et slikt kort, gjør det videre uegnet for kjøring av beregningsintensive rutiner, slik som f.eks. nøkkelberegning, kryptering eller forsterkning av en kjerne i et operativmiljø. Kortleseren er vanligvis også avhengig av en drivkrets levert av et kjørende operativsystem. Et slikt kortbasert system, blir derfor normalt brukt for sikkerhetsfunksjoner med høyt nivå slik som å levere et sertifikat eller en nøkkel for verifisering av nøkler og/eller kryptering i brukerprogrammer som kjøres i operativmiljøet.
[0023]Fra et sikkerhetsperspektiv, er slike kortsystemer likevel ømfintlige overfor forskjellige trusler mot konfidensialitet, integritet og tilgjengelighet. Skadeprogrammer kan spesielt infisere operativsystemet og/eller brukerprogram under i gang-setting (oppstart) eller drift. Slik programvare kan i det minste i teorien, stjele smartkortets nøkler eller sertifikat, eller etterligne driveren for å autorisere noe som ikke skulle vært autorisert av smartkortet. Denne muligheten gjør smartkortet upålitelig fra et formalisert integritetssynspunkt.
[0024]Et formål med foreliggende oppfinnelse er å tilveiebringe et system som er i stand til å tilveiebringe sikkerhet relatert til funksjoner og data uten å kreve et kjørende operativmiljø. Systemet kan spesielt inneholde nøkler eller spredekoder med installert programvare for sammenligning før programvare, eventuelt innbe fattende kjernefunksjoner for et operativsystem som blir tillatt kjørt på systemet. Systemet kan også inneholde nøkler og andre data og kan være i stand til å kjøre sikkerhetsrelaterte rutiner uten å kreve ekstern behandlingskraft eller et kjørende operativsystem.
[0025]Et annet formål med foreliggende oppfinnelse er å tilveiebringe et datasystem i overensstemmelse med formaliserte regler for konfidensialitet, integritet og tilgjengelighet, hvilket system ikke er avhengig av en brukers diskresjon og som hemmer en brukers aktiviteter så lite som mulig.
OPPSUMMERING AV OPPFINNELSEN
I henhold til oppfinnelsen, blir dette oppnådd ved å tilveiebringe et datasystem med flere sikkerhetsnivåer, idet systemet omfatter en behandlingsanordning med høy effekt, en behandlingsanordning med lav effekt og en grensesnittenhet som omfatter funksjoner for å flytte klassifisert informasjon mellom anordningen med høy effekt og anordningen med lav effekt i henhold til formaliserte regler for konfidensialitet og/eller integritet.
Ifølge et annet aspekt, beskriver oppfinnelsen en fremgangsmåte for implementering av flere sikkerhetsnivåer på et slikt datasystem.
Anordningen med lav effekt tilveiebringer anordninger for kjøring av programvare og for å holde sikkerhetsdataene ved det høyest mulige integritetsnivå hvor ingen data eller fremmed kode kan skrives inn ved hjelp av normale program-varerutiner. Dette blir sikret ved å tilveiebringe de sikre dataene og koden i fastvare eller maskinvare som bare kan endres ved hjelp av en fysisk anordning for maskinvareprogrammering. Anordningen med lav effekt behøver i visse tilfeller ikke en gang å tilveiebringe et grensesnitt for maskinvareprogrammering. Anordningen med lav effekt kan også tilveiebringe fasiliteter ved lavere integritetsnivåer, noe som gjør det mulig å skrive visse data til klart definerte områder i anordningen ved f.eks. å bruke fastvare-implementerte funksjoner for avlesninger og innskriv-ninger, å ta hensyn til formaliserte regler for integritet, dvs. at oppskriving er forbudt mens nedskriving er tillatt.
Lignende funksjonalitet kan implementeres med hensyn til konfidensialitetsnivåer hvor oppskriving er tillatt og nedskriving er forbudt.
Visse data i det høyeste integritetsnivået kan ha et lavt konfidensialitetsnivå, dvs. at tilgjengeligheten for å kunne leses av enhver programvarekomponent i systemer med høy effekt, f.eks. kjernefunksjoner av forskjellige typer. Andre data i det høyeste integritetsnivået, f.eks. visse nøkler for kryptering, kan ha høyere konfidensialitetsnivåer og kan dermed bare leses fra programvarekjøring ved et passende konfidensialitetsnivå og lavere integritetsnivå.
KORT BESKRIVELSE AV TEGNINGENE
[0026]Oppfinnelsen vil bli forklart i den følgende detaljerte beskrivelse under henvisning til de vedføyde tegningene, hvor like henvisningstall refererer til like elementer på de forskjellige figurene, og hvor:
Fig. 1 er en skjematisk skisse av et system i henhold til oppfinnelsen.
Fig. 2 illustrerer funksjonelle komponenter i systemet på fig. 1.
Fig. 3 illustrerer en mulig programvarearkitektur for bruk i systemet.
DETALJERT BESKRIVELSE
[0027]Fig. 1 illustrerer et datasystem som omfatter en autonom anordning 110 med lav effekt, en grensesnittenhet 120 og et system 130 med høy effekt. Periferianordninger 150, 151 er tilkoplet gjennom en buss 400.
[0028]Systemet 130 med høy effekt omfatter typisk de kretsene og anordningene som kan finnes i en typisk datamaskin som er i stand til å kjøre operativmiljøer slik som f.eks. Linux, Mac-OS, Unix, VM-vare og/eller Microsoft Windows. Det skal bemerkes at "høy effekt" refererer løst til behandlingskapasiteten og ikke til den elektriske effekten som er nødvendig for kjøring av maskinen. Noen datamaskiner som er i stand til å kjøre et vanlig operativmiljø med et passende brukergrensesnitt, er i virkeligheten konstruert for bruk med batterier og har dermed forholdsvis lite elektrisk effektforbruk. Slike systemer er likevel innbefattet i uttrykket "systemer med høy effekt" 130 slik det brukes her.
[0029]Den autonome anordningen 110 med lav effekt i systemet på fig. 1, er et ekstrasystem som er i stand til å bli startet opp fra maskinvare og/eller fastvare som ikke kan modifiseres gjennom operativsystemet på anordningen med høy effekt, ganske enkelt fordi det ikke finnes noen maskinvare for modifisering av disse.
[0030]Maskinvaren og/eller fastvaren i anordningen med lav effekt kan fortrinnsvis bare skrives inn fra et programmeringsgrensesnitt i form av maskinvare og er ene og alene realisert med mikroelektroniske brikker, ASICS, feltprogrammerbare port-grupper (FPGA-er) og lignende anordninger. En typisk implementering vil benytte lett tilgjengelig programmerbar maskinvare slik som f.eks. et ARM-system. Hoved-formålet med laveffekt-anordningen i den foreliggende forbindelse er å inneholde sikkerhetsrelaterte instruksjoner og data på en tuklingssikker måte. Instruksjonene kan innbefatte en sikker mikrokjerne og/eller tilstandsmaskin/ prosessor for opp-starting av systemet til en kjent sikkerhetstilstand, sikkerhetsrelaterte rutiner, osv., innbefattende lavnivårutiner for bruk av systemet med høy effekt. Sikkerhetsdataene kan omfatte sertifikater, spredekoder og forskjellige nøkler.
[0031]I en sikkerhetskontekst, kan ikke-skrivbare eller bare lesbare områder på anordningen med lav effekt brukes for det høyeste integritetsnivået i systemet. Når man husker Biba-modellen betyr dette at ingen data kan skrives til den fra lavere integritetsnivåer, mens enhver prosess som kjøres ved lavere integritetsnivåer kan lese derfra. Denne funksjonaliteten kan lett implementeres ved hjelp av leselagre (ROM-er) og lignende. Laveffektsanordningen kan også utgjøre lager eller romme prosesser ved lavere integritetsnivåer. Dette gjør det mulig å skrive visse data til klart definerte områder i laveffekts-anordningen ved f.eks. å bruke fastvare-implementerte funksjoner for lese- og skriveprosesser. Med hensyn til integritet bør Biba's regler, dvs. oppskrivinger er forbudt mens nedskrivinger er tillatt, strengt gjennomføres. Implementering av disse i programvare med høyere nivå, er vanskelig.
[0032]Lignende funksjonalitet kan implementeres med hensyn til konfidensialitetsnivåer hvor oppskriving er tillatt og nedskriving er forbudt. Ved å innse at hvert konfidensialitetsnivå kan lese det laveste konfidensialitetsnivået, kan i det minste noen av de globale dataene lagres i leselageret av forskjellige typer i laveffekts-anordningen (anordningen med lav effekt). Slike offentlige data kan innbefatte en operativkjerne eller systemfunksjoner og globale offentlige data. Andre data kan likevel tilveiebringes av et ROM, og kan da gangske enkelt ikke modifiseres ved hjelp av programvare, og likevel ha et høyt konfidensialitetsnivå og behøver dermed ikke å bli avdekket for noe subjekt klarert for et lavere konfidensialitetsnivå. Slike data innbefatter krypteringsnøkler som vil være ubrukbare hvis enhver prosess i systemet kunne lese dem.
[0033]Noen data i det høyeste integritetsnivået kan ha et lavt konfidensialitetsnivå, det vil si, at de kan leses av alle programvarekomponenter i høyeffekts-systemet, f.eks. kjernefunksjoner av forskjellige slag. Andre data i det høyeste integritetsnivået, f.eks. visse nøkler for kryptering, kan ha et høyere konfidensialitetsnivå og kan dermed bare leses fra programvare som kjøres ved et passende konfidensialitetsnivå og et lavere integritetsnivå.
[0034]Grensesnittenheten 200 tilveiebringer et grensesnitt mellom systemet 100 med lav effekt og systemet 300 med høy effekt. Hvis f.eks. en sikker mikrokjerne blir brukt til oppstart av laveffektssystemet til et kjent sikkerhetsnivå, vil grensesnittenheten 200 være ansvarlig for overføring av kontroll til et operativmiljø og/eller et hyperovervåkningssystem som kjøres på høyeffektssystemet, straks sikkerhetstilstanden er oppnådd. Grensesnittet kan også være ansvarlig for videre-føring av sikkerhetsrelaterte rutiner og/eller data fra den tuklingssikre laveffektsanordningen til programvare som kjøres på systemet med høy effekt. I noen utførel-sesformer kan grensesnittenheten 200 også være ansvarlig for videreføring av styring fra programvare som kjøres på høyeffektssystemet 300 til lavnivårutiner som kjøres på laveffektsanordningen. Slike rutiner kan være "tuklingssikre" i den forstand at de ikke kan modifiseres uten fysisk tilgang til laveffektsanordningen for å plugge inn en grensesnittanordning for HW-programmering så vel som utstyr for maskinvareprogrammering.
[0035]På fig. 1 illustrerer de horisontale pilene at deler av laveffektsanordningen 100 kan kommunisere direkte med deler i høyeffektssystemet 300 gjennom grensesnittenheten 200. De vertikale pilene illustrerer at laveffektsanordnin gen 100, grensesnittenheten 200 og høyeffektssystemet 300 kan kommunisere med hverandre og med periferienhetene 500, 501 gjennom bussen 400. Bussen 400 representerer f.eks. en systembuss av en type som vanligvis brukes til å forbinde prosessorer, RAM og andre anordninger med en typisk datamaskin, og også seriebusser slik som USB. De skjematiske periferianordningene 500 og 501 representerer alle kjente periferianordninger som brukes i datasystemer. Dette innbefatter, men er ikke begrenset til, tastaturer, mus, visningsanordninger og skrivere. En kortleser for et smartkort forbundet gjennom en USB-buss som be skrevet i innledningen, vil dermed også være representert skjematisk ved hjelp av en periferienhet 500 tilkoplet gjennom bussen 400 på fig. 1.
[0036]En grunnleggende idé bak oppfinnelsen er å tilveiebringe en laveffektsanordning som inneholder data og prosesser/funksjoner som blir holdt isolert ved hjelp av maskinvare. Dataene og prosessene kan være tilordnet en hvilken som helst kombinasjon av tilgjengelig integritets- og konfidensialitetsnivåer. Eksempler på data og prosesser som er egnet for laveffektsanordningen, innbefatter krypte-ringsnøkler ved et høyt integritetsnivå og et høyt konfidensialitetsnivå samt kjerne-kode ved høyt integritetsnivå og lavt konfidensialitetsnivå. Et helt operativmiljø som kjøres på en virtuell maskin, kan imidlertid være tilordnet et lavt integritetsnivå, noe som betyr at den ikke er tillatt å skrive noe til de høyere integritetsnivåene i laveffektsanordningen. Den kan i prinsippet likevel skrive til laveffektsanordningen, men bare til begrensede områder med et lignende lavt integritetsnivå.
[0037]For å implementere den nødvendige maskinvaren og/eller fastvaren for anordningen med lav effekt, må ett eller flere integritetsnivåer som skal implementeres på laveffektsanordningen, bestemmes. Dette vil typisk være det høyeste integritetsnivået som er tilgjengelig, og eventuelt noen få til. For hvert integritetsnivå/', må de forskjellig tilgjengelige konfidensialitetsnivåene bestemmes for å derved å lage et sett med par av integritetsnivåer og konfidensialitetsnivåer som kan implementeres i laveffektsanordningen. For hvert slikt par {i, j}, må to inn/ut-funksjoner tas hensyn til i lys av BLP- og Biba-reglene som er diskutert tidligere. Eventuelle inn/ut-funksjoner er: • READ(i, j) tillatt for å lese informasjon ved eller over integritetsnivå/, OG ved eller under konfidensialitetsnivå j; og • WRITE(i, j) tillatt for å skrive informasjon til eller under integritetsnivå/, OG til eller over konfidensialitetsnivå j. Bare lese- og skrivefunksjonene som stemmer overens med BLP- og Biba-modellene er dermed tilveiebrakt. Det skal bemerkes at ekvivalente funksjoner for å kontrollere strømmen av informasjon langs sikkerhetsakser kan være tilveiebrakt. En funksjon kan f.eks. regulere informasjonsflyt, det vil si innlesinger og utskrivinger langs en sikkerhetsakse. Uansett form, er disse inn/ut-funksjonene fortrinnsvis tilveiebrakt i maskinvare slik at selve funksjonene ikke kan endres ved hjelp av programvare. Disse funksjonene, for eksempel en READ og en WRITE for hvert par som beskrevet ovenfor, kan tilveiebringes ved hjelp av grensesnittet 120 eller programvare avhengig av kravene i forbindelse med nivåer/' og j.
[0038]Som antydet ovenfor, kan andre sikkerhetsaspekter slik som tilgjengelighet, ytterligere integritetsaspekter, osv., være relevante. Generelt vil n sikkerhetsaspekter kreve n-tupler av hver mulig kombinasjon. For å implementere sikre funksjoner i grensesnittenheten, vil følgende generelle prosedyre inngå: - identifisering av et sett n sikkerhetsaspekter, f.eks. konfidensialitets-, integritets- og/eller tilgjengelighetsaspekter, der hvert aspekt er uavhengig av de andre sikkerhetsaspektene, og - for hvert sikkerhetsaspekt, å identifisere ett eller flere sikkerhetsnivåer som må implementeres på anordningen med lav effekt (laveffektsanordningen), - for hvert sikkerhetsaspekt, å bestemme om og hvordan informasjons-gyldighet kan transporteres mellom sikkerhetsnivåer. Det er tre muligheter: 1. Flyt oppover som i BLP-modellen for et sikkerhetsaspekt av en konfidensialitetstype, 2. Flyt nedover som i Biba-modellen for et sikkerhetsaspekt av en integritetstype,
3. Ingen flyt mellom sikkerhetsnivåer tillatt.
Det fjerde teoretiske alternativet, strømming tillatt i begge retninger langs en sikkerhetsakse, er ekvivalent med at all informasjon er på ett sikkerhetsnivå. For å stemme overens med de formaliserte sikkerhetsmodellene, må informasjon ikke transporteres fra et høyere til et lavere nivå i et sikkerhetsaspekt av konfidensialitetstypen og ikke fra et lavere til et høyere sikkerhetsaspekt i integritetstypen. I tillegg må BLP- og Biba-modellene for sammenstilling av informasjon fra forskjellige nivåer, anvendes tilsvarende.
[0039]Denne løsningen fører hurtig til et stort antall separate funksjoner. I tilfeller med mange sikkerhetsaspekter kan det være praktisk å kjøre et generisk integritetsnivå (slik at det kan lese alt). En slik betrodd READ-funksjon vil måtte innta de tildelte nivåene til sikkerhetsaspektene som argument, og implementere BLP- og Biba-reglene, fortrinnsvis i maskinvare. En lignende generisk og betrodd RIGHT-funksjon som kjøres ved de lavest mulige konfidensialitetsnivåene og de høyest mulige integritetsnivåene, kan også implementeres.
[0040]I alle fall, blir lese-, skrive- eller flyt-funksjonene og eventuelle funksjoner som krenker reglene for forbindelser mellom informasjon fra forskjellige nivåer, fortrinnsvis implementert i grensesnittenheten som kan være en del av et kretskort som også innbefatter laveffektsanordningen.
[0041]Fig. 2 viser et eksempel på en utførelsesform av foreliggende oppfinnelse. Betrodd startprogramvare er lagret i leselageret (ROM) 200. Startprogrammet kan omfatte en oppstartsekvens for å starte hele systemet, eller en startrutine for et visst sekundært system som vil bli startet senere under initialisering, for eksempel grunnleggende rutiner for nettkopling via TCP/IP i noen tilfeller, et ROM kan ikke skrives til fra noen programvare, slik at innholdet i ROM-anordningen er tuklingssikker. Lagring av en viss startrutine i ROM 200 garanterer med andre ord autenti-siteten til startrutinen selv om systemet tidligere var infisert med ondsinnet programvare. Instruksjonene og dataene i ROM 200 er lagret ved det høyeste integritetsnivået, dvs. det mest betrodde nivået i en formalisert integritetsmodell hvor det ikke kan skrives til ved hjelp av prosesser ved lavere integritetsnivåer.
[0042]Et virtuelt maskinlag 210 med lavt nivå kan være lagret i et større lagrings-område, f.eks. et 4GB flash-lagerområde i laveffektsystemet. Under oppstart kan de forskjellige komponentene til den virtuelle maskinen verifiseres ved hjelp av spredekoder eller lignende fra ROM 200. VM-maskinlaget kan være tilordnet et lavere integritetsnivå enn innholdet i ROM 210. Fordi VM-laget ikke kan skrive til leselageret 200, blir skriving fra et lavere til et høyere integritetslag hindret av en elektronisk umulighet i stedet for med feilutsatt programvare. Biba's regel som for-byr oppskriving, blir derved automatisk observert. I henhold til Biba-modellen er skriving av data fra et høyere til et lavere integritetsnivå tillatt. Nøkler, spredekoder, instruksjoner og andre data kan dermed leses fra ROM 200 for å verifisere oppstarten av det virtuelle maskinlaget 210. Fremdeles, i henhold til Biba-modellen kan en kombinasjon av informasjon fra de to integritetsnivåene tildeles det laveste av integritetsnivåene. Dette betyr at VM-laget, når det er startet, beholder sin integritet så lenge det bare mottar data fra sitt eget eller et høyere integritetsnivå, f.eks. ROM 200.
[0043]Hvis dette VM-laget er lagret i en laveffektsanordning i avstand fra en PC 130 med høy effekt, må ondsinnet programvare passere grensesnitten-
heten 120 på fig. 1. Hvis grensesnittenheten 120 ikke har maskinvare eller
funksjonalitet for skriving fra høyeffektsystemet 130 til VM-laget, er følgelig VM-laget garantert å starte fra en sertifisert og uendret kopi. Dette betyr også at alle oppdateringer til laveffektsanordningen må utføres gjennom et dedikert grensesnitt, for eksempel en serieforbindelse direkte til laveffektsanordningen og ikke gjennom en forbindelse fra høyeffektsystemet 130. Skriving fra et høyeffektsys-tem 130 blir dermed umulig, og Biba's regel mot oppskriving blir enda en gang overholdt. Ettersom Biba tillater nedskriving, vil de virtuelle maskinene fremdeles være tilgjengelige for kjøring av programvare på lavere integritetsnivåer. Fordi oppdateringer til laveffektsanordningen vil være forholdsvis sjelden, antas brukere av datasystemet å foretrekke dette lille bryderiet fremfor usikkerheten ved mulige programvareangrep som kan rettes mot en skrivefunksjon fra høyeffektsyste-met 130 gjennom grensesnittet 120.
[0044]Det skal bemerkes at noen implementeringer kan mangle et grensesnitt for maskinvareprogrammering, men ganske enkelt tilveiebringe en laveffektsanordning med forhåndskonfigurert maskinvare og fastvare som inneholder de nødven-dige data og funksjoner.
[0045]På fig. 2, kan én eller flere virtuelle maskiner 220 være tilordnet for kjøring av brukerprogrammer på laveffektsanordningen 110. Denne maskinen kan f.eks. kjøre en nettleser og/eller java-applikasjoner ved et forholdsvis høyt (betrodd) integritetsnivå. En mulig applikasjon kan automatisk sikre transaksjoner mellom datamaskiner som har dette kjente integritetsnivået og en utpekt for å levere det. Det er java-implementeringer for enkeltkortmaskiner som relativt kan tilpasses for denne type applikasjoner.
[0046]Det vises fremdeles til fig. 2, hvor det virtuelle PC-maskinlaget tilveiebringer en virtuell maskin, typisk for emulering av maskinvaren til en typisk PC. Dette laget kjøres på høyeffektsystemet og tilveiebringer typisk (emulerte) nettgrensesnittkort, én eller flere skrivere, én eller flere grafiske behandlingsenheter, osv., på en måte som er kjent for fagkyndige på området. Et eksempel på et slikt VM-lag er VM-ware™, selv om ethvert virtuelt maskinlag kan anvendes. Dette programvarelaget blir kjørt ved et lavere integritetsnivå enn laveffektsanordningen. Det vises igjen til Biba's strenge integritetsmodell hvor skriving opp til laveffektsanordningen kan
hindres ved hjelp av maskinvare i grensesnittenheten 120 som kan ganske enkelt mangler evne til å skrive opp langs integritetsaksen, og/eller ved å lagre data med
høy integritet i et ROM som det ikke kan skrives til. Laveffektsanordningen kan likevel tilveiebringe en virtuell maskin eller bare data og/eller instruksjoner fra ROM 200 for å verifisere VM-laget 230 på PC-en på en sikker måte ettersom Biba tillater skriving av informasjon til et lavere integritetsnivå.
[0047]Et PC-OS-lag 240 kjøres på det virtuelle maskinlaget (VM-laget) til PC-en. Selv om et programvareangrep på en fysisk PC ikke kan skrive til et fysisk ROM, er det i det minste en teoretisk mulighet for at et angrep kan treffe et virtuelt "ROM" emulert av programvare. Uansett om VM-programmet tilveiebringer skrive-filtrering opp til emulerte leselagre eller ikke, vil en mangel på skrivefunksjoner gjennom grensesnittenheten 120 hindre skriving til høyere integritetsnivåer. Mer viktig er det kanskje at spredekoder, nøkler og så videre kan hentes fra ROM 200 for å verifisere programvare ved kjøretidspunktet ved å benytte kjente teknikker som diskutert i innledningen, for derved å sikre integriteten ved det nivået som tilveiebringes av en fysisk maskin. PC-OS-laget kan ha flere interne integritetsnivåer, i det minste i prinsippet.
[0048]Et PC-applikasjonslag 250 inneholder applikasjoner kjørt av en bruker. Dette laget kan også ha flere interne integritetsnivåer. Når man husker diskusjonen i innledningen, kan et betrodd autentiseringsnivå kreve en nøkkel eller et sertifikat fra et leselager (ROM) 200 eller et smartkort, mens et mindre betrodd nivå kan kreve bare et passord. Slike forskjelllige autentiseringsnivåer er kjent fra f.eks. statlige systemer og bankanvendelser og blir brukt for å sikre at bare sertifiserte brukere blir tillatt å utføre visse handlinger. Forskjellige autentisitets-nivåer kan likeledes anvendes for å sikre at ikke-betrodd kode ikke kan skrives utenfor den kategorien den blir kjørt i.
[0049] Det er velkjent for fagkyndige på området at noen operativsystemer og applikasjoner er mer utsatt for programvareangrep og/eller maskinvareangrep enn andre systemer og applikasjoner. Dette kan, i det minste delvis, fra at de formu-lerte integritetsreglene ikke blir overholdt, f.eks. ved å tillate en applet eller annen kode å skrive fra innsiden av en kjøretidsmaskin i en nettleser til et filsystem eller applikasjoner utenfor nettleseren. Med foreliggende oppfinnelse, er det mulig å kjøre selv gammeldagse nettlesere på en billig virtuell maskin med kjent integritetsnivå. Dette betyr at selv om en nettleser er mistenkt for å tillate skriving til et filsystem, vil slik skriving bli beholdt i et miljø med upålitelig innhold, dvs. et lavt integritetsnivå som definert ovenfor. Innen for dette nivået, kan en bruker frakoplet brysomme funksjoner for "forbedret sikkerhet" og likevel kunne være rimelig sikker på at all programvare som kjøres innenfor denne spesielle maskinen, ikke vil kunne skrive til andre virtuelle maskiner som kjører ved høyere integritetsnivåer. Forskjellige filtre for å hindre eller varsle om nettfiske og andre angrep rettet mot en bruker, vil likevel være nødvendig. Anti-virusprogrammer kan også være nødvendig på denne virtuelle maskinen for å bidra til å hindre ormer og lignende fra å spre seg fra en totalt ukontrollert maskin koplet til internett. Beskyttelsen mot virus, ormer og annen skadeprogramskriving til kritiske forretningsapplikasjoner kan likevel reduseres i sterk grad ved å kjøre slike applikasjoner i en separat virtuell maskin ved et høyere, dvs. mer betrodd og pålitelig integritetsnivå.
[0050]En database 260 blir brukt som et eksempel på data ved et høyere integritetsnivå. I henhold til Biba's strenge integritetspolitikk, bør data ikke skrives til databasen fra et lavere integritetsnivå, f.eks. den upålitelige nettleseren som er beskrevet ovenfor. Data kan imidlertid fremdeles mottas gyldig over internett fra andre applikasjoner som kjøres ved samme eller høyere integritetsnivå. De riktige nøklene og/eller sertifikatene for å sikre at data ikke er manipulert under over-føring, kan hentes fra ROM 200 som beskrevet ovenfor. Maskinen som kjører en usikker nettleser og den virtuelle maskinen som kjører den mer betrodde databasen, kan videre utlede sin nødvendige autentisitet fra nøkler eller sertifikater lagret i et fysisk ROM 200 på laveffektsanordningen som beskrevet ovenfor. Ved å involvere maskinvare på denne måten, blir systemet mer robust enn et rent pro-gramvarebasert system. Kostnadene for et leselager 200 vil også være betydelig lavere enn ekvivalent funksjonalitet implementert i programvare, spesielt når programvaren må sertifiseres mer grundig for å verifisere at den stemmer overens med Biba-reglene for integritet. Det skal imidlertid huskes at andre deler av programvare som er nødvendig for å kjøre en betrodd applikasjon på en separat maskin, f.eks. verifisering ved å sammenligne en kjøretidsnøkkel med en lagret nøkkel, vil være lik i de to løsningene.
[0051]I henhold til Biba, er nedskriving tillatt. I eksempelet ovenfor, betyr dette at data fra en betrodd database kan skrives til den virtuelle maskinen som kjører nettleseren, uten å krenke Biba's regel om skriving. Den kombinerte informasjonen vil kreve det laveste integritetsnivå, dvs. at det skal anses som mindre betrodd enn de opprinnelige dataene fra databasen som kjører ved et lavere integritetsnivå. Slik nedskriving bør imidlertid frarådes fordi den vil føre til migrering av innforma-sjon til det høyeste integritetsnivået hvor den kan forbli: tilbakeskriving blir eventuelt hindret av en mekanisme som involverer maskinvare som diskutert ovenfor.
[0052]Bell-LaPadula-reglene kan være implementert i maskinvare på omtrent samme måte som Biba's regler for integritet. Data bør holdes ved det lavest mulige konfidensialitetsnivået for å hindre informasjon fra å migrere til det høyest tilgjengelige konfidensialitetsnivået.
[0053]Som nevnt ovenfor, er forskjellige aspekter ved sikkerhet, f.eks. konfidensialitet, integritet og tilgjengelighet, uavhengig av hverandre. Hvis det er to integritetsnivåer, f.eks. {lavt, høyt} og to konfidensialitetsnivåer, f.eks. {offentlig, begrenset}, kan det derfor være fire forskjellige virtuelle maskiner som kjører {lavt, offentlig}, {lavt, begrenset}, {høyt, offentlig} og {høyt, begrenset}.
[0054] Det vises igjen til fig. 2, hvor brukerdatalageret 270 presenterer ett eller flere sikkerhetsnivåer, for eksempel fire kombinasjoner over kjøring på separate virtuelle maskiner, på én visningsanordning. På denne måten, kan en bruker betrakte data fra en betrodd og troverdig database på et høyt integritetsnivå samtidig som han arbeider i et mindre betrodd miljø på et lavere integritetsnivå. Hvis data fra de laveste og høyeste integritetslagene ikke blir blandet, vil det ikke være noen kombinasjon av informasjon som må tilordnes det høyeste integritetsnivået. Informasjonen vil dermed migrere til det høyeste integritetsnivået.
[0055]Ikke noe system vil være sikrere enn brukeren som bruker det. En bruker kan lese fra et vindu og skrive i et annet, eventuelt via en papirstrimmel hvis systemene befinner seg langt fra hverandre. Dette setter en grense for de an-strengelser som med rimelighet skal nedlegges i et forsøk på å hindre kopiering og liming mellom to vinduer på en dataskjerm. Det betyr også at så lite som mulig vedrørende sikkerhet bør overlates til en bruker.
[0056]Det vises nå til fig. 3, hvor et skjematisk eksempel på programvareapplika-sjoner som kan kjøres på systemet, er vist. Ved å starte fra bunnen, representerer et maskinvarelag 310 laveffektsanordningen, høyeffektsanordningen, grensesnittenheten og annen maskinvare fra fig. 1.
[0057]Laget 320 som kjøres direkte over maskinvaren 310, kan oppvise en overvåkningsanordning, f.eks. VM-laget 210 og PC-VM-laget 250 fra fig. 2, et maskinvare-abstraksjonslag for et enkelt operativsystem eller ingen programvare i det hele tatt. Overvåkningsanordningen 320 kan tilveiebringe flere virtuelle
maskiner 330, 333 for kjøring av applikasjoner ved forskjellige nivåer av konfidensialitet, integritet og tilgjengelighet. En virtuell maskin kan dermed bruke ressurser fra laveffektsanordningen, høyeffektsanordningen eller begge. På fig. 3, er bare én virtuell maskin skissert i noe detalj. En typisk virtuell maskin har et operativsystem (OS) 330 som tjener som et grunnlag for alle applikasjoner som kjøres på systemet. Noen applikasjoner 331, 332 kan aksessere OS 330 direkte. Andre applikasjoner kan dele et felles sett med biblioteker og drivere 340, som typisk tilveiebringer et filsystem, en filsystem leser, skriving, nett-tilkopling og andre funksjoner som er implementert én gang for å være tilgjengelige i et antall applikasjoner 350-381, for eksempel e-post 350 og e-postbaserte tjenester 351, nettleser/xml-app 360 med tilsvarende tjenester 361, kontaktliste og tjenester 370, 371, IRS og IRS-relaterte tjenester eller sosiale media 370, 371, osv. Noen applikasjoner 390, 391, f.eks. java kjøretidsmiljø 390 og applet 391, kan være nødvendig for kjøring i en lukket kategori forsynt med operativsystemet hvis en slik funksjonalitet er tilveiebrakt av operativsystemet. Ikke alle virtuelle maskiner kan implementere alle de funksjonene som er vist på fig. 3.
[0058]Overvåkningsanordningen 320 kan romme én eller flere ytterligere visuelle maskiner, kollektivt indikert med den prikkede blokken 333. Én av disse kan f.eks. være en separat maskin som kjører ved et høyt integritetsnivå. I denne forbindelse, er det irrelevant hvis den bruker behandlingskraft fra høyeffektsanordningen eller som diskutert ovenfor, laveffektsanordningen. I begge tilfeller, kan en slik virtuell maskin f.eks. kjøres i henhold til programvare og kommunisere bare med andre maskiner på samme integritetsnivå. Dette kan bety at ethvert informasjons-element fra et lavere integritetsnivå kan forkastes av maskinen og dermed at en bruker vil være ute av stand til å bruke denne spesielle maskinen til f.eks. søking på nettet. Fordi informasjon med lav integritet, dvs. ethvert ikke- autentisert nettinn-hold, kan skrives til det høyeste integritetsnivået, kan angrep på denne spesielle maskinen med skadeprogrammer bli vanskelig fordi angriperen må autentisere seg, typisk ved hjelp av et sertifikat, og så tilveiebringe data med riktig spredekode avhengig av en gyldig nøkkel eller sertifikat for å skrive til maskinen i det hele tatt. Som nevnt kort i innledningen, finnes det algoritmer for slike formål, f.eks. streaming-algoritmer. Foreliggende oppfinnelse kan understøtte slike anvendelser ved å tilveiebringe en plattform med et kjent, sporbart og verifiserbart integritetsnivå. Om ønsket, kan en hel stabel fra og innbefattende maskinvare isolert fra andre virtuelle maskiner tilveiebringes ved hjelp av foreliggende oppfinnelse.
[0059]I praksis, vil billige plater og annen maskinvare forbundet med en høy-effektsmaskin bli brukt så mye som mulig. Overvåkningsanordningen 320 kan likevel brukes til å allokere sikkerhetsressurser fra laveffektsanordningen sammen med ressurser fra høyeffektsanordningen til virtuelle maskiner som kjøres på systemet. Det kan dermed f.eks. bli mulig å lagre, eventuelt kryptert og kode-spredd, kode på en harddisk forbundet med høyeffektsanordningen og bruke integritetstestet og dekryptert kode til å starte en virtuell maskin som kjører ved høyeffektsanordningen sammen med en virtuell maskin som kjører på laveffekts-anordningen, som diskutert i forbindelse med beskrivelsen av fig. 2. Disse maskinene kan ha samme eller forskjellig nivå for konfidensialitet, integritet og/eller tilgjengelighet.
[0060]I noen utførelsesformer, kan laget 320 også være ansvarlig for å tilveiebringe kopier av virtuelle maskiner for hurtig gjenvinning. Denne funksjonaliteten er tilveiebrakt ved hjelp av kommersielt tilgjengelige overvåkningsprogrammer og vil ikke bli beskrevet nærmere her.
[0061]Fra fig. 3, vil man forstå at lesing eller skriving innledet av noen bruker-applikasjon, f.eks. 351, blir kartlagt gjennom ett eller flere programvarelag, i dette tilfelle lagene 350, 340, 330 og 320, før de aksesserer den fysiske plate, nett-grensesnittet eller annen maskinvare ved laget 310. Selv om operativsystemet 330 og overvåkningsanordningen 320 kan gi en viss beskyttelse, implementerer de vanligvis ikke formaliserte regler for integritet og konfidensialitet som diskutert ovenfor. Det er derfor i det minste en mulighet for å omgå sikkerheten gjennom programvare som aksesserer plater og annet utstyr som typisk er tilgjengelig gjennom overvåkningsanordningen 320 på fig. 3. Når sikker maskinvare i henhold til oppfinnelsen er tilveiebrakt ved hjelp av laveffektsanordningen og riktig allokert til ressurser ved operativsystemet eller applikasjonslageret, eventuelt ved hjelp av en overvåkningsanordning 320 som vist på fig. 3, kan imidlertid ressurser kjøres sikkert ved forskjellige konfidensialitetsnivåer og integritetsnivåer i systemet. Dette innbefatter oppstart uten mulighet for forurensning under startprosessen og tilveiebringelse av lagerplass ved passende nivåer under drift.
[0062]Det skal bemerkes at sikre maskinvareimplementerte inn/ut-funksjoner og lagre kan allokeres til hele de virtuelle maskinene gjennom en overvåkningsanordning 320 og/eller til brukerprogrammer gjennom et passende operativsystem.
Avsluttende bemerkninger
[0063]Fra det foregående, vil man forstå at enhver informasjon, f.eks. en unik ID og nøklene, koden og spredekodene som er diskutert ovenfor, kan være lagret ved et passende nivå, ikke nødvendigvis ved det høyest mulige integritetsnivået. Noe kode kan videre være lagret ved det nivået som den skal kjøres ved, mens en spredekode for koden kan være lagret ved et høyere integritetsnivå. Dette sikrer at spredekoden ikke kan modifiseres (ved oppskriving) og at den fremdeles kan være tilgjengelig for sammenligning før programkoden blir tillatt kjørt.
[0064]I den ovenfor angitte diskusjonen er flere sikkerhetsaspekter blitt nevnt selv om konfidensialitet og integritet (autentisitet) er blitt brukt som hovedeksempler. Det skal likevel klart bemerkes at tilgjengelighet og andre aspekter kan være nyttige i forbindelse med foreliggende oppfinnelse. Sikkerhetskopier eller andre versjoner av visse virtuelle maskiner kan f.eks. holdes mer eller mindre tilgjengelige for hurtig gjenopprettelse av data og funksjonalitet. Noen kopier av virtuelle maskiner, sikkerhetskopier og andre data kan videre være kryptert og så levert med en spredekode i henhold til sitt konfidensialitetsnivå og integritetsnivå og lagret ved mindre restriktive nivåer, dvs. i mindre kostbare lagre. Under gjenopprettelse kan en spredekode beregnes fra de lagrede dataene og sammenlignes med en spredekode som er lagret ved det høyeste integritetsnivået hvor den opprinnelig hørte til. Hvis spredekodene er forskjellige, bør den gjenopprettede informasjonen forkastes fra det høyeste integritetsnivået. Deretter kan dataene bare dekrypteres ved hjelp av en prosess ved et passende konfidensialitetsnivå ved å bruke en nøkkel fra et konfidensielt lager. Informasjonen blir så bare tilgjengelig når den er dekryptert, dvs. ved det riktige integritetsnivået og ved et passende konfidensialitetsnivå. I disse sikkerhetsrelaterte prosessene kan laveffektsanordningen tilveiebringe lager for nøkler og spredekoder, og eventuelt for programkode, mens høyeffektsanordningen kan levere billig behandlingskraft og lagringsplass.
[0065]Selv om oppfinnelsen er blitt beskrevet under henvisning til spesielle utførelsesformer, er den bare avgrenset av de vedføyde patentkravene.

Claims (10)

1. Datasystem med flere sikkerhetsnivåer, hvor systemet omfatter: en behandlingsanordning med høy effekt, en behandlingsanordning med lav effekt, og en grensesnittenhet som omfatter funksjoner for å flytte klassifisert informasjon mellom høyeffektsanordningen og laveffektsanordningen i henhold til formaliserte regler for konfidensialitet og/eller integritet.
2. System ifølge krav 1, hvor laveffektsanordningen omfatter programmerbar maskinvare.
3. System ifølge krav 1, hvor laveffektsanordningen omfatter sikker lagring.
4. System ifølge krav 1, hvor laveffektsanordningen omfatter midler for kjøring av et programmert operativmiljø.
5. System ifølge krav 1, hvor laveffektsanordningen omfatter et leselager som inneholder utførbare datamaskininstruksjoner for å sette i gang en oppstart av systemet og for å verifisere integriteten av kjerneprogrammer innrettet for kjøring på laveffektsanordningen og/eller høyeffektsanordningen.
6. System ifølge krav 1, hvor grensesnittenheten omfatter programmerbar maskinvare.
7. System ifølge krav 1, hvor funksjonene er implementert i fastvare.
8. System ifølge krav 1, videre omfattende funksjoner for i det minste ett ytterligere sikkerhetsaspekt.
9. Fremgangsmåte for implementering av flere sikkerhetsnivåer på et datasystem ifølge krav 1, hvor fremgangsmåten omfatter følgende trinn: - å identifisere et sett med sikkerhetsaspekter der hvert aspekt er uavhengig av andre sikkerhetsaspekter, - for hvert sikkerhetsaspekt, å identifisere ett eller flere sikkerhetsnivåer som skal implementeres på laveffektsanordningen, - for hvert sikkerhetsaspekt, å bestemme om og hvordan informasjon gyldig kan transporteres mellom sikkerhetsnivåer, og - å sikre at informasjon ikke flyter fra et høyere til et lavere nivå i et sikkerhetsaspekt av konfidensialitetstypen og ikke fra et lavere til et høyere nivå i et sikkerhetsaspekt av integritetstypen.
10. Fremgangsmåte ifølge krav 9, hvor trinnet med sikring videre omfatter: - å tilveiebringe en READ-funksjon som kjøres ved det høyest mulige sikkerhetsnivået for alle sikkerhetsaspekter av konfidensialitetstypen og ved det lavest mulige sikkerhetsnivået for alle sikkerhetsaspekter av integritetstypen, og - å tilveiebringe en WRITE-funksjon som kjøres ved det lavest mulige sikkerhetsnivået for alle sikkerhetsaspekter av konfidensialitetstypen og ved det høyest mulige sikkerhetsnivået for alle sikkerhetsaspekter av integritetstypen.
NO20101464A 2010-10-26 2010-10-26 Sikkert databehandlingssystem NO335189B1 (no)

Priority Applications (4)

Application Number Priority Date Filing Date Title
NO20101464A NO335189B1 (no) 2010-10-26 2010-10-26 Sikkert databehandlingssystem
PCT/NO2011/000303 WO2012057632A2 (en) 2010-10-26 2011-10-25 Secure computer system
US13/822,847 US9767297B2 (en) 2010-10-26 2011-10-25 Secure computing system
US15/707,936 US10162975B2 (en) 2010-10-26 2017-09-18 Secure computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NO20101464A NO335189B1 (no) 2010-10-26 2010-10-26 Sikkert databehandlingssystem

Publications (2)

Publication Number Publication Date
NO20101464A1 true NO20101464A1 (no) 2012-04-27
NO335189B1 NO335189B1 (no) 2014-10-20

Family

ID=44993156

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20101464A NO335189B1 (no) 2010-10-26 2010-10-26 Sikkert databehandlingssystem

Country Status (3)

Country Link
US (2) US9767297B2 (no)
NO (1) NO335189B1 (no)
WO (1) WO2012057632A2 (no)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381297B2 (en) 2005-12-13 2013-02-19 Yoggie Security Systems Ltd. System and method for providing network security to mobile devices
US20080276302A1 (en) * 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices
US8869270B2 (en) 2008-03-26 2014-10-21 Cupp Computing As System and method for implementing content and network security inside a chip
US8365272B2 (en) 2007-05-30 2013-01-29 Yoggie Security Systems Ltd. System and method for providing network and computer firewall protection with dynamic address isolation to a device
US8631488B2 (en) 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
US9973501B2 (en) 2012-10-09 2018-05-15 Cupp Computing As Transaction security systems and methods
KR101556908B1 (ko) * 2013-11-14 2015-10-02 (주)잉카엔트웍스 프로그램 보호 장치
US9825908B2 (en) * 2013-12-11 2017-11-21 At&T Intellectual Property I, L.P. System and method to monitor and manage imperfect or compromised software
WO2015123611A2 (en) 2014-02-13 2015-08-20 Cupp Computing As Systems and methods for providing network security using a secure digital device
US20150242609A1 (en) * 2014-02-24 2015-08-27 Google Inc. Universal Authenticator Across Web and Mobile
RU2623903C2 (ru) * 2014-09-19 2017-06-29 Открытое акционерное общество "Концерн "Системпром" Средство вычислительной техники для одновременной обработки информации разной конфиденциальности
US9710404B2 (en) * 2015-03-23 2017-07-18 Intel Corporation Dynamic configuration and peripheral access in a processor
CN105303115A (zh) * 2015-10-29 2016-02-03 成都信息工程大学 一种Java卡越界访问漏洞的检测方法和装置
US10671547B2 (en) 2016-12-19 2020-06-02 Intel Corporation Lightweight trusted tasks
CN109215170B (zh) * 2017-07-04 2021-03-02 百度在线网络技术(北京)有限公司 行车数据的存储方法、装置和设备
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US11645390B2 (en) * 2020-03-16 2023-05-09 Vmware, Inc. Cloud-based method to increase integrity of a next generation antivirus (NGAV) security solution in a virtualized computing environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1068212A (zh) * 1992-03-11 1993-01-20 邵通 微机硬盘读写控制器
GB9809885D0 (en) * 1998-05-09 1998-07-08 Vircon Limited Protected storage device for computer system
US7478248B2 (en) 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
WO2005109302A2 (de) * 2004-05-03 2005-11-17 Siemens Aktiengesellschaft Tragbare datenspeichereinrichtung
DE102005029887A1 (de) * 2005-06-27 2007-01-04 Giesecke & Devrient Gmbh Integritätsgeschützter Datenträger
US8041947B2 (en) * 2006-03-23 2011-10-18 Harris Corporation Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
US8185952B2 (en) 2007-01-03 2012-05-22 Texas Instruments Incorporated Static and dynamic firewalls
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
NO326590B1 (no) 2007-04-16 2009-01-19 Kubekit As Fremgangsmate og anordning for verifikasjon av informasjonstilgang i IKT-system med flere sikkerhetsdimensjoner og sikkerhetsniva.
US8312533B2 (en) * 2007-10-29 2012-11-13 The Boeing Company Virtual local area network switching device and associated computer system and method

Also Published As

Publication number Publication date
US20180225463A1 (en) 2018-08-09
WO2012057632A2 (en) 2012-05-03
WO2012057632A8 (en) 2012-10-18
US10162975B2 (en) 2018-12-25
US9767297B2 (en) 2017-09-19
WO2012057632A3 (en) 2012-12-13
US20130263277A1 (en) 2013-10-03
NO335189B1 (no) 2014-10-20

Similar Documents

Publication Publication Date Title
US11947688B2 (en) Secure computing system
US10162975B2 (en) Secure computing system
US10796009B2 (en) Security engine for a secure operating environment
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
US10516533B2 (en) Password triggered trusted encryption key deletion
Parno et al. Bootstrapping trust in modern computers
US8539551B2 (en) Trusted virtual machine as a client
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
EP2973171B1 (en) Context based switching to a secure operating system environment
Mannan et al. Unicorn: Two-factor attestation for data security
Götzfried et al. Mutual authentication and trust bootstrapping towards secure disk encryption
Gallery et al. Trusted computing: Security and applications
Safford et al. Trusted computing and open source
Arthur et al. Quick tutorial on TPM 2.0
US8914901B2 (en) Trusted storage and display
Abdumalikov WINDOWS SECURITY IN THE WORLD OF SPREAD VULNERABILITIES
KR20090039540A (ko) 온라인 서비스에 있어서 인증을 위한 스마트 카드 및스마트 카드를 이용한 인증 처리 방법
Wang et al. Coprocessor-based hierarchical trust management for software integrity and digital identity protection
Mancini et al. Ephemeral classification of mobile terminals
Daniel et al. Towards a Trust Envisioned Cyber Security
Uzunay Increasing trustworthiness of security critical applications using trusted computing