Etikettarkiv: ZUC

Algoritmerna 128-EEA3 och 128-EIA3 godkända av 3GPP

(Det här är egentligen ingen riktigt nyhet då den är flera månader gammal. Men eftersom det inte uppmärksammats tycker jag att det är värt att ta upp.)

3GPPs 53:e SA-möte i september 2011 beslutade 3GPP att anta algoritmerna 128-AAA3 och 128-EIA3 som säkerhetsstandarder för LTE. Länken pekar på agendan/mötesprotokollet från mötet. Den relevanta sektionen att titta på är sektion 11.16.

Vad är nu detta för algoritmer för något? Jo det är de nya konfidentiltets- och integritetsalgoritmerna som skyddar kommunikationen mellan mobilen och mobilstystemet. Dessa algoritmer är byggda runt strömkryptot ZUC. Beslutet som tagits innebär att även ZUC är en antagen standard. (Jag har tidigare skrivit ett par inlägg om ZUC tidigare och även på gamla Kryptoblog.). Strukturmässigt är ZUC ett strömkrypto med en LFSR-kedja sammankopplad med ett tillståndsmaskin – på många sätt likt Snow och Snow3G.

Strukturen hos ZUC.
Strukturen hos ZUC.

Algoritmen 128-EEA3 använder ZUC som en nyckelströmsgenerator. Algoritmen 128-EIA3 är en generator för äkthetskoder (message authentication code – MAC). Algoritmerna kan användas separat eller tillsammans.

I samband med beslutsmötet i september presenterade även ETSIs säkerhetsgrupp SAGE sin slutliga version av sin utvärderingsrapport för ZUC. Rapporten finns att ladda ner (zipfil) från 3GPP.

För den som vill få tag på specifikationerna för ZUC, 128-EEA3 och 128-EIA3 (version 1.6) finns dom att hämta GSMA. På den sidan finns även specifikationer för äldre algoritmer exempelvis Snow3G, Milenage, Kasumi samt deras kryptomoder så som dom används i GSM, 3G, LTE etc. Letar du efter en referensimplementation av ZUC finns den in specifikationen (i dokumentet). Det kan dock vara värt att notera att namnen som används i koden inte riktigt stämmer med de som används i algoritmbeskrivningen. Hos 3GPP själva är den senaste versionen av specifikationerna intressant nog spärrade/censurerade i avvaktan på beslut om exportkontroll. Företaget Galois, som utvecklar verktyget Cryptol har skapat en implementation av ZUC i Cryptol och använt den för att testa algoritmen.

Det ska bli intressant att se utvecklingen runt ZUC, 128-EEA3 och 128-EIA3 – kommer dom att visa sig starka när användningen av dom börjar öka och därmed intresset för att attackera dom ökar? Och kommer algoritmernas användning att få spridning på global nivå.

Knäckta satellitkrypton och hemliga algoritmer

Ars Technica skriver om hur forskare i Tyskland lyckats knäcka krypton som används vid satellitkommunikation.

Satellitkommunikation

Eftersom signalen från en satellit täcker så stora ytor är det enkelt att fånga in signalen. För att skydda samtal från avlyssning krävs därför ett bra konfidentialitetsskydd – ett bra krypto.

Det är den internationella standardriseringsorganisationen ETSI som specificerat både kryptona GMR-1 och GMR-2 kryptona samt hur dom ska användas. Hur dom ska användas är öppen information, men själva kryptona är hemliga. ETSI skriver i sin specifikation (pdf):

The internal specification of algorithm A5-GMR-1 is managed under the responsibility of the GSC; it will be made available in response to an appropriate request

Att algoritmerna är hemliga hindrade dock inte forskarna. Genom hacka sönder uppdateringsfiler av programvaran till telefoner samt genom att analysera trafiken vid användande av satellittelefoner från Thuraya och Inmarsat kunde forskarna räkna ut hur algoritmerna fungerar.

Forskarnas analys visar att det skydd kryptona ger är så svagt att det finns en klar risk att satellitbaserad trafik inklusive samtal går att avlyssna. I artikeln Don’t Trust Satellite Phones: A Security Analysis of Two Satphone Standards skriver forskarna:

In this paper, we analyze the encryption systems used in the two existing (and competing) satphone standards, GMR-1 and GMR-2.

We were able to adopt known A5/2 ciphertext-only attacks to the GMR-1 algorithm with an average case complexity of 2**32 steps. With respect to the GMR-2 cipher, we developed a new attack which is powerful in a known-plaintext setting. In this situation, the encryption key for one session, i.e., one phone call, can be ecovered with approximately 50–65 bytes of key stream and a moderate computational complexity.

A major finding of our work is that the stream ciphers of the two existing satellite phone systems are considerably weaker than what is state-of-the-art in symmetric cryptography.

(På forskarnas egna webbplats finns mycket mer information.)

Forskarnas bedömning är att eftersom det skulle kosta så mycket att byta algoritmer kommer dessa inte att ändras. Istället rekommendrar dom att betrakta kommunikationen som öppen och sedan komplettera med ytterligare lager av skydd. Tyvärr kostar dessa extraskydd kapacitet i en förbindelse som redan har ganska begränsad kapacitet. Dessutom kan dessa skydd införa ökad fördröjning och andra trafikala problem. Inmarsat, som även är operatör av satellitkommuninkation har över än så länge inte kommenterat eller gett några officiella råd till sina kunder.

Tyvärr är detta inte första gången ett hemligt krypto visat sig vara svagt och långt ifrån vad man kan förvänta sig av ett krypto som används i befintliga system. I smarta kort av MiFare Classic-typ, som bland annat används för betalning i publika transportsystem i Göteborg och Stockholm, finns ett hemligt krypto kallat Crypto-1. Trots att kryptot var hemligt lyckades forskare klura ut både hur kryptot fungerar, och att dess säkerhet var i stort noll.

Keeloq är ett krypto som används i elektroniska bilnycklar av i stort sett samtliga stora biltillverkare. Även detta krypto var hemligt och även här lyckades forskare räkna ut hur det fungerar samt visa på kryptots monumentala brister.

För ETSI är forskarnas nya resultat ännu ett misslyckande. Deras kryptostandarder för DECT, GSM, 3G och satellitkommunikation har alla visat sig ha stora brister. När det kommer till kryptoalgoritmer är det frågan om ETSI lever upp till sin devis World Class Standards.

Att hålla informationen om vilka kryptografiska algoritmer du använder hemliga är inte ett problem. Du kan helt enkelt strunta att berätta det. Problemet är om säkerheten hos ditt system beror av att denna information är hemlig.

Information som om den kommer ut kan skada din verksamhet ställer krav på skydd som kostar pengar. Du behöver införa mekanismer och metoder för att begränsa tillgången. Skyddet behöver dessutom övervakas så att du vet att det faktiskt fungerar.

Dessutom bör du ta fram en plan för hur du ska agera om informationen trots allt kommer ut. När hemligheten kommit ut måste den troligen bytas ut, alternativt att du måste kasta in handduken och införa andra skyddsåtgärder så som forskarna nu föreslår att användare av satellitkommunikation bör göra. Att byta algoritm kan bli väldigt kostsamt. Är det en algoritm som används i inbyggda system som tillverkas i stora volymer, används i fält och har lång livslängd är innebär bytet eventuellt att du måste byta ut hela systemet.

Hade din hemlighet istället bara varit en kryptonyckel hade bytet troligen handlat om att byta ut en sträng på 16, 32, 64 tecken eller liknande. Säkerheten sitter i nyckeln. Den är allt du egentligen ska behöva skydda.

Bra kryptoalgoritmer försvagas inte av att informationen om hur dom fungerar är känd. Tvärt om beror vår tillit på algoritmerna just av öppenheten. Algoritmen som utgör blockkryptot AES undersöktes ett stort antal gånger på olika sätt innan den accepterades som standard. Och AES fortstt under kontinuerlig undersökning. Det finns generationer av forskare som fixat sin hatt eller årets publiceringar genom att försöka hitta på nya sätt att vara elak mot AES.

Ju fler undersökningar som en algoritm står emot desto större tillit vågar vi sätta till den. Och det är öppenheten, tillgängligheten som gör dessa undersökningar möjliga.

I jämförelse med en öppen algoritm undersöks en hemlig algoritm mer sällan. Dessutom sker undersökningen oftast under en begränsad tid. När en hemlig algoritm bedömts som säker tas den i bruk och sedan sker sällan omvärdering av algoritmens säkerhet.

Det finns användare av hemliga algoritmer som vet vad dom gör, som har den spetskompetens som krävs att göra en bra bedömning. Men när erkända kryptoforskare som medlemmarna i ETSIs säkerhetsgrupp SAGE gör fel och försvagar snarare än förstärker en algoritm (som är fallet med KASUMI, byggt på MISTY-1) är det inte självklart att även en enskild grupp med aldrig så skarpa experter gör en bra bedömning. Den mekanism som har störst chans att ge bra algoritmer är öppna processer med många, oberoende tester över lång tid. Att skynda långsamt och kontinuerligt ompröva resultat.

AES togs fram genom en sådan process, strömkryptona i eSTREAM togs fram genom en sådan process och kommande hashfunktionen SHA-3 tas fram på detta sätt. Det finns inga garantier att detta ger säkra algoritmer, det visar bland annat eSTREAM där några krypton i dag är knäckta. Men detta är den bästa metod vi har i dag och det är en process som förbättras för varje iteration.

Även ETSI verkar till slut ha lärt sig av alla sina misstag och i arbetet med den senaste standarden ZUC har det faktiskt organiserats seminarier, workshops, diskussionsforum på nätet och varit en mycket mer öppen process (även om det finns mindre öppna designval även i ZUC).

Om du oroar dig för att någon ska veta hur ditt system fungerar så strunta att berätta vilket krypto du använder. Men hitta inte på egna algoritmer, utan använd öppna, etablerade standarder som stått emot granskning under lång tid. Gör du det är nyckeln till kostnadseffektiv,fungerande säkerhet din kryptonyckel.

Ny version av strömkryptot ZUC

I början av året skrev jag om status för strömkryptot ZUC. Bland annat att det i december dykt upp både svagheter i initieringsdelen av ZUC samt i integritetsfunktionen 128-EIA för LTE som använder ZUC.

Sedan en tid har GSMA släppt nya versioner av specifikationen av ZUC samt de funktioner för LTE som använder ZUC.

Den tidplan som Steve Babbage presenterat är att de nya versionerna ska utvärderas fram till juni 2011 och att ZUC, 128-EEA3 och 128-EIA3 kan tas med i LTE i juli 2011.

Status för kryptot ZUC

På Kryptoblog skrev jag ett par gånger (första artikeln, andra artikeln) om det nya strömkryptot ZUC som är tänkt att plockas in i mobilstandarderna LTE och LTE Advanced. Nu har det gått några månader så jag bestämde mig för att se om det finns några nyheter – inte minst vad gäller säkerhetsanalyser.

En av de saker som skett är att det organiserats en konferens om ZUC. The First International Workshop on ZUC Algorithm hölls den 2-3 december 2010 i Peking. Att döma av konferensprogrammet (pdf) presenterades ett flertal analyser. (Jag hittar ingen sida med lista till alla presentationer. Men genom att Googla på titeln och ev författare går det att få fram presentationerna.)

En av de som presenterade en säkerhetsanalys av ZUC och de nya LTE-algoritmerna EEA3 och EIA3 som använder ZUC var Bart Preneel från COSIC och ETSI/SAGE. Hans slutsats sammanfattas av hans sista bild:
Preneel conclusions

Dvs, inga svagheter i ZUC men tveksamheter om ZUC skiljer tillräckligt mycket från Snow3G för att skapa diversitet. Och EIA3 är inte robust.

En annan presentation från konferensen värd att titta lite på är
Evolution of Stream Ciphers towards ZUC som beskriver hur utvecklingen gått till med fokus på krypton i mobilsystem.

I stort sett samtidigt som ZUC-konferensen, mer exakt 5-9 december 2010 (dvs ett par dagar senare) gick den större kryptokonferensen AsiaCrypt 2010. Det är svårt att tänka sig att inte flera deltagare på ZUC-konferensen även var på AsiaCrypt. Och på AsiaCrypts rump session presenterade Hongjun Wu några klart intressanta resultat.

Cryptanalysis of Stream Cipher ZUC in the 3GPP Confidentiality & Integrity Algorithms 128-EEA3 & 128-EIA3 visar att initieringsdelen av ZUC har ett par grova fel som innebär att samma nyckel med ett stort antal initialvektorer leder till samma initialtillstånd. Wu och hans kollegor konstaterar att ZUC har problem med attacker baserade på kontroll av initialvektorn. Och att i vissa fall minskar den effektiva nyckelstyrkan från 128 till 66(!) bitar.

Nu är detta resultat inte officiellt publicerat och därmed inte granskat och verifierat. Men det är anmärkningsvärt att den observation Wu och hans kollegor gjort kunnat gå SAGEs granskning förbi.

En annan analys som visar på mostavande svagheter som Preneel och SAGE påpekat vad gäller MAC-funktionaliteten i EIA3 har dykt upp på artikeldatabasen IACR. Artikeln A Forgery Attack on the Candidate LTE Integrity Algorithm 128-EIA3 visar enligt författarna:

In this note we show that the message authentication code 128-EIA3 considered for adoption as one of the integrity algorithms of the emerging mobile standard LTE is vulnerable to a simple existential forgery attack.

This attack allows, given any message and the associated MAC value under an unknown integrity key and an initial vector, to predict the MAC value of a related message under the same key and the same initial vector with a success probability 1/2.

Slutligen noterar jag att det även pågår ett arbete hos Thomas Johansson och Martin Hell på EIT/LTH om att analysera ZUC. Arbetet som utförs av Marwan Mostafa ska vara klart 2011-02-18. Då Thomas Johansson är en av skaparna av strömkryptot Snow borde han och Marwan kunna göra en bra analys. Det skall bli väldigt spännande att se vad dom kommer fram till.

Hur det går med ZUC vågar jag inte sia, men förhoppningsvis skyndar man långsamt och inte trycker igenom standardiseringen utan att ta in de analysresultat som nu börjar trilla in.