Hur blir du datorsäker?

Det blir allt tydligare att regeringen inte har några som helst skrupler att fortsätta öka avlyssnandet tills man når, eller passerar(?), nivåerna i forna DDR. Jag tycker det är rätt olustigt, för att uttrycka det milt, för även om jag kanske egentligen inte har något att dölja så är jag inte heller speciellt exhibitionistisk av mig. Jag föredrar att få vara i fred och tror att denna tendens att övervaka folket kommer leda till fler brott, inte färre. Det är också bevisat till leda att all form av insamlad information läcker och det enda som hjälper mot informationsläckor är att inte samla in informationen till att börja med.

Det näst bästa är att se till att även om informationen läcker så bör den vara så oanvändbar som möjligt och det enklaste sättet att göra det är att se till att man håller sina datorer uppsäkrade (så man undviker trojaner och spyware) och genom att se till att så mycket som möjligt av den information man anser vara privat är nödvändigt krypterad. När du kommunicerar med din bank sker det alltid via https och starka krypton, jag tycker faktiskt inte det är mer än rätt att vi även skyddar vårat privatliv på samma sätt.

Jag tycker datorsäkerhet är intressant. Inte intressant som att jag har snöat in på det totalt och försöker bli expert på det, men jag har en hälsosam relation till det och försöker att hålla datorer och lösenord så säkra att de ska agera ett litet större hinder än bara ett litet fartgupp rakt in på mina hårddiskar. Alla system kan förstås alltid bli säkrare och för militära organisationer finns det ofta incitament att dra saker och ting till sin spets, men det är att ta i för privat bruk.

Min erfarenhet, både privat och från att haft säkerhetsansvar i mitt jobb, är att den svagaste länken i princip alltid är användaren, dels hur användaren beter sig och dels vilka lösenord man väljer. Jag tänker inte diskutera farliga beteenden i den här postningen (men läs gärna tex den här artikeln) utan enbart skriva om vettig lösenordhantering.

Just vad gäller lösenord har det kommit många bra råd genom tiderna, men ofta hänger råden med för länge och passerar sitt bäst före-datum. Klassiska råd brukar vara saker som:

  • Använd inte namnet på någon person i familjen
  • Använd inte namnen på husdjuren
  • Använd inte ord som kan hittas i ordböcker

Osv. Ofta föreslog man i stället att man skulle göra lösenord som tex:

  • Använder första (eller andra) bokstaven från varje ord i en mening
  • Blandar siffror och små/stora bokstäver
  • Använder specialtecken

Skitbra råd. För 10-20 år sen. FULLSTÄNDIGT värdelösa, på gränsen till farliga, råd idag!

Så kallade dictionary attacks är idag old school och ofta är det lättare att helt enkelt knäcka korta lösenord med brute force. Dvs, enkelt förklarat, man testar med ”a”, ”b”, ”c”, ”d” osv, sen med ”aa”, ”ab”, ”ac” osv, vidare till ”ba”, ”bb”, ”bc” osv. Man hamrar på tills man tar sig in. Vanligtvis brukar algoritmerna vara lite smartare än så och börjar ofta med populära lösenord först för att öka oddsen, men det handlar fortfarande om att hamra på tills man lyckas i stället för att försöka gissa sig fram.

Så, katastrofala lösenord för 10 år sen var saker som:

  • Majken (min mormors namn)
  • Kenzo (en av våra hundar)
  • Volvo (om man kör en sån)

Hade man minsta lilla koll på en persons privatliv kunde man ofta testa sig fram med såna ord och skrämmande ofta var det framgångsrikt. Just detta fick säkerhetsexperter att föreslå att man skulle blanda små och stora bokstäver, siffror och specialtecken så tex Kenzo blev k3Nso. På den tiden attackerna ofta utfördes av människor eller väldigt enkla algoritmer som baserade sina försök på ordlistor var det väldigt effektivt, idag betyder det att tiden det tar att knäcka lösenordet ökar från nån sekund till sekunder. Knappast mycket att hurra för.

Så hur skriver man ett bra lösenord idag? Det finns bara en sak som rår på brute force och det är längd. Ju längre lösenord eller lösenfraser man tar till, dess fler bittar blir det att få rätt och tiden det tar att knäcka ett lösenord ökar exponentiellt. Som ren bonus blir lösenorden också ofta lättare att komma ihåg, väl så viktigt.

Om vi börjar enkelt och väljer ett slumpmässigt ord och bygger vidare på det så kommer ni förstå hur det funkar:

  • Barbie: ”Your password is very commonly used. It would be cracked almost instantly.”
  • b4rbi3: 8 sekunder
  • Barbie med: 412 år
  • b4rbi3 m3d: 32 år
  • Barbie med en: 147 000 000 år
  • b4rbi3 m3d_en: 122 000 000 år
  • Barbie med en smurf: 18 000 000 000 000 000 000 år.
  • b4rbi3 m3d_en sMurF: 5 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 år

Som ni kan se så är det inte säkert att obfuskering faktiskt alltid är bättre, men däremot är längd alltid en vinnare. Även om det är fullt vanliga ord så gör längden att det blir väldigt svårt att brute force-knäcka meningen och om man kombinerar det med en lite småknasig mening och lite inslängda ”konstiga tecken” så gör man även dictionary attacks svåra att genomföra. Det kan räcka med att byta ut enstaka tecken i vissa ord mot siffror så skyddar man sig oerhört effektivt mot attacker, men primärt är, som sagt, längd.

Den gamla tumregeln att 8 tecken är en bra längd stämmer inte med verkligheten längre! 8 tecken är en piss i havet och en modern dator knäcker ett valfritt sånt lösen på, i bästa fall, några timmar. Ett datorkluster behöver förmodligen bara några minuter eller sekunder för att knäcka det. Jag skulle vilja påstå att idag är 12 tecken minimum och 16 (eller mer) är att rekommendera.

Om du känner att du saknar fantasi för att komma på ett lösenord som inte är väldigt typiskt ”du” (och därmed lättgissat av folk som känner dig) kan du alltid utnyttja en av de tjänster som finns på nätet att slumpmässigt generera någonting som förhoppningsvis är relativt lätt att komma ihǻg. När jag tex bad den siten att generera ett slumpmässigt lösenord så fick jag tillbaka ”Coexist Beluga”, vilket bedömdes att hålla ungefär 10 000 000 000 år om en av dagens skrivbordsdatorer fick i uppgift att knäcka det. Det innebär förstås att även om man dedikerar ett enormt datorkluster så är uppgiften orimlig att lösa inom vår livstid och det är ganska rimligt att anta att säkerheten kommer vara så pass bra att när lösenordet väl kan knäckas så är det ointressant att göra det.

Fast man behöver förstås inte överdriva heller. Välj lösenord som är lätta (men långa) att komma ihåg och som ändå ger så många nollor i den uppskattade tiden det tar att knäcka dem att uppgiften blir lagom orimlig. Målet bör inte vara att göra det omöjligt att komma åt datat utan att det ska vara så svårt och omständigt att knäcka det att det är lättare att gå på dig som person i stället, dvs så du får veta att säkerheten är komprometterad och tex kan skrota dina gamla nycklar och lösenord och byta dem mot nya. Användaren är alltid en svag länk och vettig datorsäkerhet handlar mer om att se till att övriga länkar alltid är starkare. Att göra tex lösenorden oändligt starka är bortkastat så länge som man fortfarande är beroende av den säkerhetsmässigt svaga användaren.

Att veta när säkerheten är knäckt är minst lika viktigt som att investera i säkerhet till att börja med. Att tro att ett system är säkert utan att vara medveten om att tex ett lösenord är knäckt, eller kan knäckas utan större besvär, är en farligare osäkerhet än att inte ha någon säkerhet alls!

Jag har passerat någon form av gräns…

Jag brukar alltid skriva ut elektronikscheman om jag ska läsa dem för typiskt brukar det vara svårt att få överblick på en skärm eftersom man måste zooma in för att kunna se alla detaljer och då ser man ju, förstås, bara en liten bit i taget. Dvs det är så det brukar vara. Inte den här gången.

De två skärmarna till vänster agerar tillsammans som en enda stor skärm med en upplösning på 2048×1280 och ca 28″ storlek. Vid den upplösningen händer uppenbarligen nånting väldigt intressant för plötsligt har jag lättare att få överblick över konstruktionen och signalvägarna på skärmarna än vad jag får på utskriften. Detta trots avbrottet i mitten pga att det är två separata skärmar i stället för en kontinuerlig yta…

En 2560×1440-skärm (eller två) hamnade just nu ännu högre upp på önskelistan än det varit innan! Eller kanske ett helt batteri 1920×1080-skärmar vridna 90 grader! Undra hur många grafikkort man (praktiskt) kan trycka in i en dator…

När har man tillräckligt med skärmyta…?

Jag vet inte när man har tillräckligt, men det senaste tillskottet var inte otrevligt alls, kan vi säga. 🙂

Första försöket gick sådär. Mitt primära kort, ett nVidia GeForce 9800 GT,  har två utgångar (tre egentligen, men den kan bara aktivera två i taget) men jag hittade ett gammalt Voodoo Banshee 3D blaster PCI (tillverkat nån gång i slutet av förra århundradet) och tänkte att det borde ju funka bra som den tredje utgången. Trodde jag ja. Maskinen tvärhängde i boot och jag lyckades inte lösa det så i brist på bättre hypoteser spekulerade jag runt att det kanske hade passerat bäst före-datum och hystat in handduken för gott. Alltså letade jag runt lite på prisjakt och hittade ett nVidia GeForce 8400 GS på gammal hederlig PCI och jag trodde i min enfald att det skulle fungera smärtfritt mtp att korten är så pass lika att de kör med samma drivare. Hej vad jag bedrog mig.

Jag mäcklade in kortet på den sista lediga PCI-platsen, drog igång maskinen och den vrålhängde. Det yttrades en del intressanta fraser som förmodligen skulle fått en frikyrkopastor att tappa talförmågan i i alla fall 10 sekunder. Lite google gav vid handen att andra lyckats bättre, men att de inte körde nåt så uråldrigt som en gammal Fedora 13 så jag gjorde som jag brukar göra när mina distar blir FÖR uråldriga; petade på yum för att få den att peka på ett nyare repo och sa åt den att uppgradera sig. Konfliktlistan blev allt annat än nådig. När det blev uppenbart att jag skulle få riva upp himmel och helvete för att få det att funka så kändes det lite som nä, det är nog dags att storstäda och kanske ta och byta från IDE till SATA som jag funderat på ett tag (jag har tom en trave diskar som bara väntat…).

Nya diskar mao. Från en gammal 500 GB Bluepoint IDE till ett smärre batteri blandade diskar, en gammal 200 GB Spinpoint till Windows (för spel), en 40 GB SSD som root och ett mirrorset på 2×2 TB som /home till linux. Eftersom jag börjat köra mer och mer i virtuella miljöer tänkte jag att det kunde vara smart med ett STABILT OS i botten! CentOS 6.2! What could possibly go wrong…?

Låt oss bara konstatera att CentOS är lite FÖR stabilt för att ha roliga finesser ämnade för vågade experiment utanför datorhallen. Så det fick bli Fedora 15 eftersom jag behövde få igång datorn och det är, trots allt, RedHat-releaser jag kan bäst. Sagt och gjort, trattade in Fedora, konstaterade att maskinen numera bootade igen men dock blåvägrade att hitta två grafikkort.

Efter lite googlande hittade jag att nouveau-drivaren (den fria för nVidiakort) tydligen inte supportar sånt så det blev att trycka in nVidias egen. Den hittade ett grafikkort.

Mer googlande. Nånstans hittade jag en text som påstod att grafikkort inte alltid gillar att dela IRQ med andra kort och om man byter PCI-plats så kan det lösa sig. Så jag gjorde det. Det hjälpte inte.

Mer googlande. Någon påstod att man kunde labba med kernelparametrarna ”pci=nommconf”, ”idle=poll” och ”maxcpus=1” för att få det att funka. Jag provade och lyckades lobotomera min maskin från en dual core till single core, men fortfarande bara ett grafikkort.

Mer googlande. Hittade ett litet obskyrt forum där någon påstod att kernelparametern ”vmalloc=256M” skulle lösa biffen. Startade upp maskinen, den startade bara en skärm. Gick in i nvidia-settings och där fanns det … TVÅ GRAFIKKORT! Pillepillepilleställainpillepi*KABLAM* sa X-serven och jag blev utloggad.

Okeeeej? Logga in igen, pillepillepillep*KABLAM*

Inte pilla på den mao. Logga in igen, pillepillepillepillespara. Pillepillepillep*KABLAM* Repetera några gånger.

Avsluta med att editera xorg.conf manuellt för att rotera de två sidoskärmarna 90 grader. Det är riktigt trevligt att ha skärmar som sas är textorienterade, det har jag saknat ibland sen jag körde Mac. Rätt många saker (mail, pdf, surf etc) gör sig faktiskt imo mycket bättre i stående format så att bara kunna slänga ut ett sånt fönster på sen sidoskärm och maximera det är himla smutt. 🙂

Det här trodde jag, i min enfald, skulle ta en halv dag. Det var igår jag trodde det. Det tog hela dan igår och det mesta av idag så med parley i helgen och allt så har jag inte alls fått mycket gjort på sistone och min todolista har växt, ehm, lavinartat. Nu måste jag dessutom dra in alla program jag vant mig vid att ha, typ thunderbird, emacs, utvecklingsverktyg etc som plötsligt saknas, så jag är lite eeeeefter. Gah.

Datorer. Näst efter jurister är de civilisationens värsta förbannelse.

Den där känslan att nästan, men inte riktigt, begripa vad fan man håller på med…

Ponera följande:

Du har en kund som utvecklar en produkt. Denna kund sitter på en annan kontinent, de har anlitat dig för att utveckla mjukvaran till den MCU som sitter på kretskortet, det finns en irriterande jobbig deadline som kommer krypande och skiten bara FUNKAR inte. Eftersom deadlinen sakta kommer allt närmare så finns det inte riktigt tid att skeppa över ett kort, dessutom är nyttan av det begränsad eftersom det är ohyggligt svårt att utveckla på det kortet eftersom den MCU som sitter på kortet är så liten att det är svårt att lägga in vettigt debugstöd. Så du bygger en mockup för att utveckla på och när du ändå är igång tar du en rätt så mycket större MCU så att det finns gott om plats att lägga in tester och ha sig, helt enkelt för att det blir enklare så. Eller, ja, i teorin i alla fall.

Du utvecklar, sliter, justerar och allting fungerar utmärkt och stolt skickar du över programmet bara för att få veta att det funkar över huvud taget inte alls där borta på den andra kontinenten (ibland ger MCUn livstecken ifrån sig, men de är komplett stokastiska och ger inga ledtrådar) och eftersom det inte finns någon programmerare därborta är det näst intill omöjligt att lista ut vad som går fel. Alla elektriska signaler du ber dem mäta stämmer och det borde funka, men nånting gör att det lik förbannat inte riktigt faller på plats, så att säga. Det finns ju den där uppenbara skillnaden att den MCU du jobbar på visserligen är snarlik men det finns ändå vissa skillnader. Det är då den dyker upp, den där lilla naggande känslan att det förmodligen, troligen är det som gör att nånting inte funkar som det ska trots att koden är skriven samt dubbel- och trippelcheckad för att den ska klara av att ta hand om de där skillnaderna.

För det mesta är det kul och utmanande, men just i tankeprocessens ”vargatimme”, när man bara anar problemets vidd och art men inte riktigt har kopplat en dubbel Nelson på det, just den tidpunkten kan vara oerhört frustrerande. Dvs precis som nu. Man vet att det enda som krävs för att man ska lösa problemet är tid, det är svårt att säga exakt hur mycket tid det kommer ta, plötsligt kommer man bara inse vad det är som strular och likt Professor Balthazar så får man en snilleblixt, studsar bort till sin mackapär och bara fixar det. Just like that.

 

That’s what I do, jag utvecklar mjukvara för och löser problem i hårdvara jag ofta inte ens har sett.

Det är en utmaning. Har du en utmaning får du gärna höra av dig.

Datalagringsdirektivets syfte är redan förlorat

Här kommer en beskrivning för hur man undviker effekterna av datalagringsdirektivet. Det här är ett sätt, det finns dock massor av sätt man kan uppnå samma effekt men det vore för mycket jobb att ens försöka beskriva alla sätt. Jag kommer utgå från att den som läser det här kör Windows eftersom det, trots allt, är normalfallet. Det ser dock i princip likadant ut under Linux (som jag tex föredrar att köra) och jag förmodar att handgreppen är ungefär de samma under OSX.

Börja med att surfa till https://www.torproject.org/ (notera att URLen börjar med https i stället för http, mer om det senare) och klicka på ”Download Tor”.

Leta upp ”Tor Browser Bundle” för det OS du kör och klicka ”Download”.

Starta den exe-fil du laddat ner. Du kommer få upp ett fönster där du kan ändra sökväg till nåt som är lätt att komma ihåg. Tryck sen på ”Extract”.

Öppna en explorer och gå till den folder där ”Tor Browser” installerats (i det här fallet C:\Tor Browser) och klicka på ”Start Tor Browser”.

Det kommer nu komma upp ett fönster där du kan se hur datorn ansluter sig till Tor-nätverket och om allt går bra ska det till slut se ut såhär.

Grattis, du kan nu surfa anonymt och krypterat. Svårare än så är det inte att installera klienten.

Att surfa anonymt kräver dock att man tänker på vad man gör och det är lätt att röja sin identitet av misstag. Det finns en lista med exempel på faror, men i korthet ska man tänka på:

  • Surfhygien! Logga inte in på tex ditt vanliga Facebookkonto eller liknande via Tor. Det är viktigt är att hålla sitt surfande med och utan Tor skilda åt och aldrig blanda samman dem. Det är inte automatiskt en katastrof att göra fel, men det ökar definitivt risken för att någon kan koppla ihop ditt anonyma jag med ditt riktiga jag.
  • Anonymitet! Du kommer förmodligen behöva ett mailkonto för att kunna registrera dig på forum eller liknande och du ska givetvis inte använda din vanliga mail för det. Skaffa ett separat mailkonto för ditt säkra surfande, tex via tjänsten safe-mail.net. Givetvis surfar du bara dit via Tor (aldrig via en oskyddad browser) och alltid via https.
  • Läck inte sidoinformation! Tänk till exempel på vilka användarnamn du använder! Skapa inga användarnamn (eller lösenord, det finns siter som sparar lösenorden i klartext…) som enkelt kan associeras till dig som person, tex gamla smeknamn, hundens namn, ditt favoritfotbollslag etc. Bäst, men lite extremt, är förstås att skapa fullständigt slumpmässiga ord som garanterat inte avslöjar något om dig som person.
  • Undvik javascript, flash och liknande saker! Det finns många säkerhetsbrister i de olika scriptspråken som kan röja ditt riktiga IP (och därmed vem du är) så att till exempel slösurfa videositer via Tor är en dålig idé (och inte bara av säkerhetsskäl).
  • https i stället för http! Det lilla s:et som skiljer http från https står för ”secure” och betyder att all trafik mellan din browser och webservern är krypterad. Om du surfar via http kommer det vara möjligt (om än högst osannolikt) för någon utomstående att avlyssna trafiken eftersom den går i klartext del av sträckan.

Så hur pass säker är Tor, VPN och andra former av anonymiserande nätverk? Ja, det beror faktiskt mest på dig själv för den största risken att din identitet blir röjd är för att du själv klantar dig. Sannolikheten att någon ska knäcka krypteringen eller hitta andra svagheter i överföringen är förmodligen visserligen något högre än att Ulf Ekman ska konvertera till Islam, men inte mycket. Att surfa och tex använda safe-mail via Tor är alltså ett utmärkt sätt att kommunicera obehindrat och säkert med tex journalister eller Wikileaks om du vill dela med dig av information utan att riskera att du, som person, röjs och drabbas av repressalier (men lär av Bradley Manning och håll förih-e käften om det!).

Tor går förstås att använda till en uppsjö andra saker (tex mail, filöverföring, chattande etc) och det finns även andra sätt (tex olika former av VPN) att ta sig runt datalagringsdirektivet och annan form av spårning (tex FRA). Den primära orsaken till att jag författade den här texten är egentligen bara att visa hur pass enkel tekniken egentligen är från ett användarperspektiv. Rent tekniskt är det förstås mycket mer komplicerat, men det slipper man som användare tack och lov se nånting av, det sker automatiskt. Det här innebär förstås också att det är naivt att tro att tex kriminella och terroristnätverk inte redan använder sig av de här metoderna, vilket gör hela syftet med direktivet värdelöst och det i slutändan blir fel personer som får sin trafik genomgången och analyserad.

Så vad kan då tex våra politiker göra för att förhindra att anonymisering skjuter datalagringsdirektivet i sank? Ärligt talat, inte mycket. Jag kan tänka mig lite olika scenarios och dess konsekvenser:

  • Blockering av siter. En möjlig (och inte helt otrolig) konsekvens är att man kommer börja blockera vissa siter, tex safe-mail eller torproject. Om det görs på samma sätt som det så kallade barnporrdirektivet ”löser” det behöver användaren bara peka upp sin namnuppslagning mot lämplig fri tjänst (tex Googles som går att hitta bland annat på 8.8.8.8) och så är filtret förbigånget. Ett annat alternativ är att man sätter upp en motsvarighet till Kinas Golden Shield. Tja, dels läcker den som ett såll så de som vill igenom kommer igenom och dels vet vi i såna fall var vi har våra politiker.
  • Blockering av tjänster. Ett annat sätt är att man tex tvingar ISPerna att blockera vissa former av tjänster, tex genom att blockera portar. Ett enkelt sätt att ta sig runt det är att låta en tjänst köra på ”fel” portnummer, ett annat att man tunnlar trafiken eller låter den gå genom en proxy. De här teknikerna används av många för att kunna ansluta till Internet från Kina, många arabländer eller tex arbetsplatser som filtrerar ”olämpliga” siter.
  • Förbud av kryptoteknik. Det har försökts förr och det funkar sisådär kan vi väl konstatera.

Så datalagringsdirektivet är dömt att gå samma väg som tex fildelningsfrågan; mot ett totalt fiasko. Fildelningen har utvecklats från ganska enkla protokoll, som tex Napster, mot allt mer komplicerade och svårövervakade protokoll och om den nuvarande hetsjakten på fildelare fortsätter kommer fildelning med stor sannolikhet evolvera till ett krypterat, anonymiserat och fullständigt obfuskerat fildelningsnätverk där allt, även potentiellt oönskad (och kriminell) information, delas utan minsta möjlighet att kunna avgöra vilka som är inblandade.

Datalagringsdirektivet (och liknande lagar/direktiv) har med andra ord som effekt att alla de tjänster som uppstår som motreaktion gör det väldigt enkelt för tex kriminella att skydda sin trafik och gör det samtidigt i praktiken omöjligt för polisen att samla bevis online och det finns inget praktiskt sätt att motverka denna effekt utan att EU förvandlas till ett samhälle som på många sätt kommer påminna om dagens Kina.

Pingat på Intressant.

IT-nostalgi

Tänk, min första PC hade en hårddisk på 1.2 GB, en snudd på ofattbart stor lagringskapacitet när det begav sig, och nu lyckas en sketen Gnome-applikation läcka samma mängd på bara en dryg vecka?

Jag vill inte på något sätt påstå att datorer var bättre förr, men någonstans i världen sitter det minst en programmerare som borde skämmas just nu…

Min nya laptop har kommit!

Den är inte stor, men söt!

Uppgraderad med 2 GB RAM och SSD. Haj täkk! 😀

Nu väntar jag bara på att jag ska få ner live-imagen så jag kan installera den med. Fort går det inte…

%d bloggare gillar detta: