Etikettarkiv: krypto

Bra kryptorekommendationer från Cisco

Cisco har lagt upp en artikel om olika kryptoalgoritmer och vad Csisco rekommenderar sina kunder att använda i dag och för framtiden. Den här tabellen ger en bra sammanfattning över vilka algoritmer Cisco ser att man bör använda, vilka man ska fasa ut och vilka att undvika:

Ciscos tabell över algoritmer.
Ciscos tabell över algoritmer.

I sin artikel introducerar Cisco begreppet Next Generation Encryption (NGE). Ciscos definition av NGE är:

NGE offers the best technologies for future-proof cryptography and it is setting the industry trend. These are the best standards that one can implement today if the goal is to meet the security and scalability requirements 10 years hence or to interoperate with the cryptography that will be deployed in that timescale.

The algorithms that comprise NGE are the result of more than 30 years of global advancement and evolution in the area of cryptography. Each constituent component of NGE has its own history, depicting the diverse history of the NGE algorithms as well as their long-standing academic and community review. For instance, AES was given its name by the U.S. National Institute of Standards and Technology (NIST), but AES was not created by NIST. AES was originally called Rijndael and was created by two Belgian cryptographers. Additionally, ECDSA and ECDH have had fundamental contributions made to their creation by cryptographers from around the world, including Japan, Canada, and the United States. In the end, NGE is composed of globally created, globally reviewed, and publicly available algorithms.

The U.S. National Security Agency (NSA) has also identified a set of cryptographic algorithms that, when used together, are the preferred method for assuring the security and integrity of information passed over public networks such as the Internet. The NSA called the set of algorithms Suite B. The algorithms in Suite B are the same algorithms used in NGE. Additionally, integrated into IETF standards, NGE algorithms make it easier to collaborate in environments where costs or logistics traditionally hindered information sharing.

Ciscos NGE-svit innehåller inga egentliga alternativa algoritmer, utan bara en av varje typ. Jag ser att man nog bör vara öppen för att ha i alla fall en reservalgoritm. Men grundrekommendationerna är bra, speciellt att dom pekar ut vad man bör fasa ut och vad det är hög tid att sluta använda.

Ciscos artikel innehåller även bra info om konfiguration av algoritmerna så att man undviker en del fallgropar. Ansvarar du för IT-säkerhet och/eller konfiguration av ex IPsec/VPN är Ciscos artikel väl värd att lägga några minuter på.

sphlib 3.0

För ett tag sedan släpptes version tre av biblioteket sphlib. Sphlib implementerar samtliga finalister samt flera av de tidigare kandidaterna till hashfunktionstävlingen för att få fram hashfunktionen SHA-3. Om man vill börja underrsöka och testa SHA-3-algoritmer är sphlib trevlig att arbeta med.

Sphlib ger inte maximal prestanda och har därför fått kritik för att kanske inte ge en perfekt bild av vad de olika kandidaterna kan åstadkomma. För den som vill se den typen av resultat finns EBASH-projektet att titta på. Men för den som inte är ute efter prestanda, utan titta på funktion, struktur etc är sphlib bra.

Workshop om lättviktskrypton

Det finns i dag en stark trend mot att allt fler saker runt omkring oss kopplas upp till Internet – Dörrar, kylskåp, båtmotorer, dunjackor, värmeväxlare, plankor på byggvaruhuset, glödlampor, termostater, kranar etc. Allt annat än fräcka och och sexiga saker – men viktiga för att vårt samhälle ska funger och med stor potential till effektivisering när sakerna får digital intelligens och kan börja kommunicera.

För att detta Internet of Things (IoT) ska fungera måste vi kunna säkert identifiera sakerna och utbyta information – kommandon och status med dessa saker. I vissa fall krävs även att kommunikationen är hemlig för alla utom de som har rätt att kommunicera med en given sak – men det är inte lika viktigt. Detta ställer krav på att det finns säkerhetsmekanismer i IoT-sakerna. (Jag har tidigare skrivit om behovet av säkerhetsmekanismer anpassade för IoT). ECRYPT II-Workshopen ECRYPT Workshop on Lightweight Cryptography som anordnades i slutet av november med målsättningen att presentera nya säkerhetslösningar för små, inbyggda system är därför klart relevant och intressant.

Att döma av programmet (pdf) sker det aktiv utveckling av både kompakta symmetriska krypton och hashfunktioner. Oftast är det hårdvaruimplementationer där man mäter antalet grindar (generaliserad till antalet NAND2-grindar) och energiförbrukningen. Ett exempel är blockkryptot Piccolo-128 som bara kräver 60% av storleken hos den minsta implementation av AES-128 som tidigare presenterats. Dock med en prestanda på 40% av AES.

Det jag tycker är mer intressant är presentationen av resultaten från implementationer av 12 standardkrypton (IDEA, DES, AES, KASUMI, TEA m.fl.) på Atmels ATtiny45-processor. Detta är en minimal (även fysiskt) 8-bitars processor med 4 kByte FLASH-minne, 256 Byte EEPROM och 256 Byte SRAM. Det finns inte mycket detaljer om hur implementationerna är uppbyggda, men att döma av det som presenterades lyckades dom implementera alla 12 algoritmer.

Atmel ATtiny45.
En näve ATmel ATtiny45-kretsar.

Et annat arbete som presenterades är försök att implementera autenticerande kryptomoderTexas Instruments processor MSP430. De moder man arbetat med är CCM, GCM, SGCM, OCB3 och Hummingbird-2. Detta är ett i mina tycken klart intressant. Att få konfidentialitet och autenticering samtidigt ger en mer kompakt lösning än separata algoritmer.

Det presenterades även förslag till autenticerat broadcast-protokoll för industribussen CAN samt försök att implementera AES på en 4-bitarsprocessor(!).

Det jag däremot saknar är nya, lättviktiga asymmetriska algoritmer samt försök att befintliga asymmetriska algoritmer. Det spelar ingen roll om vi har högar med blockkrypton anpassade för små processorer om vi inte kan göra bra nyckelutbyten. En bra minimal implementation av ett vältestat krypto som AES (gärna som stödfunktion i processorns hårdvara), en autenticerande kryptomod samt en nyckelutbyte är mycket mer intressant än ännu ett blockkrypto eller hashfunktion.

För den som vill läsa de artiklar som presenterades finns dom samlade i proceedings för konferensen och går att ladda ner (pdf).

En sista sak. ECRYPT II har även en webbplats, ECRYPT Lightweight Cryptography Lounge där information om kryptolösningar för kompakta, begränsade samlas. Är du intresserad så ta en titt där – det gör jag.

Stanford erbjuder nätkurser i säkerhet

Stanford University har de senaste åren lanserat ett antal öppna nätkurser. Kursen i artificiell intelligens fick stor uppmärksamhet när den presenterades. För den som är intresserad av säkerhet finns det två kurser som kommer att gå efter nyår.

Stanford University

Kursen Computer Security, som startar i februari, fokuserar på hur man konstruerar säkra datorbaserade system. I listan med saker som kursen ska innehållas listas saker som:

* memory safety vulnerabilities,
* techniques and tools for vulnerability detection
* sandboxing and isolation
* web security
* network security
* malware detection and defense
* mobile platform security

Kursen Cryptography, som startar i januari, ser ut att vara en mer grundläggande kurs, men även ta upp hur krypto ska implementeras och använda i verkliga system och applikationer. I båda kurserna ingår labbar och hemuppgifter.

Kurssidorna innehåller mer information inkl videosnuttar med lärarna för kurserna där de berättar mer om syfte, målgrupp och innehåll i kurserna.

Jag ska försöka följa båda kurserna. Häng med du också!

STEED – Initiativ för kryptering mellan ändpunkter

Sprang på ett nytt säkerhetsinitiativ kallat STEED. Tanken med STEED är att utveckla kryptering som spänner hela vägen mellan ändpunkterna i en kommunikation och skall vara så enkel att använda att det alltid (ofta) används. Initiativtagarna till STEED skriver:

End-to-end e-mail encryption is still ignored by almost all users. The mails are left in the clear in the mailboxes of the web mail providers, where they are frequently collected by attackers and lead to an escalation of the attack due to the sensitivity of the mail content. We suggest a new and simplified infrastructure to protect mail that is compatible with OpenPGP and S/MIME and relies on an easy-to-use trust model without a central administration.

Initiativtagarna är i det här fallet Marcus Brinkmann och Werner Koch från Tyska företaget g10CODE, kanske mest kända för att driva utvecklingen av GnuPG.

Det SPEED är tänkt att erbjuda är saker som:

  • Automatisk nyckelgenerering
  • Automatisk nyckeldistribution
  • Opportunistisk kryptering
Tillsammans är detta egenskaper avsedda att göra säkehetsanvändningen så osynlig som möjligt som användaren. I första hand verkar STEED vara fokuserat på mailtjänster. Det finns en artikel av Marcus och Werner som närmare beskriver vad de vill åstadkomma med STEED och hur detta är tänkt att ske. Vi får se om STEED flyger eller inte, men initiativ som gör säkerhet enklare att använda och därmed mer utbredd gillar jag.

Uppdaterad ECRYPT II-rapport om algoritmer och nyckellängder

ECRYPT II har äntligen publicerat den uppdaterade versionen av sitt dokument ECRYPT II Yearly Report on Algorithms and Keysizes (pdf). (Dokumentet var färdigt i juni, men har publicerats först nu.)

Ecrypt II

Jag anser att detta dokument ger en bra vägledning om var vi står forskningsmässigt vad gäller olika algoritmer, styrkan hos nycklar för olika typer av algoritmer samt ger rekommendationer om minimum nyckellängder att använda. Det jag skulle vilja se är en sammanfattning som listar dom stora skillnaderna gentemot förra årets version. Vad har ändrats och varför. Symmetriska och asymmetriska algoritmer, blockmoder, nycklar, protokoll. Allt finns samlat i ett dokument vilket gör det lätt att få grepp om nuläget.

Om du arbetar med säkerhetsfunktioner på något sätt – kravställning, systemdesign, säkerhetspolicy, design och/eller implementation, tes/verifiering etc är detta ett dokument väl värt att läsa igenom.

Bra böcker om krypto

Jag får ibland frågan om jag har några tips på böcker att läsa för att lära sig mer om krypto och IT-säkerhet. För den som vill få en allmän introduktion, utan att kasta sig ner i specifika algoritmer och matematiken bakom är Simon Singhs The Code Book fortfarande riktigt, riktigt bra. The Code Book finns även översatt till svenska och heter Kodboken.

The Code Book av Simon Singh
The Code Book av Simon Singh

Om du istället verkligen få en grundläggande bas inom krypto finns istället Nigel Smarts Cryptography: An Introduction.

Cryptography: An Introduction av Nigel Smart
Cryptography: An Introduction av Nigel Smart

Nigels Smarts bok täcker in allt från grundläggande koncept, går igenom historiska krypton (ofta samma som Singhs bok, men mycket mer detaljerat) till moderna algoritmer och attackmetoder. Boken beskriver både symmetriska och asymmetriska metoder. Smarts bok har använts i kurser på Chalmers och ligger på en högskolenivå i svårighetsgrad. Jag tycker dock att boken är trevlig, pedagogisk och lättläst. (Kapitlet om Elliptic Curve-krypto borde dock ligga längre bak i boken. Det kommer inte längre först vilket det gjorde i tidigare versioner, men känns ändå malplacerat och borde komma i samband med andra asymmetriska metoder.)

En annan sak som är bra med Smarts bok är att den finns fritt (som i gratis) tillgängligt på nätet. På Nigels Smarts webbplats finns en sida med information om olika versioner av boken samt en möjlighet att ladda ner boken. Notera att boken är i Postscript-format så du behöver antagligen konvertera den till PDF, EPUB eller vad du nu vill ha. Vill du fördjupa dig inom krypto finns här något att gotta sig med i höstrusket.

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!

Artikel om hur kryptering fungerar

IDGs webbplats finns nu den artikel om hur kryptering fungerar jag skrivit, en artikel IDG publicerade i tidningen Techworld för ett tag sedan.

Artikeln försöker förklara hur några vanliga krypton fungerar. Eftersom man i en artikel för publicering har hårda gränser på antalet tecken får man alltid göra begränsningar och tyvärr ofta skära bort saker känns viktiga – detta för at få med viktigare saker. Artikeln fokuserar därför på symmetriska krypton, exempelvis AES.

Min utgångspunkt vid urvalet av algoritmer var typiska krypton vid säker kommunikation på Internet (ex med hjälp av OpenSSL). Sedan borde man naturligtvis skriva om asymmetriska krypton, hashfunktioner, protokoll, kryptomoder och alla andra komponenter som tillsammans bygger upp funktionaliteten för säker kommunikation. Förhoppningsvis finns det utrymme för uppföljningsartiklar om detta.

IDG har även lagt upp en annan artikel jag skrivit – en artikel där jag tittar närmare på några olika USB-minnen som på olika sätt försöker erbjuda säkerhet.

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).