Archive for the ‘kryptering’ Category

GPG – crashcourse

2014/04/02

Nån form av inledning

Jag vet att jag har skrivit sånt här förut, men upprepning är alltid bra har jag hört.
Dessutom så känns det som att ämnet är något många känner att man borde göra, men det är ju så komplicerat och jobbigt och man vet inte hur eller varför egentligen så därför faller det i glömska.
Sen var det länge sen jag ordbajsade fritt…

Varför kryptering?

Genom alla tider har människor haft behov av att kunna skydda meddelanden av olika slag och av olika anledningar, från ganska oskyldiga saker som kärleksbrev till statshemligheter.
De flesta anser att brev är privata och att endast mottagaren har rätten att bestämma vem som får se innehållet, när telegrafen infördes så blev det ganska vanligt att gemene man utnyttjade enklare krypteringar för att inte telegrafisten skulle kunna ta del av meddelandets egentliga innehåll.
Bilden av ett brev i ett kuvert är något många ser framför sig när man pratar e-mail också, bilden brukar vara att brevet går från sändaren till mottagaren och att ingen på vägen läser det. Denna bilden är helt felaktig.
Att diverse säkerhetstjänster trålar internet efter information är belagt i dagsläget, men vad många inte tänker på är att andra aktörer såsom google, hotmail och yahoo samt mer ljuskygga organisationer gör samma sak för att kartlägga våra vanor och informationsmönster i olika syften. Och även om våra e-mail inte innehåller några hemligheter så är de privata och endast för mottagarens ögon.

Så för att skydda information och se till att endast rätt personer kan läsa den får man ta till kryptering. Dock så lider kryptering av ett stort problem nämligen; hur tusan ska man kunna överföra nyckeln som låser upp informationen till mottagaren på ett säkert sätt?
Lösningen är att man skapar ett system med två nycklar där den ena används för att kryptera informationen och den andra för att dekryptera den, istället för en som används till båda sakerna. Nyckeln som används för kryptering kan spridas till vem som helst medan nyckeln för dekryptering behålls hemlig.

Så vad gör GPG?

Krypterar information. Bland annat…
Det längre svaret är att GPG är ett såkallat hybridsystem som krypterar informationen med en slumpmässigt skapad symmetrisk nyckel (alltså en nyckel som både krypterar och dekrypterar), denna slumpmässiga nyckel krypteras sedan med mottagarens publika nyckel och läggs till som ett huvud till informationen. Mottagaren kan sedan dekryptera den slumpmässiga nyckeln och därefter dekryptera resten av informationen.
Varför gör man det då så komplicerat?
Jo, systemen som utnyttjar två nycklar är extremt långsamma jämfört med systemen med en nyckel (sist jag såg siffror på det handlade det om tiopotenser i skillnad). Men problemet med systemen med en nyckel är just hur man överför nyckeln till mottagaren.

Vidare så ger tvånyckelsystemen en annan fördel; man kan skapa digitala signaturer med dem. Grundteorin här är att man istället för att kryptera informationen med mottagarens publika nyckel så krypterar man med sin egna privata nyckel. Detta får till följd att alla (som har personens publika nyckel) kan dekryptera informationen och på så vis konstatera att någon med tillgång till den privata nyckeln är den som är avsändare av meddelandet.

Jaja, så var får jag tag på GPG?

Man hoppeliskuttar till http://www.gnupg.org/, klickar på download och scrollar lite.

Hur skapar jag en nyckel?

Det är nu det kommer börja bli rörigt, eftersom det skiljer sig en del åt för olika plattformar men jag tänker göra ett försök…
Kommandorad (*nix, men troligen de andra också)
Den mest rakt på metoden, inget fancy och lull-lull. Dock kanske skrämmande för en del.
1. Öppna en kommandotolk på valfritt sätt.
2. Om gpg finns i din sökväg behöver du inte göra något, annars får du ta dig till rätt katalog.
3. Skriv följande:

gpg --gen-key [enter]

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)

Den eviga frågan är här vilken man ska välja, val 1 och 2 är jämförbara säkerhetsmässigt (det finns några quirks med val 2, men de är inte direkt allvarliga) och det finns prestandamässiga skillnader mellan dem i olika fall. Val 1 är dock standard så man kan lika väl köra på det. Den som är intresserad kan alltid googla ”gpg rsa vs. elgamal” och fundera själv ;)

1[enter]

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

1024 bitar räcker troligen om man vill vara säker, 2048 räcker definitivt, men med dagens processorer finns ingen anledning att inte köra på max.

4096[enter]

Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
n = key expires in n days
nw = key expires in n weeks
nm = key expires in n months
ny = key expires in n years
Key is valid for? (0)

Här finns lite olika skolor hur man bör/kan tänka. Värt att notera är att nyckeln inte slutar fungera helt när den gått ut, man kan dekryptera saker och man kan verifiera signaturer med en utgången nyckel. Man kan dock inte signera eller kryptera med en utgången nyckel.
Mitt upplägg är att jag har en ”huvudnyckel” som inte går ut, som används för att signera andra nycklar (mer om det senare), med ett antal subnycklar (kommer nog mer om det också) som har en livslängd på ett år.

0[enter]

Key does not expire at all
Is this correct? (y/N)


y[enter]

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
”Heinrich Heine (Der Dichter) ”


Real name: otyg test [enter]
Email address: otyg@gallowsground.lan [enter]
Comment: Testkey [enter]

You selected this USER-ID:
”otyg test (Testkey) ”

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?


O[enter]

You need a Passphrase to protect your secret key.

Se till att skapa en bra lösenfras, som du kan komma ihåg… Och spara den nånstans säkert!
Tappar du bort den så är det kört, det finns INGET sätt (för oss dödliga, och troligen inte för de odödliga heller) att knäcka nycklarna så tappas lösenfrasen bort så är nycklarna oanvändbara (eller ja, den publika kan användas…).
Efter lösenfrasen skapas nyckeln, och till det behövs en massa slump så programmet kommer be dig skriva på tangentbordet och annat för att den ska kunna samla tillräckligt med underlag till slumpgeneratorn. Därefter är nycklarna klara att användas.

Jag kommer återkomma hur man gör ovanstående i gui-varianterna (gpg4win främst eftersom jag inte har tillgång till nån Apple-maskin) när jag riggat miljö för det.

Vad gör jag med mina nycklar nu då?

Den hemliga skyddar du med ditt liv och ser till att ta backup på, filen heter secring men man kan exportera en specifik hemlig nyckel också på ungefär samma sätt som med den publika nyckeln vilket jag kommer gå igenom nedan.

Den publika sprider du antingen helt öppet eller till specifika personer, helt beroende på tycke och smak.
Att sprida den publika nyckeln fritt för vinden är löjligt enkelt, man skickar upp den till en s.k. nyckelserver (det finns en drös och majoriteten av dem synkar mellan varandra). Såhär går man tillväga för att skicka nycklarna till en server:

gpg --send-keys [nyckel-id]

Nyckel-id visades när du skapade din nyckel, men kan även tas fram med kommandot gpg –list-key som genererar nåt liknande det nedan:

pub 2048R/1EC847E0 2011-08-21
uid otyg [otyg@gallowsground.lan]

I ovanstående fall är nyckel-id 1EC847E0 eller 0x1EC847E0.

Om man nu av en eller annan anledning inte vill sprida sin nyckel till vemsomhelst så kan man exportera den till en fil som kan skickas till personen (såhär kan man även exportera sina privata nycklar) på följande sätt

gpg -a --export [nyckel-id] > [filnamn]

Flaggan a gör att saker trillar ut som ASCII och därmed kan skickas på valfritt sätt utan problem.
Det som trillar ut är något i stil med

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v1.4.11 (GNU/Linux)

mQSuBFLgyIsRDADT0Xa9fYM+GGRLenwJC8b6OwhCnEh6coqsLrWi+MRbNWRQqLvF
(…)
7K3vIpoIqTnh1M/4kCxjfQ==
=OF6I
—–END PGP PUBLIC KEY BLOCK—–

Hur kryptera/dekryptera/signera/kontrollera signatur?

Återigen så blir det kommandorad, och det blir att hantera filer på disk (gpg4win gör att man kan högerklicka och kryptera/dekryptera/signera/kontrollera en fil vet jag).
För att kryptera en fil är något av kommandona

gpg -e -r [mottagare] [fil]
gpg -ae -r [mottagare] [fil]

som gäller. Det senare ger en ASCII-fil medan det förra ger en binärfil som kan ställa till problem vid överföring.
För att signera en fil gör man något av följande

gpg -[a]s [fil]
gpg --clearsign [fil]
gpg --detach-sign [fil]

och uppger sin lösenfras. Den första ger en binär signatur av filen, om inte a-flaggan tas med, den andra ger en ascii-signatur av filen och den tredje ger ett separat ”certifikat” för filen. Dom mer tekniska skillnaderna mellan varianterna lämnar jag till den intresserade läsaren att utforska. Generellt så använder jag clearsign när jag bara signerar och -[a]es när jag krypterar och signerar.

För att dekryptera eller kontrollera en fil skriver man bara

gpg [filnamn.ändelse].{asc,sig,gpg}

Är den krypterad kommer du få frågan om din lösenfras, är den signerad kommer det visas av vem den är signerad och i båda fallen kommer en ny fil skapas som saknar ”extraändelsen”.

…mottagarens nyckel?

Hur får man då tag på en mottagares nyckel?
Precis som i fallet med att sprida sin egen nyckel kan man antingen plocka den från en exporterad fil som man har fått från personen, eller genom att hämta den från en nyckelserver.
Har man fått den exporterade nyckeln i en fil är operationen enkel.

gpg --import [filnamn]

För att hämta nycklarna från en nyckelserver kör man följande

gpg --recv-key [nyckel-id] --keyserver [nyckelserver]

För att hitta en persons nyckel kan man köra kommandot

gpg --search-keys [namn email] --keyserver [nyckelserver]

som även importerar den.
Slutligen så kan man importera den direkt från en url med kommandot

gpg --fetch-keys [url]

Men hur fasen vet jag att det är person Xs nyckel jag har?

Det korta svaret är: det vet du inte om du har hämtat den från en nyckelserver, e-mail eller url.
Men för att kunna avgöra ifall man kan lita på att en nyckel kommer från den person som man tror att den tillhör så kan andra personer signera en nyckel, och om tillräckligt många personer som du litar på bevisligen har signerat en nyckel så kan man anta att den nyckeln tillhör en person de litar på.
Ett exempel som tillämpar en annan modell är SSL-certifikaten som man använder när man surfar säkert, dessa är hierarkiskt signerade av en rot-auktoritet som säger att den litar på utfärdarna av certifikaten som säger att de litar på de som vill ha sina certifikat signerade.
Tillitsmodellen i gpg är decentraliserad och du väljer själv ifall du litar på en publik nyckel eller ej, och du väljer själv att berätta för omvärlden att du litar på en nyckel eller ej. Om man litar på att en nyckel kommer från den som den verkar komma ifrån så signerar man den, exporterar och skickar till ägaren av nyckeln (som sedan väljer ifall den vill publicera den signerade nyckeln eller ej). På detta sättet byggs ett nät av tillit upp runt en nyckel, dock så är många signaturer på en nyckel inte samma sak som att nyckeln är att lita på.
Tanken är snarare att man ska kunna hitta en kedja från en okänd nyckel till en person som man litar på, den där six degree of separation-grejen.
Så hur signerar man en nyckel då? Såhär:

gpg --sign-key [nyckel-id]
gpg -a --export [nyckel-id]

Den sista är bara om man vill skicka den till ägaren till nyckeln så att hän vet att ytterligare en person litar på nyckeln.

Check… Låter jobbigt… Kan man göra det roligt?

Jadå, man kan dra ihop en nyckelsigneringsfest och beroende på antalet deltagare kan man göra det hur jobbigt (och roligt) som helst. Grundbulten här är att alla ska kunna identifieras och kunna kopplas med deras nyckel-id och nyckel-fingeravtryck, sen kan man antingen på plats signera varandras nycklar eller göra det i hemmets lugna vrå.
För mer info och idéer hur det ska gå till; se dessa sidor!

Ok, fint. Men hur får jag skiten att funka med min mejlklient/gmail/whatever?

Det är här det riktigt jobbiga börjar. Det finns plugins till de flesta mejlklienter som är mer eller mindre användarvänliga, till Thunderbird (och derivat) rekommenderar jag EnigMail, gpg4win tror jag har en del plugins eller integrationer till Outlook och windows mail, men det enklaste är att googla.
Kör man webmail som gmail eller hotmail så får man leta reda på plugins till webbläsaren som kan sköta operationerna via klipp-klistra, WebPG är ett sådant plugin till Firefox och Chrome(/ium) som jag har använt med skiftande resultat.
Fattigmansversionen är att skriva det man vill i lämplig editor, kryptera/signera till ascii-armoured och klippa ut och klistra in manuellt.

Das Ände

Helt ärligt så är jag inte särskilt nöjd med ovanstående textvägg, men jag hoppas att någon någonstans kommer finna den användbar på ett eller annat sätt.
För den som vill hitta åt min gpg-nyckel så finns den här.

Vi och dom

2011/02/11

Det är rätt spännande att man i de upplysta västerländska demokratierna kritiserar diktaturer för att övervaka och blockera informationsflöden, och är ganska kvicka till att rikta kritik när det kommer fram att inhemska företag har sålt utrustning för dessa ändamål till nyss nämnda diktaturer när man själv beställer samma utrustning av samma tillverkare…

Det är också rätt spännande att man kommer på att man ska stödja de personerna i diktaturerna som kringgår nyss nämnda utrustning på olika sätt, när man på hemmaplan mer eller mindre öppet kritiserar folk som använder samma metoder i det fria västerlandet, utan att för en sekund tänka på att utan de i det fria västerlandet som använder dessa metoder så hade personerna i diktaturerna inte kunna undgå övervakningen.

Och jag är väldigt nyfiken, nu när vi ska stödja dessa som kringgår filter och övervakning, vilka garantier finns det för att deras trafik till bryggnoden och från utgångsnoder (i det svarta nätet) inte kartläggs och säljs vidare för att tillslut hamna hos diktaturen igen (i mer eller mindre identifierbart skick)?

…och betänk; det är grova brottslingar och (antagligen) terrorister ur diktaturernas synvinkel som använder dessa metoder…

Funderingar kring One Time Pad

2010/05/15

Jag tänkte egentligen skriva några ord om Säpo-härvan, men jag drabbades av skrivkramp eftersom det var andra tankar som bestämde sig för att annektera skrivdelen av min hjärna.

Det som mest har legat och gnagt är lite funderingar om användningen av kryptering när man kommunicera över internet, denna biten har jag inte direkt några synpunkter på (tvärtom). Det som har legat och gnagt var en diskussion jag blev involverad i om att använda One Time Pads för krypteringen, något jag personligen anser vara meningslöst och dessutom mycket riskfyllt.

One Time Pad är ett extremt enkelt krypto, egentligen så handlar det om att man adderar klartext till nyckelmaterialet.
Problemet med One Time Pad ligger inte i själva algoritmen utan i nyckeln, för att ett chiffer ska kunna kallas One Time Pad är det några saker som måste uppfyllas och dessa är:
1. Nyckeln måste vara av samma längd som klartexten
2. Nyckeln måste vara slumpmässig
3. Nyckeln måste överföras till motparten på ett säkert sätt
4. Nyckeln måste förstöras och aldrig återanvändas

Om ovanstående fyra kriterier uppfylls så är ett dokument krypterat med en OTP matematiskt oknäckbart eftersom en icke slumpmässig datamängd adderad till en slumpmässig datamängd av samma storlek ger ett slumpmässigt resultat.
Kryptotexten ger inga ledtrådar om innehållet som man kan upptäcka på statistisk väg och försök med varje möjlig nyckel kommer ge som resultat att man får samtliga klartexter av samma längd.

Om man tittar på de fyra punkterna ovan så är det punkt två och tre som ställer till problem.

För att chiffret ska räknas som ett OTP krävs det att nyckeln är sant slumpmässig, utnyttjas mjukvarubaserade slumptalsgeneratorer så får man inte äkta slumptal. Det finns mjukvarubaserade slumptalsgeneratorer som anses som kryptografiskt säkra (d.v.s. det är i princip omöjligt att utifrån föregående slumptal förutse kommande).
Utan att föra en lång diskussion om slumptalsgeneratorer så kan man konstatera att ifall en mjukvaruslumptalsgenerator används för att skapa nyckeln så är det inte ett OTP och därmed är beviset för oknäckbarhet upphävt.
Förmågan att motstå angrepp ligger hos slumptalsgeneratorn; knäcks den så att ett angripare kan förutse och återskapa slumptalen så har han knäckt chiffret.

Nästa problem är egentligen det riktigt stora, ovanstående är av mer akademisk karaktär; att överföra nyckeln på ett säkert sätt. Detta hänger ihop med att nyckeln måste vara lika lång som det överförda meddelandet; man måste överföra stora mängder nyckeldata via en säker kanal. Säker kanal i detta fallet är i princip att överlämna en dvd-skiva eller ett usb-minne med nyckeln på till mottagaren, antingen ansikte mot ansikte eller via en betrodd kurir.
I diskussionen jag deltog i menade en av deltagarna att man kan skicka nyckeln i krypterad form (t.ex. med gnupg eller liknande) till mottagaren, jag menar att det tillvägagångssättet är förkastligt.

Om man använder OTP så gör man det för att man inte litar på att andra krypteringsmetoder är tillräckligt säkra, man behöver garanterad oknäckbarhet. Att då skicka nyckeln (som antagligen är åtskilliga hundra megabyte eller gigabyte för att minska antalet nyckeltransporter) under ett skydd som är sämre än det man vill uppnå är bara korkat. Då kan man lika gärna använda den ”sämre” krypteringen redan från början.

Summasummarum; Att använda OTP vid kommunikation är sannolikt en dålig idé.
För det första så är nyckelhanteringen ett stort problem då man dels måste skapa stora mängder slumptal och dels för att dessa ska överföras till mottagaren på ett säkert sätt.
För det andra så finns det en risk att man invaggar sig själv i en falsk känsla av trygghet då det är svårt att skapa äkta slumptal och det är svårt att skapa dem i stora mängder. Är inte nyckelmaterialet sant slumpmässigt så har man inte garanterad oknäckbarhet.

Jag kan dock se vissa användningsområden för OTP, och det skulle vara för överföring av sessionsnycklar till andra krypteringssystem.
Det blir gnupg (etc.) på steroider. De flesta system som bygger på kryptering med öppna nycklar funkar som så att man krypterar data med en symmetrisk algoritm (ex. AES) och en för meddelandet unik nyckel. Nyckeln krypteras sedan med mottagarens offentliga nyckel och bifogas meddelandet.
I detta fallet kan en angripare välja att antingen angripa den symmetriska delen med meddelandet eller den asymmetriska som innehåller nyckeln. Det är alltså två skilda algoritmer som man måste lita på att de är tillräckligt säkra.
Ersätter man den asymmetriska delen med otp så har man eliminerat den ena riskfaktorn, men skyddet är fortfarande inte starkare än den symmetriska algoritmen.

Nackdelen är dock att man förlorar hela poängen med att använda kryptering med öppen nyckel, men för personer som har möjlighet att träffa varandra fysiskt nångång ibland och som behöver kommunicera säkert över ett osäkert medium så kan detta vara en fungerande lösning…

Vissa ord ska inte användas tillsammans med andra

2009/09/23

Läser i NyTeknik att Tetra-algoritmen ska göra så att Rakel-systemet blir svårt att avlyssna… Eller för att citera företaget Sectras andra VD Jan-Olof Brüer:
”Med vårt system kommer det bli totalt omöjligt att avlyssna samtal”.

Jag kan inte uttala mig om säkerheten hos Tetra av flera anledningar, för det första så har jag inte källkod eller annan dokumentation som jag kan titta på och för det andra så är jag antagligen inte tillräckligt skicklig för att upptäcka eventuella brister även om jag hade haft tillgång till dessa dokument.

Vad jag däremot vill påpeka är att det finns inget som heter absolut säkerhet i kryptovärlden (ett undantag, men Tetra är inte det undantaget jag lovar). Alltså kan man inte säga att det kommer bli totalt omöjligt att avlyssna samtalen!

Antagligen är uttalandet sant, i alla fall just nu. Frågan är om det är sant om två år, det vet man inte eftersom det kan upptäckas brister i algoritmen eller i implementeringen. Hursomhelst så tycker jag rent personligen att uttalandet inte var särskilt smart utan snarare gjorde att hela systemet känns som snake-oil (eftersom sådana uttalanden brukar förekomma i reklam för sådana system).

Men det är väl jag som är överkänslig…

Hur AES fungerar

2009/09/22

Via bloggen Kryptera hittade jag denna underhållande ”serie” om historien om AES och hur AES fungerar under huven.

De flesta borde kunna hänga med i alla fall till ”Act2 – Crypto Basics” men även fortsättningen är riktigt intressant läsning för den som är nyfiken på hur en ”riktigt” krypteringsalgoritm kan se ut i verkligheten.

Håll till godo!

Ser även hos herr Schneier att man lyckats faktorisera talet 15 med en kvantdator.
Nu kanske faktorisering av talet 15 är speciellt svårt (3×5), men att man har lyckats göra det med en kvantdator är ett viktigt steg för forskningen inom området.
Men ännu är det lång tid kvar innan det är ett riktigt hot mot våra nuvarande krypteringsalgoritmer.

Intressant

Världens snabbaste usb-kryptering, eller bara kreativitet?

2009/09/01

Jag kan verkligen inte låta bli att kommentera lanseringen av vad som uppges vara världens snabbaste USB-minne med kryptering från det svenska företaget Blockmaster.

Blockmaster har låtit testa sitt Safestick Supersonic genom dels vanliga kopieringsfunktioner, H2testw och ATTO benchmark och jämfört resultaten med tre andra konkurrerande krypterade USB-minnen.
Safestick Supersonic avgick med segern i fem av sju tester (vad jag kunde utläsa) och vann totalt sett.

Nu nyfiken som man är vill man ju veta vilka de konkurrerande minnena var, men det går inte att utläsa ur testet på grund av rättighetsskäl (trademark reasons). Faktum är att man i princip inte får veta någonting om de konkurrerande minnena förutom följande:

Selected competitors for reference are secure USB flash drives (defined by one locked storage partition)ranging from high-end to low-end with varying security measures and overall quality.

Redan här tappar testet rejält med mark, nästa sak som definitivt slår spiken i kistan är att testet är utfört av Blockmaster själva.
En snabbkoll ger att det finns i alla fall sju tillverkare av krypterade USB-minnen, förutom Blockmaster, men i testet som utsåg Blockmasters till ”världens snabbaste” testades bara tre minnen från konkurrenter. Är man konspiratoriskt lagd så testades alla konkurrerande alternativ, men bara de som var sämre överlag togs med i jämförelsen (nu tror jag inte att det är så).

För att summera upp det hela; Blockmasters reklamtext om att deras Safestick Supersonic är världens snabbaste krypterade USB-minne är just reklam, och jämförelsen som reklamtexten bygger på är i mina ögon inte vatten värd.

Ett test som inte kan reproduceras i sin helhet är skitsnack. Jag hoppas att Blockmaster inser detta och antingen tar tillbaka uttalandet, eller släpper detaljerna i testet.

Intressant

(EDIT: Skickligt av mig att glömma att länka till artikeln hos idg.)

Att avlyssna Skype och GSM

2009/08/29

Internettelefoniprogrammet Skype sägs vara mycket svårt att avlyssna, till skillnad från vanliga telefoner, pågrund av inbyggd kryptering. Exakt hur stark krypteringen är råder det lite delade meningar om eftersom Skype bygger på sluten källkod.
Det har gjorts oberoende tester av säkerheten i Skype som pekar åt att säkerheten är tillräckligt hög.
Jag är dock lite skeptisk till ryktena om att både NSA och tyska myndigheter har problem med Skype, mest för att de går ut med det offentligt.

I vilket fall som helst finns det nu en väg att avlyssna Skype-samtal. Jag vill dock inte påstå att denna metoden är någon nyhet, att man kan avlyssna skyddade förbindelser genom att angripa ändpunkterna är något som praktiserats så länge skyddade förbindelser har använts i princip.

En sånhär trojan skulle med ganska enkla medel kunna användas för att avlyssna godtyckligt program för ljudöverföring (t.ex. Ventrilo) eftersom man istället för att programmera mot programmet man vill avlyssna programmera mot operativsystemets ljudsystem direkt. Det vill säga att man inte avlyssnar Skype eller Ventrilo utan man avlyssnar det som kommer in genom mikrofoningången och det som kommer ut ur högtalarutgången.
Efter ett sådant ingrepp skulle trojanen kunna användas för att avlyssna vilka ljud som helst som fångas upp av datorns mikrofon.

Mot denna typ av angrepp hjälper inte kryptering eftersom angreppet sker före kryptering och efter dekryptering. Frågan är hur man ska skydda sig mot ett ev. angrepp?
En variant skulle vara att man kör Skype från en dator som startas och körs från en live-skiva en annan skulle vara att man bygger ett system där krypteringen sköts i hårdvara istället för i mjukvara (problemen med det upplägget kan nog de flesta inse).

Hursomhelst så kan jag tipsa om ett litet program som jag själv använt vid några tillfällen för att spela in konversationer över Skype; nämligen MP3 Skype Recorder. Ganska praktiskt att ha om man behöver ta anteckningar från en konversation eller liknande.

Juristen skriver lite om Skype-trojanen.

På samma linje finns det nu ett Open Sourceprojekt för att knäcka krypteringen i GSM-telefoner(A5). A5 har varit knäckt under lång tid, här finns en postning från 1994 om a5/1 (tror jag) och om dess säkerhetsbrister där den största är att den effektiva nyckellängden är som mest 40bitar (fem tecken).
Tekniken som används för att knäcka GSM i opensourceprojektet är en vidareutveckling av konceptet som tyskarna i THC plockade fram under 2008 och bygger på rainbowtables.
För en mer eller mindre full lista över attacker mot A5 hänvisas till engelska Wikipedias artikel, där man även kan läsa om hur algoritmen fungerar. En intressant detalj i hela historien är att A5/2 är svagare än föregångaren A5/1 pågrund av exportrestriktioner.
Kryptoblog har en intressant artikel om säkerheten både i GSM och UTMS.
Kryptera.se skriver också om det aktuella projektet.

Intressant

Analogt lås på digitalt minne

2009/08/19

Via NyTeknik hittade jag fram till ett sött litet ”hänglås” till usb-minnen.
Tanken med låset är att man ska ersätta den vanliga ”huven” över usb-kontakten med låset så att någon som inte kan kombinationen hindras från att stoppa in minnet i en dator. Ganska smart tanke, men jag tycker att tillverkaren överdriver säkerheten som erbjuds en aning:

Flash drive padlocks secure your data. A must-have for every office computer user, especially civil servants! This simple but effective device secures to the end of any standard USB memory stick. So if the stick falls into the wrong hands, your files and personal data will be protected by your own secret 3-digit code.

Jag vill mer påstå att låset skyddar mot nyfikna ögon, ungefär som låsen som brukar sitta på portföljer.
Ett tresiffrigt kombinationslås erbjuder ingen större säkerhet egentligen, några timmar ensam med låset borde räcka för att knäcka det för hand. Och när väl kombinationen är knäckt finns det inget som säger att någon har knäckt den.

Än värre är det om minnet stjäls, då erbjuder låset ur min synvinkel inget skydd alls. Om personen som stjäl minnet är ute efter den lagrade datan på minnet, så är det sannolikt enklare att antingen angripa låset med våld (såga upp det till exempel) eller så struntar man helt och hållet i låset och öppnar upp själva minnespinnen. Sen handlar det om flinka fingrar, en lödkolv och några sladdar så är problemet löst.
Görs detta snyggt så kan man sedan återlämna minnet utan att ägaren märker att någon läst av det.

Summa summarum; mot nyfikna ögon och som lite rolig pryl funkar detta låset bra. Jag skulle tillochmed kunna tänka mig att köpa ett bara för att det är lite kul att ha.
Mot angrepp från personer som verkligen vill komma åt innehållet på minnespinnen är detta låset i stort sett meningslöst. Det enda som skyddar då är ifall datat är krypterat och eventuella säkerhetsfinesser i själva minnespinnen. Finns några exempel på säkra minnespinnar som är väldigt svåra att manipulera utan att förstöra innehållet i minnet.

(Intressant)

Misstänkt beteende och misstänkta filer

2009/08/04

Fritänk hade en bloggdiskussion med Mark Klamberg om effektiviteten i övervakningslagarna i allmänhet och FRA-lagen i synnerhet. En sammanfattning av diskussionen finns här.

Nu ska jag inte gå in på det som diskuterades direkt, utan jag tänkte rikta in mig på en sak som kom upp i någon av kommentartrådarna. Det som kom upp var Tullens möjlighet i vissa länder (USA har det implementerat vad jag vet, och det finns signaler som tyder på att det kommer bli aktuellt i EU också) att genomsöka datorer och lagringsmedia.

En dator idag ger i princip tillgång till en människas hela liv, vi lagrar mejl (både privata och ”officiella”), bilder, kalendrar, dagböcker och jag vet inte allt som tidigare har varit saker som man förvarat i fickan och i skrivbordslådor. Många av dessa sakerna är sådant man vill behålla för sig själv eller inom en starkt begränsad krets, inte för att de är hemliga utan för att de är privata.

Till de privata delarna kan man lägga affärsmässiga handlingar, sådant som rör ens arbete. Bland dessa uppgifterna kan finnas sådant som är hemligt (offerter, ritningar etc), men det kan även finnas saker som inte är direkt hemliga samtidigt som de inte är ”allmän egendom” som tillexempel adressregister och liknande.

Jag har funderat en del över vad syftet med att ge tullen möjlighet att gå igenom en dator vid en gränspassage egentligen är. Vi har det vanliga tjafset om barnporr och terrorister, men jag tror inte på det (som vanligt). Alla som någon gång har letat efter en försvunnen fil på sin dator vet hur frustrerande det är, men många gånger kan man gissa på filnamn, filändelsen brukar man ha klart för sig och många gånger kan man begränsa sökningen till filer inom ett visst tidsspektrum.
Hur ska man som Tullare kunna hitta barnporr i en laptop på en flygplats? Jag kan bara komma på lösningen att manuellt gå igenom alla bild- och filmfiler på datorn. Sen tillkommer det att bilderna kan ligga inbäddade i dokument eller mejl, alltså får man gå igenom dem också.
Detsamma kan sägas om terroristplaner och annat. Uppgiften är i princip omöjlig från början om man inte har tid och resurserna till det. Tid har man inte eftersom ett genomsök ska gå snabbt, alternativet är att beslagta datorn och släppa resenären eller att göra en diskavbild och gå igenom den senare. Ingen av varianterna är bra eftersom resenären då kan försvinna (personen kan ha rest med falskt pass t.ex.).

Om vi istället antar att hårddisken, och eventuella andra lagringsmedier, är krypterade. Hur kommer tullen då att agera?
Det naturliga är att man begär att få krypteringsnyckeln, men vad händer om resenären vägrar uppge den av en eller annan anledning? Faktum är att det kan vara så att resenären inte kan uppge krypteringsnyckeln.
Redan själva handlingen att kryptera disken kan ses som misstänkt, att man sedan inte kan berätta hur man låser upp krypteringen stärker misstanken väsentligt. Personen i fråga har uppenbarligen något att dölja, och det han döljer är av sådan art att han inte vill att någon ska se det.

Frågan är om det antagandet är sant.
Att kryptera hårddisken på en bärbar dator ser jag som en sund inställning eftersom bärbara datorer är stöldbegärliga och, som sagts ovan, så innehåller våra datorer våra privatliv och ibland direkt farliga uppgifter. Genom att kryptera disken har man i alla fall försökt skydda dessa sakerna ifall datorn blir stulen. I det optimala fallet försvinner datorn, men informationen kommer inte i orätta händer.
Att vägra dekryptera disken för att någon utomstående vill det ser jag också som en vettig inställning, man vill inte att någon utomstående ska gå igenom ens liv.
Detta kan jämföras med hur kränkande många upplever det att få sin post öppnad eller sin dagbok läst av utomstående personer.
En annan anledning till vägran kan vara att man har affärskritiska data eller hemliga uppgifter på datorn och man vill inte ta risken att dessa kommer på vift efter en genomsökning.

I en del fall kan jag dessutom se att man vägrar därför att det man har på datorn kan leda till misstankar, även om materialet inte är olagligt.
Om man tar min laptop som exempel så finns där verktyg för att kommunicera anonymt (TORoch Mixmaster), verktyg för att genomföra portscanningar och identifiera körande tjänster, verktyg för att identifiera operativsystem (aktivt och passivt) över nätverk och ett antal verktyg för att leta efter sårbarheter och i vissa fall utnyttja dem.
Bara genom att titta igenom programlistan så kan man snabbt konstatera att jag är en rejält skum typ som begår it-relaterade brott, mest för att jag har verktyg för att bryta mig in i datorer och förmåga att kommunicera anonymt.

Återigen är frågan om detta antagandet är sant. Det kan vara så att jag arbetar som säkerhetskonsult och endast använder verktygen mot företag som anlitar mig för att testa sin säkerhet, det kan även vara så att jag använder verktygen för att testa min egen it-säkerhet rent privat. Oavsett fall så finns det inget som säger att verktygen används i brottsliga syften. Men en person som går igenom min dator kan aldrig konstatera detta endast genom att titta på vad jag har på disken, däremot kan personen dra en personlig slutsats och agera efter den. Nu vet jag inte hur rättsläget ser ut på denna punkten i Sverige, men jag skulle gissa att man utifrån verktygen i alla fall skulle kunna göra en anmälan om förberedelse till dataintrång.

Jag ställer återigen frågan; vad är syftet med att ge tullen möjlighet att genomsöka datorer?
Vilka risker finns det för oss som anser att vi inte vill släppa iväg personlig information hursomhelst?
Vilka risker finns det med själva genomsökningen?
Hur effektivt antar man att det är?
Finns naturligtvis fler frågor man kan ställa, men min uppfattning är rätt klar. Ett genomsök av en dator, utan brottsmisstanke, kommer skapa fler problem än det löser.
Det är en skillnad mellan att polisen knackar på dörren efter ett tips och beslagtar datorn och att tullen gör det vid en gränspassage för att man inte kan uppge krypteringsnyckeln till disken. Frågan är också vilka resurser man kan lägga på att genomsöka disken, även om den är okrypterad.

Intressant

Hur man slipper få sin laptop genomsökt av tullen

2009/07/18

I USA är det tydligen mer regel än undantag att resenärer får sina bärbara datorer genomsökta av tullen när de passerar gränsen (jag vet inte hur utbrett detta är, men det förekommer tydligen). Sannolikt kommer vi även få se detta i Europa inom en ganska snar framtid (finns vissa uppgifter som tyder på att detta är ett av förslagen i ACTA-förhandlingarna).

Jag är emot denna utvecklingen av flera skäl, men det tyngst vägande är dels risken att hemliga dokument kommer på vift och dels att en laptop kan innehålla en persons hela privatliv i form av bilder, mejl och adresser. Det krävs, i vanliga fall, ganska starka skäl för att en myndighet ska få tillgång till detta. Hursomhelst, det finns flera skäl till att kryptera hårddisken i en laptop.

Hur kan man då skydda sin laptop från att genomsökas av tullen, enbart disk-kryptering hjälper knappast eftersom du sannolikt kommer bli tillfrågad om krypteringsnyckeln. Och att hävda att man glömt den nyckeln är knappast en bra utväg i detta fallet eftersom nyckeln som krävs för att ens starta datorn antagligen är något som man ser till att inte glömma.

Bruce Schneier har en bloggpostning med en lösning, som dock medför vissa risker, där nyckeln som hårddisken krypteras med inte är känd av resenären.

Metoden bygger på sex steg som jag går igenom nedan.
1: Innan du lämnar huset så lägger du till en krypteringsnyckel till i hårddiskkrypteringssystemet och denna nyckeln ska vara lång och slumpmässig.
(Antagligen innebär detta att du lägger till en ny användare.)
I detta steget bör du skriva ned den nya nyckeln, men lägg den inte på minnet.

2: Skicka över den nya nyckeln till någon som du litar på på valfritt sätt. Se även till att nyckeln verkligen kommer fram och att den kommer fram i oförändrad form.

3: Förstör alla spår av den nya nyckeln som du har.

4: Gör det du brukar göra med datorn under resan.

5: Innan du passerar Tullen, radera den användaren (nyckeln) som du vanligen använder för att avkryptera hårddisken.
Detta innebär att du inte kommer kunna starta datorn eftersom du inte har rätt dekrypteringsnyckel (den enda nyckeln som kan avkryptera disken är den du skapade i punkt ett). Detta innebär att du inte behöver ljuga för tulltjänstemannen (förutsatt att du inte memorerade den nya nyckeln) om du ombeds uppge krypteringsnyckeln.

6: När du kommit igenom tullen är det bara att kontakta din vän, knappa in nyckeln och återigen lägga till den nyckeln du brukar använda.

Detta system innebär att du ensam inte kan dekryptera din hårddisk även om du uppmanas att göra det, det finns några risker med detta systemet dock. Först och främst så finns risken att den nya nyckeln korrumperas, och inte fungerar och då sitter man där med skägget i brevlådan.
En annan risk som man tar är att man hamnar i juridiskt trubbel eftersom man inte kan avkryptera disken, frågan är hur stor den chansen egentligen är. Man kan inte bortse från möjligheten att man kvarhålls eller att datorn beslagtas vid denna manövern, eftersom det kan ses som misstänkt att man själv inte har nyckeln till datorn man bär på.