Hvorfor sikkerhetssystemer aldri skal være hemmelige

Hver gang noen sier at sikkerhetsmekanismene de bruker må være hemmelige for å være sikre, er det grunn til å være skeptisk. For, hvis det faktisk er sant at de må være hemmelige, så er de heller ikke sikre.

Det er et grunnleggende prinsipp innen informasjonssikkerhet som sier at man må anta at “angriperen vet alt om systemet”, som kan sees på som en generalisering av Kerckhoffs berømte prinsipp.  Men hvorfor er det slik? Hvorfor skal vi på død og liv betrakte angripere som orakler som kan alt? Det kan da virkelig ikke være nødvendig? Eller?

Det er mange grunner til at det er lurt å tenke på angriperen som en som kan alt, men i bunn og grunn koker alt ned til risiko. Hva er sannsynligheten for og konsekvensen av at hemmeligheten blir kjent?

  1. Det er vanskelig å holde på hemmeligheter. Vi vet alle at det kan være vanskelig å begrense omfanget av en hemmelighet. Det er alltid noen som videreformidler, kanskje fordi de ikke oppfatter det som så hemmlig eller kanskje fordi de ønsker å ramme noen. Jo flere hemmeligheter du har og jo mer kompliserte de er, jo vanskeligere er de å holde hemmelig. Dersom et helt system skal være hemmelig, så må alle spesifikasjoner, all kildekode og alle installasjoner holdes hemmelig. Det kan etter hvert bli fryktelig mange som har oversikt over dette og som må holde på hemmeligheten for at systemet skal virke.
  2. Konsekvensene av at hemmeligheten avsløres kan bli store. Sett at en forsmådd tidligere ansatt, eller en stjålet PC, eller et direkte angrep gjør at hemmeligheten avsløres. Hva er konsekvensen? Hvis en krypteringsnøkkel blir kjent, kan man bare erstatte denne med en ny. Koster lite og går ganske kjapt. Hvis hele systemet må byttes, er både kostnaden og tidsbruken en ganske annen.

Historien er full av eksempler på at hemmelighold anses som en sikkerhetsmekanisme. Professor Hole ved universitetet i Bergen har illustrert ypperlig banknæringens tro på hemmelighold av usikre løsninger. Phillips (eller NXP) klarte lenge å holde krypteringsalgoritmen CRYPTO1 hemmelig for omverdenen. Denne algoritmen ble brukt i millioner av MiFare Classic RFID-kort for offentlig transport og tilgangsløsninger til f.eks kontorbygg. Når algoritmen ble avslørt, viste den betydelige svakheter og er i praksis en ubrukelig krypteringsalgoritme. Og eneste måten å fullstendig fikse skaden er å erstatte alle kort. I Dagens Næringsliv kan vi lese om hacking av låser til hotelldører. Via en plugg på undersiden av dørlåsen får man tilgang til å administrere dørene, og kan da også låse dem opp. Som en bonus kan dette gjøres med relativt lite utstyr og uten at det lar seg spore i dørens logg. Det er helt sikkert riktig som den norske forhandleren uttaler at det “krever en viss kompetanse på elektronikk for å bygge apparatet som er beskrevet i denne artikkelen , så det er ikke slik at hvem som helst kan gjøre det”, men hvem er det som tror at den som bygger apparatet også er den som (mis)bruker det? Kriminelle som trenger våpen bygger det ikke, de kjøper det! Og igjen, siden dørlåsen ikke har nettilgang, så må man fysisk koble seg på hver enkelt dør for å oppgradere programvaren. Slettes ikke gratis.

Det er selvsagt ikke dermed sagt at alle bør kringkaste all informasjon om alle sine prosedyrer og sikkerhetssystemer. Det er ingen grunn til å gjøre jobben lettere for en angriper. Problemet oppstår imidlertid når sikkerheten til systemet er består av eller er avhengig av hemmeligholdelse.

Sikkerheten blir bedre med færre hemmeligheter som er kjent av færre personer og har mindre omfang.