Inden for cybersikkerhed, især med hensyn til sikkerheden ved lagring på ikke-pålidelige lagringsservere, er vedligeholdelsen af en konsistent og verificerbar log over operationer altafgørende. Dette krav stammer fra nødvendigheden af at sikre dataintegritet, tilgængelighed og fortrolighed i miljøer, hvor der ikke er fuld tillid til lagerinfrastrukturen. Upålidelige lagerservere udgør betydelige risici, herunder uautoriseret dataændring, sletning og uautoriseret adgang. En konsekvent og verificerbar log over operationer spiller således en vigtig rolle i at mindske disse risici.
En konsistent log over operationer refererer til en sekventiel og kronologisk registrering af alle handlinger udført på de data, der er gemt på serveren. Denne log bør være uforanderlig og åbenbar for manipulation, hvilket sikrer, at eventuelle uautoriserede ændringer kan opdages. Betydningen af en sådan log ligger i dens evne til at give en nøjagtig og pålidelig historik over alle interaktioner med dataene, hvilket er afgørende for revision, retsmedicinsk analyse og overholdelse af lovkrav.
For at opnå en ensartet og verificerbar log over operationer kan flere teknikker og teknologier anvendes. Disse omfatter kryptografiske metoder, sikre logningsmekanismer og konsensusprotokoller. Nedenfor overvejer vi disse metoder i detaljer:
Kryptografiske metoder
1. Hash kæder: En hash-kæde er en sekvens af hash-værdier, hvor hver hash-værdi er afhængig af den foregående. Dette skaber et link mellem hver logindgang, hvilket sikrer, at enhver ændring af en post vil bryde kæden. For eksempel, hvis logposterne er repræsenteret af , kan hash-kæden konstrueres som følger:
hvor angiver en kryptografisk hash-funktion, og
repræsenterer sammenkædning. Denne struktur sikrer, at enhver manipulation med en logindtastning
vil resultere i et misforhold i efterfølgende hash-værdier, og derved afsløre manipulationen.
2. Digitale signaturer: Hver logpost kan signeres digitalt af en betroet part ved hjælp af asymmetrisk kryptografi. En digital signatur giver ægthed og integritet, da den kan verificeres ved hjælp af underskriverens offentlige nøgle. For eksempel hvis en logpost er underskrevet med en privat nøgle
, signaturen
kan verificeres af alle med adgang til den tilsvarende offentlige nøgle
. Denne metode sikrer, at enhver ændring af
vil ugyldiggøre signaturen.
3. Merkle træer: Et Merkle-træ er et binært træ, hvor hver bladknude repræsenterer en hash af en logindgang, og hver intern node repræsenterer hashen af dens underknudepunkter. Roden af Merkle-træet, kendt som Merkle-roden, giver en enkelt hashværdi, der repræsenterer hele sættet af logposter. Merkle-træstrukturen giver mulighed for effektivt og verificerbart bevis for inklusion, hvilket betyder, at man kan bevise, om en bestemt logpost er en del af loggen uden at afsløre hele loggen. Dette er især nyttigt til at bevare privatlivets fred og samtidig sikre integritet.
Sikre logningsmekanismer
1. Kun vedhæfte logs: En kun tilføjelseslog er en logstruktur, hvor poster kun kan tilføjes og ikke ændres eller slettes. Denne uforanderlighed sikrer, at når en post er registreret, forbliver den permanent i loggen. Implementering af kun tilføjede logs involverer typisk brug af WORM-lagringsmedier (Worm-once-once-read-many) eller anvendelse af softwarebaserede mekanismer, der forhindrer ændringer af eksisterende logposter.
2. Blockchain Technology: Blockchain er en decentraliseret og distribueret hovedbogsteknologi, der i sagens natur giver en konsistent og verificerbar log over operationer. Hver blok i blokkæden indeholder en liste over transaktioner (logposter), et tidsstempel og en kryptografisk hash for den forrige blok. Denne sammenkædning af blokke sikrer, at enhver manipulation med en blok vil ugyldiggøre de efterfølgende blokke. Blockchain-teknologi anvender også konsensusprotokoller for at opnå enighed mellem distribuerede noder, hvilket yderligere forbedrer loggens sikkerhed og pålidelighed.
3. Trusted Execution Miljøer (TEE'er): TEE'er, såsom Intel SGX eller ARM TrustZone, giver en sikker enklave i en processor, hvor kode og data kan udføres og opbevares sikkert. Ved at udnytte TEE'er kan man sikre, at logposter registreres og vedligeholdes i et sikkert og isoleret miljø, beskyttet mod manipulation af den upålidelige lagerserver. TEE'er kan også bruges til sikkert at generere og opbevare kryptografiske nøgler, der bruges til at signere logposter.
Konsensusprotokoller
I distribuerede systemer kræver opnåelse af konsistens og verificerbarhed af logs ofte konsensusprotokoller for at sikre, at alle noder i systemet er enige om rækkefølgen og indholdet af logposter. Nogle almindeligt anvendte konsensusprotokoller omfatter:
1. Paxos: Paxos er en familie af konsensusprotokoller designet til at opnå overensstemmelse mellem distribuerede noder i tilfælde af fejl. Paxos sikrer, at alle ikke-defekte noder er enige om den samme sekvens af logindtastninger, hvilket giver konsistens og fejltolerance.
2. Raft: Raft er en anden konsensusalgoritme, der er designet til at være mere forståelig og lettere at implementere end Paxos. Raft opdeler konsensusprocessen i ledervalg, logreplikering og sikkerhed, hvilket sikrer, at den distribuerede log forbliver konsistent og verificerbar.
3. Byzantinsk fejltolerance (BFT): BFT-protokoller, såsom Practical Byzantine Fault Tolerance (PBFT), er designet til at opnå konsensus i systemer, hvor noder kan udvise vilkårlige (byzantinske) fejl, herunder ondsindet adfærd. BFT-protokoller sikrer, at loggen forbliver konsistent og verificerbar selv i nærvær af ondsindede noder.
Praktisk eksempel
Overvej et scenario, hvor en finansiel institution bruger en upålidelig cloud-lagringstjeneste til at gemme transaktionslogfiler. For at sikre integriteten og verificerbarheden af disse logfiler kan institutionen implementere følgende foranstaltninger:
1. Hash kæder: Hver transaktionslogpost er hashed og knyttet til den forrige post ved hjælp af en hash-kæde. Dette sikrer, at enhver manipulation med en logindtastning kan registreres.
2. Digitale signaturer: Hver logindtastning signeres digitalt af institutionens private nøgle. Dette giver ægthed og ikke-afvisning, da signaturen kan verificeres ved hjælp af institutionens offentlige nøgle.
3. Merkle træer: Institutionen konstruerer med jævne mellemrum et Merkle-træ af logposterne og udgiver Merkle-roden på en offentlig opslagstavle eller blockchain. Dette giver enhver mulighed for at verificere logposternes integritet uden at få adgang til hele loggen.
4. Blockchain: Institutionen kan også registrere transaktionsloggene på en privat blockchain. Den decentraliserede karakter af blockchain sikrer, at loggen forbliver konsistent og verificerbar, selv i nærværelse af upålidelige lagerservere.
5. TEE'er: Institutionen kan udnytte TEE'er til sikkert at registrere og gemme logposter i en sikker enklave, hvilket beskytter dem mod manipulation af den ikke-pålidelige lagerserver.
6. Konsensusprotokoller: Hvis institutionen bruger et distribueret lagersystem, kan den anvende konsensusprotokoller såsom Raft eller PBFT for at sikre, at alle noder er enige om rækkefølgen og indholdet af transaktionsloggene.
Ved at implementere disse foranstaltninger kan den finansielle institution opretholde en konsistent og verificerbar log over operationer, hvilket sikrer integriteten, tilgængeligheden og fortroligheden af dens transaktionslogfiler, selv når de bruger ikke-pålidelige lagerservere.
Andre seneste spørgsmål og svar vedr EITC/IS/ACSS Advanced Computer Systems Security:
- Hvad er nogle af de udfordringer og afvejninger, der er involveret i implementering af hardware- og softwarebegrænsninger mod timingangreb, mens systemets ydeevne bevares?
- Hvilken rolle spiller grenprædiktoren i CPU-timingangreb, og hvordan kan angribere manipulere den til at lække følsomme oplysninger?
- Hvordan kan konstant-tidsprogrammering hjælpe med at mindske risikoen for timing af angreb i kryptografiske algoritmer?
- Hvad er spekulativ eksekvering, og hvordan bidrager det til moderne processorers sårbarhed over for timing af angreb som Spectre?
- Hvordan udnytter timingangreb variationer i eksekveringstid til at udlede følsomme oplysninger fra et system?
- Hvordan adskiller begrebet gaffelkonsistens sig fra hent-modificere-konsistens, og hvorfor betragtes gaffelkonsistens som den stærkest opnåelige konsistens i systemer med ikke-pålidelige lagerservere?
- Hvad er udfordringerne og potentielle løsninger for at implementere robuste adgangskontrolmekanismer for at forhindre uautoriserede ændringer i et delt filsystem på en server, der ikke er tillid til?
- Hvordan kan kryptografiske teknikker som digitale signaturer og kryptering hjælpe med at sikre integriteten og fortroligheden af data, der er gemt på servere, der ikke er tillid til?
- Hvad er byzantinske servere, og hvordan udgør de en trussel mod sikkerheden af lagersystemer?
- Hvordan bidrager protokoller som STARTTLS, DKIM og DMARC til e-mail-sikkerhed, og hvad er deres respektive roller i at beskytte e-mail-kommunikation?
Se flere spørgsmål og svar i EITC/IS/ACSS Advanced Computer Systems Security