Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
August » 2008 » Kryptoblog

Archive for August, 2008

Vad kommer efter FRA-lagen?

August 31st, 2008

Det kan inte vara roligt för regeringen, eller vara FRA-förespråkare i alliansen; varje dag är det något nytt problem som dyker upp kopplat till FRA-lagen. I dag var det Norge, där det enligt Ekot är stor debatt om den Svenska FRA-lagen. Problemet är att mycket av den Norska internationella kommunikationen går via Sverige och därmed blir lovligt byte för FRA. Oppositionen i Norge kräver nu att Norska regeringen pratar med den Svenska regeringen. Motsvarande diskussion förekommer även i Finland.

Jag skulle inte bli förvånad om någon från Svenska regeringen uttalar något i stil med att det naturligtvis inte är Norge eller Finland som är intressanta för FRA att lyssna på. Men oavsett vem det är som man är intresserad av måste man vara extremt blind, döv och fast i vinkelvolten för att inte ha noterat att FRA-lagen är på gång. Och frågan är vad lede fi gör då.

I det här sammanhanget känns det väldigt relevant att läsa en artikel i NY Times om hur kommunikation i allt högre grad går runt USA:


During the network’s first three decades, most Internet traffic flowed through the United States. In many cases, data sent between two locations within a given country also passed through the United States.

Engineers who help run the Internet said that it would have been impossible for the United States to maintain its hegemony over the long run because of the very nature of the Internet; it has no central point of control.

And now, the balance of power is shifting. Data is increasingly flowing around the United States, which may have intelligence — and conceivably military — consequences.

American intelligence officials have warned about this shift. “Because of the nature of global telecommunications, we are playing with a tremendous home-field advantage, and we need to exploit that edge,” Michael V. Hayden, the director of the Central Intelligence Agency, testified before the Senate Judiciary Committee in 2006. “We also need to protect that edge, and we need to protect those who provide it to us.”

Indeed, Internet industry executives and government officials have acknowledged that Internet traffic passing through the switching equipment of companies based in the United States has proved a distinct advantage for American intelligence agencies. In December 2005, The New York Times reported that the National Security Agency had established a program with the cooperation of American telecommunications firms that included the interception of foreign Internet communications.

På Internet routar man runt problemen, även om problemet råkar vara USA. Att routa runt Sverige är i alla fall på lite sikt inte speciellt svårt. Det kostar pengar och kräver en del kompetens (vilket man kan köpa för pengar).

Nu börjar vi närma oss pudelns kärna: Vad händer när FRA-lagen spelat ut sin roll?

FRA har fått igenom förändrad lagstiftning i Sverige. Vidare har man fått specialanslag för anskaffning av utrustning. Det kommer även att behövas extra pengar för uppbyggnad av samverkanspunkter och kommunikation från samverkanspunkter till FRA:s lokaler. Lokaler som man vill rusta upp för att kunna växa som organisation. Allt detta borde rimligtvis ställa lite krav på motprestationer.

FRA pratar själv om Rapportproduktion, dvs man producerar något som levereras till sina kunder. Om (när) råvarutillgången försvinner torde FRA få svårt att leverera rapporter, detta trots allt FRA har fått sig tilldelat. Som före detta FRA-medarbetaren Peter Englund uttryckte det:


Faran är att det blir som att tömma en hel sjö för att fiska kräftor, men bara för att upptäcka att där enbart fanns gös.

Sedan tidigare har FRA försökt att bredda sin verksamhet genom att börja tillhandahålla tjänster inom informationssäkerhetstjänst. Men detta kan inte vara FRA:s framtid. Så vad händer istället?

Det har redan talats mycket om syftesglidning, men jag skulle tro att man kommer att få svårt att släppa att verkligeheten springer ifrån FRA och dess uppdragsgivare. För mycket har investerats (i pengar, prestige, karriärer). Ingen vill realisera förlusten. FRAs huvudverksamhet och produktion måste upprätthållas. På något sätt.

Så vad blir då nästa steg?

Jag vet inte, utan söndagsfilosoferar mest. Vad tror du?

Ännu en stor attack på MD5

August 31st, 2008

Det har kommit så många olika typer av attacker på hashfunktionen MD5 att man nästan skulle kunna tycka att liket borde få vila i frid. (Bara IACR listar 21 artiklar om MD5.) Men fortfarande används MD5, fortfarande publicerades det nya artiklar om attacker på och svagheter hos MD5.

Den första riktigt stora attacken mot MD5 var den artikel av Wang, Feng och Yu som 2004 presenterade kollisioner mot MD5, HAVAL och RIPEMD.

En av mina sommarläsningsartiklar var A New Collision Differential For MD5 With Its Full Differential Path av Tao Xie, DengGuo Feng och FangBao Liu. Skälet till att jag valde att läsa den är att den inte känns som en i gänget av alla som smånyper lite i sidan på MD5. Nej här handlar det om ett frontangrepp. Mer specifikt hävdar författarna att dom hittat en ny, komplett kollision mot MD5. Författarna skriver:


Since the first collision differential with its full differential path was presented for MD5 function by Wang et al. in 2004, renewed interests on collision attacks for the MD family of hash functions have surged over the world of cryptology. To date, however, no cryptanalyst can give a second computationally feasible collision differential for MD5 with its full differential path, even no improved differential paths based on Wang’s MD5 collision differential have appeared in literature.

Firstly in this paper, a new differential cryptanalysis called signed difference is defined, and some principles or recipes on finding collision differentials and designing differential paths are proposed, the signed difference generation or elimination rules which are implicit in the auxiliary functions, are derived.

Then, based on these newly found properties and rules, this paper comes up with a new computationally feasible collision differential for MD5 with its full differential path, which is simpler thus more understandable than Wang’s, and a set of sufficient conditions considering carries that guarantees a full collision is derived from the full differential path.

Finally, a multi-message modification-based fast collision attack algorithm for searching collision messages is specialized for the full differential path, resulting in a computational complexity of 2**36 and 2**32 MD5 operations, respectively for the first and second blocks. As for examples, two collision message pairs with different first blocks are obtained.

Artikeln är tjock, med massor av information. Bland annat finns ett appendix med den kompletta differensvägen (om man skall tro artikeln) samt regler för att skapa kollisioner. Jag kan lätt erkänna att jag som lekman inte hängde med hela tiden, och det berodde inte bara på att skallen var i semester-mod.

Frågan man bör ställa sig är vad artikeln kommer att innebära. Som det verkar går det nu att på rimlig tid (även om 2**36 MD5-operationer inte görs i en handvändning) skapa kollisioner. Detta ökar risken för att den här typen av attackvektorer börjar utnyttjas. Men i vilka sammanhang kan detta vara ett problem?

Informationsläckage i register

August 30th, 2008

Ström-, spänning- och effektbaserade sidoattacker på digitala hårdvaruimplementationer har tidigare fokuserat på logikdelen av implementationen. Ett exempel är attacker mot implementationer där det i algoritmen förekommer en multiplikator.

Antalet bitomslag i en multiplikator varierar väldigt mycket beroende på vilka operander som används. Denna varians ger i sin tur upphov till mätbara varianser på strömförbrukningen. Ett exempel på den här typen av attack beskrivs i artikeln DPA on n-Bit Sized Boolean and Arithmetic Operations and Its Application to IDEA, RC6, and the HMAC-Construction.

En av mina sommarläsningsartiklar var Information Leakage of Flip-Flops in DPA-Resistant Logic Styles och i den presenteras en sidoattack mot de register i en hårdvaruimplementation som används för att lagra interntillståndet. Författarna till artikeln skriver i sammanfatttningen att:


We show that many of the proposed side-channel resistant logic styles still employ flip-flops that leak data-dependent information. Furthermore, we apply simple models for the leakage of masked flip-flops to design a new attack on circuits implemented using masked logic styles.

Contrary to previous attacks on masked logic styles, our attack does not predict the mask bit and does not need detailed knowledge about the attacked device, e.g., the circuit layout. Moreover, our attack works even if all the load capacitances of the complementary logic signals are perfectly balanced and even if the PRNG is ideally unbiased.

Finally, after performing the attack on DRSL, MDPL, and iMDPL circuits we show that single-bit masks do not influence the exploitability of the revealed leakage of the masked flip-flops.

Med andra ord visar artikeln att även om implementationen innehåller olika typer av mekanismer för att skydda logikdelen mot siodoattacker läcker implementationen ändå information via registren.

En flanktriggad D-vippa. Kallas även (D-register eller bara register då det är den absolut vanligaste typen av register som används.

Uppbyggnaden av en D-vippa.
En D-vippa byggd med NAND-grindar.

Artikeln visar att den grundläggande struktur som alla processleverantörer (de företag som erbjuder kretstillverkning) har i sina cellbibliotek för en D-registret regerar olika när den läser in (sample) och låser (hold) ett nytt värde dels beroende på om det är en etta eller en nolla, och beroende på vilket värde (noll eller ett) som redan låg i registret.

Artikeln använder dessa skillnader i registren för att ta fram två olika attackmetoder och applicerar dessa på testkonstruktioner som är skyddade med tidigare publicerade metoder mot sidoattacker. Att döma av artikeln fungerar metoderna för att plocka ut information. Författarnas slutsats är att:


Since most of the prior analysis of side-channel resistant logic styles focused on the combinational logic, so did the research to improve those logic styles. We think it is time to switch the focus of research to find methods for designing side-channel resistant flip-flops with a decent area and power consumption and a low impact on the operation frequency.

One possible approach could be combining semi-custom design for combinational logic with full-custom flip-flop design.

Jag håller inte riktigt med om att en bra lösning kan baseras på full-custom-register, det skalar på tok för dåligt. Även om full-custom-delen begränsas till de delar i konstruktionen där säkerhetsfunktioner implementeras blir det snabbt väldigt mycket mer arbete. Dessutom skulle det bli lättare att identifiera säkerhetsimplementationen på kretsytan, detta då full-custom-logik har ett distinkt utseende.

Jag tror att artikeln skall tas som utgångspunkt för att ta reda på hur register i cellbibliotek görs immuna mot den här typen av informationsläckage.

En intressant fråga är hur man som konstruktör skall göra när man har än mindre kontroll över regsistrens fysiska uppbyggnad än med cellbaserad kretsteknik. Mer specifikt i FPGA:er. Går det exempelvis använda par eller grupper av register för att skapa sidoattackresistenta register?

Jag såg att det precis publicerades en ny artikel på IACR som beskriver en metod för att skydda implementationer av RSA mot sidoattacker. Jag gissar att den metod som presenteras i artikeln inte är skyddad mot registerattacken. Det finns i alla fall ingen referens till registerattacken.

Mer information om kryptot SMS4

August 30th, 2008

Jag har bloggat ett par gånger tidigare (ett, två) om det symmetriska blockkryptot SMS4 som används i den Kinesiska standarden för WLAN-säkerhet kallad WAPI.

Fram tills nu har den dokumentation som funnits om SMS4 varit skriven på Kinesiska. Det som funnits på engelska har varit rudimentärt och fragmenterat. Wikipedias sida om SMS4 har varit stället där information samlats. (Jag har försökt att dra mitt strå till stacken med den information jag hittat om SMS4.)

I somras publicerade Whitfield Diffie and George Ledin en artikel på IACR kallad SMS4 Encryption Algorithm for Wireless Networks. Artikeln är en översättning från Kinesiska och är av allt att döma en komplett specifikation av SMS4. Bland annat finns det information om det mixningssteg, den linjära transform samt de konstantparametrar som finns i SMS4. Artikeln innehåller även exempel och tetvektorer.

Det har sedan tidigare publicerats några analyser av SMS4 och attacker mot kryptot. Men med den här informationen ökar möjligheterna att göra bra analys av algoritmen.

Wikipedias sida kommer att behöva uppdateras. Jag ser redan nu ett par saker som behöver förtydligas eller tom är fel.

AES-implementationer för C64

August 30th, 2008

Daniel Kahlin heter en kreativ person som kodar algoritmer för 6502-processorn och gamla brödburken C64.

Daniel Kahlin

Flera av algoritmerna Daniel implementerat är relaterade till säkerhet. Bland annat har han som en del i ett antal Crack Me!tävlingar implementerat AES128 i assemblerkod för 6502 med olika kryptomoder. Electronic CodeBook Mode (ECB-mod) och Cipher Feedback Mode (CFB-mod).

Källkoden för implementationerna finns på sidorna och är lättläst och snygg. En intressant detalj är att Daniels kod räknar fram S-boxen samt och den tabell som används för att göra GF-multiplikationen i MixColumns-steget av AES.

Att döma av diskussionen kopplad till den utmaning där ECB-mod användes utnyttjade Ymgve Google för att söka på innehållet i S-boxen och den vägen identifiera AES. Ett snygg trick som visar att den som utför attacken inte alltid tar den väg man tror.

Ett annat program gör statistisk analys för att attackera enklare skiffer på C64. Imponerande att få till det på burken med dess beräkningar.

Daniel har även hackat en del andra fräcka program, bla en tracker till VIC-20 kallad VIC-TRACKER. Eftersom jag inte har någon gammal VIC-20, och är rätt kass på att använda trackers vet jag inte hur bra den är. Men bilden på trackerns sida är helt fantastisk:

VIC-TRACKER 2.0
Klockren annons (ett montage) från 80-talets början. Hela familjen samlas i värmen från sin fantastiska hemdator. Mycket nostalgi blir det.

MOS6502 – En Pythonbaserad emulator

August 29th, 2008

Jag har precis lagt upp en sida med mitt sommarhack MOS6502. MOS6502 är en enkel, objektorienterad emulator av den gamla processorn MOS 6502 skriven i Python.

MOS 6502

Processormodelln inkluderar i dag alla API-synliga register, flaggor och pekare. Dock finns det ingen egentlig funktionalitet för stack och interrupt. Vidare är inte de mer ortodoxa instruktionspekar, och adressberäkningarna i MOS 6502 med.

Däremot finns det stöd för att räkna cykler och instruktioner samt stega processorn en instruktion i taget. Vidare kan processorn dumpa valfri del av sitt minne. Tanken är att detta skall underlätta profilering och debuggning av assemblerprogram.

MOS6502 klarar i dagsläget av att exekvera en delmängd av alla instruktioner, och av dessa inte alla adesseringsmoder. Dock klarar den i alla fall av att köra en implementation av PRNG-delen av strömkryptot RC4:

js@sotis:>time ./rc4_MOS6502.py
Key byte 0: 2
Key byte 100000: 34
Key byte 200000: 27
Key byte 300000: ba
Key byte 400000: 56
Key byte 500000: ac
Key byte 600000: b
Key byte 700000: 9c
Key byte 800000: 6b
Key byte 900000: 20
Cycles executed: 80000000
i_ptr = 40
j_ptr = 81
acc_reg = 8a
x_reg = 8a
y_reg = 8e
carry = 0
95.658u 0.103s 1:35.97 99.7%0+0k 0+16io 0pf+0w

Körningen ovan är från ett exempelprogram som kör PRNG-delen av RC4 en miljon gånger. Assemblerkoden (som INTE är optimerad) tar 80 cykler per varv. Som synes tar körningen nästan 100 sekunder på min MacBook. Dvs jag får nästan 1 MHz(!) i klockfrekvens och drygt 10 kByte/s i kryptoprestanda. Inte snabbt, men samtidigt inte illa av en emulerad processor som körs i en emulerad miljö (Python VM).

RC4-exemplet finns med i den release som finns att tanka ner på emulatorns sida. Jag tar väldigt gärna emot kommentarer, buggrapporter, patchar och tips för att utveckla emulatorn vidare.

Sec-T i Stockholm 11-12 september

August 27th, 2008

Det arrangeras en ny säkerhetskonferens i Sverige om ett par veckor kallad Sec-T

Sec-T

Konferensen riktar sig enligt arrangörerna riktar till:


The conference is organised for anyone with a interest in information security, hacking and malware related threats. So whether you are “head of security”, security consultant, developer or IS student this will be a great conference for you.

Huvudtemat för konferensen är olika typer av hot. Arrangörerna skriver:


Our aim is to cover emerging information security and hacking related threats all across the board. So expect to hear presentations covering most layers in the OSI model and then some. From hardware hacking via networks, operating systems, applications and social interaction.

Bland de mer kända talarna på konferensen återfinns Mikko Hypponen från F-Secure och Patrik Fältström. Andra presentationer jag tycker verkar intressanta är SÄPOs Bosse Norgren som skall prata om IT-relaterad rättsteknik samt Patrik Karlsson som säkert kommer att presentera nya verktygshack (hans blogg är bra). Tittar man i konferensagendan finns ett antal andra presentationer till som ser spännande ut.

Jag gillar konferenser där folk från företag, myndigheter, akademisk verksamhet samt entusiaster och representanter för andra typer av grupper kan mötas, diskutera, lära nytt och dela erfarenheter. Inte minst är korridorsnacket efter presentationer och under fika, lunch etc ofta intressanta.

Jag hinner tyvärr inte åka till Sec-T, men tar väldigt gärna emot kommentarer och referat från konferensen. Vill du skriva ett gästblogginlägg på Kryptoblog från Sec-T så hör av dig.

Säkerhet i minnesbaserade hårddiskar

August 25th, 2008

IDG publicerade i dag en artikel om att Flashdiskar är en säkerhetsrisk. I artikeln är jag intervjuad, men allt jag sa i intervjun fanns det naturligtvis inte plats för. Jag vill därför här på min egen blog (där jag kan bladdra på) förtydliga det jag sa samt ta upp något av det som inte kom med i artikeln.

Det stämmer att jag anser att det är enklare att sprätta upp en Flashbaserad hÃ¥rddisk (Solid State Drive – SSD) och läsa ut innehÃ¥llet ur minneskretsarna än vad det skulle vara att försöka plocka ut informationen direkt frÃ¥n skivorna i en traditionell hÃ¥rddisk. Det senare kräver bland annat klart mer avancerad utrustning och renare miljö.

Intel presenterade för några dagar sedan på IDF att de kommer med specialutvecklade FLASH-minnen för att bygga en riktigt snabb SSD, men de flesta SSD-diskar på marknaden innehåller i dag vanliga FLASH-minnen som går att proba (dvs koppla in sig direkt på kretsens ben) och läsa ut innehållet ifrån med enkel och billig utrustning.

SSD med FLASH-minnen.
En SSD med flera stycken FLASH-kretsar.

MEN för att någon skall sprätta upp din SSD och läsa ut minnesinnehållet måste du blivit av med din hårddisk. Du är kort sagt redan rökt, något jag påpekade i intervjun. Vidare bör det vara så att skälet för att en skurk skulle ge sig på kretsarna är antagligen för att det lösenordsskydd som finns i ATA-standarden (ATA Security Feature Set) är aktiverat. Men det lösenordsskyddet finns det enklare sätt att ta sig runt.

Vad det handlar om är alltså att om man gör en ren jämförelse mellan de två typerna av hårddiskar så finns det en säkerhetsteknisk skillnad. Men den här skillnaden i säkerhet mellan Flashbaserade hårddiskar och traditionella hårddiskar är marginell, troligen inte den väg en attack skulle ta och rent praktiskt inte ett hot värt att förlora speciellt mycket sömn över.

Vad som kom med i artikeln och jag tycker är bra är att jag tycker att diskkryptering är bra. Både den typ som implementeras direkt i disken och i den som finns i operativsystem (FreeBSD, Mac OS X, Windows Vista, Solaris med flera) samt via fristående applikationer exempelvis TrueCrypt.

Informationsförluster på grund av stulna eller förlorade datorer är i dag ett stort och verkligt problem, men går att i stort sett eliminera genom diskkryptering och vettig nyckelhantering. Och den dag gammal utrustning skall rensas ut behöver inte de redan hårt belastade sysadministratörerna ägna tid åt att köra scrubbing-program för att förstöra data. Dumpa nycklarna och problemet är löst. Mycket mer ekonomiskt och enklare att metodiskt hantera i en organisation.

Jag anser att om du står i valet mellan en minnesbaserad hårddisk eller en traditionell hårddisk finns det viktigare parametrar att skillnad i säkerhet. Men oavsett vilken typ av hårddisk du väljer är det bra att använda diskkryptering.

Ännu en artikel om AES-implementation på Blackfin

August 22nd, 2008

EE Times har publicerat ännu en artikel som beskriver en effektiv implementation av AES på en Blackfin-DSP. Fokus i artikeln Implementation of the AES algorithm on Deeply Pipelined DSP/RISC Processor är som namnet antyder att försöka utnyttja processorns pipeline.

Artikeln är en aning underlig då den presenterar AES på en något annorlunda sätt. Bland annat tar artikeln de olika delstegen i AES i en annan ordning än vad AES-specifikationen gör. AddRoundKey kommer normalt sist, inte först. Vidare brukar S-box-steget kallas SubBytes, inte SubstituteBytes.

Artikeln innehåller dock en del dataflödesbeskrivningar som kan vara värda att läsa igenom för den som vill implementera AES på en pipelinad processor. Lösningen som presenteras i artikeln är i slutändan en tabell-baserad, konkatenerad implementation. Figuren nedan visar flödet genom algoritmen.

AES

Detta är alltså den andra artikeln (som jag sett) om effektiv implementation av AES på Blackfin. Den första artikeln använder även den en konkatenerad lösning. Att båda artiklarna påminner om varandra kan bero på att ADI-medarbetaren Yosi Stein har varit med och skrivit båda artiklarna.

Hantera nycklar med Googles KeyCzar

August 19th, 2008

Google har släppt ett verktyg för att hantera nycklar kallat KeyCzar.

KeyCzar

Nyckelhantering är en av de riktigt svåra momenten när det kommer till kommunikationssäkerhet (både design och implementation). Tanken med KeyCzar är att underlätta för applikationsutvecklare genom att tillhandahålla ett bibliotek som sköter nyckelhanteringen på ett bra sätt. Några av funktionerna som KeyCzar erbjuder är:

  • Nyckelrotation och versionshantering av nycklar inkl att Ã¥terkalla (döda) nycklar.

  • Implementation av bra algoritmer och vettiga nyckellängder.

  • Generering av initialvektorer (IV) och signaturer.

  • Stöd för att kryptera/dekryptera och verifiera.

  • Stöd för applikationer skrivna i Java eller Python.

Bra algoritmer och vettiga längder är vad Google själva skriver, och det låter fluffigt. Men tittar man i den utmärkta designdokumentationen för KeyCzar ser man att de använder 1024-bit DSA med SHA-1 för signering. KeyCzar stödjer även RSA OAEP med 512-2048 bitar för publik kryptering och RSA SHA-1 med 512-2048 bitar för publik signering. Vidare används AES 128, 192 och 256 med CBC-mod för symmetrisk kryptering och HMAC med SHA-1 och 256 bit nyckel för symmetrisk signering.

KeyCzar genererar X.509-fält och allt annat pill som brukar ställa till det vid implementationer. Allt du behöver göra är att skapa ett KeyCzar-objekt och sedan lita på att KeyCzar gör rätt.

Enligt Google har KeyCzar ett enkelt API. Om det är enkelt eller ej är en bedömningsfråga, men jag hade iaf inga problem att på några få minuter ladda ner, installera och sparka igång KeyCzar i en testapplikation. Google påpekar även att:


Keyczar sacrifices some flexibility in favor of safety and ease of use. Protecting developers from mistakes and handling details for them may also hide useful underlying features. Please see the NonGoals wiki page for a description of things that Keyczar is not.

Av de saker KeyCzar inte är listar Google bla att det inte är en ersättning för OpenSSL eller vara en komplett PKI-lösning.

KeyCzar började som Ben Lauris startprojekt när han började på Google. Projektet togs sedan över av Googles säkerhetsteam som nu ansvarar för utvecklingen.

KeyCzar är Apache 2.0-licensierad och finns att ladda ner (Java, Python). Här finns Java-dokumentationen och här finns Python-dokumentationen. Slutligen finns det även ett diskussionforum (en grupp) för KeyCzar. Än så länge är det dock med KeyCzar-skaparna som postat i gruppen.

Jag tycker att KeyCzar är ett bra initiativ av Google och om det fungerer som det står i dokumentationen och det inte finns en massa fel i KeyCzar är det ett bra tillskott i verktygslådan för att bygga IT-säkerhet.

En fundering: I USA är det populärt att utnämna Tsarer för olika saker. Ex finns det en cybersäkerhets-tsar. Med tanke på alla starka signaler och liknande begrepp och koncept som verkar lånas in friskt, när får Sverige sin första tsar-någonting? Eller blir den svenska varianten hertig eller baron?)