{"id":14,"date":"2026-06-10T09:12:45","date_gmt":"2026-06-10T09:12:45","guid":{"rendered":"https:\/\/shattered.io\/dk\/2026\/06\/10\/sha1-kollision\/"},"modified":"2026-06-10T09:12:45","modified_gmt":"2026-06-10T09:12:45","slug":"sha1-kollision","status":"publish","type":"post","link":"https:\/\/shattered.io\/dk\/cryptography\/sha1-kollision\/","title":{"rendered":"SHA-1-kollisionen: da SHAttered br\u00f8d en hashfunktion i 2017"},"content":{"rendered":"<h2 id=\"dagen-sha-1-ikke-laengere-kunne-stoles-pa\">Dagen SHA-1 ikke l\u00e6ngere kunne stoles p\u00e5<\/h2>\n<p>Den 23. februar 2017 offentliggjorde forskere fra CWI Amsterdam og Google i f\u00e6llesskab et resultat, som kryptografer l\u00e6nge havde frygtet, men ikke set demonstreret i praksis: den f\u00f8rste rigtige SHA-1-kollision. Projektet fik navnet SHAttered, og det viste, at det var muligt at fremstille to forskellige filer med pr\u00e6cis det samme SHA-1-hash. Dermed faldt en af de antagelser, som store dele af internettets sikkerhed havde hvilet p\u00e5 i over to \u00e5rtier.<\/p>\n<p>For at forst\u00e5 hvorfor det var s\u00e5 alvorligt, er vi n\u00f8dt til at se p\u00e5, hvad en kollision egentlig er, og hvorfor den \u00f8del\u00e6gger tilliden til en hashfunktion.<\/p>\n<h2 id=\"hvad-er-en-kollision\">Hvad er en kollision?<\/h2>\n<p>En kryptografisk hashfunktion tager et input og frembringer et fingeraftryk af fast l\u00e6ngde. SHA-1 producerer 160 bit. Eftersom der findes uendeligt mange mulige input, men kun et endeligt antal mulige hashv\u00e6rdier, er det matematisk uundg\u00e5eligt, at to forskellige input p\u00e5 et tidspunkt vil dele samme hash. S\u00e5danne sammenfald kaldes kollisioner.<\/p>\n<p>Pointen med en sikker hashfunktion er ikke, at kollisioner ikke findes, for det g\u00f8r de. Pointen er, at det skal v\u00e6re s\u00e5 regnetungt at <em>finde<\/em> en kollision, at ingen i praksis kan g\u00f8re det. N\u00e5r denne modstand brydes, kan en angriber konstruere to dokumenter med samme hash og dermed bytte det ene ud med det andet, uden at nogen kontrol baseret p\u00e5 hashet opdager forskellen.<\/p>\n<p>Det er netop d\u00e9r, faren ligger. Hvis et system stoler p\u00e5, at to filer med samme SHA-1-hash er identiske, og en angriber kan fremstille to forskellige filer med samme hash, s\u00e5 kan en harml\u00f8s fil og en skadelig fil pludselig b\u00e6re det samme digitale fingeraftryk.<\/p>\n<p>Det er v\u00e6rd at skelne mellem to slags kollisionsangreb. I et generelt kollisionsangreb s\u00f8ger man hvilke som helst to input, der frembringer samme hash. I et identical-prefix-angreb, som SHAttered byggede p\u00e5, deler de to filer den samme begyndelse og adskiller sig f\u00f8rst i et omhyggeligt konstrueret omr\u00e5de l\u00e6ngere fremme. Sidstn\u00e6vnte er sv\u00e6rere at udnytte i alle t\u00e6nkelige sammenh\u00e6nge, men fuldt tilstr\u00e6kkeligt til at fremstille to dokumenter, der ser forskellige ud og alligevel deler hash. Det var pr\u00e6cis denne form for kollision, forskerne demonstrerede.<\/p>\n<h2 id=\"shattered-i-praksis\">SHAttered i praksis<\/h2>\n<p>SHAttered demonstrerede angrebet helt konkret med to PDF-filer. De to dokumenter havde forskelligt synligt indhold, men deres SHA-1-hash var identisk. Den f\u00e6lles SHA-1-v\u00e6rdi var:<\/p>\n<p><code>38762cf7f55934b34d179ae6a4c80cadccbb7f0a<\/code><\/p>\n<p>Begge filer er stadig tilg\u00e6ngelige, s\u00e5 man selv kan efterpr\u00f8ve det:<\/p>\n<ul>\n<li><a href=\"https:\/\/shattered.io\/static\/shattered-1.pdf\">shattered-1.pdf<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/static\/shattered-2.pdf\">shattered-2.pdf<\/a><\/li>\n<\/ul>\n<p>Det afg\u00f8rende er, at sammenfaldet <em>kun<\/em> g\u00e6lder under SHA-1. Beregner man i stedet et SHA-256-hash af de to filer, f\u00e5r man to helt forskellige v\u00e6rdier. Det viser tydeligt, at problemet ikke er filerne i sig selv, men den svaghed, der nu var fundet i SHA-1. En st\u00e6rkere hashfunktion afsl\u00f8rer \u00f8jeblikkeligt, at de to dokumenter ikke er ens.<\/p>\n<p>Forskerne udgav ogs\u00e5 en teknisk artikel, der beskriver metoden i detaljer, for dem der vil grave i selve angrebet: <a href=\"https:\/\/shattered.io\/static\/shattered.pdf\">shattered.pdf<\/a>.<\/p>\n<h2 id=\"hvor-stort-var-regnearbejdet\">Hvor stort var regnearbejdet?<\/h2>\n<p>En central pointe i SHAttered var, at angrebet var praktisk gennemf\u00f8rligt, men ikke billigt. Holdet anslog, at det kr\u00e6vede i st\u00f8rrelsesordenen 9,2 trillioner SHA-1-beregninger (9,2 efterfulgt af atten nuller, p\u00e5 engelsk omtalt som quintillion). Omsat til regnekraft svarede indsatsen til omtrent 6.500 CPU-\u00e5r plus omkring 110 GPU-\u00e5r.<\/p>\n<p>Det er enorme tal, og de forklarer, hvorfor angrebet ikke kunne v\u00e6re udf\u00f8rt med en enkelt computer p\u00e5 et rimeligt tidsrum. Men de er samtidig tal, der ligger inden for r\u00e6kkevidde for en stor organisation med adgang til store m\u00e6ngder hardware. Og det var hele pointen: et angreb, der tidligere kun var teoretisk, var nu blevet noget, en velfinansieret akt\u00f8r faktisk kunne udf\u00f8re. N\u00e5r noget f\u00f8rst er muligt og prisen falder med tiden, er det kun et sp\u00f8rgsm\u00e5l om hvorn\u00e5r, ikke om hvorvidt, det bliver tilg\u00e6ngeligt for flere.<\/p>\n<p>For at g\u00f8re angrebet h\u00e5ndterbart benyttede forskerne en teknik kaldet et <em>identical-prefix<\/em>-kollisionsangreb, hvor de to filer deler en f\u00e6lles begyndelse og derefter skiller sig fra hinanden i et n\u00f8je konstrueret omr\u00e5de. PDF-formatet er fleksibelt nok til at gemme disse forskelle, s\u00e5 de to dokumenter kan vise forskelligt indhold, mens de bevarer det samme SHA-1-hash.<\/p>\n<p>Det er ogs\u00e5 v\u00e6rd at huske, hvorfor tallene kunne falde over tid. Kryptografiske angreb bliver sj\u00e6ldent dyrere. De bliver billigere, efterh\u00e5nden som hardware bliver hurtigere, og efterh\u00e5nden som forskere finder smartere genveje. Et angreb, der ved offentligg\u00f8relsen kr\u00e6vede ressourcer p\u00e5 niveau med en stor organisation, vil typisk v\u00e6re inden for r\u00e6kkevidde af langt flere akt\u00f8rer nogle \u00e5r senere. Derfor er det ikke nok at sp\u00f8rge, om et angreb er praktisk i dag. Man m\u00e5 ogs\u00e5 sp\u00f8rge, hvor hurtigt det bliver praktisk for flere, og handle i god tid, f\u00f8r det sker.<\/p>\n<h2 id=\"hvorfor-en-kollision-bryder-tillid\">Hvorfor en kollision bryder tillid<\/h2>\n<p>Forestil dig en digital underskrift p\u00e5 en kontrakt. I praksis underskriver man sj\u00e6ldent hele dokumentet direkte. I stedet beregner man et hash af dokumentet og signerer dette hash. Det er hurtigere og fungerer fint, s\u00e5 l\u00e6nge hashfunktionen er st\u00e6rk.<\/p>\n<p>Men hvis hashfunktionen tillader kollisioner, opst\u00e5r der et hul. En angriber kan forberede to dokumenter med samme hash: et harml\u00f8st, som offeret godkender og signerer, og et skadeligt med ganske andet indhold. Fordi de deler hash, g\u00e6lder den signatur, der blev sat p\u00e5 det harml\u00f8se dokument, lige s\u00e5 vel for det skadelige. Modtageren har ingen mulighed for at se forskel ud fra hashet alene.<\/p>\n<p>Det samme princip g\u00e6lder for certifikater, softwarepakker og alt andet, hvor man bruger et hash som stedfortr\u00e6der for det fulde indhold. N\u00e5r kollisioner bliver mulige, kan fingeraftrykket ikke l\u00e6ngere garantere, at to ting er ens, og dermed forsvinder hele grundlaget for at stole p\u00e5 det.<\/p>\n<p>En vigtig nuance er, at SHAttered ikke br\u00f8d SHA-1&#8217;s modstand mod preimage. Det forblev praktisk umuligt at tage et givet hash og regne bagl\u00e6ns til et input. Det, der faldt, var kollisionsmodstanden, alts\u00e5 evnen til at forhindre, at nogen frit konstruerer to forskellige input med samme hash. For mange anvendelser er det netop kollisionsmodstanden, der betyder noget, fordi en angriber ofte kan v\u00e6lge begge dokumenter selv. Derfor var bruddet alvorligt, selv om SHA-1 ikke var fuldst\u00e6ndig knust p\u00e5 alle fronter.<\/p>\n<h2 id=\"konsekvenserne-hurtigere-udfasning-af-sha-1\">Konsekvenserne: hurtigere udfasning af SHA-1<\/h2>\n<p>SHAttered var ikke det f\u00f8rste tegn p\u00e5, at SHA-1 var p\u00e5 vej ud. Teoretiske svagheder var blevet beskrevet i \u00e5revis, og store akt\u00f8rer havde allerede annonceret planer om at droppe algoritmen. Men en konkret, offentlig demonstration \u00e6ndrede tonen fra hypotetisk bekymring til h\u00e5ndgribelig risiko, og det fremskyndede udfasningen m\u00e6rkbart.<\/p>\n<p>Effekten kunne ses flere steder:<\/p>\n<ul>\n<li><strong>TLS-certifikater:<\/strong> Browsere og certifikatudstedere skubbede p\u00e5 for at fjerne de sidste SHA-1-baserede certifikater, s\u00e5 krypteret webtrafik i stedet hvilede p\u00e5 st\u00e6rkere hashfunktioner.<\/li>\n<li><strong>Git:<\/strong> Versionsstyringssystemet Git identificerer commits via SHA-1. Efter SHAttered blev der arbejdet p\u00e5 at indbygge beskyttelse mod kollisionsangreb og p\u00e5 sigt at bev\u00e6ge sig mod st\u00e6rkere hashing.<\/li>\n<li><strong>Digitale signaturer og signering:<\/strong> V\u00e6rkt\u00f8jer til kodesignering og dokumentsignering tog skridt v\u00e6k fra SHA-1 for ikke at efterlade en kendt svaghed i underskriftsk\u00e6den.<\/li>\n<\/ul>\n<p>Den bredere l\u00e6re var enkel: en hashfunktion er ikke sikker for evigt. Regnekraften vokser, og angrebsteknikkerne forfines. Derfor pensioneres kryptografiske algoritmer planlagt, helst l\u00e6nge f\u00f8r nogen offentligt demonstrerer, at de kan brydes. SHAttered blev et l\u00e6rebogseksempel p\u00e5, hvad der sker, n\u00e5r man venter for l\u00e6nge, og hvorfor det er klogt at skifte til en st\u00e6rkere funktion som SHA-256, f\u00f8r presset bliver akut.<\/p>\n<h2 id=\"den-korte-konklusion\">Den korte konklusion<\/h2>\n<p>SHAttered beviste, at SHA-1 ikke l\u00e6ngere kunne bruges d\u00e9r, hvor sikkerhed afh\u00e6nger af, at kollisioner er upraktiske at finde. To forskellige PDF-filer med samme SHA-1-hash, men forskellige SHA-256-hash, gjorde svagheden umulig at bortforklare. Resultatet var ikke panik, men en velbegrundet og hurtigere overgang til moderne hashfunktioner. For alle, der bygger systemer, der hviler p\u00e5 tillid, er historien en p\u00e5mindelse om at v\u00e6lge sine kryptografiske byggesten med omtanke og at skifte dem ud, f\u00f8r de svigter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dagen SHA-1 ikke l\u00e6ngere kunne stoles p\u00e5 Den 23. februar 2017 offentliggjorde forskere fra CWI Amsterdam og Google i f\u00e6llesskab et resultat, som kryptografer l\u00e6nge havde frygtet, men ikke set\u2026<\/p>\n","protected":false},"author":2,"featured_media":21,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptography"],"_links":{"self":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":0,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts\/14\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/media\/21"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/media?parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/categories?post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/tags?post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}