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 » 2007 » Kryptoblog

Archive for August, 2007

Hello Credit!

August 31st, 2007

(Japp, ett fredagsinlägg…)

Evil Mad Scientist har demonterat en RFID-enhet för CitiBank PayPass:

CitiBank PayPass
CitiBanks RFID

RFID-enheten monterades sedan in i en Hello Kitty PEZ-automat. Och, voila! en Hello Credit-maskin:

Hello Credit
Hello Credit igen

Den kanske inte stoppar någon från att tanka av RFID-enheten en massa viktig information, men den ser snygg och oskyldig ut. Sneaky. 😉

(Ja, det är security by obscurity.)

NSA och SRAM-baserade FPGAer för kryptosystem

August 30th, 2007

(Det här blev en stor text…)

En sak som dök upp bland informationen om NSAs moderniseringsprogram är att NSA och FPGA-tillverkaren Xilinx genomfört ett i mitt tycke extremt intressant projekt. Vad NSA och Xilinx har gjort är att både analysera säkerheten i SRAM-baserade FPGAer samt utvecklat metodik och verktyg för att implementera system som möter NSAs säkerhetsklass FSDA - Fail Safe Design Assurance.

Projektet inkluderar saker som FPGAer, rekonfigurerbara arkitekturer, metodik och system på chip i kombination med kryptoimpementationer och säkerhet – det kan inte bli mer Kryptoblog än så här! 😉

(Brasklapp: Ja, NSA och Xilinx publicerade information om detta projekt i Februari i år och jag borde naturligtvis sett detta då, men bättre sent än aldrig. Och jag ser inte att detta uppmärksammats tidigare, speciellt inte i Sverige.)

FPGAer används sedan tidigare i säkerhetssystem för att realisera olika typer av funktioner – typiskt acceleration av kryptofunktioner. Men de FPGAer som används är förhållandevis små och dyra. Dessa FPGAer är baserade på antingen FLASH-minnesteknik eller antifuse (dvs säkringar av Tungsten som bränns av och därmed konfigurerar FPGAn).

Att implementera kompletta säkerhetssystem i en FPGA har även det undvikits av rädsla för att det inte skall gå att upprätthålla röd/svart-separation inne i FPGA:n, med risk för informationsläckage och säkerhetsproblem.

Röd/Svart-separation

Resultatet blir maskiner med fler än en FPGA - FPGAer som är små, dyra och sitter monterade på mönsterkort i maskiner som därmed rent fysiskt blir stora och klumpiga. Inte alls bra – men med kontrollerbar och verifierbar säkerhet.

SRAM-baserade FPGAer (från i första hand Xilinx och Altera) å sin sida har kapacitetsmäsigt snabbt växt till att i dag vara kapabla att implementera massiva datorsystem (med CPUer, minnen och applikationsspecifika funktioner) på ett enda chip (SRAM-FPGAer används i dag som testchip vid utveckling av nya kiselprocesser, ligger i framkant på Moores lag och är bland de första kretsarna som kommer ut i volym när en ny processnod startas upp.)

Den snabba utvecklingen driver ner priset på SRAM-baserade FPGAer och gör det möjligt att implementera allt större, kompletta inbyggda system på ett chip som går att bygga in i fysiskt små, allt mer mobila applikationer. Att kunna använda SRAM-baserade FPGAer även för implementation även kompletta system avsedda för de högsta säkerhetsklasserna vore mycket välkommet. (En personlig reflektion är att utvecklingsverktygen för SRAM-baserade FPGAer ofta är både billigare och bättre, detta för att det finns en större användarbas och fler leverantörer)

Exempel på vad NSA vill kunna implementera i en FPGA är redundanta kryptoenheter, röd/svart-separering intern på chippet och chip med funktioner som arbetar med olika säkerhetsklass.

Det NSA och Xilinx gjort är att analysera säkerheten och sedan utveckla metoder för bygga säkra systemimplementationer på Xilinx FPGA-familj Virtex-4

Xilinxs FPGA Virtex-4

En Virtex-4 består av ett rutmönster med rader och kolumner av funktionsblock som upprepas över hela kretsytan. Typiska funktionsblock är logikblock, minnen, multiplikatorer samt block för acceleration av signalbehandling (DSP) och tom hela PowerPC-processorer.

Virtex-4 die
(Bilden visar kiselbrickan i en Virtex-4 och man kan tydligt se kolumner och rader med olika funktionsblock, bland annat DPS-funktioner.)

Det grundläggande funktionsblocken är ett block för implementation kallat Configurable Logic Block (CLB) samt ett block som implementerar kommunikationen mellan de olika funktionsblocken på chippet kallat Global Switch Matrix (GSM). Xilinx och NSAs analys utgick från CLB- och GSM-enheterna för att se hur man skall kunna implementera en funktion i FPGA:n som är isolerad från resten av FPGA:ns funktionsblock. Figuren nedan visar uppbyggnaden ev en CLB:

CLB

Det man kom fram till är att det räcker med att omgärda den specifika funktionen med en ram av CLB:er som är en CLB-bred. Min gissning till varför man vill ha en CLB:s separation är att CLB:er är tätt kopplade till sin närmaste grannar, ex genom carry-kedjor. Om man då ser till att allokera döda CLB:er bryts dessa kedjor. Men detta räcker dock inte, utan man måste även titta på kommunikationen – både matriselementen (GSM) och de fysiska ledarna.

Kommunikationen på en FPGA som Virtex-4 består av ett antal ledare som från en given punkt (en CLB) sträcker sig olika antal steg bort. Exempelvis finns en ledartyp kallad HEX som sträcker sig till en CLB tre och sex steg bort.

Det man kom fram till är att det krävs en metodik för att märka upp de ledare som används så att även om bara en del av ledningen används får ingen annan funktion implementeras i en CLB som är kopplad på längs hela ledaren. Detta löstes genom att Xilinx införde ett direktiv NOBOUNDARYCROSS i sitt Place & Route-verktyg.

Xilinx PAR

Vidare utvecklades ett verktyg kallat IVT (Isolation Verification Tool) som utifrån mappningsinformation går in och verifierar att alla isoleringsramar (de tomma CLB:erna) är kompletta och att inga ledningar som allokerats för en funktion passerar genom en isoleringsram. (Verktyget IVT ser inte ut att vara tillgängligt, men då all information går att extrahera från designverktygen borde det bara vara en fråga om programmering att skapa sin egen version av IVT.)

Det som krävs för att lyckas med det Xilinx och NSA genomfört är att konstruktören har möjlighet att styra/kontrollera hur sina funktioner placeras på chipytan. Xilinx och NSA utnyttjar att Xilinx i sina FPGAer stödjer partiell rekonfiguration, dvs att bara delar av FPGAns funktionsblock konfigureras. Detta gör det även möjligt att i en Xilinx-FPGA dynamiskt byta ut olika funktioner, exempelvis kryptoacceleratorer.

För att kunna åstadkomma kompletta system på chip behöver funktionsblocken kommunicera med varandra. För detta implementerades speciella generatorer för specifika kommunikationsbussar. De genererade kommunikationsbussarna integreras i den totala FPGA-konstruktionen. Slutligen implementerade NSA även en säkerhetsmonitor som kan läggas in i en FPGA och övervaka säkerheten för resten av systemet, och om så krävs vidta åtgärder – exempelvis konfigurera om en del av FPGA:n.

En viktig implementationsaspekt som tas upp är att externa I/O:n från separata funktioner inte bara inte skall dela samma fysiska I/O (pinne eller boll), utan att dom inte heller skall dela samma I/O-bank. (I/O:n i en FPGA är uppdelade i olika bankar där I/O:n i en bank har gemensam matning – vilket skulle kunna öppna upp för sidoattacksbaserat informationsläckage). Vidare är det vanligt att I/O:n på en FPGA har multipla funktioner, vilket man som konstruktör måste hålla reda på och om så krävs undvika dessa I/O:n.

Den genomförda analysen av Virtex-4 som krets inkluderade känslighet för olika typer sidoattacker samt JTAG-baserade attacker. NSA och Xilinx genomförde även en intressant analys av hur länge en SRAM-FPGA bibehåller konfiguration samt data i register och minnen när matningen kopplas ifrån (remenance). Det saknas information om vad man kom fram till, men tydligen var det tillräckligt bra. Troligen finns det dock krav på hur FPGA:n skall kapslas för att tillräcklig med tid hinner passera innan det går att fysiskt komma åt SRAM-cellerna.

Slutsatsen från Xilinx och NSA är att det med rätt metodik och verktyg går att använda Xilinx Viirtex-4 i applikationer med hög säkerhet.

Hela Xilinx och NSAs arbete finns beskrivet i relativt hög detalj i en artikel publicerad i Military Embedded Systems – Läs den!

Några detaljer som går att utläsa från artikeln är att testkonstruktionen troligen inkluderade en implementation av blockkryptot AES. Samt att NSA använder det hårdvarubeskrivande konstruktionsspråket Verilog (kloka människor).

Det som inte är klart är hur konfigurationsinformationen skyddas. Xilinx-4 inkluderar en AES-motor för kryptering av konfigurationen (där nyckeln är lagrad i register med separat matning från resten av chippet) och möjligtvis skulle man kunna dra slutsatsen att NSA anser att detta skydd är tillräckligt bra.

Konspirationsteoretikern kan ju invända att detta bara är bluff och båg, och ett sätt att få de NSA anser vara skurkar att börja använda Xilinx SRAM-baserade FPGAer för att implementera sina kryptosystem. Men jag tror inte att det är speciellt sannolikt. Ett skäl är att Xilinx bara tillverkar SRAM-baserade FPGAer och tidigare inte kunnat konkurrera med leverantörer som Actel och QuickLogic inom segmentet säkerhet av högsta klass.

Nyttigt och ojojoj så spännande är det i alla fall!

NSA startar moderniseringsprogram för krypto

August 30th, 2007

Det har dykt upp ett par artiklar om att USAs National Security Agency (NSAs webbplats) har startat ett moderniseringsprogram kallat CryptoMod. Syftet är att modernisera utrustning och användning av krypto inom civil och militär förvaltning – både i USA och inom NATO. I en intervju med Daniel G. Wolf, Information Assurance Director på NSA förklarar han moderniseringsprogrammet på följande sätt:


The Cryptographic Modernization Initiative is a Department of Defense-directed/NSA IAD-led effort to transform and modernize IA capabilities for the 21st century.

Of the 1.3 million cryptographic devices in the U.S. inventory, 73 percent will be replaced over the next 10 to 15 years by ongoing and planned C4ISR systems programs, IT modernization initiatives and advanced weapons platforms.

All command and control, communications, computer, intelligence, surveillance, reconnaissance, information technology and weapons systems that rely upon cryptography for the provision of assured confidentiality, integrity and authentication services will become a part of this long-term undertaking. The Cryptographic Modernization program is a tightly integrated partnership between the NSA, the military departments, operational commands, defense agencies, the Joint Staff, federal government entities and industry.

The program is a multi-billion dollar, multi-year undertaking that will transform cryptographic security capabilities for national security systems at all echelons and points of use. It will exploit new and emerging technologies, provide advanced enabling infrastructure capabilities, and, at the same time, modernize legacy devices that are now operationally employed.

The program also directly supports the DoD vision of the Global Information Grid. The security configuration features like I described in the scenario above enable new cryptosystems to provide secure information delivery anywhere on the global grid while using the grid itself for security configuration and provisioning—total seamless integration.

NSA har en webbplats för moderniseringsprogrammet som dock inte innehåller mycket mer information än att gruppen som ansvarar för CryptoMod gjort ett så gott arbete så här långt att de förtjänar en utmärkelse
CryptoMod-utmärkelsen

Wikipedia har dock en webbsida om CryptoMod med lite mer detaljer. Där står bland annat att programmet omfattar Suite A, vilket innehåller NSA-utvecklade och hemliga krypton. Men programmet omfattar även Suite B, vilket inkluderar NIST-specificerade kryptografiska primitiver, exempelvis AES och SHA (bland annat SHA-256) samt varianter av Diffie-Hellman-baserade algoritmer för nyckelutbyten och signaturer.

Frågan jag ställer mig är hur programmet kommer att påverka oss här i Sverige. Både genom NIST-specificerade algoritmer som använder, men även genom förändrade krav på hur information utbyts mellan Sverige, EU, NATO och USA.

Volvo reagerar på KeeLoq-attacken

August 29th, 2007

IDG tar i en artikel upp den nya attacken mot KeeLoq jag postade om för några dagar sedan. I artikeln finns en intervju med. Deras reaktion är dock extremt intetsägande och typisk för hur företag reagerar med ryggmärgen när det dyker upp ett säkerhetsproblem:


– Vi har hört rykten om att man knäckt det här tidigare, men vi har aldrig kunnat få det bekräftat. Samtidigt är det ju så att all teknik kan kringgås på ett eller annat sätt, säger Bo Larsen, presschef på Volvo Personbilar Sverige.

– Vi kommer att följa det här med största intresse.

Mer om knäpp CAPTCHA

August 29th, 2007

Läsaren Rombobjörn postade en bra kommentar om knäppa CAPTCHAs:


Att använda punktskrift skulle kunna vara ganska listigt i ett forum för föräldrar till blinda barn till exempel. Formeln (som inte är en ekvation) är antagligen avsedd för matematiker. Om man inte kan förkorta den till ln 2 så tillhör man inte målgruppen.

Vad Rombobjörn pekar på är att dessa CAPTHAs, hur knäppa de ser ut att vara egentligen bygger på något mycket viktigt: semantisk förståelse. Rombobjörn har helt rätt och jag hade fel, detta är bra CAPTCHAs.

Och ja, det är en formel (eller ett uttryck), inte en ekvation. Eller som Via/Yes (vilket märke det nu är) uttrycker det i sin reklam: Ny, bättre formulering. 😉

Men det här (tack Martin E) är väl ändå en knäpp CAPTCHA?

Ännu en knäpp CAPTCHA

Man måste vara en dator för att kunna titta på den tillräckligt länge för att klura ut koden.

Praktiskt genomförbar attack mot kryptot i bilnycklar

August 24th, 2007

Eli Biham, Bart Preneel & Co presenterade på CRYPTO 2007 en praktiskt genomförbar attack KeeLoq, det krypto som bland annat sitter i elektroniska bilnycklar. KeeLoq är ett företagsspecifikt krypto utvecklat av Microchip (mest kända för sina PIC-processorer)

KeeLoq

KeeLoq ett NLFSR-baserat (Non Linear Shift Register) blockkrypto med en blockstorlek på 32 bitar och en nyckellängd på 64 bitar:

KeeLoq-kryptering
(Bild lånad från Wikipedia)

Tidigare attacker mot KeeLoq har haft en tidkomplexitet på 2**37 (vilket är en praktiskt sett orimligt lång tid) och krävt ca 16 GByte utrymme. Det Biham & Co nu gjort är att de hittat en attack som kräver insamling av data från en KeeLoq-enhet under ca en timmes tid (65 minuter), samt ca två dagars körtid på 50 stycken Dual Core-maskiner. Författarna estimerar attacken till att vara ca 500 ggr snabbare än tidigare publicerade resultat, och ligger helt inom en praktiskt genomförbar tidsrymd.

Än mer besvärande är att det protokoll som används i KeeLoq-systemet med en IFF-funktion (Indentification Friend or Foe) gör att det går att locka av en KeeLoq-enhet det data som behövs för att utföra en attack om man bara kommer i närheten av enheten.

Ett annat graverande problem för KeeLoq är nyckelhanteringen. KeeLoq består av en huvudnyckel samt individuella nycklar. Huvunyckeln XOR:as med det individuella nyckeln. Detta gör att om man kommer över individuella nycklar går det att enkelt räkna ut huvudnyckeln, och därmed exponeras inte bara en eller två enheter utan alla individer inom en nyckelgrupp.

KeeLoq används i dag av ett antal olika bilmärken, exempelvis Volvo, GM, Jaguar, Toyota och Honda. KeeLoq används även i ett otal andra applikationer, exempelvis fjärrstyrda garagedörrar och larmsystem.

Just nu är det svårt att säga hur Microchip och dess kunder (ex Volvo) kommer att reagera på detta, men en gissning är väl att man kommer att börja med att förneka att det finns ett problem. Avsett utgången visar detta att hemmasnickrade algoritmer och protokoll oftast inte är speciellt bra – inte minst för att det inte blir ordentligt undersökt innan det finns implementerat i miljontals produkter.

Det jag är rädd för är att folk kommer att få sina bilar stulna, och att försäkringsbolagen tror på leverantörernas försäkran om att KeeLoq är säkert.

Eller som Bihan & Co lite skämtsamt uttrycker det: Soon, cryptographers will all drive expensive cars.

Det är inte en bugg, det är en…

August 24th, 2007

Featurebug
(Japp, det är fredag!)

Knäpp CAPTCHA

August 23rd, 2007

CAPTCHA - Completely Automated Public Turing test to tell Computers and Humans Apart, är samlingsnamnet på olika tekniker för att skydda webbplatser från program som agerar användare och exempelvis dränker nätforum med SPAM-postningar. Oftast utformas CAPTCHA:n som en bild som innehåller tecken som man som människa skall identifiera och skriva in i ett responsfält:

CAPTCHA-exempel

Naturligtvis pågår det ett upprustningskrig mellan de som utvecklar CAPTCHA-system och de som utvecklar program som tar sig förbi CAPTCHA-systemen. Resultatet är att SPAM-nissarna nu är med och driver utvecklingen inom bildseende, och att datorer i vissa fall ser ut att ha lättare än människor att använda webbplatser. I går sprang jag på ett skräckkabinett med CAPTCHAs som visar hur illa det blivit. Några exempel:

Braille-CAPTCHA
Braille-CAPTCHA

Antingen kan du inte läsa vad som står på skärmen, eller så kan du inte läsa vad som står på skärmen…

Matte-CAPTCHA
Matte-CAPTCHA
Det är jättelätt att logga in, lös bara ekvationen först.

Många möjligheters CAPTCHA
Många möjligheters CAPTCHA
Text gömd bakom text – får man välja vilken text skall man skriva in?

Och så här håller det på – den ena varianten hemskare än den andra. Och det tragikomiska är att det ändå inte hjälper. Speciellt inte som i det här fallet:
Säker CAPTCHA

Hoppsan, snyggt kodat! Krävs inte så mycket bildigenkänning för att hacka sig runt det systemet.

Microsofts bidrag till CAPTCHA-utvecklingen är Asirra – en husdjusbaserad lösning. I det här sammanhanget känns den både vettig och smart. Risken är väl att det slutar med LOL-Kitten-CAPTCHA… YES I CAN HAS LOGON, eller nåt.

RFID-baserad utslagningsattack mot pass-system

August 23rd, 2007

Wired har publicerat en (kort) artikel om den tyska säkerhetsforskaren Lukas Grunwald
Lukas Grunwald
Artikeln berättar att Lukas, som tidigare visat att han kan klona RFID-chip i pass nu utvecklat en RFID-baserad attack mot pass-systemen.

Enligt artikeln lagras bildinformation på RFID-chippet i passet i JPEG200-format. Datat i en JPEG200-bild är komprimerat med en aritmetisk kompressor. Lukas attack går ut på att konstruera en speciell, patalogisk JPEG2000-bild, som när den expanderas, sväller över alla bredder och spränger det minne som används för dekompressionen. En klassisk buffertöverskrivningsattack som resulterar i att RFID-läsaren (eller det bakomliggande pass-systemet) slås ut.

Lukas Grunewald hävdar att det faktum att RFID-läsaren slås ut innebär att RFID-läsaren går att injektera med elak kod, exempelvis för att få den att istället använda en gammal bild och därmed sätta säkerheten i ett pass-system med RFID-utrustade pass ur spel.

Jag håller inte med om att en buffertöverskrivning som leder till en utslagning automatiskt implicerar en möjlighet att injektera kod eller på annat sätt manipulera det attackerade systemet, och Wireds artikel är för kort och luddig för att dra några egentliga slutsatser om vad Lukas åstadkommer i det attackerade systemet.

Men, bara det faktum att det går att gravt påverka/slå ut de nya pass-systemen på detta sätt tycker jag är mycket intressant i sig. Jag tycker att detta visar, och här delar jag Lukas åsikt, är att inbyggda system i allt för liten grad implementeras utifrån en kravställning som tittar på IT-säkerhet och hantering av felfall. Precis som Lukas säger har man antagligen tagit ett standardbibliotek för JPEG200-hantering och sedan helt struntat i att övervaka bildexpansionen. Indata från externa källor, speciellt i ett publikt säkerhetssystem som ett pass-system är, skall betraktas som potentiellt fientlig och behandlas därefter.

Och, det viktigaste, så länge som beställarna/kravställarna av inbyggda system inte tar med krav på säkerhet i sina beställningar kommer de allra flesta konstruktörer (de som inte är IT-säkerhetsparanoida redan innan) att implementera för att uppfylla de funktionella kraven och minimera implementationen i den normala kostnadsjakten. Det är så inbyggda system konstruerats i årtionden, men det börjar bli hög tid att vakna upp. Buffertöverskrivningsattacker är ingen nyhet precis, och bara för att man bygger inbyggda system får man inte vara omedveten om dessa problem.

FRA söker kryptolog

August 22nd, 2007

Bloggaren Karl Jonsson skriver att FRA söker en jurist. Men går man in på FRAs webbplats ser man att dom även har en ledig tjänst jag tycker är mycket mer intressant: FRA söker en kryptolog:


Enheten för Kryptoanalys söker kryptolog

ARBETSUPPGIFTER

Du kommer att ingå i en arbetsgrupp som studerar och löser komplicerade och stimulerande kryptologiska problem. Din uppgift blir att konstruera och analysera matematiska metoder, samt implementera dessa på stora beräkningskluster. Du kommer dels att lösa uppgifter enskilt, dels tillsammans med andra. Arbetet sker med stort eget ansvar och du får goda möjligheter att vidareutveckla och fördjupa dina kunskaper.

DIN KOMPETENS

Du har kunskaper motsvarande en forskarutbildning i datalogi, matematik eller annat matematiskt-naturvetenskapligt ämne. Du har goda kunskaper i programmering. Vi ser gärna att du har erfarenhet inom något eller några av följande områden:

* Datorarkitektur och maskinnära programmering, t.ex. VHDL, assembler. * Programmering och optimering av parallella program för superdatorer, t.ex. MPI. * Datakommunikation och datasäkerhet. * Kryptologi och kryptografiska standarder och protokoll. * Signalanalys och kommunikationsprotokoll.

(Attans vilket spännande jobb!)

Saker man kan gissa utifrån denna annons är att FRA antagligen arbetar med specialanpassade HW-implementationer för att accelerera sina beräkningar, troligen i första hand i FPGA:er (intresset för VHDL).

Vidare att FRA avser att arbeta med klustersystem snarare än maskiner med delat minne, därav intresset för Message Passing Interface (MPI). Det senare skulle kunna vara relaterat till den nya superdatorn från HP som fick sådan uppmärksamhet i våras.

Om nu bara FRA låg i Göteborgsområdet, och satsade på Verilog/SystemVerilog (som resten av mänskligheten) skulle detta vara riktigt, riktigt intressant.