Men herre gud!

Tänker jag när jag läser Computer Swedens sammanfattning av MSB:s rapport om datohaveriet på Tieto. Vilket massa strul två trasiga hårddiskar kan ställa till med.

Det här visar hur sårbara it-system är, och hur svårt det är att förutse effekterna av ett haveri. Det dyker upp problem lite här och var som svampar ur jorden efter disk-krachen och många tusentals blev drabbade på ett eller annat vis. Då kan man ju tänka sig effekterna av en brand eller liknande i en serverhall där servrarna står staplade på varandra, rack efter rack, kanske tusentals servrar.

Samtidigt noterar jag att många verkar ha hittat sätt att hantera situationen som uppkommit. Det verkar i många fall ha funnits manuella alternativ att ta till hands som en tillfällig lösning, även om problemet med manuella lösningar istället är att de har en tendens att stapla arbete på hög tills systemen fungerar igen. Jag kan tänka mig att skadorna av ett stort datorhaveri skulle bli framförallt ekonomiska, när det gäller samhällsviktiga funktioner brukar folk ha tänkt innan hur saker ska hanteras eller så kan man göra ett snabb-fix. Fast det är fortfarande väldigt svårt att förutsäga vart och hur det drabbar och vad följderna blir av det, så i osannolika fall kan det fortfarande vara fara för liv och hälsa.

 

Slumptalsgenerering

Väldigt ofta i säkerhetssammanhang behöver man skapa bra slumptal. Slumptal behövs när man genererar lösenord, tillfälliga koder, saltar lösenord, sätter samman session cookies för att skapa unika sessioner eller för att undvika överbelastningsattacker mot servrar, för att förebygga replay-attacker mot system, osv. Men förstås också vid asymmetrisk kryptering eftersom man i princip alltid använder hybrid kryptering och således behöver starka sessionsnycklar som kan användas vid krypteringen. Slumptal behövs även som en del av de flesta asymmetriska algoritmer, ex behöver RSA helt slumpmässigt valda primtal. Även ElGamal, Diffie-Hellman och DSA har behov av slumptal som en del av algoritmerna. Även vid vanlig symmetrisk kryptering kan det behövas slumpmässiga IV eller saltvärden beroende på vilket krypteringsläge som används.

Problemet är bara det att datorer av deras natur inte kan skapa riktiga slumptal. Datorer är rent deterministiska och de följer bara instruktioner för vad som ska göras, datorer kan därför inte göra godtyckliga val. För att göra något slumpmässigt måste den godtyckligheten finnas.

Det man kan göra är att skapa något som ser ut som slumptal genom att använda en slumplatsalgoritm (PRNG). Detta kan vara praktiskt exempelvis när man gör datorspel eftersom man många gånger vill ha ett slumpmässigt beteende i spelet.  Nästan alla programspråk har därför funktioner för att generera slumptal i standardbiblioteken. De vanligaste typerna av slumptalsalgoritmer är linjärt congurenta generatorer (LCG) eller ibland även enklare varianter av linjära skiftregister (LFSR). Linjärt congurenta generatorer är ett bra val om man ska implementera en slumptalsalgoritm i ett högnivåspråk medan linjära skiftregister är väldigt enkla att implementera i hårdvara eller maskinkod. Algoritmerna är väldigt enkla och blir i praktiken bara ett par rader kod, men de ger inte helt perfekta slumptal. Det finns därför fler algoritmer som används i vetenskapliga sammanhang där man har högre krav på slumpmässighet, exempelvis Blum Blum Shub eller Mersenne Twister. De ger slumptal som ger statistiskt sett väldigt fina slumptal men det tar istället lite längre tid att beräkna slumptalen.

Det finns dessvärre många säkerhetsproblem med vanliga slumptalsalgroritmer. Om en enklare algoritm används för att skapa lösenord kan man utifrån en mindre serie av lösenord i ordning knäcka algoritmen och räkna ut resterande påföljande lösenord. Det går också att brute-forca generatorns state (oftast bara omkring 32bit beroende på generatorpolynom eller modulus) och därmed få fram hela sekvensen av lösenord, inklusive de som inte ännu genererats. Samma sak gäller förstås för session cookies eller liknande.

Man måste därför göra skillnad på en kryptografiskt säker slumptalsalgoritm eller en vanlig slumptalsalgoritm som är tänkt att användas för spel eller liknande. En kryptografiskt säker slumptalsalgoritm måste i grunden bygga på en ren slumptalskälla (RNG), exempelvis genom att samla information från användaren som sitter framför datorn. De bör också vara anpassade så att den algoritmen som skapar slumptalen inte är kryptografiskt svagare än den som ska användas vid kryptering, om slumptalenska användas så, eftersom slumptalsgenereringen annars riskerar bli kedjans svagaste länk. Några exempel på kryptografiskt säkra slumptalsalgoritmer är Fortuna och Yarrow. The Secure Channel använder min egen algoritm Bellatrix som kan användas helt fritt. Det finns tyvärr inte så många fria algoritmer utan oftast är det proprietära algoritmer.

Det kan också vara bra att känna till att alla PRNG alltid bara kan generera en viss mängd slumptal, sedan börjar de om igen och genererar samma serie med slumptal. De enklaste algoritmerna har en period på omkring ett par miljoner tal. De kryptografiskt säkra algoritmerna har förstås betydligt längre perioder.

Ska du generera lösenord eller liknande, se till att inte använda en dålig algoritm från standardbiblioteket eftersom det kan vara ganska allvarligt om någon kan återskapa hela serien av lösenord. De flesta kryptobibliotek har någon form av stöd för säker generering av slumptal, så om du letar efter en säker slumptalsgenerering så börja leta där.

 

Svaga slumptal i SSL-implementationer

En grupp av forskare från Schweiz och USA har konstaterat att många implementationer av SSL har dålig slumplatsgenerering. Schenier skriver om det på sin blogg, mer kan även läsas här.

Vad de har gjort är ovanligt och helt oväntat, de har jämfört 7,1 miljoner asymmetriska publika nycklar som de samlat från SSL-certifikat (X.509) och PGP-nycklar, samt sökt efter gemensamma faktorer i nycklarna. Rent statistiskt sett är chansen försvinnande liten att det ska finnas gemensamma faktorer eftersom talen är så stora, ändå har de hittat gemensamma faktorer i 27 000 av krypteringsnycklarna, totalt 0.38% av nycklarna. Merparten verkar ha varit 1024bit modulus, vilket gör att man får anta att det i första hand rör sig om SSL-nycklar snarere än PGP-nycklar. Hittar man en gemensamma faktor är krypteringen i de flesta fall helt forcerad. Oftast används two-prime modulus varpå det är enkelt att dividera fram den andra faktorn av modulsvärdet, när man väl har båda faktorerna kan sedan den privata nyckeln beräknas.

Orsaken till att de lyckas är att slumplatsgenereringen varit dålig. Slumplatsgenerering är svårt, och det finns väldigt få riktlinjer för hur det ska göras eller vilka algoritmer som ska användas. Det är lätt att implementera slumplatsgenereringen fel och det är svårt att upptäcka felen, oftast handlar det antagligen om att det saknas en förståelse för entropi bland de som utvecklat/implementerat krypteringen. Vilken/vilka implementation av SSL som genererar dåliga nycklar har de inte avslöjat ännu.

 

Sårbarheter i Firefox och Thunderbird

En allvarlig sårbarhet har hittats i Firefox och Thunderbird (mailprogram) som kan utnyttjas för att köra kod på systemet då en manipulerad PNG bild öppnas. PNG bilder är mycket vanliga på hemsidor och Firefox är en mycket vanlig webbläsare, vilket innebär att problemet är allvarligt.

Som tur är så uppdaterar sig Firefox och Thunderbird automatiskt vid programstart så om man bara väljer att uppdatera programmet när det frågar efter det så är ditt system antagligen redan patchat för denna sårbarhet. Kontrollera att du använder version 10.0.2 av Firefox och Thunderbird.

 

Signalspaning

Signalspaning är när man söker sig igenom enorma mängder med data för att hitta intressant information, exempelvis okända och allvarliga hot som terrorism. Detta får inte blandas samman med riktad spaning där man metodiskt avlyssnar vissa målpersoner för att spana på dessa och följa deras beteende, så kallat polisiärt arbete.

I Sverige är det idag FRA som signalspanar på internet med stöd av den lag som infördes 2009. Vad de spanar på är inte offentligt men det som går att säga är att FRA har omkring 500 anställda samt en dator som ett tag var världens 5:e snabbaste dator till sitt förfogande för ”kryptografiskar tillämpningar”. Riktad spaning utförs idag av SÄPO (svensk säkerhetspolis) och de påstås följa omkring 200 personer med anknytning till terrorism i Sverige idag, vilka grupperingar det rör sig om är inte offentligt. Antalet anställda på SÄPO är antagligen ungefär i samma nivå som FRA även om det exakta antalet inte är offentligt. Nyligen  har SÄPO även bett riksdagen om tillstånd att få beställa signalspaning från FRA, något som inte skulle vara möjligt efter lite justeringar av lagen efter opinionens påtryckningar. Enligt lagen får dessutom FRA bara signalspana på trafik som passerar landets gränser, vilket förstås är väldigt vag definition eftersom trafik ibland kan studsa runt över hela internet innan det når sitt mål. Alltså även om målet det är rummet bredvid.

Signalspaning är en hemskt dum idé, och jag tänkte förklara varför.

Det passerar gigantiska mängder med data på internet, att hitta intressant information där är inte alls som att hitta en nål i en höstack, det är långt värre. FRA använder vissa sökbegrepp för att söka genom den trafiken de signalspanar på, antagligen framförallt e-post och annan elektronisk kommunikation. Vilka sökbegrepp de använder är inte offentligt.

Orsaken till signalspaning är enligt den officiella bilden att spana på terrorhot eller andra allvarliga hot. Problemet är alltså att det i Sverige är väldigt få terrorister. Genom tiderna har det bara förekommit ett fåtal attentat som skulle kunna kallas för terrordåd. Om det ens finns några terrorister där ut, är det alltså massvis med terrabyte av data dagligen som rinner förbi där man måste leta för att hitta informationen som kanske inte ens finns. Oavsett vilken sökmetod de använder är jag säker på att de dagligen kommer få gigantiska antal falska träffar i datan, detta baserar jag på de kurser i språkanalys som jag läste på universitetet under min studietid. Det finns också en överhängande risk att automatiken missar ett riktigt hot så att det passerar utan att ens systemet tar med träffen bland de de gigantiska mängderna av falska träffar. För att den ska tas med bör det vara konkreta meningar som: ”Vi bombar på Hötorget kl18.00″.  Men mer troligt är det antagligen att det kommer stå: ”Vi gör som planerat kl 18.00″ eller ”Då kör vi kl 18.00 då”, varpå det blir i praktiken omöjligt att få träff på detta.

Ett annat problem är att planera terrorattentat antagligen inte planeras över internet. Alla som testat att planera saker över e-post inser snabbt hur rörigt det kan bli efter ett par omgångar av e-post, det är så mycket mycket enklare det är att träffas i verkligheten och diskutera saken. Dessutom mer rimligt eftersom man vet att internet är övervakat. Eller så ringer man och då passerar trafiken inte ens internet, samt de ökande svårigheterna av att signalspana i röst-trafik av dessa proportioner behöver inte nämnas, det är i princip tekniskt omöjligt idag.

Men allt det här gäller alltså bara om det är fler gärningsmän, är det en ensam gärningsman är det alltså ganska otroligt att han eller hon ska kommunicera med sig själv. Men, låt säga att personen kanske kommunicerar med andra och vill köpa material till bomber eller liknande,  men varför ska FRA då reagera om inte mottagaren ens gör det och kontaktar polisen?

Med det sagt börjar bilden klarna om vad det rör sig om, idag påstår sig FRA själva enbart ha kapacitet att avlyssna en bråkdel av internet genom sitt analyssystem på grunda av mängden data (trotts att de har världens 5:e snabbaste dator). Antagligen rör det sig bara om bråkdelen av en procent. Så sammanfattningsvis: om allt går helt rätt och det är fler terrorister som planerar attentatet utan kryptering över internet samtidigt som trafiken passerar över landets gränser och uttrycker sig tydligt så att de fastnar i systemet, och sedan inte försvinner i högen av falska träffar, då är chansen ändå maximalt 1% att de ska lyckas hitta terroristerna. Om det nu alltså över huvud taget finns några terrorister.

Hitintills har jag inte hört någon offentligt gått ut och sagt att signalspaning verkligen fungerar. Signalspaning är alltså ett fruktansvärt slöseri med statens pengar som kostar skattebetalarna flera hundra miljoner kronor om året. Varje krona som satsas på signalspaning är en krona som är förlorad och kunde användas på andra sätt att förebygga terrorism som verkligen fungerar, som att minska antalet vapen i omlopp, göra det svårare att köpa ämnen som kan användas för att göra bomber eller sätta mer resurser till psykvården. Signalspaning kan inte, och kommer aldrig heller bli ett effektivt sätt att förebygga terrorism.

Fast, får man nästan anta, finns det andra orsaker med FRA än att förebygga terrorism (ex spaning på andra nationer som tidigare) som då skulle kunna berättiga åtminstone delar av dessa kostnader. Fast att säga att signalspaning är lösningen på terrorhot är tyvärr att föra folk bakom ljuset.

Riktad spaning där man följer vissa grupper av individer kan, åtminstone hypotetiskt sett ha någon effekt. Men det bör i så fall  även i fortsättningen skötas av polisen (SÄPO). Antagligen i första hand i form av telefon-avlyssning, buggning eller avlyssning av utgående internet-anslutning. Inte via massövervakning.

 

Alvarliga säkerhetsbrister i Goggle Wallet

Computer Sweden skriver om de allvarliga problem som upptäckts med Google Wallet.

Själva tanken att använda mobiler för att betala med låter som en dålig ide ur säkerhetssynpunkt. Jag betalar hellre med något separat som varken sitter fast i telefonen, datorn eller något annat.

 

Säker hantering av e-post

TechWorld har också en bra lista med 10-tips för säker hantering av e-post. Till skillnad mot avlyssning av mobiltelefoner är avlyssning av e-post eller kapade konton något som man som privatperson mycket väl kan drabbas av. Många personer har redan deras lösenord på drift utan att de vet om det.

När det gäller e-post och säkerhet är det nästan hopplöst. E-post kan ha skickats av vem som helst (oavsett vad det står) och informationen kan läsas på så många sätt och på så många olika ställen. Mitt tips är oundvikligen att inte skicka något som kan vara jobbigt om andra läser via e-post. I så fall bör man åtminstone vara medveten om att det kan läsas av andra om man blir drabbad.

Till skillnad från mobiltelefoner måste du själv se till att använda kryptering, kryptering är inte inbyggt i standarden.

Det bästa sättet att kryptera e-post är att använda PGP/GnuPG. Jag har hackat ned på PGP/GnuPG förut, men faktum är att det är långt bättre än ingen kryptering alls även om skyddet inte är helt vattentät. Det finns en bra guide på www.kryptera.org om hur man använder GnuPG som jag skrev tillsammans med piratpartiet för ett par år sedan. På sidan finns även fler bra guider, exempelvis hur du krypterar din dator med TrueCrypt.

Nu vet jag att kryptera e-post är lite komplicerat och kanske inget för alla användare, även om alla borde kryptera sina e-post. Min förhoppning är att folk ska sluta använda e-post och gå över till något som är bättre och säkrare (som ex The Secure Channel), speciellt när det gäller viktigare information. Det finns så mycket brister och problem med e-post som ligger djupt rotade i gamla protokoll och standarder. Det har gjort en del försök att skapa säkrare standarder men det har gång på gång misslyckats (det enda undantaget ser ut att bli DNSSEC).

 

Avlyssning av mobiltelefoner

TeckWorld har en intressant artikel som handlar om hur man avlyssnar mobiltelefoner. Det visar sig att det inte allt är en omöjlighet att avlyssna mobiltelefoner, även om det inte heller är väldigt enkelt. Det går att sätta upp en egen basstation för ett par tusenlappar och sedan lura telefonerna i närheten att ansluta till basstationen. Krypteringen kan sedan nedgraderas eller stängas av. Det anmärkningsvärda är att telefoner kan avlyssnas utan att de används när den ligger i fickan.

Enklast att avlyssna är förstås GSM medan 3G som är nyare är svårare att avlyssna. Men många telefoner använder både GSM och 3G och då kan en attack fortfarande använda GSM.

Privatpersoner behöver inte oroa sig för att få sin telefon avlyssnad av andra än möjligtvis svenska myndigheter, men som större företag som hanterar känslig eller värdefull information kan det vara värt att ta med detta i hotbilden. Det man kan göra är att använda krypterade mobiltelefoner från Sectra istället för vanliga GSM/3G telefoner. Svenska Sectra är väl etablerade på marknaden och försvaret har använt deras produkter under många år. Jag tror att det är bra produkter.

 

Nätbrotten ökar

Dyster statistik över antalet it-relaterade brott. Antalet brott har fyrdubblats under de senaste sex åren, skriver Computer Sweden.

 

FBI avlyssnade av Anonymous

En telefonkonferens där FBI diskuterar Anonymous med andra länders poliser har avlyssnats av just Anonymous och lagts ut på internet, skriver DN och SvD. Samtidigt har ett e-post läckt ut som skickades inför konferensen.

Det här är allvarligt. Vi kan inte ha ett samhälle där de med rätt kunskap kan gå som rätt genom väggar och hämta ut till synes vilken information de vill. Var det verkligen bara den här informationen hackarna har kommit över som handlade om just precis Anonymous, eller har de tillgång till mer? Det är frågan jag ställer mig när jag läser det här.

 

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress