Checksummer og kopier af elektroniske dokumenter

De fleste løfter et øjenbryn og tror ikke helt på det, når vi påstår, at det er ret almindeligt at 25% af alle dokumenter på en fællesdrev er ekstra kopier af dokumenter. Men det er nu ofte tilfældet, og vi er jævnligt mødt med ønsket om at kunne eliminere disse kopier nemt. I denne artikel fokuseres på checksummer som hjælpemiddel til at finde identificere kopier.

Hvad er en kopi?

Egentlig er det banalt nok. En kopi er jo bare lige præcist det, det siger, nemlig en ekstra kopi af et dokument. Dvs to helt ens filer. Hvor svært kan det være? Og i denne artikel, hvor vi fokuserer på checksummer, er det også den forståelse af begrebet, der er relevant. 

 

I sammenhæng med fx en oprydning og klassifikationsopgave vil man dog ofte have behov for at tænke ordet “kopi” lidt bredere, nemlig når to dokumenter har samme tekst, selvom de er i to forskellige formater (fx typisk Word og PDF). Sådanne filer er ikke fysisk identiske, men har blot samme tekstindhold. Så hvis vi vil identificere kopier af et dokument i denne forstand, skal vi kunne genkende identisk tekst – ikke identiske filer. Det er emnet for en anden artikel.

Checksummer

En checksum (kontrolsum, hashværdi – kært barn..) er en række af tal og bogstaver, der bruges til at kontrollere data for fejl. Hvis du kender checksummen for en original fil, kan du bruge et checksumværktøj til at bekræfte, at din kopi er identisk.

 

Checksummer stammer fra kryptografien, hvor det er formålet at kunne sikre sig at en fil ikke er blevet kompromitteret og bruges hver eneste dag af styresystemer i computere til at sikret at filer ikke er blevet korrupte fx under kopiering.

 

Der er forskellige algoritmer til at beregne disse checksummer og de er forbundet med hver deres ekstremt lille sandsynlighed for, at to filer kan have samme sum uden at være identiske. Nogle af de mest brugte algoritmer til det er MD5, SHA-1, SHA-256, og SHA-512 i orden efter sigende sikkerhed.

 

Til vores formål vil vi helt ignorere muligheden for sammenfald af checksummer, mens militæret og andre som vil detektere indtrængen fra folk med kapacitet til at slette sporene efter sig, med god grund kan være opmærksom på risikoen.

 

Med oprejst pande vil vi kunne sige, at to dokumenter som har samme checksum er identiske kopier og at alle identiske kopier vil have denne checksum. 

 

Bruge checksum til oprydning

Hvis vi skal kunne bruge checksummer til at identificere dokumentkopier kræver det, at vi får beregnet checksummen for alle dokumenter i vores scope og sammenligne dem og  finde kopierne.

 

I Windows er det en indbygget funktion som kan beregne checksummer, så i princippet har vi muligheden lige ved håden. Men det kaldes via Powershell og kræver en vis teknisk kunnen, at lave et script som løber nogle fildrev igennem og beregner disse summer for alle filer. Men det er en mulighed.

 

IT-afdelingen vil med stor sikkerhed have mindst et værktøj, som kan beregne disse checksummer. Det er nemlig vældigt smart i forbindelse med at vedligeholde server- og storageplads. It-afdelingens software vil ofte ikke kun kunne identificere, men også konsolidere (læs: slette den ene kopi). 

 

Inden man kaster sig ud i at arbejde manuelt med de her checksummer skal man gennemtænke hvordan man vil bevare overblikket i processen. 

Et regneark med fil-lister, makroer til parring og massevis af manuel filtrering er super, hvis det er relativt begrænset volumen.  Men volumen og kompleksitet skal ikke stige meget for at det ikke er gangbart. 

 

I en virkelig oprydning kan det snildt være at to kopier er lagt i hver sin fil-sti, hvor begge kopiers fil-sti faktisk giver virkelig vigtig meta-information om dokumentet. Så går det ikke bare at smide den ene ud – vi skal først have opsamlet dens kontekst. 

 

Konklusion

Checksummer er gode at kende. Det er nemt at bruge til at verificere at to kopier er ens. Det er også gangbart at bruge til at finde kopier af nogle dokumenter. Men checksummer og “gør-det-selv”-teknik er en støtte til en manuel oprydning, men det er ikke en automatisering af en oprydning. 

 

Ydermere ligger checksum-teknologien ligger til grund for rigtigt mange af de kommercielt (og gratis) tilgængelige værktøjer til filanalyse, så selvom man ikke “gør-det-selv”, er det vigtigt at forstå checksummer og derigennem at forstå begrænsningen i et sådant værktøj. 

 

Den gode nyhed er at mange af disse værktøjer (se fx her) kan andet og mere end at basere sig på checksummer. Det kan åbne muligheder ifht den pointe, der blev rejst i starten om at kopi også i nogle sammenhænge skal betyde andet en fysisk identisk kopi. Men det må vi efterlade som en cliff-hanger og vende tilbage til i en anden artikel.