Sikker meldingsformidling på web

Knut Soelberg, forsker i Internett-sikkerhet på Norsk Regnesentral, har sendt oss dette synspunktet, som en reaksjon på vår artikkel "Java kan misbrukes til bedrageri på web."

Artikkelen "Java kan misbrukes til bedrageri på web" tar opp en interessant problemstilling, "mannen i midten angrep", som frem til nå har vært forholdsvis lite belyst. Kort oppsummert går et "mannen i midten angrep" ut på å fange opp og endre meldinger som sendes mellom en bruker (klient) og en tjenesteyter (tjener) uten at verken bruker eller tjenesteyter nødvendigvis oppdager at meldingene som utveksles har blitt endret underveis.

"Mannen i midten angrep" er en reell trussel, men risikoen for at man skal bli utsatt for og bli skadelidende som følge av et slikt angrep er liten i forhold til andre trusler som aldri blir omtalt. Det er farlig å overfokusere/underfokusere på enkelte trusler slik som f.eks. "mannen i midten angrep". I praksis vil sannsynligvis formålet med et "mannen i midten angrep" være forsøk på sabotasje av en tjeneste. Generelt er det ikke noe "mindre sikkert" å tilby tjenester på Internett med dagens løsninger enn det som tilbys av tjenester via andre kanaler.

"Mannen i midten angrep" er i dag mulig fordi meldingene/informasjonen som sendes over nettet av dagens systemer ikke har "ende-til-ende" integritet. Det medfører at det er mulig å endre på en melding underveis uten at hverken avsender eller mottaker nødvendigvis vil merke det.

"Ende-til-ende" integritet, dvs. at et forsøk på å endre meldingen underveis vil bli avdekket, kan oppnås ved at løsningene som benyttes er basert på "sikker meldingsformidling". "Sikker meldingsformidling" bygger på bruk av digitale signaturer og offentlig nøkkel kryptering og gir i tillegg ende-til-ende" integritet også sterk autentisering av begge parter. Dersom ønskelig kan også konfidensialitet, dvs. hemmeligholdelse av innhold, samt sporbarhet oppnås. Med sporbarhet menes at man i ettertid kan dokumentere bestemte hendelser. SET (Secure Electronic Transaction), sikker betaling med betalingskort i åpne nett, er et eksempel på bruk av sikker meldingsformidling.

Dagens såkalte "sikre" web-tjenere med støtte for SSL (Secure Socket Layer) er basert på kommunikasjonssikkerhet og gir kun punkt-til-punkt sikkerhet. Det har dessverre vært en sterk overfokusering på at SSL, dvs. punkt-til-punkt sikkerhet, vil løse "alle sikkerhets problemene". SSL er sårbart for bla. "mannen i midten angrep" siden SSL ikke gir ende-til-ende integritet. Jeg anser SSL som en interimløsning, men det er dessverre fare for at SSL skal bli en litt for permanent løsning med de farer det innebærer.

I dag skal "alle" tilby tjenester på Internett. Jeg ser faktisk det som en meget stor risiko fordi det å tilby tjenester på Internett setter svært høye krav til kvalitetsnivå på den spesialutviklede programvaren som leverer de interaktive tjenestene. Det blir stadig vanligere at web-tjeneren kommuniserer med interne systemer for å levere selve tjenesten. Det vil i året som kommer helt sikkert avdekkes flere tilfeller hvor (CGI-)programmer på web-tjenere som kommuniserer med interne systemer har et for lavt nivå både kvalitetsmessig og sikkerhetsmessig. Det gjør systemet sårbart for ulike former for angrep. Så lenge de som skal tilby tjenester på nettet ikke innser at kvalitetssikring blir enda viktigere for tjenester på nettet enn det man er vant til i andre sammenhenger, vil tjenesten ha unødvendig mange potensielle sikkerhetshull. Årsaken er selvfølgelig at når en tjeneste tilbys på Internett, blir tilgjengeligheten vesentlig høyere enn hva man tradisjonelt er vant til.

Når tjenester basert på CGI-programmer og HTML-forms blir stadig mer komplekse, f.eks en interaktiv sesjon hvor neste web-side er et resultat av input fra foregående, vil kvalitetssikringen vise seg å bli meget vanskelig om ikke umulig dersom løsningen lider av dårlig design og implementasjon. CGI-programmer med "lengre interaktive sesjoner" egner seg ikke for "avanserte tjenester" med et høyt krav til kvalitet og sikkerhet. Signerte java-applets er en vesentlig mer tilrådelig løsning.

Jeg tror vi vil få mange eksempler på tjenester som lider av et dårlig design og som kan føre til suksessfulle angrep. Faren er at alt for mange som ikke har nødvendig kunnskap og oversikt over web- og internett-teknologi, kommer til å lage tjenester på nettet. Det kan ikke gå annet en galt.

Det er derfor viktig for bedrifter som skal tilby avanserte tjenester på nettet at de benytter utviklere som ser farer og begrensninger i dagens teknologi og at nok ressurser blir avsatt til testing og kvalitetssikring. I tillegg bør løsningene være basert på meldingssikkerhet, dvs. at "sikkerheten er innebygd" i meldingene som utveksles og ikke kommunikasjonssikkerhet, dvs. at sikkerheten er "innebygd i kommunikasjonskanalen" slik som SSL er et eksempel på.

Siste kommentar blir derfor at det ikke er muligheten for "mannen i midten" angrep eller andre tenkelige og utenkelige scenarier som vil være årsaken til de fleste tilfeller av innbrudd/misbruk av tjenester. Årsaken vil være at tjenesten som blir utsatt for innbrudd eller liknende sannsynligvis lider av dårlig design, implementasjon (programmeringsfeil) og/eller dårlig vedlikehold og drift.

Til toppen