{"id":97,"date":"2026-06-16T16:38:13","date_gmt":"2026-06-16T16:38:13","guid":{"rendered":"https:\/\/shattered.io\/dk\/2026\/06\/16\/beskyt-dig-mod-chatkontrol\/"},"modified":"2026-06-16T16:39:51","modified_gmt":"2026-06-16T16:39:51","slug":"beskyt-dig-mod-chatkontrol","status":"publish","type":"post","link":"https:\/\/shattered.io\/dk\/beskyt-dig-mod-chatkontrol\/","title":{"rendered":"Beskyt dig mod chatkontrol: 12 trin p\u00e5 60 min [2026]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Chatkontrol er ikke et teoretisk problem l\u00e6ngere. Selvom et flertal i Europa-Parlamentet stemte nej til den mest vidtg\u00e5ende version, er forslaget om obligatorisk scanning af private beskeder stadig i spil i R\u00e5det, og den underliggende teknologi (client-side scanning) findes allerede i kommercielle produkter. Denne guide viser dig, hvordan du p\u00e5 cirka 60 minutter bygger en kommunikationsops\u00e6tning, der g\u00f8r dine private samtaler langt sv\u00e6rere at masseafl\u00e6se, uanset hvordan den endelige forordning ender.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vi bygger en konkret, fungerende stak: h\u00e6rdet Signal, SimpleX Chat uden identifikatorer, og din egen Matrix-homeserver (Synapse) i Docker med ende-til-ende-kryptering sl\u00e5et til som standard. Du f\u00e5r 12 trin, mere end 5 kodeblokke, output-eksempler, en lang fejlfindingssektion og avancerede tips. Alt er skrevet, s\u00e5 en teknisk interesseret bruger i Danmark eller Norden kan f\u00f8lge med uden at v\u00e6re systemadministrator til daglig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vigtigt at sl\u00e5 fast med det samme: ende-til-ende-kryptering beskytter dine beskeder, mens de er undervejs, men <strong>chatkontrol<\/strong> handler om at scanne indholdet <em>p\u00e5 din enhed<\/em>, f\u00f8r det krypteres. Derfor er svaret ikke \u00e9t enkelt v\u00e6rkt\u00f8j, men en kombination af apps, der minimerer metadata, undg\u00e5r usikre sky-backups og giver dig kontrol over serveren. Lad os komme i gang.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hvad-er-chatkontrol-og-hvor-staar-sagen-i-2026\">Hvad er chatkontrol, og hvor st\u00e5r sagen i 2026?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Chatkontrol er k\u00e6lenavnet p\u00e5 EU&#8217;s forordning mod seksuelt misbrug af b\u00f8rn, formelt CSA-forordningen (CSAR). Europa-Kommissionen fremlagde forslaget 11. maj 2022. Kernen i kritikken har hele tiden v\u00e6ret den samme: forslaget \u00e5bnede for, at udbydere af beskedtjenester skulle p\u00e5l\u00e6gges at scanne private kommunikation, ogs\u00e5 i krypterede tjenester, for kendt og ukendt misbrugsmateriale samt grooming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I efter\u00e5ret 2025 n\u00e5ede modstanden et historisk niveau. En afstemning, der var planlagt til 13. eller 14. oktober 2025, blev trukket, fordi medlemslandene ikke kunne samle flertal. Det danske formandskab, der overtog roret i juli 2025, gjorde CSA-forordningen til en h\u00f8jt prioriteret sag og forhandlede i november 2025 en f\u00e6lles r\u00e5dsposition p\u00e5 plads efter \u00e5rs d\u00f8dvande. I den version blev det direkte krav om at scanne beskeder (inklusive krypterede) if\u00f8lge flere kilder fjernet, og teksten l\u00e6nede sig i stedet op ad &#8220;alle rimelige afb\u00f8dende foranstaltninger&#8221; og frivillig detektion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Privatlivsorganisationer som EFF og EDRi advarer dog om, at formuleringer om risikoafb\u00f8dning og aldersverifikation kan skabe et indirekte pres for scanning p\u00e5 enhederne. Samtidig blev den midlertidige ePrivacy-undtagelse, der tillod frivillig detektion, forl\u00e6nget til 3. april 2026, og Kommissionen foreslog 19. december 2025 en yderligere forl\u00e6ngelse p\u00e5 to \u00e5r. Med andre ord: sagen er ikke afgjort, teknologien forsvinder ikke, og din bedste forsikring er en ops\u00e6tning, der ikke er afh\u00e6ngig af lovgivernes n\u00e6ste kompromis. L\u00e6s mere om den politiske status i vores nyhedsd\u00e6kning af <a href=\"\/dk\/privacy\/chatkontrol-eu-2026\/\">chatkontrol-afstemningen i EU-Parlamentet<\/a>.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Dato<\/th><th>Begivenhed<\/th><th>Betydning for dig<\/th><\/tr><\/thead><tbody><tr><td>11. maj 2022<\/td><td>Kommissionen freml\u00e6gger CSA-forslaget<\/td><td>Startskuddet for chatkontrol-debatten<\/td><\/tr><tr><td>Juli 2025<\/td><td>Dansk EU-formandskab prioriterer sagen<\/td><td>Danmark st\u00e5r centralt i forhandlingen<\/td><\/tr><tr><td>Okt. 2025<\/td><td>Planlagt afstemning tr\u00e6kkes<\/td><td>Manglende flertal blandt medlemslande<\/td><\/tr><tr><td>Nov. 2025<\/td><td>R\u00e5det vedtager f\u00e6lles position<\/td><td>Direkte beskedscanning fjernet, afb\u00f8dning tilbage<\/td><\/tr><tr><td>19. dec. 2025<\/td><td>Forslag om 2-\u00e5rig forl\u00e6ngelse<\/td><td>Frivillig detektion forts\u00e6tter i en periode<\/td><\/tr><tr><td>3. apr. 2026<\/td><td>ePrivacy-undtagelse udl\u00f8ber<\/td><td>Frivillig scanning kr\u00e6ver ny hjemmel<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"saadan-fungerer-client-side-scanning-teknisk\">S\u00e5dan fungerer client-side scanning teknisk<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For at bygge et fornuftigt forsvar skal du forst\u00e5 angrebsfladen. Client-side scanning (CSS) betyder, at indholdet kontrolleres p\u00e5 din egen telefon eller computer, f\u00f8r det sendes, eller idet det vises. Teknikken bruger typisk perceptuel hashing (for eksempel algoritmer i stil med PhotoDNA), hvor et billede omdannes til et fingeraftryk, der kan sammenlignes med en database af kendt materiale, samt maskinl\u00e6ringsklassifikatorer, der fors\u00f8ger at genkende nyt materiale eller grooming-m\u00f8nstre i tekst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det centrale problem er r\u00e6kkef\u00f8lgen. Ende-til-ende-kryptering sikrer, at kun afsender og modtager kan l\u00e6se beskeden i transit. Men CSS griber ind <em>f\u00f8r<\/em> krypteringen sker, alts\u00e5 mens teksten eller billedet stadig ligger i klartekst i appen. Derfor er udsagnet &#8220;Signal er krypteret, s\u00e5 jeg er beskyttet&#8221; kun halvt rigtigt. Krypteringen beskytter mod serverside-scanning og aflytning p\u00e5 netv\u00e6rket, men ikke automatisk mod kode, der k\u00f8rer p\u00e5 selve enheden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dit forsvar hviler derfor p\u00e5 tre principper, som hele denne guide er bygget op om:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Minim\u00e9r klartekst p\u00e5 enheden:<\/strong> Brug apps, der ikke synkroniserer beskeder til usikre sky-backups, og som ikke kr\u00e6ver, at du afleverer indholdet til en tredjepart.<\/li><li><strong>Minim\u00e9r metadata:<\/strong> Selv hvis indholdet er krypteret, afsl\u00f8rer hvem-taler-med-hvem og hvorn\u00e5r en hel del. V\u00e6lg tjenester, der reducerer identifikatorer.<\/li><li><strong>Kontroll\u00e9r infrastrukturen:<\/strong> N\u00e5r du selv driver serveren, bestemmer du opdateringer, logning og hvilken kode der k\u00f8rer. Ingen ekstern udbyder kan tvinges til at indf\u00f8re scanning p\u00e5 dine vegne uden din viden.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Med de principper p\u00e5 plads kan vi sammenligne de v\u00e6rkt\u00f8jer, vi bruger i projektet. Tabellen nedenfor opsummerer, hvorfor hver app indg\u00e5r, og hvad den bidrager med mod <strong>chatkontrol<\/strong>.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>App\/tjeneste<\/th><th>Type<\/th><th>Identifikator<\/th><th>Styrke mod client-side scanning<\/th><\/tr><\/thead><tbody><tr><td>Signal<\/td><td>Beskedapp<\/td><td>Telefonnummer<\/td><td>St\u00e6rk E2EE og lille metadata-aftryk, men endpoint kan rammes ved lovkrav<\/td><\/tr><tr><td>SimpleX Chat<\/td><td>Beskedapp<\/td><td>Ingen (intet bruger-ID)<\/td><td>Undg\u00e5r vedvarende identifikatorer, g\u00f8r korrelation sv\u00e6r<\/td><\/tr><tr><td>Matrix (Synapse)<\/td><td>Selvhostet protokol<\/td><td>@bruger:dit-dom\u00e6ne<\/td><td>Du styrer serveren, E2EE kan tvinges til standard<\/td><\/tr><tr><td>Session<\/td><td>Beskedapp<\/td><td>Pseudonymt ID<\/td><td>Decentral routing reducerer netv\u00e6rksoverv\u00e5gning<\/td><\/tr><tr><td>Briar<\/td><td>P2P-beskedapp<\/td><td>Ingen central server<\/td><td>Ingen central server at presse til scanning<\/td><\/tr><tr><td>Proton Mail \/ Tuta<\/td><td>Krypteret e-mail<\/td><td>E-mailadresse<\/td><td>Begr\u00e6nset serverside-indsigt i indhold<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"forudsaetninger-software-og-versioner\">Foruds\u00e6tninger: software og versioner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Projektet kr\u00e6ver en lille Linux-server (en VPS hos en europ\u00e6isk udbyder eller en maskine derhjemme), en telefon og lidt t\u00e5lmodighed. Brug seneste stabile versioner af alt, men herunder er de minimumsversioner, ops\u00e6tningen er testet med. Tjek altid den officielle dokumentation for nyeste version, da tallene \u00e6ndrer sig l\u00f8bende.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Komponent<\/th><th>Minimumsversion<\/th><th>Form\u00e5l<\/th><\/tr><\/thead><tbody><tr><td>Ubuntu Server (LTS)<\/td><td>22.04 eller 24.04<\/td><td>V\u00e6rtsoperativsystem til serveren<\/td><\/tr><tr><td>Docker Engine<\/td><td>seneste stabile<\/td><td>K\u00f8rer Synapse i en container<\/td><\/tr><tr><td>Docker Compose<\/td><td>v2 (plugin)<\/td><td>Orkestrerer containere<\/td><\/tr><tr><td>Caddy<\/td><td>seneste stabile<\/td><td>Reverse proxy med automatisk TLS<\/td><\/tr><tr><td>Matrix Synapse<\/td><td>seneste stabile (image)<\/td><td>Din homeserver<\/td><\/tr><tr><td>Element<\/td><td>seneste app-version<\/td><td>Matrix-klient til telefon og web<\/td><\/tr><tr><td>Signal<\/td><td>seneste app-version<\/td><td>H\u00e6rdet beskedapp<\/td><\/tr><tr><td>SimpleX Chat<\/td><td>seneste app-version<\/td><td>Beskedapp uden identifikatorer<\/td><\/tr><tr><td>exiftool<\/td><td>seneste stabile<\/td><td>Fjerner metadata fra filer<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">Du skal ogs\u00e5 bruge et dom\u00e6nenavn, du styrer (for eksempel <code>chat.ditdomaene.dk<\/code>), og adgang til at oprette DNS-poster. Hvis du vil holde alt i Norden, v\u00e6lger du en udbyder med datacentre i Danmark, Sverige eller Finland. Det \u00e6ndrer ikke krypteringen, men det holder metadata og jurisdiktion t\u00e6t p\u00e5 dig. For en bredere diskussion om at flytte v\u00e6k fra amerikansk infrastruktur, se vores artikel om <a href=\"\/dk\/security\/digital-suveraenitet-danmark-2026\/\">digital suver\u00e6nitet i Danmark<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-1-byg-din-trusselsmodel\">Trin 1: Byg din trusselsmodel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spring ikke dette trin over. En trusselsmodel er en kort, \u00e6rlig beskrivelse af, hvad du beskytter, mod hvem, og hvor meget besv\u00e6r du er villig til at acceptere. Uden den ender du enten med falsk tryghed eller med en ops\u00e6tning, der er s\u00e5 besv\u00e6rlig, at du holder op med at bruge den. Skriv tre linjer ned, f\u00f8r du r\u00f8rer ved teknikken.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Aktiver:<\/strong> Hvilke samtaler er f\u00f8lsomme? Kildebeskyttelse for en journalist, helbredsoplysninger, fagforeningsarbejde, eller bare et \u00f8nske om at private samtaler forbliver private.<\/li><li><strong>Modstander:<\/strong> Mod automatiseret masseafl\u00e6sning (chatkontrol-scenariet) er forsvaret anderledes end mod en m\u00e5lrettet statsakt\u00f8r med adgang til zero-days. De fleste l\u00e6sere her vil beskytte sig mod det f\u00f8rste.<\/li><li><strong>Omkostning:<\/strong> Hvor meget b\u00f8vl t\u00e5ler dine modtagere? Det nytter ikke at hoste din egen Matrix-server, hvis familien n\u00e6gter at installere Element.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For chatkontrol-scenariet er den realistiske modstander automatiseret scanning p\u00e5 enheds- eller platformsniveau, ikke en m\u00e5lrettet hacker. Det betyder, at du prim\u00e6rt skal v\u00e6lge tjenester, der ikke afleverer indholdet til en scanbar tredjepart, og som minimerer metadata. Den indsigt former resten af projektet. Et godt supplement er en gennemt\u00e6nkt adgangskodepraksis, som vi gennemg\u00e5r i guiden om en <a href=\"\/dk\/privacy\/selvhostet-password-manager-vaultwarden\/\">selvhostet password manager med Vaultwarden<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-2-laas-signal-og-verificer-sikkerhedsnumre\">Trin 2: L\u00e5s Signal og verificer sikkerhedsnumre<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Signal er udgangspunktet, fordi det er let at f\u00e5 modtagere med p\u00e5, og fordi protokollen har et lille metadata-aftryk. Men en standardinstallation er ikke nok. Du skal verificere sikkerhedsnumre, sl\u00e5 skylagring fra og begr\u00e6nse, hvad der lander p\u00e5 l\u00e5sesk\u00e6rmen. Begynd med at installere appen fra det officielle kildested og opdater til seneste version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det vigtigste enkelttrin er verifikation. N\u00e5r du \u00e5bner en samtale, kan du trykke p\u00e5 kontaktens navn og derefter &#8220;Vis sikkerhedsnummer&#8221;. To enheder, der har den samme 60-cifrede kode (eller scanner hinandens QR), har en uafbrudt krypteringskanal. G\u00f8r det i virkeligheden, ikke over en kanal, der selv kan v\u00e6re kompromitteret. N\u00e5r det er gjort, sl\u00e5r du &#8220;Vis verificeret&#8221; til, s\u00e5 du f\u00e5r besked, hvis n\u00f8glen \u00e6ndrer sig.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sl\u00e5 <strong>registreringsl\u00e5s<\/strong> til (Indstillinger, Konto, Registreringsl\u00e5s), s\u00e5 ingen kan kapre dit nummer uden din PIN.<\/li><li>Aktiv\u00e9r <strong>forsvindende beskeder<\/strong> som standard, for eksempel 4 uger, s\u00e5 gammel klartekst ikke hober sig op p\u00e5 enheden.<\/li><li>Sl\u00e5 <strong>sk\u00e6rml\u00e5s<\/strong> til og fjern beskedindhold fra notifikationer (Indstillinger, Notifikationer, Vis, &#8220;Ingen navn eller besked&#8221;).<\/li><li>Deaktiver sky-backup p\u00e5 iOS (Signal gemmer ikke i iCloud som standard) og brug Signals egen krypterede backup p\u00e5 Android med en st\u00e6rk kode.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Hvis du vil automatisere afsendelse eller verificere ops\u00e6tningen fra en server, kan du bruge <code>signal-cli<\/code>. Eksemplet herunder viser, hvordan du lister dine registrerede identiteter og deres tillidsstatus.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Installer signal-cli (kraever Java 21+) og list identiteter\nsignal-cli -a +45XXXXXXXX listIdentities\n\n# Eksempel paa output:\n# Number: +4520123456 Added: 2026-02-11\n#   Fingerprint: 05 a1 9c ... (60 hex)\n#   Safety Number: 12345 67890 ...\n#   Trust: TRUSTED_VERIFIED<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Statussen <code>TRUSTED_VERIFIED<\/code> er m\u00e5let. St\u00e5r der <code>TRUSTED_UNVERIFIED<\/code>, har du ikke bekr\u00e6ftet sikkerhedsnummeret endnu. Signal alene l\u00f8ser ikke chatkontrol-problemet, fordi appen stadig viser klartekst p\u00e5 enheden, men med disse indstillinger har du fjernet de nemmeste angrebsflader.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-3-tag-simplex-chat-i-brug-uden-identifikatorer\">Trin 3: Tag SimpleX Chat i brug uden identifikatorer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleX Chat er interessant netop i chatkontrol-sammenh\u00e6ng, fordi det er bygget uden vedvarende bruger-id. Der er ingen telefonnummer, ingen e-mail og intet centralt brugerregister. Du deler i stedet et engangs-invitationslink eller en QR-kode, og forbindelsen etableres via midlertidige beskedk\u00f8er p\u00e5 rel\u00e6servere. Det g\u00f8r platformsd\u00e6kkende korrelation (hvem taler med hvem) markant sv\u00e6rere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Installer SimpleX Chat p\u00e5 din telefon, og opret en profil. L\u00e6g m\u00e6rke til, at &#8220;profilen&#8221; kun findes lokalt p\u00e5 din enhed. For at tilf\u00f8je en kontakt v\u00e6lger du &#8220;Tilf\u00f8j kontakt&#8221; og deler det genererede link med personen via en kanal, du allerede stoler p\u00e5. N\u00e5r forbindelsen er oprettet, kan invitationen ikke genbruges, hvilket forhindrer, at en tredjepart sniger sig ind p\u00e5 samme link.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Opret <strong>separate profiler<\/strong> til forskellige kontekster (arbejde, familie, kilder), s\u00e5 de ikke kan k\u00e6des sammen.<\/li><li>Aktiv\u00e9r <strong>SimpleX Lock<\/strong> med adgangskode eller biometri.<\/li><li>Overvej at k\u00f8re dit <strong>eget SMP-rel\u00e6<\/strong>, hvis du vil have fuld kontrol over routinglaget (mere herom i avancerede tips).<\/li><li>Sl\u00e5 <strong>&#8220;slet beskeder&#8221;<\/strong> til efter en periode, s\u00e5 enheden ikke ophober klartekst.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Det er v\u00e6rd at gentage en n\u00f8gtern pointe: ingen app er immun over for kode, der tvinges til at k\u00f8re p\u00e5 selve enheden. SimpleX&#8217; styrke er, at det fjerner de identifikatorer, som masseoverv\u00e5gning h\u00e6nger sammen p\u00e5. Det g\u00f8r appen til et st\u00e6rkt supplement til Signal og din egen Matrix-server, ikke et mirakelmiddel i sig selv.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-4-forbered-serveren-til-din-egen-matrix-homeserver\">Trin 4: Forbered serveren til din egen Matrix-homeserver<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nu kommer projektets kerne: din egen Matrix-homeserver med Synapse. N\u00e5r du selv driver serveren, er der ingen ekstern udbyder, der kan p\u00e5l\u00e6gges at indf\u00f8re scanning p\u00e5 dine beskeder uden din viden. Begynd med en frisk Ubuntu-server. Log ind via SSH og opdater systemet, opret en bruger uden root-privilegier og \u00e5bn de n\u00f8dvendige porte i firewallen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Opdater systemet og installer grundpakker\nsudo apt update && sudo apt upgrade -y\nsudo apt install -y ca-certificates curl ufw\n\n# Installer Docker (officielt convenience-script)\ncurl -fsSL https:\/\/get.docker.com | sudo sh\nsudo usermod -aG docker $USER   # log ud og ind igen bagefter\n\n# Aabn kun de noedvendige porte\nsudo ufw allow OpenSSH\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\nsudo ufw allow 8448\/tcp        # Matrix-foederation\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Opret derefter en DNS A-post, der peger <code>chat.ditdomaene.dk<\/code> mod serverens offentlige IP. For at klienter kan finde din homeserver via den korte adresse, tilf\u00f8jer du en <code>.well-known<\/code>-fil senere. Tjek, at DNS er sl\u00e5et igennem, f\u00f8r du g\u00e5r videre, ellers fejler TLS-udstedelsen i Trin 6.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Bekraeft at DNS peger korrekt\ndig +short chat.ditdomaene.dk\n# Forventet output: serverens offentlige IPv4-adresse, fx 203.0.113.42<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Et h\u00e6rdet udgangspunkt p\u00e5 serversiden er afg\u00f8rende. S\u00f8rg for, at SSH bruger n\u00f8glebaseret login og ikke adgangskode, og hold systemet opdateret. Norden er et yndet m\u00e5l for cyberangreb, og en d\u00e5rligt sikret server underminerer hele \u00f8velsen. Se vores oversigt over <a href=\"\/dk\/security\/cybertrusler-norden-2026\/\">cybertrusler i Norden i 2026<\/a> for kontekst.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-5-konfigurer-synapse-med-e2ee-som-standard\">Trin 5: Konfigurer Synapse med E2EE som standard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vi k\u00f8rer Synapse i Docker, s\u00e5 opgraderinger og isolation bliver enkle. Opret en mappe til projektet og gener\u00e9r en grundkonfiguration. Generatoren laver en <code>homeserver.yaml<\/code>, som vi derefter tilpasser, s\u00e5 ende-til-ende-kryptering er sl\u00e5et til som standard for alle nye rum.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/matrix\/data && cd ~\/matrix\n\n# Generer grundkonfiguration (engangskommando)\ndocker run -it --rm \\\n  -v ~\/matrix\/data:\/data \\\n  -e SYNAPSE_SERVER_NAME=chat.ditdomaene.dk \\\n  -e SYNAPSE_REPORT_STATS=no \\\n  matrixdotorg\/synapse:latest generate\n\n# Filerne homeserver.yaml og signing.key ligger nu i ~\/matrix\/data<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c5bn <code>~\/matrix\/data\/homeserver.yaml<\/code> og tilf\u00f8j eller ret f\u00f8lgende felter. Det vigtigste er <code>encryption_enabled_by_default_for_room_type: all<\/code>, som sikrer, at alle nye rum er krypterede fra start. Vi lukker ogs\u00e5 for \u00e5ben registrering, s\u00e5 fremmede ikke kan oprette konti p\u00e5 din server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Uddrag af homeserver.yaml\nserver_name: \"chat.ditdomaene.dk\"\n\n# Tving E2EE for alle nye rum\nencryption_enabled_by_default_for_room_type: all\n\n# Luk for aaben registrering, brug i stedet token eller manuel oprettelse\nenable_registration: false\nregistration_requires_token: true\n\n# Begraens hvad der logges, og hvor laenge\nredaction_retention_period: 7d\nuser_ips_max_age: 14d\n\n# Foederation: tillad kun de servere du oensker (valgfrit, men anbefales)\n# federation_domain_whitelist:\n#   - ditdomaene.dk<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bem\u00e6rk, at Synapse krypterer beskedindhold mellem klienter, men serveren h\u00e5ndterer stadig metadata (hvem er i hvilke rum, tidsstempler). Derfor lukker vi for \u00e5ben registrering og begr\u00e6nser logning. Hvis du vil isolere serveren helt, kan du bruge <code>federation_domain_whitelist<\/code> til kun at tale med udvalgte dom\u00e6ner, men det afsk\u00e6rer dig fra resten af Matrix-netv\u00e6rket. For de fleste er fuld f\u00f8deration med E2EE et fornuftigt kompromis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-6-saet-tls-og-reverse-proxy-op-med-caddy\">Trin 6: S\u00e6t TLS og reverse proxy op med Caddy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Synapse b\u00f8r aldrig eksponeres direkte mod internettet uden TLS. Vi bruger Caddy som reverse proxy, fordi den henter og fornyer Let&#8217;s Encrypt-certifikater automatisk. Opret en <code>docker-compose.yml<\/code>, der k\u00f8rer b\u00e5de Synapse og Caddy i samme netv\u00e6rk. Det er projektets centrale fil, s\u00e5 gennemg\u00e5 den linje for linje.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ~\/matrix\/docker-compose.yml\nservices:\n  synapse:\n    image: matrixdotorg\/synapse:latest\n    restart: unless-stopped\n    volumes:\n      - .\/data:\/data\n    networks:\n      - matrixnet\n\n  caddy:\n    image: caddy:latest\n    restart: unless-stopped\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n      - \"8448:8448\"\n    volumes:\n      - .\/Caddyfile:\/etc\/caddy\/Caddyfile\n      - caddy_data:\/data\n    networks:\n      - matrixnet\n\nnetworks:\n  matrixnet:\n\nvolumes:\n  caddy_data:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Opret derefter en <code>Caddyfile<\/code> ved siden af compose-filen. Den terminerer TLS, sender klient-API&#8217;et videre til Synapse og udstiller <code>.well-known<\/code>-filerne, s\u00e5 korte Matrix-adresser virker.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ~\/matrix\/Caddyfile\nchat.ditdomaene.dk {\n    reverse_proxy \/_matrix\/* synapse:8008\n    reverse_proxy \/_synapse\/client\/* synapse:8008\n\n    handle \/.well-known\/matrix\/server {\n        header Content-Type application\/json\n        respond `{\"m.server\": \"chat.ditdomaene.dk:443\"}`\n    }\n    handle \/.well-known\/matrix\/client {\n        header Content-Type application\/json\n        header Access-Control-Allow-Origin *\n        respond `{\"m.homeserver\": {\"base_url\": \"https:\/\/chat.ditdomaene.dk\"}}`\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Start nu hele stakken og f\u00f8lg loggen. Caddy henter certifikatet automatisk, f\u00f8rste gang dom\u00e6net rammes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/matrix\ndocker compose up -d\ndocker compose logs -f caddy   # bekraeft TLS-udstedelse, tryk Ctrl+C for at stoppe<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-7-opret-bruger-og-log-ind-med-element\">Trin 7: Opret bruger og log ind med Element<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Serveren k\u00f8rer, men der er ingen brugere endnu. Fordi vi slog \u00e5ben registrering fra, opretter vi den f\u00f8rste konto manuelt inde i containeren. Det er den sikreste fremgangsm\u00e5de, fordi ingen kan oprette sig udefra.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Opret den foerste bruger (interaktivt)\ndocker compose exec synapse register_new_matrix_user \\\n  -c \/data\/homeserver.yaml http:\/\/localhost:8008\n\n# Du bliver spurgt om brugernavn, adgangskode og om brugeren skal vaere admin\n# new user localpart [...]: sam\n# password: ********\n# make admin [no]: yes\n# Sending registration request...\n# Success!<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Installer derefter Element p\u00e5 din telefon og i browseren. V\u00e6lg &#8220;Log ind&#8221;, tryk &#8220;Rediger&#8221; ved hjemmeserveren, og indtast <code>https:\/\/chat.ditdomaene.dk<\/code>. Log ind med brugeren, du lige oprettede. Den korte adresse <code>@sam:chat.ditdomaene.dk<\/code> virker, fordi <code>.well-known<\/code>-filen fra Trin 6 fort\u00e6ller klienten, hvor serveren bor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Test med det samme, at kryptering er sl\u00e5et til som standard: opret et nyt rum, og bekr\u00e6ft, at der st\u00e5r en h\u00e6ngel\u00e5s, og at &#8220;Krypteret&#8221; er aktivt under rummets indstillinger. Hvis det ikke er tilf\u00e6ldet, gik <code>encryption_enabled_by_default_for_room_type<\/code> ikke igennem, og du b\u00f8r gennemg\u00e5 Trin 5 igen, f\u00f8r du inviterer andre.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-8-verificer-enheder-og-krydssignering\">Trin 8: Verificer enheder og krydssignering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">E2EE i Matrix beskytter kun, hvis du verificerer dine enheder. Krydssignering (cross-signing) g\u00f8r, at dine egne enheder stoler p\u00e5 hinanden, og at du kan verificere kontakter med en kort emoji-sammenligning i stedet for at sammenligne lange n\u00f8gler manuelt. N\u00e5r du logger ind p\u00e5 en ny enhed, beder Element dig om at verificere den mod en eksisterende.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Log ind p\u00e5 Element i browseren, og verificer den mod telefonen ved at sammenligne de viste emojis.<\/li><li>Opret en <strong>sikker n\u00f8glebackup<\/strong> (Secure Backup) og gem gendannelsesn\u00f8glen et sikkert sted offline, for eksempel i din password manager.<\/li><li>Verificer hver ny kontakt f\u00f8rste gang ved at sammenligne emojis i et videoopkald eller fysisk m\u00f8de.<\/li><li>Hold \u00f8je med advarsler om &#8220;uverificerede sessioner&#8221; i rum, det betyder, at en deltager har en enhed, du ikke har bekr\u00e6ftet.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gendannelsesn\u00f8glen er kritisk. Mister du den, og logger du ud af alle enheder, kan krypterede beskeder ikke gendannes. Det er prisen for, at serveren ikke kan l\u00e6se dem. Skriv n\u00f8glen ned, og opbevar den adskilt fra dine enheder. Den disciplin er den samme, vi anbefaler for seed-s\u00e6tninger og andre kryptografiske hemmeligheder.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-9-slaa-usikre-sky-backups-fra\">Trin 9: Sl\u00e5 usikre sky-backups fra<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Her falder de fleste ops\u00e6tninger. Det nytter ikke at kryptere alt i transit, hvis hele din beskedhistorik samtidig synkroniseres ukrypteret til en sky-backup, som en tredjepart kan scanne eller udleveres til myndigheder. Dette trin handler om at lukke den bagd\u00f8r p\u00e5 alle platforme.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>iOS:<\/strong> Sl\u00e5 iCloud-backup fra for apps, der gemmer beskeder ukrypteret. I Indstillinger, dit navn, iCloud, gennemg\u00e5 hvilke apps der har adgang. V\u00e6r s\u00e6rligt opm\u00e6rksom p\u00e5 e-mail og fotoruller.<\/li><li><strong>Android:<\/strong> Sl\u00e5 Google-backup fra for f\u00f8lsomme apps (Indstillinger, System, Backup), og undg\u00e5 at synkronisere chat-mapper til Google Drev.<\/li><li><strong>WhatsApp-f\u00e6lden:<\/strong> WhatsApp er E2EE i transit, men chat-backup til iCloud eller Google Drev er ikke krypteret med din n\u00f8gle som standard. Sl\u00e5 &#8220;Ende-til-ende-krypteret backup&#8221; til, eller deaktiver backup helt.<\/li><li><strong>Fotos:<\/strong> Billeder, du sender, er ofte det, client-side scanning er m\u00e5lrettet mod. Undg\u00e5 automatisk skyupload af kamerarullen, hvis indholdet er f\u00f8lsomt.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For e-mail er princippet det samme. V\u00e6lg en udbyder, der krypterer p\u00e5 serversiden, s\u00e5 indholdet ikke ligger scanbart i en datacentral. Vi har sammenlignet to af de bedste i Norden i artiklen <a href=\"\/dk\/privacy\/proton-mail-vs-tutanota\/\">Proton Mail vs Tutanota<\/a>. Pointen er ikke, at e-mail bliver immun, men at du fjerner den nemmeste vej til masseafl\u00e6sning af dit indhold.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-10-fjern-metadata-fra-filer-foer-afsendelse\">Trin 10: Fjern metadata fra filer f\u00f8r afsendelse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Selv i en krypteret samtale kan filer afsl\u00f8re mere, end du tror. Et foto fra en telefon indeholder ofte GPS-koordinater, tidsstempel, enhedsmodel og mere i EXIF-data. Modtageren (eller enhver, der senere f\u00e5r fat i filen) kan l\u00e6se det hele. Brug <code>exiftool<\/code> til at strippe metadata, f\u00f8r du sender f\u00f8lsomme filer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Installer exiftool\nsudo apt install -y libimage-exiftool-perl   # Debian\/Ubuntu\n\n# Se hvilke metadata en fil indeholder\nexiftool foto.jpg\n\n# Fjern ALLE metadata (laver foto.jpg_original som backup)\nexiftool -all= foto.jpg\n\n# Bekraeft at metadata er vaek\nexiftool foto.jpg\n# Forventet: kun grundlaeggende felter som filstoerrelse og billedmaal<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For mange filer p\u00e5 \u00e9n gang kan du k\u00f8re <code>exiftool -all= -r .<\/code> i en mappe. P\u00e5 telefonen kan apps som ObscuraCam eller indbyggede &#8220;fjern placering&#8221;-funktioner g\u00f8re det samme, f\u00f8r du deler. G\u00f8r det til en vane: metadata er den del af et billede, som kryptering ikke skjuler for den, der modtager filen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-11-test-hele-stakken\">Trin 11: Test hele stakken<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nu samler vi det hele og verificerer, at det virker. En ops\u00e6tning, du ikke har testet, er ikke en ops\u00e6tning, du kan stole p\u00e5. K\u00f8r disse fire kontroller, f\u00f8r du erkl\u00e6rer projektet f\u00e6rdigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Tjek at homeserveren svarer korrekt.<\/strong> Matrix har en offentlig f\u00f8derationstester, men du kan ogs\u00e5 verificere lokalt med curl.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Klient-API skal svare med serverens versioner\ncurl -s https:\/\/chat.ditdomaene.dk\/_matrix\/client\/versions | head\n\n# .well-known skal pege paa din server\ncurl -s https:\/\/chat.ditdomaene.dk\/.well-known\/matrix\/client\n# Forventet: {\"m.homeserver\": {\"base_url\": \"https:\/\/chat.ditdomaene.dk\"}}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Send en krypteret testbesked.<\/strong> Opret et rum i Element, inviter din anden enhed, og send en besked. Bekr\u00e6ft h\u00e6ngel\u00e5sen og at sessionen er verificeret.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Bekr\u00e6ft at SimpleX og Signal er h\u00e6rdet.<\/strong> G\u00e5 listen fra Trin 2 og Trin 3 igennem: verificerede sikkerhedsnumre, forsvindende beskeder, ingen sky-backup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Stress-test metadata.<\/strong> Send et foto gennem hver kanal, hent det ned p\u00e5 modtagerens enhed, og k\u00f8r <code>exiftool<\/code> p\u00e5 det for at bekr\u00e6fte, at metadata er v\u00e6k. Output skal se s\u00e5dan ud:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ exiftool modtaget-foto.jpg\nExifTool Version Number  : 12.xx\nFile Name                : modtaget-foto.jpg\nFile Size                : 412 kB\nImage Width              : 1920\nImage Height             : 1080\n# Ingen GPS, ingen enhedsmodel, intet tidsstempel = bestaaet<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trin-12-automatiser-opdateringer-og-overvaagning\">Trin 12: Automatiser opdateringer og overv\u00e5gning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En server, der ikke opdateres, bliver en risiko. Synapse og Caddy f\u00e5r j\u00e6vnligt sikkerhedsrettelser, og du vil ikke logge ind manuelt hver uge. S\u00e6t automatiske opdateringer op med en simpel cron-opgave, og overv\u00e5g, at containerne k\u00f8rer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Opdateringsscript: ~\/matrix\/update.sh\n#!\/bin\/sh\ncd \/home\/sam\/matrix\ndocker compose pull\ndocker compose up -d\ndocker image prune -f\n\n# Goer det eksekverbart og koer ugentligt via cron\nchmod +x ~\/matrix\/update.sh\ncrontab -l | { cat; echo \"0 4 * * 0 \/home\/sam\/matrix\/update.sh >> \/home\/sam\/matrix\/update.log 2>&1\"; } | crontab -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Overvej desuden at aktivere automatiske sikkerhedsopdateringer p\u00e5 selve v\u00e6rten med <code>unattended-upgrades<\/code>. Til overv\u00e5gning er den enkleste l\u00f8sning en sundhedstjek-kommando, du kan k\u00f8re fra en anden maskine, eller en gratis uptime-tjeneste, der pinger din <code>\/_matrix\/client\/versions<\/code>-endpoint. Med dette trin er din chatkontrol-resistente stak komplet, selvopdaterende og overv\u00e5get.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"almindelige-faldgruber-du-skal-undgaa\">Almindelige faldgruber, du skal undg\u00e5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">De fleste fejl i denne type ops\u00e6tning handler ikke om kryptografi, men om menneskelige genveje. Her er de fem mest almindelige faldgruber, jeg ser igen og igen.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Glemte sky-backups:<\/strong> Du krypterer alt, men WhatsApp eller iCloud gemmer stille en ukrypteret kopi. Det er den hyppigste fejl og underminerer hele \u00f8velsen. Gennemg\u00e5 Trin 9 grundigt.<\/li><li><strong>Uverificerede enheder:<\/strong> E2EE uden verifikation beskytter ikke mod en mand-i-midten. En uverificeret session i et Matrix-rum er en \u00e5ben d\u00f8r. Verificer altid.<\/li><li><strong>\u00c5ben registrering p\u00e5 Synapse:<\/strong> Glemmer du <code>enable_registration: false<\/code>, kan fremmede oprette konti p\u00e5 din server og bruge den som rel\u00e6. Luk den med det samme.<\/li><li><strong>Metadata-blindhed:<\/strong> Folk fokuserer p\u00e5 beskedindhold og glemmer, at hvem-hvorn\u00e5r-hvor ofte afsl\u00f8rer lige s\u00e5 meget. Minim\u00e9r identifikatorer og strip EXIF.<\/li><li><strong>Single point of failure:<\/strong> Hvis al kommunikation kun ligger p\u00e5 din egen server, og den g\u00e5r ned, mister du adgang. Brug flere kanaler (Signal, SimpleX, Matrix) bevidst, s\u00e5 \u00e9t nedbrud ikke isolerer dig.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En sjette, mere subtil faldgrube er falsk tryghed. Ingen teknisk ops\u00e6tning beskytter, hvis du sender f\u00f8lsomt indhold til en modtager, der ikke har samme disciplin. Sikkerhed er et f\u00e6lles ansvar i en samtale, ikke kun din egen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fejlfinding-de-8-hyppigste-problemer\">Fejlfinding: de 8 hyppigste problemer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e5r noget ikke virker, er det n\u00e6sten altid \u00e9t af problemerne herunder. Tabellen giver symptom, sandsynlig \u00e5rsag og l\u00f8sning.<\/p>\n\n\n\n<table class=\"wp-block-table\"><thead><tr><th>Symptom<\/th><th>Sandsynlig \u00e5rsag<\/th><th>L\u00f8sning<\/th><\/tr><\/thead><tbody><tr><td>Caddy f\u00e5r ikke TLS-certifikat<\/td><td>DNS peger ikke p\u00e5 serveren, eller port 80 er lukket<\/td><td>Tjek <code>dig +short<\/code> og <code>ufw status<\/code>, vent p\u00e5 DNS-propagering<\/td><\/tr><tr><td>Element kan ikke finde homeserver<\/td><td>.well-known mangler eller returnerer forkert JSON<\/td><td>Test <code>curl ...\/.well-known\/matrix\/client<\/code><\/td><\/tr><tr><td>register_new_matrix_user fejler<\/td><td>Forkert sti til homeserver.yaml eller container ikke startet<\/td><td>Brug <code>docker compose exec synapse<\/code> og fuld sti<\/td><\/tr><tr><td>Nye rum er ikke krypterede<\/td><td>encryption_enabled_by_default mangler<\/td><td>Ret homeserver.yaml, k\u00f8r <code>docker compose restart synapse<\/code><\/td><\/tr><tr><td>&#8220;Uverificeret session&#8221;-advarsel<\/td><td>Krydssignering ikke sat op<\/td><td>Verificer enheden mod en eksisterende i Element<\/td><\/tr><tr><td>F\u00f8deration virker ikke<\/td><td>Port 8448 lukket eller .well-known\/server forkert<\/td><td>\u00c5bn 8448, test med Matrix Federation Tester<\/td><\/tr><tr><td>Signal viser TRUSTED_UNVERIFIED<\/td><td>Sikkerhedsnummer ikke bekr\u00e6ftet<\/td><td>Sammenlign og marker som verificeret<\/td><\/tr><tr><td>Krypterede beskeder kan ikke l\u00e6ses p\u00e5 ny enhed<\/td><td>Manglende n\u00f8glebackup eller gendannelsesn\u00f8gle<\/td><td>Gendan via Secure Backup med gendannelsesn\u00f8glen<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">Et niende, tilbagevendende problem: efter en opdatering starter en container ikke. K\u00f8r <code>docker compose logs synapse<\/code> og l\u00e6s de sidste linjer. Ni ud af ti gange skyldes det en syntaksfejl i <code>homeserver.yaml<\/code> (typisk indrykning med tabulator i stedet for mellemrum). YAML er n\u00e5desl\u00f8st over for indrykning, s\u00e5 brug altid mellemrum.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"avancerede-tips-til-den-ekstra-mil\">Avancerede tips til den ekstra mil<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e5r grundops\u00e6tningen k\u00f8rer, er der flere m\u00e5der at stramme den yderligere. Disse trin er ikke n\u00f8dvendige for de fleste, men relevante, hvis din trusselsmodel er h\u00f8jere end gennemsnittet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"koer-dit-eget-simplex-relae\">K\u00f8r dit eget SimpleX-rel\u00e6<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleX&#8217; rel\u00e6servere (SMP-servere) h\u00e5ndterer beskedk\u00f8erne. De kan ikke l\u00e6se indholdet, men ved at k\u00f8re dit eget rel\u00e6 fjerner du afh\u00e6ngigheden af tredjepartsservere. Du installerer <code>smp-server<\/code> p\u00e5 en VPS, genererer en server-adresse og peger dine SimpleX-klienter mod den. Det er overkill for de fleste, men for en journalist med kildebeskyttelse er det en reel gevinst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"brug-tor-eller-en-vpn-foran-serveren\">Brug Tor eller en VPN foran serveren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Metadata p\u00e5 netv\u00e6rkslaget (din IP, der forbinder til din server) kan afsl\u00f8re, hvem du er. Ved at l\u00e6gge en VPN eller en Tor-onion-service foran din Matrix-server skjuler du forbindelsens oprindelse. Element underst\u00f8tter at forbinde via en onion-adresse. L\u00e6s vores praktiske <a href=\"\/dk\/privacy\/tor-browser-guide-2026\/\">Tor Browser-guide<\/a> for at komme i gang med Tor-laget.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"laas-metadata-med-stramme-retentionsregler\">L\u00e5s metadata med stramme retentionsregler<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Synapse gemmer som standard en del historik. Med <code>retention<\/code>-blokken i <code>homeserver.yaml<\/code> kan du s\u00e6tte automatisk sletning af beskeder efter for eksempel 30 dage p\u00e5 serversiden. Kombineret med forsvindende beskeder i klienten betyder det, at selv et serverbrud kun afsl\u00f8rer et smalt tidsvindue. Mindre data er mindre risiko.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hvad-chatkontrol-betyder-for-din-opsaetning-fremover\">Hvad chatkontrol betyder for din ops\u00e6tning fremover<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Selv hvis den nuv\u00e6rende CSA-forordning ender i en mild version, forsvinder presset for client-side scanning ikke. Argumentet vender tilbage med j\u00e6vne mellemrum, og teknologien findes allerede. Den gode nyhed er, at den stak, du har bygget her, er robust over for de fleste fremtidige varianter, fordi den ikke afh\u00e6nger af en enkelt udbyders velvilje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Den vigtigste l\u00e6re er principiel, ikke teknisk. Du har flyttet kontrollen fra eksterne platforme, der kan p\u00e5l\u00e6gges scanning, til v\u00e6rkt\u00f8jer og en server, du selv styrer. Hold dig opdateret p\u00e5 lovgivningen via organisationer som EDRi og EFF, opdater din software, og verificer dine kontakter. S\u00e5 er du forberedt p\u00e5 <strong>chatkontrol<\/strong>, uanset hvilken vej forhandlingerne i Bruxelles tager. Den danske debat f\u00f8lger vi l\u00f8bende, blandt andet i forbindelse med <a href=\"\/dk\/security\/digital-suveraenitet-danmark-2026\/\">danskernes \u00f8nske om digital suver\u00e6nitet<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hyppige-spoergsmaal-om-chatkontrol-og-kryptering\">Hyppige sp\u00f8rgsm\u00e5l om chatkontrol og kryptering<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"er-chatkontrol-vedtaget-i-2026\">Er chatkontrol vedtaget i 2026?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nej, ikke som en endelig forordning per midten af 2026. R\u00e5det vedtog en f\u00e6lles position i november 2025, hvor det direkte krav om beskedscanning blev fjernet, men forhandlingerne med Europa-Parlamentet er ikke afsluttet. Den midlertidige ePrivacy-undtagelse blev forl\u00e6nget, og sagen er fortsat i bev\u00e6gelse.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"beskytter-signal-mig-mod-client-side-scanning\">Beskytter Signal mig mod client-side scanning?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Signals ende-til-ende-kryptering beskytter mod aflytning p\u00e5 netv\u00e6rket og serverside-scanning, men ikke automatisk mod kode, der scanner indholdet p\u00e5 selve enheden, f\u00f8r det krypteres. Derfor kombinerer denne guide Signal med metadata-minimerende apps og din egen server, fremfor at stole p\u00e5 \u00e9t v\u00e6rkt\u00f8j alene.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hvorfor-hoste-min-egen-matrix-server\">Hvorfor hoste min egen Matrix-server?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e5r du selv driver serveren, kan ingen ekstern udbyder p\u00e5l\u00e6gges at indf\u00f8re scanning p\u00e5 dine beskeder uden din viden. Du styrer opdateringer, logning og hvilken kode der k\u00f8rer. Det er den mest direkte m\u00e5de at fjerne et tredjeparts-angrebspunkt i din kommunikation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"er-det-lovligt-at-bruge-krypteret-kommunikation-i-danmark\">Er det lovligt at bruge krypteret kommunikation i Danmark?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja. Det er fuldt lovligt at bruge krypterede beskedtjenester og at hoste din egen server i Danmark og resten af EU. Hele form\u00e5let med chatkontrol-debatten er netop, om udbydere skal p\u00e5l\u00e6gges at scanne, ikke om borgere m\u00e5 kryptere. Privat kryptering er en almindelig og lovlig praksis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hvad-er-forskellen-paa-simplex-og-signal\">Hvad er forskellen p\u00e5 SimpleX og Signal?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Signal bruger dit telefonnummer som identifikator og har et stort, modent \u00f8kosystem. SimpleX Chat bruger slet ingen vedvarende bruger-id, hvilket g\u00f8r platformsd\u00e6kkende korrelation af hvem-taler-med-hvem markant sv\u00e6rere. De supplerer hinanden: Signal er nemt at f\u00e5 modtagere med p\u00e5, SimpleX minimerer metadata mest.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hvor-lang-tid-tager-opsaetningen\">Hvor lang tid tager ops\u00e6tningen?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Regn med cirka 60 minutter for en, der er fortrolig med en terminal. Det meste af tiden g\u00e5r med at vente p\u00e5 DNS-propagering og TLS-udstedelse. Selve h\u00e6rdningen af Signal og SimpleX tager under 15 minutter tilsammen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hjaelper-en-vpn-mod-chatkontrol\">Hj\u00e6lper en VPN mod chatkontrol?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En VPN skjuler din IP og dermed noget netv\u00e6rksmetadata, men den beskytter ikke mod scanning, der sker i appen p\u00e5 din enhed. VPN er et nyttigt lag oven p\u00e5 de andre tiltag, ikke en erstatning for krypterede apps og en server, du kontrollerer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"hvad-sker-der-hvis-jeg-mister-min-matrix-gendannelsesnoegle\">Hvad sker der, hvis jeg mister min Matrix-gendannelsesn\u00f8gle?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Logger du ud af alle enheder uden gendannelsesn\u00f8glen, kan krypterede beskeder ikke gendannes. Det er prisen for, at serveren ikke kan l\u00e6se dem. Gem n\u00f8glen offline, gerne i en password manager og p\u00e5 papir et sikkert sted.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"relateret-laesning\">Relateret l\u00e6sning<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"\/dk\/privacy\/chatkontrol-eu-2026\/\">Chatkontrol falder: 311 nej i EU-Parlamentet<\/a><\/li><li><a href=\"\/dk\/privacy\/tor-browser-guide-2026\/\">Tor Browser guide: anonym surf i 12 trin<\/a><\/li><li><a href=\"\/dk\/privacy\/proton-mail-vs-tutanota\/\">Proton Mail vs Tutanota: krypteret e-mail sammenlignet<\/a><\/li><li><a href=\"\/dk\/privacy\/selvhostet-password-manager-vaultwarden\/\">Selvhostet password manager med Vaultwarden<\/a><\/li><li><a href=\"\/dk\/security\/cybertrusler-norden-2026\/\">Cybertrusler i Norden: 166 h\u00e6ndelser i 2026<\/a><\/li><li><a href=\"\/dk\/privacy\/\">Privatliv: alle vores guides om digital sikkerhed<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"eksterne-kilder\">Eksterne kilder<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.eff.org\/deeplinks\/2025\/12\/after-years-controversy-eus-chat-control-nears-its-final-hurdle-what-know\" target=\"_blank\" rel=\"noopener\">EFF: After Years of Controversy, the EU&#8217;s Chat Control Nears Its Final Hurdle<\/a><\/li><li><a href=\"https:\/\/edri.org\/our-work\/csa-regulation-document-pool\/\" target=\"_blank\" rel=\"noopener\">EDRi: CSA Regulation Document Pool<\/a><\/li><li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Chat_Control\" target=\"_blank\" rel=\"noopener\">Wikipedia: Chat Control<\/a><\/li><li><a href=\"https:\/\/simplex.chat\/\" target=\"_blank\" rel=\"noopener\">SimpleX Chat officielt websted<\/a><\/li><li><a href=\"https:\/\/signal.org\/\" target=\"_blank\" rel=\"noopener\">Signal officielt websted<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Denne guide er skrevet til oplysnings- og uddannelsesform\u00e5l om privatliv og forsvarlig sikkerhed. F\u00f8lg altid g\u00e6ldende lovgivning, og brug krypteret kommunikation ansvarligt.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chatkontrol er ikke et teoretisk problem l\u00e6ngere. Selvom et flertal i Europa-Parlamentet stemte nej til den mest vidtg\u00e5ende version, er forslaget om obligatorisk scanning af private beskeder stadig i spil\u2026<\/p>\n","protected":false},"author":2,"featured_media":98,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-97","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-privacy"],"_links":{"self":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts\/97","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=97"}],"version-history":[{"count":1,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":99,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/posts\/97\/revisions\/99"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/media\/98"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/media?parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/categories?post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/dk\/wp-json\/wp\/v2\/tags?post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}