Tidligere betjent udlover bitcoin-dusør for forsvarsministerens CPR-nummer

Efter hackerangrebet mod SF og offentliggørelse af politikeres CPR-nummer, vil en aktivist og tidligere betjent nu også have forsvarsminister Nicolai Wammen i samme situation. Han udlover dusør på 500 kroner for CPR-nummer.

Opdateret: CPR-nummeret er siden denne artikel blev skrevet offentliggjort, hvilket flere i debatten under artiklen også gør opmærksom på.

Det er ikke nok, at nuværende og tidligere medlemmer af SF’s folketingsgruppe fik offentliggjort personlige oplysninger som CPR-nummer og adresse. Også forsvarsminister Nicolai Wammen (S) skal have samme tur, mener aktivisten og tidligere politibetjent Lars Kragh Andersen, der driver bloggen Frihedsaktivisten.com.

Han stiller nu til en begyndelse 500 kroner på højkant til den, som først offentliggør forsvarsministerens CPR-nummer. Det fremgår af et blogindlæg, der er skrevet som en reaktion på historien om SF-hackerangrebet, som i sig selv var en reaktion på Folketingets vedtagelse af loven om Center for Cybersikkerhed.

Læs også: SF’s medlemsdatabase hacket – CPR-numre offentliggjort i hævnaktion

I Politiken har Nicolai Wammen nemlig fordømt hackerne og kaldt det et angreb på demokratiet, når hackere griber til chikane af politikere med en anden overbevisning af dem.

Det mener Lars Kragh Andersen er ’nonsens’, da han mener at statens overvågning af borgerne er dybt kriminel, og derfor kan forsvarsministeren ifølge sin egen logik ikke klandre hackerne for at svare igen.

Dusøren på 500 kroner vil blive udbetalt i bitcoins, som kan overføres anonymt, og Lars Kragh Andersen opfordrer andre til at spæde til, så puljen vokser.

’Frihedsaktivisten’ er tidligere politibetjent, som nu fokuserer på at kæmpe for frihedsrettigheder og for at sætte fokus på politiarbejde, der går imod borgernes rettigheder.

Det kræver nok i øvrigt ikke det store hackerarbejde at finde frem til ministerens CPR-nummer. Som Version2 tidligere har beskrevet, valgte datalogen Søren Louv-Jansen for et år siden at offentliggøre CPR-numre på en række toppolitikere i Danmark, i form af et ’CPR-lotteri’ med flere valgmuligheder. Det skete for at sætte fokus på, at CPR-numre ikke er særligt hemmelige, men protesten endte med at koste ham en bøde på 10.000 kroner, som siden blev nedsat til 3.500 kroner.

Læs også: CPR-Søren får bødestraf for at vise ministres cpr-numre

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (48)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Janus Knudsen

Jeg synes det er et godt initiativ og håber det fortæller vores politikere at cpr nummeret altså kun er tænkt som nummer og intet andet.

http://da.wikipedia.org/wiki/CPR-nummer

At det er tillagt alt den betydning og juridisk bavl er en bommert af format.

De systemer som er bygget op omkring cpr-nummeret og som samtidigt indeholder personfølsomme data skulle skrottes øjeblikkeligt da de allerede fra starten var udviklet forkert.

Jakob Sørensen

Er der nogen der (uden at bryde loven) kan fortælle mig hvilken side man bare kan prøve alle kombinationer på? Det virker da helt håbløst at man bare skal brute force sig igennem nogle tussinde numre, for så at få det rigtige at vide?

Martin Kirk

det eneste man skal bruge er en hjemmeside hvor man kan teste CPR numre, typisk mobil abonnement sider...

her er scriptet til at lave CPR numre:

void Main()  
{  
    bool kvinde = false;  
    for (int i = 1; i < 9999; i++)  
    {  
        if (validateCPR("070271" + i.ToString().PadLeft(4,'0')) && ((i%2 == 0) == kvinde))  
        {  
            ("070271-" + i.ToString().PadLeft(4,'0')).Dump();  
        }  
   
    }  
}  
   
public bool validateCPR(string cpr)   
{  
    var multi = new[] {4, 3, 2, 7, 6, 5, 4, 3, 2, 1};  
    var Sum = 0;  
    var i = 0;  
    var numbers = cpr.ToCharArray().Select(s => Convert.ToInt32(s.ToString())).ToList();  
    for (i = 0; i <= 9; i++)   
    {   
        Sum += numbers[i] * multi[i];   
    }  
    return Sum % 11 == 0;  
}
Søren Louv

Et CPR-nummer kan begynde med 0, 1, 2, 3, 4 eller 9*. Der bliver dog sjældent født så mange børn på en dag, at der bliver brug for 4, og slet ikke 9, så dem har jeg fjernet. Det kan dog teoretisk være sket, men jeg er endnu ikke stødt ind i det. Min fremgangsmåde er rimelig pseudo-videnskabelig, og udelukkende baseret på empiri, så der kan sagtens være edge-cases jeg har misset.

*Gælder ikke personer født efter modulus 11 blev fjernet fra CPR-nummeret i 2007

Martin Kirk

du har ret... tjekkede lige med Wikipedia...
den nye kode ser sådan her ud:

void Main()  
{  
    bool kvinde = false;  
    string dato = "070271";  
    int årstal = 1971;  
   
    for (int i = 1; i < 9999; i++)  
    {  
        validateCPR(dato + i.ToString().PadLeft(4,'0'), årstal, ((i%2 == 0) == kvinde));  
    }  
}  
   
// Define other methods and classes here  
public void validateCPR(string cpr, int årstal, bool isFemale)   
{  
    var multi = new[] {4, 3, 2, 7, 6, 5, 4, 3, 2, 1};  
    var Sum = 0;  
    var i = 0;  
    var numbers = cpr.ToCharArray().Select(s => Convert.ToInt32(s.ToString())).ToList();  
   
    for (i = 0; i <= 9; i++) { Sum += numbers[i] * multi[i]; }  
   
    var year = numbers[4] * 10 + numbers[5];  
    var date = numbers[0] * 10 + numbers[1];  
    var month = numbers[2] * 10 + numbers[3];  
   
    switch (numbers[6]) {  
        case 0:  
        case 1:  
        case 2:  
        case 3:  
            year += 1900;  
            break;  
        case 4:  
            if (year < 37)  
                year += 2000;  
            else  
                year += 1900;  
            break;  
        case 5:  
        case 6:  
        case 7:  
        case 8:  
            if (year < 58)  
                year += 2000;  
            else  
                year += 1800;  
            break;  
        case 9:  
            if (year < 37)  
                year += 2000;  
            else  
                year += 1900;  
            break;  
    }  
   
    var d = new DateTime(year, month, date);  
    var expected = d.ToString("ddMMyy");  
   
    bool okdato = (expected == cpr.Substring(0, 6));  
   
    if( (Sum % 11 == 0) && okdato && isFemale && year == årstal)  
        (date.ToString().PadLeft(2,'0') +   
        month.ToString().PadLeft(2,'0') +   
        year.ToString().Substring(2, 2) + "-" +   
        numbers[6] + numbers[7] + numbers[8] + numbers[9]).Dump();  
}

med de her CPR numre for 7-2-1971:

070271-0049
070271-0057
070271-0065
070271-0073
070271-0081
070271-0103
070271-0111
070271-0189
070271-0197
070271-0219
070271-0227
070271-0235
070271-0243
070271-0251
070271-0359
070271-0367
070271-0375
070271-0383
070271-0391
070271-0405
070271-0413
070271-0421
070271-0499
070271-0529
070271-0537
070271-0545
070271-0553
070271-0561
070271-0669
070271-0677
070271-0685
070271-0693
070271-0707
070271-0715
070271-0723
070271-0731
070271-0839
070271-0847
070271-0855
070271-0863
070271-0871
070271-0901
070271-0979
070271-0987
070271-0995
070271-1029
070271-1037
070271-1045
070271-1053
070271-1061
070271-1169
070271-1177
070271-1185
070271-1193
070271-1207
070271-1215
070271-1223
070271-1231
070271-1339
070271-1347
070271-1355
070271-1363
070271-1371
070271-1401
070271-1479
070271-1487
070271-1495
070271-1509
070271-1517
070271-1525
070271-1533
070271-1541
070271-1649
070271-1657
070271-1665
070271-1673
070271-1681
070271-1703
070271-1711
070271-1789
070271-1797
070271-1819
070271-1827
070271-1835
070271-1843
070271-1851
070271-1959
070271-1967
070271-1975
070271-1983
070271-1991
070271-2009
070271-2017
070271-2025
070271-2033
070271-2041
070271-2149
070271-2157
070271-2165
070271-2173
070271-2181
070271-2203
070271-2211
070271-2289
070271-2297
070271-2319
070271-2327
070271-2335
070271-2343
070271-2351
070271-2459
070271-2467
070271-2475
070271-2483
070271-2491
070271-2505
070271-2513
070271-2521
070271-2599
070271-2629
070271-2637
070271-2645
070271-2653
070271-2661
070271-2769
070271-2777
070271-2785
070271-2793
070271-2807
070271-2815
070271-2823
070271-2831
070271-2939
070271-2947
070271-2955
070271-2963
070271-2971
070271-3005
070271-3013
070271-3021
070271-3099
070271-3129
070271-3137
070271-3145
070271-3153
070271-3161
070271-3269
070271-3277
070271-3285
070271-3293
070271-3307
070271-3315
070271-3323
070271-3331
070271-3439
070271-3447
070271-3455
070271-3463
070271-3471
070271-3501
070271-3579
070271-3587
070271-3595
070271-3609
070271-3617
070271-3625
070271-3633
070271-3641
070271-3749
070271-3757
070271-3765
070271-3773
070271-3781
070271-3803
070271-3811
070271-3889
070271-3897
070271-3919
070271-3927
070271-3935
070271-3943
070271-3951
070271-4001
070271-4079
070271-4087
070271-4095
070271-4109
070271-4117
070271-4125
070271-4133
070271-4141
070271-4249
070271-4257
070271-4265
070271-4273
070271-4281
070271-4303
070271-4311
070271-4389
070271-4397
070271-4419
070271-4427
070271-4435
070271-4443
070271-4451
070271-4559
070271-4567
070271-4575
070271-4583
070271-4591
070271-4605
070271-4613
070271-4621
070271-4699
070271-4729
070271-4737
070271-4745
070271-4753
070271-4761
070271-4869
070271-4877
070271-4885
070271-4893
070271-4907
070271-4915
070271-4923
070271-4931
070271-9003
070271-9011
070271-9089
070271-9097
070271-9119
070271-9127
070271-9135
070271-9143
070271-9151
070271-9259
070271-9267
070271-9275
070271-9283
070271-9291
070271-9305
070271-9313
070271-9321
070271-9399
070271-9429
070271-9437
070271-9445
070271-9453
070271-9461
070271-9569
070271-9577
070271-9585
070271-9593
070271-9607
070271-9615
070271-9623
070271-9631
070271-9739
070271-9747
070271-9755
070271-9763
070271-9771
070271-9801
070271-9879
070271-9887
070271-9895
070271-9909
070271-9917
070271-9925
070271-9933
070271-9941

Martin Kirk

Mon ikke du mener isMale, og ikke isFemale?

Jeg forstår i øvrigt ikke helt, hvorfor du ikke bare nøjes med at loope over ulige tal. Derved får du halvt så mange valideringer, og slipper for den der 'grimme' bool == bool sammenligning.

det er pænere at tjekke på 'isFemale', fordi kvinder har et lige nummer
(x % 2 == 0 )

og jeg skriver jo netop (kvinde = false)
pointen var at scriptet kunne bruges til andet end mænd :D

men det jo bare detaljer, det vigtige er at de rigtige tal kommer ud.

Peter Stricker

det er pænere at tjekke på 'isFemale', fordi kvinder har et lige nummer
(x % 2 == 0 )

og jeg skriver jo netop (kvinde = false)


Jo, du ender jo også med at få det rigtige resultat. Men det er altså kun fordi du to steder bytter om på betydningen af et boolsk udtryk.

Første gang er i kaldet til validateCPR. (i%2==0) giver ganske korrekt kun true, hvis i er et lige tal; altså et løbenummer tilhørende en kvinde. Men så negerer du resultatet ved at sammenligne med false, og dermed er det samlede udtryk "((i%2 == 0) == kvinde)" kun sandt for ulige løbenumre; altså mænd.

Anden gang er i den sidste if sætning i validateCPR, hvor du kun dumper cpr nummeret hvis isFemale. Men det er jo kun de cpr numre der tilhører mænd, du er interesseret i. Og det er også det resultat, du får.

At dine to fejl ophæver hinanden betyde ikke, at de ikke er der.

Martin Kirk

hov... vent... der er jo ikke noget galt - udover navnet på en variable !
isFemale skal bare omdøbes til "doPrint" eller sådan noget lign, eller endnu bedre; fjernes:

void Main()  
{  
    bool kvinde = false;  
    string dato = "070271";  
    int årstal = 1971;  
   
    for (int i = 1; i < 9999; i++)  
        if((i%2 == 0) == kvinde)  
            validateCPR(dato + i.ToString().PadLeft(4,'0'), årstal);  
}  
   
public void validateCPR(string cpr, int årstal)   
{  
    /*  
        samme kode  
    */  
   
    if( (Sum % 11 == 0) && okdato && year == årstal)  
        (date.ToString().PadLeft(2,'0') +   
        month.ToString().PadLeft(2,'0') +   
        year.ToString().Substring(2, 2) + "-" +   
        numbers[6] + numbers[7] + numbers[8] + numbers[9]).Dump();  
}
Peter Stricker

hov... vent... der er jo ikke noget galt - udover navnet på en variable !
isFemale skal bare omdøbes til "doPrint" eller sådan noget lign


Ja, det var sådan set også det jeg mente, da jeg spurgte om du ikke mente isMale :-)

eller endnu bedre; fjernes:


Nu får du også kun kaldt validateCPR for mandlige kandidater. Det var den lille optimering, jeg talte om. Lille, fordi den ikke ændrer på O(), men en halvering er jo alligevel værd at tage med.

Jeg bryder mig stadig ikke rigtig om "if((i%2 == 0) == kvinde)". Det piner mig altid lidt at se et boolsk udtryk sammenlignet med en boolsk konstant. Hvorfor ikke bare "if (i%2 != 0)"? Evt. pakket ind i en funktion, hvis du vil have (fe)male med i navnet.

Hans Henrik Jakobsen

Nu er det sådan at jeg ikke skriver om hans domain.

Han sender information om al trafik der forgår på hans side til firmaer som han ikke selv har kontrol over. De data kan bruges af fremmed magter og i kommercielle interesser som jeg ikke har givet tilladelse.

Det vil sige at han er lige så slem som en hver stat der lytter med!!!

Jeg har været inde på hans site og er nu registret i USA som aktivist bare jeg har åbnet hans forside.

Derfor syntes ikke alene at han burde skamme sig han burde få lukket sit site og dømmes for spionage. Han er en slyngel!

Martin Kofoed

Han klager over registrering fra danske politikere, men registrer selv til 6 forskellige sites som alle ligger i et land med tvivlsomt syn på frihed.

Ved du hvorfor, han har flyttet domænet til "tvivlsomme" lande? Det er fordi retsstaten Danmark uden forklaring har lukket for hans gamle .dk-domæne. Surftown fik et brev fra en advokat, og lukkede sitet ned. Endda med indhold, database og det hele. Han måtte genskabe det fra backups uden hjælp fra Surftown. Så vidt jeg ved, har han endnu ikke fået en forklaring på, hvem anmelder var. Det er så også irrelevant nu.

Nicolai Rasmussen

Jeg har været inde på hans site og er nu registret i USA som aktivist bare jeg har åbnet hans forside.

Du kan bare lukke for det selv. Der findes glimrende værktøjer til den slags. At det ikke burde være nødvendigt i et (tidligere) frihedselskende vestligt demokrati er en anden snak.

Det er fuldstændigt ligegyldigt med den overvågning du kan se, så længe der er en massiv overvågning du ikke kan se. Så hellere skræmme personer som dig med åbenlys overvågning, så i bliver opmærksom på at sitet er overvåget.

Folk der synes at åbenlys overvågning er et problem, skulle begynde at tænke over hvor omfattende den skjulte overvågning er.

Hans Henrik Jakobsen

Ja, jeg er udmærket godt klar over hvordan jeg lukker ned for den overvågning, det er Hr. og Fru Frandsen ikke.

Nej, hans overvågning er skjult i hvert tilfælde for Hr. og Fru Frandsen.

Han skriver ingen steder at han overvåger, hvad han bruger det til og at han sender al den information til en stor centeral i USA.

Han giver ikke en gang en chance for at forlade hans site inden han begynder overvågningen.

Det jeg finder forkert er at han skriger op om overvågning mens han selv overvåger i stor stil UDEN at gøre opmærksom på det.

Så er man dobbelt moralsk hykler.

Den massive skjult overvågning er et kæmpe problem som jeg også er STOR modstander af.

Det er så grænse overskridende at brugen af Internettet giver mig dårlig smag i munden.

At der gøres opmærksom på det kan jeg kun støtte.

Det er bare sådan at "Aktivisten" støtter lige præsis Google som jeg finder er den største fare for menneskeheden.

Regeringernes overvågning er ingenting i forhold til faren ved Google. De er trods alt underlagt vores retssystemer.

Med Google har man frasagt sig alle rettigheder lige så snart man benytter deres services og de kan bruge data til lige det de vil.

Med det lige som ikke gået op for den almindelige befolkning endnu.

Jens Dalsgaard Nielsen

Det er blevet verdens sportsgren nr 1 at opsamle data om os alle og vi får alle sammen efterhånden en profil som disse firmaer kan bruge efter forgodtbefindende. Der er jo en ide i at mange sites gerne vil have du bruger feks din facebook identitet til at logge ind - så de har styr på dig.

Der er ingen krav om at sites skal bruge cookies, sende data til div data miningfirmaer osv.

Allerede idag stiger diverse ydelser på nettet 2/3 gang man kommer forbi og derved viser interesse osv osv osv

Jeg og nok også andre vil gerne være fri for at blive "data minet" på kryds og tværs så der automatisk står en rulle toiletpapir ude i indkørslen inden jeg har "vendt sidste blad".

Men sådan er vi nok så forskellige om synes det er en god ide eller ikke.

Det der trigger folk og mig er at en græsrodshjemmeside der går ind for privatlivets fred, minimal indflydelse fra staten osv - faktisk gør nøjagtigt det man er imod -nemlig registrere og måske endda sælge info om besøgende på hjemmesiden.

Martin Kirk

Det var blevet forbudt overhovedet at registre en bruger i det hele taget, dog undtaget bevis materiale ved køb, etc.

Hør her paranoia-Hans.

Jeg har intet til overs for folk som er imod tracking-cookies. For oftest er det IKKE Webuviklere som er imod dem - sjovt nok.

Tracking cookies har fordele for ALLE parter i systemet:

Udvikleren/Ejeren
- Får statistik på hvem der kommer forbi sit site
- Kan holde styr på tilbagevendene anonyme kunder/klienter
- Slipper for at implementere et motherfucker system til at behandle alle de tracking data som findes.

Den anonyme bruger
- Viser med sine klik hvad han kan lide
- Får målrettede (relevante) reklamer i stedet for Libresse Mensesbind og andet crap

Google
- Tjener flere penge fra annoncører, fordi reklamerne når ud til kundeprofiler i stedet for at skyde med sprædehagl
- Gemmer oplysninger om folk i anonyme profiler og behøver i princippet aldrig at kende dit navn. At data så kan kædes sammen med dit Google og Facebook login er et spørgsmål om statistik.

Annoncøren
- Sparer penge på reklamer
- Når ud til sit kunde segment
- Tjener flere penge fordi han når ud til kunderne.


Hvad er der så ondt ved at alle er glade ?

Jens Dalsgaard Nielsen

Kære Martin
1) det skader aldrig at snakke pænt til folk istedet for at titulere dem som Mr paranoia osv.

2) Tiltag dig ikke holdninger på andres vegne. Det er ok du er tilfreds med tingenes tilstand, men det er ikke det samme som at "alle er glade"

3) lidt sørgeligt at du ikke har noget til overs for folk der ikke er enige med dig...

4) Der er INGEN reklamer der er relevante for mig når jeg surfer idet jeg allerhelst vil være fri. Vil jeg have info om ting jeg kunne finde på at købe opsøger jeg selv info aktivt.

5) Dine kommentarer antyder at der er lidt troll over dig

roger and out

Martin Kirk

Ubegrundet frygt er det man kalder paranoia - da Hans tydeligvis frygter at blive "tracket" må han lide af paranoia, idet der intet er at frygte.

Som sagt har jeg ikke noget til overs for folk som er imod tracking cookies. Netop fordi de oftest er folk som IKKE er web udviklere - disse folk har 'hørt at det er en dårlig ting' at blive tracket, så nu render de rundt som hovedløse høns og frygter at blive tracket - men aner ikke hvad det egentlig betyder at blive 'tracket'.

Oftest er det til gavn for den trackede - men det ved de ikke.

Microsoft har i deres seneste browser (samt Win8.1 hvis jeg husker rigtigt), valgt at det pr default, så sender IE11 'NoTrack' til de sider man besøger. Dette er gjort af ren populisme, da det er populært at have noget imod at blive tracket.

99% af folk ikke hvad det går ud på - ligesom med Cookies.

Det er åbenbart kommet bag på folk, hvordan internettet EGENTLIG fungerer. så i huj og hast, kæmper private imod de få ting de forstår og kan udtale navnet på: "Cookies", "Tracking" - alt sammen fordi de tror det gør en forskel.

Som Tech Savvy, IT Ingeniør, Web Udvikler kan man kun side og grine af det hele fra sidelinjen...

Jens Dalsgaard Nielsen

du siger det sådan set selv - troll !!!

og hvis du kendte lidt mere til området ville du nok vide at cookies mm opbevaret ude i folks browsere blot er en dårlig lappeløsning på mangel på egentlig sessions faciliteter i www - som foregå på serversiden.

Det burde nærmest være forbudt at du og andre tillader jer at rode rundt på min computer, Bliv på jeres side af planekværket og rod så meget I vel der. Man burde have lov til at sende jer en regning hver gang man skal rydde op efter jeres svineri på min maskine. Det er jo eks ikke lovligt at du trænger ind i min bolig og render rundt og snuser. Det samme burde gælde i den virtuelle verden

Og så er vi tilbage til frihedsaktivisten der lige netop er imod indtrængen i privatsfæren OG samtidig selv gør det hos dem der kommer forbi hans websider.

Hvis du ikke kan se det dybt ironiske i det er det mere dig problem end mit.

Martin Kirk
Hans Henrik Jakobsen

Kære Martin,

Jeg glæder mig til den dag at de hugger programmør fingeren at en snylter som dig.
Det er sådan én som dig jeg er ude efter skal blive lukket ned.

Jeg vil ikke have du skal lave statistik af min færden, hold snifferne væk.

Jeg er fuldkommen ligeglad med butikkens reklamer og mer salg.
I skal ikke ligge data på MIN computer.

Lige så vel som at jeg ikke vil have reklamer i min postkasse så vil jeg heller ikke have det på min computer.

Hvis sites vil tjene penge så må de gøre det up front og ikke luske med det bag om min ryg.

Og paranoia, ja, og sølvpapir hatten er trukket godt ned over hovedet.

God morgen og ha en god dag :)

Palle Sørensen

Du er registreret hos:

Google (Alt hvad du har fortaget dig på sitet)
Google+ platformen
Facebook
Twitter
Pinterest
Gravatar

Nåhh ikke andet, så er jeg rolig igen! Aner ikke hvad Gravatar og Pinterest er så de kan ligge inde med hvad de vil om mig jeg er ligeglad. Det samme gælder Twitter bruger det alligevel aldrig. Facebook har jeg jo selvfølgelig ikke (har studentereksamen ;-)). Google ved jo alligevel alt om en, så om de også ved jeg har besøgt firhedsaktivisten.com gør nok ikke nogen forskel - det eneste der generer mig ved google er deres målrettede reklamer og regner ikke med at jeg nu får masser af reklamer for pebberspray på diverse sites. Men tak for oplysningen

Log ind eller Opret konto for at kommentere