Tillståndet, april 2024

Jag har inte skrivit något på länge eftersom allt som händer inom politiken är så deprimerande. Men jag kan göra en kort sammanfattning.

Nato

Som jag skrivit tidigare är det inte fördelar eller nackdelar med att gå med i Nato som är problemet utan sättet som Sverige gick med. Odemokratiskt, ovärdigt för vårt statsskick och tjänstefel på alla nivåer. Både av den socialdemokratiska regeringen och de efterföljande Tidöpartierna. Mest fel gjorde S och SD eftersom de bytte fot i frågan mitt under en mandatperiod (2018-2022), utan att tillfråga befolkningen. De baserade ansökan om att gå med på en rapport som visade sig vara ett rent beställningsverk där nackdelarna med att gå med helt enkelt utelämnades. Nu, efter att Sverige har gått med, har fördelar och nackdelar börjat diskuteras och vad det innebär att vara med i Nato i program som P1 morgon, Studio ett och Konflikt. Men detta skulle ha gjorts innan ansökan skickades in!

Demokrati

Lagförändringar genomförs nu i skuggan av gängbrottslighet och ett uppblåst krigshot, i sådan rask takt att folket inte hinner stanna upp och reflektera över det samlade trycket av ändringarna. Susanna Gideonsson sammanfattade det hela väl i en artikel där hon ser dem som små nålstick som tillsammans utgör ett systematiskt angrepp på demokratins grundvalar. Hon listar ändringar som försvagar facket men jag kan lägga till många fler problematiska lagändringar. Så fort någon gängrelaterad händelse inträffar använder Tidöpartierna det som ursäkt för att flytta fram sina positioner. Grädden på moset måste ändå vara att avlyssna folk som inte är misstänkta för brott.

Men regeringens ”offensiv mot gängen” drabbar inte bara gängkriminella, utan hela svenska folket, varav en stor majoritet inte är kriminella. Övervakningsinfrastrukturen som nu byggs upp är värre än ens något som George Orwell kunde fantisera om. Alla avlyssnas, dygnet runt, alla elektroniska fotspår sparas, för evigt, och kan vändas emot dig om du gör något som kan uppfattas som olämpligt av de som sitter vid makten, nu eller i framtiden. Om du exempelvis uttalar dig positivt om abort idag kan det vändas emot dig i framtiden om det skulle bli förbjudet. Allt kan vändas emot dig. Även sådant som idag anses vara normalt. Så här var livet för folk i Östtyskland. Men vi behöver inte acceptera att det ska behöva vara livet för oss som lever i Sverige idag. Säg ifrån medan du fortfarande har chansen. Imorgon kan det vara för sent, då kan det vara förbjudet att säga ifrån och om du ändå försöker kommer övervakningsinfrastrukturen fånga dig innan du hinner blinka.

Klimatet

Mänskligheten står inför en klimatkatastrof och vad gör den sittande makten? De motarbetar intensivt alla miljöförslag som kan minska konsekvenserna av människans oansvariga handlingar.

Istället för att kommentera detta klistrar jag bara in Carl Sagans ord om bilden ovan, den blåbleka (blekblåa?) punkten. En bild av jorden tagen från rymden.

Titta igen på den där punkten. Det är här. Det är hemma. Det är vi. På den bor alla du älskar, alla du känner, alla du någonsin hört talas om, varje människa som någonsin funnits, levde sina liv där. Summan av vår glädje och vårt lidande, tusentals övertygade religioner, ideologier och ekonomiska doktriner, varje jägare och samlare, varje hjälte och fegis, varje skapare och förstörare av civilisationer, varje kung och bonde, varje förälskat ungt par, varje mor och far, hoppfullt barn, uppfinnare och utforskare, varje moralens lärare, varje korrupt politiker, varje ‘superstjärna’, varje ‘överste ledare’, varje helgon och syndare i vår arts historia levde där – på ett dammkorn svävande i en solstråle.

Jorden är den enda världen hittills känd för att hysa liv. Det finns ingen annanstans, åtminstone inte i den nära framtiden, dit vår art skulle kunna migrera. Besöka, ja. Bosätta sig, ännu inte. Gilla det eller ej, men för tillfället är det på jorden vi står fasta. Det har sagts att astronomi är en ödmjukande och karaktärsbyggande upplevelse. Det finns kanske ingen bättre demonstration av människans dumhet än denna avlägsna bild av vår lilla värld. För mig understryker den vårt ansvar att vara snällare mot varandra, och att bevara och värna den blekblåa punkten, det enda hem vi någonsin känt.

https://www.planetary.org/worlds/pale-blue-dot
Publicerat i Uncategorized | Lämna en kommentar

AI 2024

Det pågår en massiv AI-hajp och det första jag kommer att tänka på är när internet blev tillgängligt för allmänheten på 90-talet. Dotcom-boomen fascinerade människor och en makalös entusiasm drev på mer eller mindre absurda investeringar i internet startups. Tanken att människor över hela världen fritt kunde kommunicera med varandra öppnade upp nya möjligheter, men det var personer som Jeff Bezos som verkligen insåg vad internet kan och inte kan användas till.

Bezos insåg inte bara att internet kunde användas till global kommunikation och handel utan identifierade även vilka produkter som skulle passa bäst att sälja via internet. Det skulle behövas en ny Jeff Bezos idag som kan kliva ner på jorden och identifiera vad dagens AI kan och inte kan användas till. Några av de som överlevde dotcom-bubblan i Silicon Valley har stigit till toppen av listan över världens rikaste personer men glöm inte bort att de flesta bolag som startades i ögonblickets eufori gick under. Överlevarna insåg inte bara potentialen men hade även en realistisk bild av utmaningarna med ett snabbt föränderligt digitalt landskap.

På 90-talet fanns många överhajpade internetstartups som sedan misslyckades när dotcom-bubblan sprack. På liknande sätt finns idag många överdrivna påståenden om AI, och precis som under dotcom-bubblan har vi idag en massiv ökning av investeringar i AI-relaterade företag.

Efter en tids vilda västern började internet regleras och på samma sätt ställs nu AI inför regulatoriska utmaningar. Den som startar ett AI-bolag lär också behöva en armé av advokater. TLDR; låt inte AI fatta kritiska beslut. Lite längre, genererat av copilot GPT-4: “Ensure AI is transparent, secure, and respects human rights while being subject to appropriate oversight”. Jag tyckte dock att det vore mer intressant att applicera Asimovs lagar om robotik på AI, så jag lät ChatGPT göra det:

Internet har inneburit en massiv förändring för mänskligheten och AI har potential att göra detsamma, men det är viktigt att upprätthålla en balans mellan entusiasm och realistisk förväntan. Den som vill överleva AI-bubblan lär dra lärdomar från historien och ha en balanserad syn på teknologins möjligheter och risker.

Ur ett filosofiskt perspektiv tycker jag debatten om AGI, en generell artificiell intelligens, är mest intressant. Dagens AI-system är inte mer än avancerade matematiska modeller som klarar av att lösa specifika uppgifter. Vissa system har dock uppvisat oväntade bi-förmågor (emergent abilities), vilket har drivit på debatten om AGI. Om en emergent förmåga plötsligt blir att AI-systemet kan förbättra sig själv kan systemet vid någon tidpunkt överträffa en mänsklig intelligens. Det är en skrämmande tanke men vi är ännu inte där. Kanske.

Tills vidare kan vi använda AI som en personlig assistent. Se AI som ett verktyg som kan förstärka ditt sinne på samma sätt som en hammare eller en skottkärra assisterar dina muskler. Skottkärran kan hjälpa dig att förflytta saker men glöm inte bort att det är du som styr.

AI-genererad bild med prompten ”AI human interaction”
Publicerat i Uncategorized | Lämna en kommentar

Externalisation of blame

In 1998, the esteemed author, comedian, philosopher, futurist, psychologist, mystic and discordian Robert Anton Wilson penned the book ”Everything is Under Control,” delving into the realm of conspiracy theories. During an interview, he was asked what it is about the human psyche that seems to be drawn to these theories. His answer still rings true to this day.

  • The primary and foremost reason is that nobody likes to take the blame for their own problems. By assigning blame to a specific group, individuals can conveniently attribute everything in their lives that isn’t working to external factors. It might be the fault of:

    – Parents
    – Jesuits
    – Freemasons
    – Jews
    – Bilderbergers
    – Council on Foreign Relations

    I can add a few more:

    – Muslims
    – Aliens
    – Soros
    – The Vatican
    – Putin
    – Illuminati
    – Vaccines
    – Serbs
    – The United Nations
    – World Economic Forum (Schwab)
    – China
    – Immigrants
    – Media

    There’s a wide array of choices of who to blame, as long as you don’t have to blame yourself.
  • The second point he highlighted is the rapid pace of change in the world. Many people are navigating a world they struggle to comprehend. In that situation there’s a tendency to lean towards sinister explanations—believing that someone is orchestrating events in a manner they don’t like.
  • The third reason is that there are a lot of conspiracies.


Psychologists term the initial reason as Externalisation of blame. To illustrate, I’ll use a random X/tweet as an example. Please note, I don’t know the person behind this; it’s solely for illustrative purposes and not intended as an attack.


This kind of thinking could be identified as a Blame Attribution Disorder. While I cannot know whether this individual specifically suffers from it, this thought pattern can certainly steer in that direction. Some warning signs to look out for are:

  1. Blaming Outside Forces: Always thinking that things happening in their life are because of others, not themselves.
  2. Blaming Famous People: Frequently blaming well-known figures, like Soros, for all kinds of problems, even when it doesn’t make sense.
  3. Only Seeing What Confirms Their Beliefs: Only paying attention to information that supports what they already think about the person they blame. Aka confirmation bias.
  4. Avoiding Self-Reflection: Not thinking about their own part in problems and avoiding thinking about what they could do differently.
  5. Getting Emotional When Blaming Others: Feeling strong emotions like anger or fear when talking about the person they blame.
  6. Trouble with Friends: Having problems with friends because they’re always blaming others, causing arguments and isolation.
  7. Ignoring Different Ideas: Not listening to or believing ideas that disagree with their beliefs about the person they blame.

Observing social media, this diagnosis of externalising blame appears to be far more prevalent than previously believed. If you have a friend that experiences these warning signs, try to at least make them aware of the problem.

Publicerat i Uncategorized | Lämna en kommentar

Minimal elbesparing

Hur mycket el kan jag spara på att ställa ut en kasse med öl i trädgården och sen in i kylskåpet?

Låt oss förutsätta att det går åt lika mycket energi att värma en liter öl en grad som det går åt att värma en liter vatten en grad. Det är 4180 joule (samma enhet som Ws). Det blir 1.16 Wh, eller ungefär en tusendel av en kWh (som är enheten man betalar elräkningen i).

Låt säga att vi har 3 liter öl (i 6 burkar) och vill kyla dem från 20 till 5 °C. Det är 15 graders nedkylning och energin som behövs är då 1.16 * 3 * 15 Wh = 52.25 Wh, ungefär 5% av en kWh. Om en kWh kostar 2 kronor blir det 2 * 0.05225 kronor, ungefär 10 öre.

Genom att först ställa ut ölen i trädgården, förutsatt att det är högst 5 °C i trädgården, och sen ställa in dem i kylskåpet redan nerkylda sparar vi teoretiskt sett 10 öre.

Dock är detta inte hela sanningen eftersom kylskåpet varken värmer eller kyler utan bara förflyttar värme från ölen till rummet utanför. Kylskåpets COP-värde talar om hur mycket el som behövs för att driva den här förflyttningen, den här elen går bl a till kylskåpets kompressor. Om COP-värdet på kylskåpet är 2 betyder det att elen som behövs för att förflytta 52 Wh energi från insidan till utsidan av kylskåpet är hälften av den energin, eller 26 Wh. Detta skulle i så fall bara kosta 5 öre istället för 10 öre. Så genom att ställa ut ölen i trädgården har vi sparat en femöring!

Publicerat i Uncategorized | Lämna en kommentar

Dåliga råd i P1

Jag lyssnar mycket på P1 och generellt har det blivit sämre, men ibland bättre. Ett bra nytt program är; Dåliga råd. Redan titeln antyder att det är något utöver det vanliga.

Ett exempel på ett historiskt dåligt råd är när Franz Conrad von Hötzendorf rådde Österrike att hålla en hård linje mot Serbien efter att tronföljaren Franz Ferdinand mördats i Sarajevo den 28 juni 1914. Som en ödets ironi sägs det att Hötzendorf gav detta synnerligen dåliga råd för att imponera på sin älskarinna.

För att förstå varför det här var ett så dåligt råd måste vi först resa tillbaka till tiden runt sekelskiftet (Belle Époque). Europa genomgick en enastående period där etablerade normer ifrågasattes och nya idéer och rörelser blomstrade. Konst, vetenskap och politik stod i centrum för förändring och denna tid kom att prägla det kommande århundradet.

  • Kulturen befann sig i en tid av förnyelse och innovation. Konstnärer som Picasso och Kandinsky bröt med traditionella konventioner och introducerade nya konstnärliga rörelser. Uppfinningar som grammofonen och radion gjorde att musiken kunde nå längre. Romantikens musik ersattes av modernism. Litteratur, teater, bildkonst, allting förnyades.
  • Andlig renässans. Traditionella trosuppfattningar utmanades av nya rörelser och tankesätt från öst som yoga och zenbuddhism. Tillsammans med Freuds psykoanalys erbjöds alternativ till den traditionella religionens förståelse av det mänskliga sinnet och själen. Strävandet efter andlig insikt ledde även till ett ökat intresse för mystik och esoteriska ämnen, som Teosofi.
  • Inom vetenskapen gjordes extraordinära framsteg som Einsteins relativitetsteori, Marie Curies upptäckt av radioaktiviteten, upptäckten av elektronen, medicinska framsteg som vaccin mot tbc / polio, röntgen, kvantmekanikens födelse, Darwins idéer om naturligt urval började få genomslag, DNA upptäcktes, rymden började utforskas mer seriöst, nya rön om magnetism med mera. Sammanfattningsvis var tiden runt sekelskiftet en period av intensiv vetenskaplig aktivitet och radikala omvälvningar inom flera vetenskapliga discipliner. Dessa framsteg har haft en varaktig påverkan på vår värld.
  • Den industriella revolutionen gav upphov till bilen, motorcykeln, flygplanet, radion, telefonen, tämjandet av elektriciteten och diverse makalösa manicker för mekanisering av områden som vävteknik med mera.

Den ljuvliga epoken slutade i tragedi efter att Hötzendorf gav sitt dåliga råd till Österrike och första världskriget slet upp sår i Europa som abrupt avslutade sekelskiftets renässans och har lämnat djupa ärr.


PS Ja, den här texten är delvis skriven av ChatGPT (punktlistan). Men den var riktigt dålig från början så jag har ägnat mer än en timme åt att förbättra listpunkterna.

Publicerat i Uncategorized | 2 kommentarer

Öppna källor

Inom området som numera kallas ”Cyber Security” finns ett begrepp kallat OSI (eller OSINT) som står för Open Source Intelligence. Det handlar om att sammanställa information från öppna källor. Alltså utan att använda hemlig dataavläsning eller databaser som inte är offentliga. Typiskt är grävande journalister bra på det här medan allmänheten inte ska veta så mycket om det. Nedan kommer några exempel på öppna källor, en lista som inte på något sätt är komplett och jag har valt att inte lägga till direkta länkar. Men det är inte svårt att hitta om ni vill bli hobbyjournalister.

  • ratsit.se – Sök på namn och få fram personnummer, adress, civilstånd, fordonsinnehav, bolagsengagemang, andra personer registrerade på samma adress. Betaltjänst erbjuder även de fyra sista siffrorna i personnumret och taxerad inkomst.
  • upplysning.se – Liknande som ratsit, även telefonnummer.
  • birthday.se – Liknande som ratsit, även avancerad sökning för att få fram alla skrivna på en adress, utan att känna till namn.
  • merinfo.se – Som ovan.
  • mrkoll.se – Se om personen är dömd för något brott. Se även lexbase.
  • hitta.se – Samma som ratsit + information om bostadsområdet.
  • eniro.se – Liknande information som ratsit.
  • allabolag.se – Bolagsengagemang samt kopplingar till andra bolag.
  • libris.kb.se – Har personen skrivit en bok eller ett kapitel, eller har en bok skrivits om personen?
  • imdb – Har personen varit med i någon TV-serie eller film?
  • bgc.se – Bankgironummer.
  • plusgirot.se – Plusgironummer.
  • val.se – Har personen valts in till någon politisk församling eller stått på valbar lista?
  • google – Avancerad sökning, sök på google dorks eller ghdb för exempel.
  • biluppgifter.se – Sökning på registreringsnummer.
  • Transportstyrelsen – Samma som ovan, skicka SMS till 72503.
  • Skatteverket – Ring folkbokföringen 0771-567 567 och begär bild och alla på personens personbild. Ger barn, föräldrar, syskon, maka/make, svärföräldrar, svågrar, svägerskor, barns syskon. Begär även bostadsorter och födelseort.
  • Skatteverket – Förvärvsinkomst, inkomst av rörelse, kapital och jordbruksfastighet, kyrkoskatt, överklaganden och omprövningsbeslut. Är personen arbetsgivare?
  • Kronofogden – Ring 0771-737 300 och fråga om personen finns i deras register och begär hela akten.
  • domstol.se – Sök telefonnummer till tingsrätter. Ring och fråga (ange personnummer) om personen finns i deras register och i vilka målnummer personen i så fall förekommer. Begär sen ut dom från målnummer.
  • Transportstyrelsen – Ring 0771-81 81 81 och fråga om personen har körkort samt handledarskap.
  • CSN – Ring 0771-726 000 och fråga om studieskulder och var personen studerat, ring aktuell högskola och fråga efter ladok-ansvarig.
  • Kommunen – Grundskolebetyg.
  • Universitets- och högskolerådet – Gymnasiebetyg (010-470 03 00).
  • Lantmäteriet – Ägarskap av fastighet, säljare, köpeskilling, delägare (0771-63 63 63). Tomtgränser finns i webbtjänsten min karta.
  • Inskrivningsmyndigheten – Få ut fastighetsakt för fastighet.
  • Fordonsregistret – Ägande av bilar/båtar, begär skeppsakt.
  • Bolagsverket – Begär uppdag som funktionär och få ut alla bolag där personen haft en befattning.
  • Försäkringskassan – Arbetsgivare.
  • Skatteverket – Äktenskapsförord (ring äktenskapsregistret).
  • Värnplikt – Ring Rekryteringsmyndigheten (0771-24 40 00).
  • Krigsarkivet – Har personen gjort värnplikt? (08-782 41 00).
  • fojo.se – Offentlighetsjouren. Kan hjälpa till med att få ut offentliga handlingar och överklaganden.
  • Statens tjänstepensionsverk – Få ut riksdagsledamöters pension och övriga uppdrag.
  • PRV – Är personen med i en ekonomisk förening? Utgivningsbevis.
  • Datainspektionen – Licens för dataregister.
  • fgj.se – Guide för personresearch (offline, men finns på wayback machine).
  • Sherlock – Program för att söka i hundratals sociala medier efter användarnamn, e-postadress m m, exempelvis LinkedIn för arbetsgivare, facebookprofil, sök även efter kontakters profiler, instagram osv.
  • haveibeenpwned.com – Sök på e-postadress och se om personen förekommer i några läckta databaser för konton på webbplatser. Databaserna finns i anonymiserad form på hashmob.net. Det går att hitta eller köpa databaserna i oanonymiserad form med lite efterforskning. Kontakta inte mig om det här. Sök själv, exempelvis på flashback forum i tråden ”Jag efterlyser databasdump…”

Se även write-ups för kategorin recon i olika CTF-tävlingar.

Tillägg. Samtliga punkter i listan är vita, eller lagliga. Ett exempel på en metod i gråzonen (som till och med journalister som vunnit guldspaden använt) är att registrera ett falskt konto på facebook med en profilbild på en snygg tjej och en bakgrund som ser normal ut, skola, jobb osv (sock puppet). Därefter använda det fejkade kontot för att skicka en vänförfrågan till personen som undersöks (target / person of interest). På många sociala medieplattformar får vänner tillgång till mer information om en person än vad som finns på den allmänna profilen. Sedan finns naturligtvis helt olagliga metoder också. Mutor till personer i bekantskapskretsen är väl i gråzonen medan metoder som dataintrång, avlyssning och olika former av utpressning är helt olagliga. Men de används ändå ibland av personer med lättsamt förhållande till journalistisk etik och moral.

Publicerat i Uncategorized | Lämna en kommentar

Nybyggen och översvämningsrisker

På 70-talet tog man hänsyn till risken för översvämningar vid nybyggnation. Numera verkar man inte se lika allvarligt på den risken trots att risken bara blir större för varje år pga att extremväder inträffar allt oftare. Det finns visserligen en lag om strandskydd men den gäller bara det horisontella avståndet till stranden, som måste vara minst 100 meter. Se miljöbalken 7 kap. 13–18 h §§ som handlar om att bevara goda livsvillkor för djur- och växtlivet på land och i vatten. Däremot står inte mycket om risken för översvämningar.

Bildkälla: Boverket

Jag har tittat på de senaste husen som byggts i områdena Lillåudden och Östra hamnen i Västerås som marknadsförs med strålande sol, utsikt över Mälaren, ett stenkast från småbåtshamnen. Men de ligger på tok för lågt relativt Mälaren, här finns inga marginaler mot översvämningar. Så här såg det ut i helgen trots att Mälaren inte ens var en meter över den normala nivån.

Det här är alltså nedanför turbinhuset och inte vid Svartån (där det var mycket värre översvämningar). Planen har varit att klara 50-årsflödet men vid 100-årsflödet kan man låta det svämma över. Det blir billigare att reparera skadorna en gång per århundrade än att bygga infrastrukturen så att städerna klarar det. Men den kalkylen håller inte längre om det som tidigare var 100-årsflödet numera inträffar ett par gånger per decennium. Se MSB:s lista över identifierade riskområden vid vattendrag, sjöar och hav.

Översvämningar kan orsaka sättningar i marken, påverka markens bärighet (förmåga att bära byggnader) och översvämmade vattendrag kan orsaka erodering. Om marken sjunker eller rör sig och dessutom bärigheten försämras kan marken inte längre bära huset på ett tillförlitligt sätt. Erodering orsakar också försämrad bärighet och kan även orsaka jordskred. Sättningarna förvärras dessutom efter varje översvämning vilket kan orsaka skador på byggnaden eller till och med kollaps.

För dessa byggen behöver marken förstärkas och rejäla dräneringssystem byggas. Men bäst hade varit att redan från början placera byggnaderna på högre mark så hyresgästerna inte sätter morgonkaffet i vrångstrupen när de sitter på balkongen och tittar ut över Mälaren i solen och plötsligt inser att byggnaden börjat luta. De hydrologiska bedömningar som tillstånden grundar sig på är inte längre aktuella vid allt mer frekvent förekommande extremväder.

På bilden nedan är de ljusblåa områdena Mälarens nuvarande utbredning runt Västeråsfjärden. De mörkblåa områdena är de som kommer att översvämmas om Mälaren vid extremväder tillfälligt skulle stiga till en nivå 3 m högre än normalt. Det är tyvärr här man också hittar många nybyggen i staden.

Screenshot från Översvämningsportalen

Det kan också uppstå kedjeeffekter i samband med översvämningar. Ett exempel är pumpstationer. En pumpstation, som inte nämns med exakt plats av MSB, pumpar upp vatten från Mälaren till stadens vattenreningsverk. Verket ligger på säker höjd men tyvärr gör inte elförsörjningen till pumpstationen det. Den sista transformatorstationen före pumpstationen skulle översvämmas redan vid 2 m över normal nivå för Mälaren och staden skulle bli utan dricksvatten. Vid 3 m hamnar till och med kraftvärmeverket vid kanten av vattnet. Detta går dock att lösa med tillfälliga vallar av sandsäckar en kort sträcka (verket är inte utmärkt på kartan men det ligger vid 90-gradersvinkeln norr om Johannisberg). På bilden vid 3 m blir även avloppsreningsverket omgivet av vatten (nordost om Lillåudden). En annan pumpstation som också elförsörjningen slutade fungera på pga översvämningen förra helgen sägs ha orsakat totalstoppet i tågtrafiken mellan Hallstahammar och Västerås (jag har dock inte kunnat verifiera detta, verkar vara mycket hysh-hysh). Läxan blir att dels inte bygga hus på mark som riskerar att översvämmas och dels att inte glömma bort elförsörjningen.

Publicerat i Uncategorized | Lämna en kommentar

The pot of gold at the end of the Tunnel

I tried to set up an OpenVPN tunnel between two sites that were behind NATs and failed. Then I tried wireguard and … it worked. The rest of this post just explains how I did it.

The NATed sites at client A and client B connect through a third site, the VPS wireguard server. The VPS has a public IP. In the example the IP is 1.2.3.4 and the wireguard port is 5678. Replace this with your actual IP/port in the configurations below. I have marked the lines that need to be changed in bold in the configurations. You may change other lines too, but the bold lines needs to be changed.

Hub and spoke topology

All three configurations require one private and one public key (base64 format). These can be generated like this:

$ wg genkey > privatekey
$ wg pubkey < privatekey > publickey

Then in the configurations, replace AAAAAA= with the public key for client A, replace APAPAPAPAP= with the private key for client A and so on.

Client A

Let’s start with the configuration for client A. It has the address 10.0.0.1 in the wireguard network (blue in the picture). The wireguard IPs in this example are between 10.0.0.1 and 10.0.0.3 and the smallest subnet that contains these is 10.0.0.0/29. The local subnet for client A doesn’t matter as long as it doesn’t collide with the local subnet at the client B site. In the configuration I have added a DNS server from site B for resolving local domain names at site B from the client A computer (when the tunnel is up). Skip this line if you don’t have a local DNS. In the remote settings allow 10.0.0.0/29 and the local subnet at the client B site – 192.168.2.0/24 – to be routed through the VPS peer. The PersistentKeepalive line will keep the tunnel up even if you don’t use it.

Note1: You are not speaking directly to client B so you only need a Peer section for the VPS in the client A and client B configurations. Look at the picture if the text is confusing.

Note2: ListenPort is only interesting for the VPS configuration. It doesn’t matter for client A or B since nobody is going to connect to them. Everybody is connecting to the hub (VPS).

# Local settings for client A
[Interface]
PrivateKey = APAPAPAPAPAPAP=
ListenPort = 51821
Address = 10.0.0.1/32
# Use the DNS at client B side when tunnel is up
DNS = 192.168.2.100

# Remote settings for VPS server (10.0.0.3)
[Peer]
PublicKey = SSSSSSSSSSSSSSSSSSSSS=
# Route these subnets through the VPS server
AllowedIPs = 10.0.0.0/29, 192.168.2.0/24
Endpoint = 1.2.3.4:5678
PersistentKeepalive = 25

Hub (VPS, server)

Now let’s examine the VPS. When the tunnel comes up it adds a firewall rule to allow routing on the wg0 interface. Note that you also need a line net.ipv4.ip_forward=1 in the file /etc/sysctl.conf for routing to work. Alternatively you could add a sysctl command in a PreUp line (see client B configuration). In the remote settings you need to add both the client A and client B peers since the VPS communicates with both.

# Local settings for server (hub, VPS)
[Interface] Address = 10.0.0.3/32

# Allow routing on wg0 when tunnel is up
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
# Remove it when tunnel goes down
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT

ListenPort = 5678
PrivateKey = SPSPSPSPSPSP=

# Remote settings for client A
[Peer]
PublicKey = AAAAAAAAAAAAAAAAAAAA=
# Route 10.0.0.1 to client A
AllowedIPs = 10.0.0.1/32

# Remote settings for client B
[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBB=
# Route 10.0.0.2 and 192.168.2.0/24 to client B
AllowedIPs = 10.0.0.2/32, 192.168.2.0/24

Note that you need to allow incoming UDP packets to the wireguard port, 5678 in this case. Add something like this in your firewall configuration (or as PostUp / PostDown lines).

iptables -A INPUT -i eth0 -p udp --dport 5678 -m state --state NEW,ESTABLISHED -j ACCEPT

Client B

The configuration for client B is similar to client A but a bit more complex because it needs some extra firewall rules. This example uses masquerading. This will make the packets headed for other computers at the 192 subnet look like they originated at client B.

# local settings for client B
[Interface]
PrivateKey = BPBPBPBPBPBPBPBP=
Address = 10.0.0.2/32
ListenPort = 51821

# IP forwarding (this could be moved to /etc/sysctl.conf)
PreUp = sysctl -w net.ipv4.ip_forward=1

# IP masquerading
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE
# Remove masquerading rules when tunnel goes down
PostDown = iptables -t mangle -D PREROUTING -i wg0 -j MARK --set-mark 0x30 PostDown = iptables -t nat -D POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE

# Remote settings for server
[Peer]
PublicKey = SSSSSSSSSSSSSSSSS=
Endpoint = 1.2.3.4:5678
AllowedIPs = 10.0.0.0/29
PersistentKeepalive = 25

This topology is called a hub and spoke topology because all clients must speak through a central hub (think of a bike wheel with a hub and spokes).

Save the configuration

Now the question is where to save this config. If you’re on Debian- or Ubuntu-like systems they are probably in /etc/wireguard/wg0.conf on each of the three nodes. Debian/Ubuntu are currently using systemd so to make wireguard start automatically when the computer boots, run systemctl enable wg-quick@wg0.service. If it doesn’t work, try replacing enable in that line with status and investigate the output. Then replace it with stop to stop wireguard. Edit wg0.conf and then replace it with start to start wireguard again with the new configuration. It will probably take a few edits until everything works.

Improvements

If you get this to work, try to expand it by for instance exporting the 192.168.1.0/24 network from client A so it is reachable from client B. It should be pretty obvious how to do this. Copy the firewall lines from the client B configuration into the client A configuration and add the necessary routing in the AllowedIPs lines (in the client B and the server configs).

Other operating systems

Wireguard will also work on other unix-like distributions and even on macOS and Windows. Use the official wireguard app. I only tried it on Linux and macOS. The macOS app lets you edit the configuration in a gui and it automatically generates a new key pair when you create a new configuration.

Note, the firewall PreUp / PostDown lines (for masquerading) will not work for exporting a subnet on macOS. The PreUp forwarding line will work if it is changed to:

PreUp = sysctl -w net.inet.ip.forwarding=1

Maybe you can export a subnet using a line like nat on en0 from utun7 to any -> (en0) together with pfctl (I did not try this yet). Check the output of ifconfig to see which utun interface wireguard uses. It is the one with inet 10.0.0.1 (if client A is on macOS).

$ ifconfig
utun7: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1420
options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
inet 10.0.0.1 --> 10.0.0.1 netmask 0xffffffff
Publicerat i Uncategorized | Lämna en kommentar

XKCD password strength

In the famous XKCD strip below the author argues that password phrases are more secure than traditional passwords, even with rules applied. Let’s examine this claim.

You might wonder how to calculate the entropy. The number of bits of entropy is n where 2n is the number of password candidates you have to guess until you find the correct password. If you would for instance need 1024 guesses, how many bits of entropy would that be? Well 210 = 1024 so it would be 10 bits. More generally you can calculate it as log2(num_password_candidates).

If all four words in the phrase were in a wordlist of 2000 words, then the number of candidates would be 20004 and n would be log2(2000^4) = 43.9. Now to do a more fair comparison let’s use the same site for all words to estimate the size of the needed wordlist, the Word Rank field. In the first case let’s use the base word, troubador:

Word, Word Rank
troubador = 13300
correct = 1525
horse = 390
battery = 3096
staple = 7984

For fairness, in both cases let’s imagine the password cracker magically uses a word list of the exact correct length as input. For the phrase the entropy becomes:
log2(1525 * 390 * 3096 * 7984) = 43.7
This is about the same as we calculated before and also about the same as in the comic strip.

But the entropy for the first password is harder to estimate. Let’s pick a list with 13300 words in it – one of them being the base word troubador – and for each word generate a number of candidates. How many candidates per word would be needed? There are three rules applied to the base word:

  • One toggle (in position 0, t becomes T)
  • Two leetspeak-replacements (in position 2, o -> 0 and position 5, a -> 4 ).
  • Append of two characters (&3)

For the first one we could try the toggles1 rule from hashcat:

echo troubador | hashcat --stdout -r toggles1.rule | sort -u | wc -l
10

Here I used sort -u to manually remove duplicates, but that is fair I think when calculating the complexity. In total we get 10 unique candidates with toggles, one of them being Troubador.

For the last append we could either use the mask ?a?a or a more specifik mask, like ?s?d.

hashcat --stdout -a 3 ?s?d | wc -l
330
hashcat --stdout -a 3 ?a?a | wc -l
9025

So here we get between 330 and 9025 candidates depending on how wide we set the mask.

The hardest to estimate is the leetspeak rule. If one of the candidates out of the toggle rule is Troubador, how many replacements do we need to try until we get to Tr0ub4dor? Let’s try the default hashcat Incisive-leetspeak rule.

echo Troubador | hashcat –stdout -r Incisive-leetspeak.rule | wc -l
15487
echo Troubador | hashcat –stdout -r Incisive-leetspeak.rule | grep Tr0ub4d | wc -l
0

The Incisive-leetspeak rule didn’t manage to generate the correct candidate even though it tried 15487 candidates. But if you would examine the output you would see that it gets pretty close, close but no cigar. Let’s try John the Ripper instead. If we check john.conf we see (at least) two Leet rules. external:Leet and external:HybridLeet. I’m putting the candidate (generated from the toggle rule) in troubador.txt:

echo Troubador > troubador.txt
./john –stdout -w=troubador.txt -external:Leet | grep Tr0ub4dor
Tr0ub4dor
./john –stdout -w=troubador.txt -external:HybridLeet | grep Tr0ub4dor
Tr0ub4dor

Now the HybridLeet rule generated 8640 candidates and the Leet rule only 23 candidates. Try it yourself and you will find that both of these rules actually finds Tr0ub4dor. Now the question is how many candidates do we put into the entropy calculation?

I’ll go with the largest (15487) and also the wide append mask (9025):

log2(13300 * 10 * 15487 * 9025) = 44 bits.

This is about the same complexity as the password phrase. Now if we put in the smaller estimates for the leetspeak replacements and the more narrow mask for the append we get a lower complexity, but what is really fair here? I think the calculation above is a pretty fair comparison. To narrow down the masks and rules any more would be kind of cheating.

Publicerat i Uncategorized | Lämna en kommentar

The Next War

I’ll write this in English because a world war might interest people outside of Sweden too.

Major conflict with China is coming, Ukraine is just a warm-up says U.S. Strategic Command’s chief (Admiral Charles A. Richard). Now this could be dismissed as mad ravings by another prophet of doom were it not for his position as head of the U.S. Strategic Command (USSTRATCOM). As such he is responsible for the state and readiness of the U.S. nuclear arsenal that can be activated as part of the nuclear triad; long-range bombers, intercontinental ballistic missiles (ICBMs), and submarine-launched ballistic missiles (SLBMs).

For more information read the article I linked in the previous paragraph. I personally find it both worrying and refreshing. Refreshing because a high-ranked military tells it like it is. Politicians usually sell lies* and media sell pre-packaged stories that are manufactured by PR departments. Pentagon calls this selling the narrative. Because of all these lies people typically don’t know what is really going on. The truth often comes from either high-ranked militaries with a loose tongue or niched economic magazines giving advice to Wall Street.

In the interview Richards says ”The big one (i.e., a conflict with China) is coming. And it isn’t going to be very long before we’re going to get tested in ways that we haven’t been tested in a long time.” Then he continues to argue why the U.S. has to step up research and innovation into nuclear deterrence capabilities. In other words; build more nuclear weapons, fast. The nuclear arms race is back on – and China is in the lead.

He seems to be particularly worried about novel strategic weapons that invalidates traditional nuclear deterrence. These include fractional orbit hyper-sonic weapon systems that can stay in space for an extended period of time and nuclear-powered torpedoes that can travel largely undetected in a swarm across the Pacific Ocean and strike U.S. targets in about a week.

Now these are all details but if we zoom out and try to understand why this is happening it has its roots in the U.S. being afraid to loose grip on global leadership. Not only military but economically too. This is really about taking sides. If you take the side of the U.S. then you are called a democracy (no matter what political system you have in your country). And if you take any other side then there are a number of bad words you can be called, each worse than the other. Brazil, Russia, India, China, South-Africa and a number of hang-arounds have formed one alliance. Then there are Arab countries forming alliances and African and South-American countries that have not yet sided with the U.S. This is called a multi-polar world, which means a world with more than one power centre. Actually more than two because a world with exactly two power centres is called bi-polar and the world in the 90s was a uni-polar world. This is what the Americans refer to as the ”new world order”. One world under U.S. leadership. During the cold-war there were also a number of countries not taking sides, the non-aligned movement. This is an interesting topic for another day but I can firmly state that I am in this corner. Not taking sides. Unfortunately Sweden has left this position 2022 (without consulting the people, democracy 2.0, don’t even pretend to involve the people in decisions).

* Although it would be refreshing if a politician came along and actually told the truth once in a while.

Publicerat i Uncategorized | Lämna en kommentar