Etikettarkiv: Forskning

Säkerhet och management av miljarder Internetsaker

Ett av det mest intressanta trenderna tycker jag är Internet of Things – tanken att enkla saker ges en enkel, digital intelligens, kopplas upp på Internet och blir en del av informationsflödet. Att koppla upp allt på nätet och därmed göra det möjligt att övervaka och styra ger helt nya möjligheter.

Att exempelvis kunna läsa av och styra enskilda lampor i kontor och fabriker gör det möjligt att optimera ljussättning och därmed energianvädningen mycket mer exakt än idag. Cisco har gjort en mycket snygg illustration som förklarar Internet of Things.

Samtidigt, för att detta ska gå att genomföra behöver vi kunna lita på att de saker vi pratar med verkligen är de saker vi tror att det är. Vi behöver även kunna lita på den information som sakerna skickar. Och dessutom måste det gå att begränsa access till sakerna så att bara den som har rätt att styra sakerna får göra det. Vad det handlar om är klassisk IT-säkerhet och client-server-management – men för miljarder av enheter i komplexitet, noll kronor i kostnad och utan att förbruka energi.

Detta låter inte precis enkelt – och det är kanske till och med omöjligt. Naturligtvis kan inte kostnad och energiförbrukning vara exakt noll. Den forsknings- och ingengörsmässiga utmaningen är att hitta mekanismer (protokoll, system, komponenter) kapabla att skala upp till den komplexitet som det stora antalet enheter ställer, men där den lokala komplexiteten (per enhet) är så låg att den möter kostnads- och energibudget. För inbyggda system, och speciellt där det är systemet som skall läggas till en så enkel sak som en lampa, är kostnaden väsentligen noll. Det enda som räknas är funktionaliteten – och säkerhet är inte en del av funktionaliteten, den är bara ett sätt att säkra funktionaliteten.

Jag tycker dock att det låter utmanande, extremt lockande och jag ser att lösa dessa utmaningar är nyckeln till att visioner som Ericssons 50 Billion Connected Devices 2020 ska kunna lyckas. (Tyvärr ser jag inte att Ericsson pratar om dessa utmaningar i sin presentation, men den handlar i första hand om att sälja in visionen – inte beskriva vad som krävs).

En viktig komponent i säkerhetskedjan är tillgången på bra krypton. Nu vill jag direkt säga en sak: Jag stöter ofta på fall där man av olika skäl kommit fram till att systemet och affären runt systemet (produkten och eller tjänsten) kräver någon form av skydd. Och att man därför landat i att man behöver kryptera. Oftast har man dessutom tagit ett steg till och valt AES-256 som kryptolösning. Inte sällan är detta fel.

Hur kan det vara fel, undrar du säkert? Om vi tar glödlampan som exempel igen. Hur viktigt är det att någon utomstående vet att lampa med ID-nummer 31415926535 är tänd eller släkt – vad skulle kunna hända om den informationen kom i orätta händer? Det kan säkert finnas scenarion där det kan vara viktigt.

Det som är antagligen är mycket viktigare är att veta att statusinformationen verkligen kommer från 31415926535 och att du kan lita på att informationen är korrekt. Det som annars skulle kunna hända är att lampa 31415926535 och dess 10000 kompisar som används för att belysa Volvos nybilsparkering är släkta/trasiga och att tjyven kan härja fritt, men att du tror att dom är tända.

Det som oftast krävs är därför pålitliga identiteter och skydd av ett meddelandes integritet (så att ingen kan pilla på meddelandet utan att det upptäcks av mottagaren). Och ibland även att meddelanden inte går att läsa för den som inte är behörig – att meddelandet är konfidentiellt för andra än sändaren och mottagaren.

Ett symmetriskt krypto som AES ger i första hand konfidentialitetsskydd. Det kan även används för att ge integritetsskydd och identitetskontroll och förutsätter att sändare och mottagare på något sätt redan kommit överens om nycklar. Vanligare är att asymmetriska krypton (kallas även krypto med publika nycklar) och hashfunktioner används att etablera identitet och integritet.

Tyvärr är det svårt att hitta bra algoritmer som inte kostar för mycket. Speciellt asymmetriska algoritmer finns det för närvarande inga som egentligen fungerar för Internet of Things. Det som är positivt är att problemet har börjat uppmärksammas. EU-sponsrade ECRYPT II anordnar i november en konferens i ämnet. På konferensen CRYPTO 2011 hölls en rump session där Danilo Gligoroski presenterade del resultat som visar på mycket snabbare/effektivare asymmetriska krypton.

Även protokoll som inte är för komplexa, men samtidigt säkra behöver utvecklas. IETF anordnade i mars en workshop om problemställningarna runt Internet of Things, men än är det långt tills vi har standarder att bygga på.

Secworks gör uppdrag riktat mot utvecklingen av Internet of Things, och kommer att bevaka och försöka bidra till att få fram de teknologier som krävs. Jag kommer därför att posta mer om utvecklingen av säkerhet och management för Internet of Things här. Bland annat om de riktigt kompakta algoritmer och implementationer som faktiskt finns redan i dag. Häng med!

Fungerande attacker mot kryptoskydd i FPGA

Bruce Schneier har bloggat om fungerande, dvs praktiskt genomförbara attacker mot kryptoskyddet i FPGA:er från Xilinx.

En RAM-baserad FPGA (Field Programmable Gate Array – en digital krets vars funktion kan bestämmas efter att kretsen tillverkats) behöver konfigureras varje gång den startas (strömsätts). Konfigurationen består av en bitfil, dvs en hög med bitar som definierar kretsens konfiguration. Bitfilen laddas in från ett för FPGA-kretsen externt minne, oftast ett litet FLASH-minne.

Eftersom FPGA-kretsarna utan sin konfiguration är identiska (iaf i så motto att två kretsar av samma modell) är det enkelt att kopiera en konstruktion genom att läsa ut bitfilen från det externa minnet.

För att förhindra detta erbjuder Xilinx precis som andra leverantörer av RAM-baserade FPGA:er ett kryptobaserat kopieringsskydd. Bitfilen krypteras när den genereras. Internt i FPGA:n finns sedan en kryptomotor, oftast baserade på symmetriska blockkrypton som 3DES eller AES samt register för att hålla kryptonyckeln. Nyckeln går att skriva ner till registren men går inte att läsa ut. Utan korrekt kryptonycklar kommer bitfilen när den laddas in inte att blir korrekt. Detta gör att en kopierad bitfil inte går att använda och produkten är skyddad.

Det forskarna Amir Moradi, Alessandro Barenghi, Timo Kasper och Christof Paar nu har visat är att för Xilinx FPGA-familj Virtex-II Pro går det enkelt att genomföra en sidoattack som avlöjar de interna kryptonycklarna. Författarna säger sig även kunna manipulera bitfilen och den vägen introducera ny/förändrad funktionalitet. Författarna skriver:

After measuring the power consumption of a single power-up of the device and a modest amount of o -line computation, we are able to recover all three di erent keys used by its triple DES module. Our method allows extracting secret keys from any real-world device where the bitstream encryption feature of Virtex-II Pro is enabled.

As a consequence, the target product can be cloned and manipulated at will of the attacker. Also, more advanced attacks such as reverse engineering or the introduction of hardware Trojans become potential threats. As part of the side-channel attack, we were able to deduce certain internals of the hardware encryption engine.

Nu är Virtex-II Pro en relativt gammal FPGA-familj så man skulle kunna tycka att detta inte är så intressant.

Virtex-II Pro

Men författarna har även publicerat artikeln On the Portability of Side-Channel Attacks – An Analysis of the Xilinx Virtex 4 and Virtex 5 Bitstream Encryption Mechanism. I denna artikeln visar man att även nyare FPGA:er, som använder AES, också är känsliga:

We demonstrate sophisticated attacks on off-the-shelf FPGAs that go far beyond schoolbook attacks on 8-bit AES S-boxes. We were able to perform the key extraction by using only the measurements of a single power-up.

Access to the key allows cloning and manipulating a design, which has been encrypted to protect the intellectual property and to prevent fraud.

För mig som sysslar med säkerhet och hårdvara är detta kanonspännande. Hur det interna bitformatet för en FPGA ser ut (dvs vilka bitar som styr vad) är normalt sett inte tillgängligt. Och det kryptografiska skydd av bitfilen leverantörerna erbjuder har låtit väldigt säkert och bra – klart starkare än det rent fysiska skydd som microcontrollers använder för att skydda ROM-innehållet.

Samtidigt har det saknats vital information om HUR skyddet faktiskt fungerar. På vilket sätt genereras nycklarna? (iaf en leverantör säger explicit att dom tranformerar nycklen, men inte hur detta sker). Vilken kryptomod används? (det är blockkrypton som används och då krävs det en kryptomod). Hur har implementationen testats för riktade attacker? Detta är några frågor jag försökt få svar på. De artiklar som nu publicerats kastar en del ljus på hur det faktiskt fungerar.

Nu väntar vi bara på reaktionerna från Xilinx (och dess konkurrenter).

NISTs motivering till SHA-3-finalisterna

För ett par veckor sedan publicerade NIST ett dokument som sammanfattar status för SHA-3 tävlingen, hur NIST utvärderat och bedömt alla kandidater samt ger NISTs motivering till de fem finalister man valt ut och de man inte valde ut. För de fem finalisterna skriver NIST följande:

BLAKE

BLAKE was selected as a finalist, due to its high security margin, good performance in software,
and its simple and clear design.

Grøstl

Grøstl was selected as a finalist because of its well-understood design and solid performance,
especially in hardware. While Grøstl’s security margin is not ideal, NIST views it in light of the extensive amount of cryptanalysis that has been published, both on Grøstl itself and the larger AES structure on which Grøstl is based. Due to the large amount of existing cryptanalysis, NIST feels that future results are less likely to dramatically narrow Grøstl’s security margin than that of the other candidates.

JH

JH was selected as a finalist because of its solid security margin, good all-around performance,
and innovative design.

Keccak

Keccak was selected as a finalist, mainly due to its high security margin, its high throughput and
throughput-to-area ratio and the simplicity of its design.

Skein

Skein was selected as a finalist, mainly due to its high security margin and speed in software.

Mer info om respektive kandidat, hur dom utvärderats och bedömts finns i dokumentet. Och förhoppningsvis blir det som NIST skriver i dokumentet – att vi får nya, riktigt bra hashfunktioner i 2012.

Forskare extraherar lösenord ur iPhone

Forskarna Jens Heider och Matthias Boll vid Fraunhofer-institutet har visat att det är möjligt att på några få minuter plocka ut hemligheter ur nyckelringen i en iPhone.

I artikeln Lost iPhone? Lost Passwords! Practical Consideration of iOS Device Encryption Security visar dom hur man genom att Jailbreaka iPhonen kan komma åt filsystemetm, knäcka skyddet för nyckelringen och extrahera innehållet.

Dom har även lagt upp en film på Youtube som visar attacken:

Vad den här attacken visar är, inte så förvånande, att kan man väl komma in i systemet går det att komma åt innehållet oavsett om det är väl skyddat. Vad den här attacken också visar är vikten av att skydda informationen som lagras så mycket som möjligt. Och dessutom använda exempelvis Apples Find my iPhone.

Vad det här inte visar är hur hemskt och fel det är med att kunna jailbreaka – vilket det inte är.

Utveckling och trender inom kryptanalys

Kryptoforskaren Orr Dunkelman presenterade på AsiaCrypt 2010 en ypperlig sammanställning över hur kryptanalysen utvecklats sedan 1970-talet (pdf). Från kryptotext-baserade attacker till dagens kub- och bumerangattacker som använder massor med kopplade krypto- och eller klartextmedddelanden och nycklar som relaterar till varandra på olika sätt.

Orr Dunkelman
Orr Dunkelman.

Presentationen övergår efter den historiska beskrivningen till att beskriva en ny trend – lågkomplexitetsanalysen. Vad det handlar om är att med olika metoder försöka attackera krypton där man har tillgång till lite data. Ned till en enskild kryptotext med en enskild nyckel. Här inför man alltså krav på vad som kan finnas tillgängligt för att försöka utföra en attack och försöker arbeta utifrån det.

Jag tycker att detta verkar vara en bra trend. Att ha tillgång till stora mängder med meddelanden och nycklar är mindre troligt, speciellt inte för inbyggda system som kommunicerar långsamt och kanske inte byter nycklar speciellt frekvent. Den nya trenden känns därför klart relevant.

På IACR har Orr Dunkelman och kollegor publicerat en artikel som väl representerar den nya trenden – Low Data Complexity Attacks on AES:

The majority of current attacks on reduced-round variants of block ciphers seeks to maximize the number of rounds that can be broken, using less data than the entire codebook and less time than exhaustive key search. In this paper, we pursue a different approach, restricting the data available to the adversary to a few plaintext/ciphertext pairs.

We show that consideration of such attacks (which received little attention in recent years) serves an important role in assessing the security of block ciphers and of other cryptographic primitives based on block ciphers. In particular, we show that these attacks can be leveraged to more complex attacks, either on the block cipher itself or on other primitives (e.g., stream ciphers, MACs, or hash functions) that use a small number of rounds of the block cipher as one of their components.

As a case study, we consider the AES — the most widely used block cipher, whose round function is used in various cryptographic primitives. We present attacks on up to four rounds of AES that require at most 10 known/chosen plaintexts. We then apply these attacks to cryptanalyze a variant of the stream cipher LEX, and to mount a new known plaintext attack on 6-round AES.

För den som är intresserad av kryptanalys kan ett par tips från Kryptera.se (på Twitter) vara av intresse. På Reddit kom ett par postningar om hur differentiell kryptanalys går till. Och här finns en sida för den som vill veta mer om att attackera LFSR-baserade krypton.