Kategoriarkiv: Verktyg

Matasanos kryptoutmaningar

Det få sätt att effektivt lära sig saker som att faktisk sätta sig ner och praktiskt utföra, öva på den man vill lära sig. Det gäller både saker som kanske är tråkiga, exempelvis glosor på tyska och saker som är desto roligare – spela gitarr eller hacka krypton.

Säkerhetsföretaget Matasano Security har insett detta och har därför skapat en serie spännande krypto och IT-säkerhetsutmaningar. Utmaningarna skickas som mail innehållandes åtta olika problem. Totalt finns sex uppsättningar problem. Problemen sträcker sig från grundläggande kodningar och XOR-krypton till slumptalsgeneratorer, strömkrypton, nyckelsystem och mycket mer. Själva utmaningarna är inte problem avsedda att luras, utan bygger på faktiska attacker och svagheter.

Matasano Security

Jag har precis börjat arbeta mig igenom utmaningarna. För att göra det lite svårare för mig själv försöker jag dessutom implementera mina lösningar inte bara i Python och/eller C, utan även i SystemVerilog. Vi får se hur länge det är realistiskt att göra det. Att implementera RSA i hårdvara kräver en hel del arbete – troligen mer än att lösa själva problemen i utmaningarna. Så här långt har det varit både givande och väldigt roligt.

För mer information om utmaningarna och hur du anmäler dig (du skickar ett mail), se Matasanos sida om utmaningarna. Om du genomför samtliga 48 utmaningar lovar Matasano även att donera 20 USD till välgörande ändamål.

Här finns även en sida skriven av en person som genomfört samtliga utmaningar och berättar lite mer om dom. En krav från Matasano är dock att inte ge beskriva utmaningarna i detalj eller dela med sig av sina lösningar, just för att andra också ska få chansen.

SipHash i assembler för MOS 6502

I ett anfall av programmeringsklåda har jag (Joachim) implementerat den nyckelstyrda, kryptografiska hashfunktionen SipHash i assembler för den gamla 8-bitars processorn MOS 6502.

MOS 6502
MOS 6502

Resultatet, siphash_6502 finns i ett öppet repo på Gitorious.

Jag förväntar mig inte att koden kommer att få någon större spridning. Däremot var det en intressant övning att implementera 64-bitarsoperationer på en 8-bitarsprocessor med få instruktioner och än färre register. Koden, som är byggd med makron, borde även kunna gå att porta relativt lätt.

Storleksmässigt tar den nuvarande implementationen 677 Bytes i kod och 103 Bytes för datastrukturer inklusive lagring av nyckel samt datablock. Genom att ändra om de stora makrona till funktioner som återanvänds skulle det gå att banta koden en aning. Det finns i dag ett utkast till en kompakt version i repot, men den är inte färdig än. Men att få in en komplett MAC-funktionalitet på under 1 kByte på en sådan här processor visar att SipHash går att använda även i riktigt små system.

Prestandamässigt tar en kompressionsoperation knappt 5000 cykler, vilket ger ungefär 600 cykler/Byte för ett långt meddelande. I värsta fallet, med ett meddelande på ett enda block tar det ungefär 15000 cykler. En gammal Commomodore 64:a klarar ungefär 200 stycken sådana bearbetningar/s. För ett litet Internet of Things-system borde det i många fall vara mer än tillräckligt för att kunna autenticera meddelanden i realtid.

På Gitorious finns även den hårdvaruimplementation av SipHash som Secworks tidigare släppt.

Security Engineering nu som fri e-bok

Säkerhetsforskaren Ross Anderson har skrivit en av de absolut bästa böckerna om säkerhet – Security Engineering.

Security Engineering hos Amazon

Ross har gjort den tidigare versionen av boken fritt tillgänglig. Och nu har Ross även släppt den senaste versionen (från 2008) fritt tillgänglig på sin sida för boken.

Gissningsvis kommer en uppdaterad, tredje version av boken ut under året. Men den version som nu finns är trots sina fem år på nacken fortfarande en riktigt, riktigt bra bok som vi rekommenderar till alla som vill veta mer om säkerhet.

Hacking the Xbox nu som gratis e-bok

Andrew Bunnie Huang, som Secworks tidigare uppmärksammat för sitt projekt att utveckla en egen laptop, har släppt sin bok Hacking the Xbox i PDF-format fri för nedladdning.

Hacking the xbox, som kom 2003 är en fantastisk bok, som inte bara berättar om hur Bunnie som forskarstudent lyckades knäcka skyddet i Xbox. Boken är istället en mycket bra introduktion till metoder och verktyg för att analysera och plocka isär digitala system.

Hacking the xbox

Även om boken har några år på nacken är den fortfarande mycket läsvärd och relativt unik i sitt fokus på praktiskt arbete, inte bara teori.

Skälet till att Bunnie och bokens förlag släpper boken fritt beror på hur hackern Aaron Swartz behandlades. Bunnie skriver bland annat:

No Starch Press and I have decided to release this free ebook version of Hacking the Xbox in honor of Aaron Swartz. As you read this book, I hope that you’ll be reminded of how important freedom is to the hacking community and that you’ll be inclined to support the causes that Aaron believed in.

I agreed to release this book for free in part because Aaron’s treatment by MIT is not unfamiliar to me. In this book, you will find the story of when I was an MIT graduate student, extracting security keys from the original Microsoft Xbox. You’ll also read about the crushing disappointment of receiving a letter from MIT legal repudiating any association with my work, effectively leaving me on my own to face Microsoft.

The difference was that the faculty of my lab, the AI laboratory, were outraged by this treatment. They openly defied MIT legal and vowed to publish my work as an official “AI Lab Memo,” thereby granting me greater negotiating leverage with Microsoft. Microsoft, mindful of the potential backlash from the court of public opinion over suing a legitimate academic researcher, came to a civil understanding with me over the issue.

Här finns hela motivering till varför Bunnie och förlaget släpper boken.

Ny version av SipHash-core med högre prestanda

Den öppna hårdvaruimplementation av den kryptografiska hashfunktionen SipHash som Secworks utvecklat finns nu i en ny version.

I den nya versionen har antalet adderare dubblerats så att den den inre iterationen nu kan utföras på en cykel. Detta gör att antalet cykler för att bearbeta ett meddelande om upp till 8 Bytes (ett block) minskat från 28 till 10 cykler. För långa meddelanden går latenstiden mot 0,5 cykler/Byte.

Storleksmässigt har SipHash-core krympt något och kräver nu Alteras Cyclone IV-teknologi 1088 LE:s, en minskning med 25%. Däremot har maximala klockfrekvensen minskad till 90 MHz. Detta gör att SipHash-core i Alteras teknologi för långa meddelanden kan hantera datatakter på mer än 1 Gbps.

Altera Cyclone IV

Den nya versionen finns i det publika repot för SipHash-core hos Gitorious.

Cryptoparty i Stockholm 2013-02-16

Kryptera.se berättar att den 16:e februari ordnas för första gången ett CryptoParty i Sverige.

cryptopartyposter
cryptopartyposter

Ett CryptoParty är ett möte där intresserade personer kan få lära sig mer om krypto, teknik för integritet m.m.

CryptoParty-logga.

CryptoPartyt i Stockholm arrangeras av organisationen DFRI samt hackerspacet Sparvnästet. Partyt kommer att hållas i .SE:s lokaler på Ringvägen 100 i Stockholm.

På programmet finns än så länge presentationer och workshops om Grundläggande krypto och kryptering, Digitalt Källskydd, Tor och hur filtermekanismer på nätet fungerar. Samt naturligtvis organiserad nyckelsignering (key signing party).

Evenemanget ser mycket intressant ut och organiseras av duktiga och kompetenta personer. Dessutom är det gratis – kan det bli bättre?

Kirei släpper handledning om IP-baserade kommunikationsprotokoll

Det svenska IT-säkerhetsföretaget Kirei har släppt en handledning om IP-baserade kommunikationsprotokoll.

Kireis logga.

Handledningen är utvecklad på uppdrag av en större kund under förra året. Handledningen beskriver olika typer av IP-baserade tillämpningar samt hur tillämpningarnas egenskaper påverkas beroende på hur den underliggande anslutningen. Hur väl fungerar exempelvis en realtidstillämpning över en anslutning med lång fördröjning, och spelar det för tillämpningens användbarhet att öka anslutningens överföringskapacitet är exempel på frågor handledningen försöker besvara.

Handledningen vänder sig i första hand till ansvariga för utveckling av IT-stöd, t.ex. IT-chefer, IT-arkitekter och verksamhetsansvariga, men innehåller även en fördjupningsdel med mycket matnyttig information för systemspecialister, nätverksansvariga, utvecklare och andra tekniker.

Secworks har under året arbetat för Kirei med att utveckla handledningen. Att arbeta tillsammans med några av Sveriges vassaste IT-säkerhetsexperter har varit både spännande och kul.

Handledningen är släppt under Creative Common-licens.

CC-licensen CC BY-NC-ND

Vi som skrivit handledningen tar väldigt gärna emot kommentarer och synpunkter samt förslag på ändringar och förbättringar.

Bunnie bygger en laptop

Andrew Bunnie Huang, är en av världens mest kända hårdvaruhackers, känd bland annat för att vara den person som hackade Xbox (och skrev en bok om det).

Bunnie
Bunnie

Ett av Andrews senaste kända projekt är att bygga en egen laptop. Laptopen är byggd runt en ARM A9-processor med fyra kärnor. Här är en bild på moderkortet som i dag kan boota upp Linux:

Bunnies moderkort.
Moderkortet, men mååånga portar.

Förutom det man kan förvänta sig av stöd för hårddiskar, minne, tangentbord etc har Bunnies laptop en massa roliga saker som man inte brukar hitta i en vanlig laptop. Här är en lista:

mini PCI-express slot (for blob-free wifi, bluetooth, mobile data, etc.)
UIM slot for mPCIe mobile data cards
Dual-channel LVDS LCD connector (up to QXGA (2048×1536) @ 60Hz resolution) with USB2.0 side-channel for a display-side camera
Resistive touchscreen controller (note: captouch displays typically come with a controller)
1.1W, 8-ohm internal speaker connectors
2x USB2.0 internal connectors for keyboard and mouse/trackpad
Digital microphone
3-axis accelerometer
header for optional AW-NU137 wifi module

External ports:
HDMI
SD card reader
headphone + mic port (compatible with most mobile phone headsets, supports sensing in-line cable buttons)
2x USB 2.0 ports, supporting high-current (1.5A) device charging
1Gbit ethernet

“Fun” features:
100 Mbit ethernet — dual Ethernet capability allows laptop to be used as an in-line packet filter or router
USB OTG — enables laptop to spoof/fuzz ethernet, serial, etc. over USB via gadget interface to other USB hosts
Utility serial EEPROM — for storing crash logs and other bits of handy data
Spartan-6 CSG324-packaged FPGA — has several interfaces to the CPU, including a 2Gbit/s (peak) RAM-like bus — for your bitcoin mining needs. Or whatever else you might want to toss in an FPGA.
8x FPGA-driven 12-bit, 200ksps analog inputs
8x FPGA-driven digital I/O
8x FPGA-driven PWM headers, compatible with hobby ESC and PWM pinouts — enables direct interfacing with various RC motor/servo configurations & quad-copter controllers
Raspberry-Pi compatible expansion header
13x CPU-driven supplemental digital I/Os
3x internal UART ports

Att det sitter en hyggligt stor och kapabel FPGA kopplad direkt till CPU:n öppnar upp för massor med roliga möjligheter, inte bara att gräva efter Bitcoins.

Än så länge finns det inget skal, tangetbord eller skärm så laptopen är just nu ett kort på Bunnies labbord. Men projektet har väckt stor uppmärksamhet och det pratas om Crowdfunding för att ta fram det som behövs för att tillverka färdiga laptops. Och naturligtvis kommer Bunnie att släppa alla designdokument för sin design fri så om inte han själv tar fram en riktig laptop finns det möjligheter för andra att göra det.

Riktigt kul pryl, och inte minst för att labba på eller använda ute i fält för datainsamling skulle den här laptopen kunna vara riktigt, riktigt användbar. Jag vill ha en. Eller två.

Testa lösenord via Twitter

Twitter är på många sätt en fantastisk tjänst. En av de bättre är hur enkelt det är att via Twitters programmeringsgränssnitt koppla program och maskiner som kan lyssna på tweets, skicka status och reagera på kommandon.

En sådan tjänst är Hash Cracking Robot. Detta är en tjänst som lyssnar på tweets riktade till sig som innehåller ett kryptografiskt kondensat skapat med olika typer av algoritmer såsom MD5, SHA-1, RIPEMD-160, WHIRLPOOL m.m.

Så här ser det ut när jag testar tjänsten genom att generera kondensat med MD5 för två olika strängar med OpenSSL.

Strängar för test av PlzCrack
Strängar för test av PlzCrack

Sedan postar jag strängarna riktade till @PlzCrack på Twitter (notera att postningarna är i omvändning ordning.):

Test av hashknäckning med Twitter
Test av hashknäckning med Twitter

Lägg märke till vad som händer. PlzCrack svarar mycket snabbt. Men det är bara strängar den känner till den kan knäcka rapportera. Egentligen är tjänsten en Twitterkoppling till regnbågstabeller. Detta innebär att det bara är strängar den känner till och har kondensat för som den kan hitta. Att skicka något till PlzCrack startar inte ett automatiskt försök att uttömmande söka efter en sträng som ger kondensatet, utan det är ren uppslagning i en tabell.

Twitter begränsar hur många tweets man kan göra inom en viss tidsperiod så att använda tjänsten för att testa en stor mängd kondensat går inte. Tjänsten är mer skoj och har nog ett rätt begränsat värde, men en fördel med PlzCrack är att du slipper att själv ha gigantiska regnbågstabeller eller att generera dessa tabeller. Sedan kan man fundera på hur bra det är att på ett bublikt forum leta efter strängar till kondensat…

Bli en BIOS-ninja och skydda din kod

För dig som verkligen vill grotta ner dig på lågnivå i en PC kan det vara trevligt att veta att Darmawan Salihun släppt sin bok BIOS Disassembly Ninjutsu Uncovered fritt tillgänglig på nätet.

Boken börjar med en introduktion till hur en PC är uppbyggd inklusive PCI-protokoll och chipset. Men sedan trillar boken snabbt ner i saker som hur BIOS är uppbyggt, hur man plockar isär och dekompilerar binärfiler. Boken använder verktyg som IDA Pro, men är egentligen rätt verktygs- och OS-neutral. En bra bok, väl värd att titta en stund i. Och kanske testa lite exempel.

IDA Pro
IDA Pro.

Om man nu vill veta hur man skyddar sin kod mot dekompliering, analys och isärplockning, och därmed även vill veta mer hur trojaner och annan elak kod på olika sätt fungerar för att skydda sig mot att bli hittade och rensade, finns en mycket bra artikel. Josh Jacksons An Anti-Reverse Engineering Guide är från 2008, men fortfarande högst relevant. Artikeln tar upp hur debugsystemet i x86 ser ut och används. Sedan visar artikeln på ett antal olika metoder för att detektera debuggningsförsök, försvåra för debuggning och till och med direkt ge sig på debugverktygen. Även om attacken på Ollydbg patchats för länge sedan.

Detekterad debugger.
Detekterad debugger.

För dig som vill börja doppa tårna i x86-assembler finns Randy Hydes bok Art of Assembly Language på nätet. Det finns versioner såväl för den som fokuserar på 32-bit Windows som för den som vill hacka Linux/UNIX. Och 16-bit DOS. På den webbplatsen finns även HLA-biblioteket.