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
Avlyssning av krypterade röstsamtal » Kryptoblog

Avlyssning av krypterade röstsamtal

July 7th, 2008 by Joachim Strömbergson Leave a reply »

(Kompletterat med fler funderingar och tankar.)

För några veckor sedan hade Bruce Schneier en postning om en metod för att genomföra avlyssning av krypterad VoIP-trafik.

Bruce postning pekar på en artikel hos New Scientist som innehåller mer information. I artikeln berättas att forskare vid John Hopkins-universitetet på konferensen 2008 IEEE Symposium on Security and Privacy presenterat en artikel om hur de kan detektera ord och meningar även om kommunikationen är krypterad.

En av forskarna bakom artikeln är Charles V Wright.
Charles Wright

På Charles webbplats finns två olika artiklar som beskriver olika aspekter av attacker mot krypterad VoIP-trafik. Artikeln Spot Me if You Can: Uncovering Spoken Phrases in Encrypted VoIP Conversations är den som New Scientist skriver om.

Båda artiklarna tar avstamp i att det i många digitala system för röstkommunikation används talkodare (speech encoder) som ger variabel bitlängd (VBR) på kodordet beroende på vad det är för ord som kodas. När sedan det kodade talet krypteras med ett strömkrypto som bevarar längden på kodordet upptår en varians i bitströmmen som är starkt korrelerad till orden i samtalet. Denna varians läcker alltså information om den krypterade kommunikationen, information som går att utnyttja.

Forskarna har fokuserat på CELP-baserade (Code-Exited Linear Prediction) talkodare, vilka ger upphov till variabel kod. CELB-baserade talkodare är mycket vanliga och återfinns bland annat i GSM, LTE (AMR-kodaren), flera “G.”-CODEC:ar (exempelvis G.728) och Speex. I sitt arbete har forskarna har använt Speex.

Forskarna har använt flera olika databaser med röster, databaser som används för att utveckla talkodare, för att upptäcka att det finns en korrelation mellan ord och kodat tal som är krypterat. En av de databaser som använts är TIMIT.

Ord och fraser har kodats med Speex och sedan analyserats utifrån varians. Forskarna har byggt upp en prediktor för varje fras de letar efter, Prediktorerna är Markov-modeller (HMM – Hidden Markov Model).

En Markov-modell

Prediktorerna har sedan fått titta på den krypterade bitströmmen och utvärdera om den överensstämmer med den varians som skall finnas för de fraser respektive prediktor är tränad på.

Eftersom CELP-kodare arbetar på korta fonem och frikativ blir mer komplicerade ord lättare att detektera. Ord som artificial och intelligence visade sig vara lätta att detektera. (Gissningsvis skulle Laplacetransformerade differentialekvationer sticka ut ordentligt..).

Resultatet är riktigt imponerande/skrämmande/överraskande:


Our results show that an eavesdropper who has access to neither recordings of the speaker’s voice nor even a single utterance of the target phrase, can identify instances of the phrase with average accuracy of 50%.

In some cases, accuracy can exceed 90%. Clearly, any system that is susceptible to such
attacks provides only a false sense of security to its users.

Frasen Young children should avoid exposure to contagious diseases predikterades perfekt i de tester som utförts. Forskarna fick dock en del falska träffar (false positives), men ju längre den sökta frasen var desto mindre falska fel erhölls.

I artikeln beskrivs även om försök att skydda kommunikationen genom att fylla ut den variabla bitströmmen till block om 128, 256 eller 512 bitar. Paddning visade sig fungera mycket bra. Nackelen med paddning är att det kostar i bandbredd. 512 bit stora block med Speex ger en extra bandbredd på drygt 30%. Paddning till 128 bit verkar vara minimum att använda, vilket ger en extra bandbredd på 16.5%.

Den andra, något äldre artikeln, Language Identification of Encrypted VoIP Traffic: Alejandra y Roberto or Alice and Bob? visar hur det går att identifiera vilket språk som talas i en krypterad VoIP-kommunikation. Detta utan orden i samtalet identifieras.

Författarna använder här variansen i samtalet i kombination med information om fördelning av ord, och speciellt bigram och trigram av ord för olika språk. Dessa fördelningar används för att skapa mönster eller prediktorer. Och det fungerar mycket bra. Forskarna skriver:


For instance, our 21-way classifier achieves 66% accuracy, almost a 14-fold improvement over random guessing. For 14 of the 21 languages, the accuracy is greater than 90%. We achieve an overall binary classification (e.g., “Is this a Spanish or English conversation?”) rate of 86.6%.

Även i den här artikeln har författarna undersökt hur väl det fungerar att försöka eliminera variansen genom att padda det kodade samtalet upp till fixa storlekar:


Padding to 128-bit blocks is largely ineffective because there is still sufficient granularity in the packet sizes that we can map them to basically to th esamet hree bins used by our improved classifier inSection4.2.

Even with192- or 256-bit blocks, where dimensionality reduction does not offer substantial improvement, the correct language can be identified on the first guess over 27% of the time — more than 5 times better than random guessing.

Sammantaget innebär resultaten i båda artiklarna alltså att även om det inte går avlyssna/tolka vad som sägs i ett samtal, går det att identifiera vilket språk som samtalet förs på!

Notera att det inte spelar någon som helst roll vilket krypto som används (så länge som variansen är bevarad). Kryptot kan vara hur bra som helst. Detta är ett exempel på en sidoattack och sättet att skydda sig mot detta är att inte tillåta någon varians, utan att kasta bandbredd på problemet och köra med en kodare som har en fix bandbredd ut. En sådan kodare är GSM Enhanced Full Rate, men även Speex innehåller en kodare med fix bandbredd.

En annan observation är att attackerna som presenteras i de två artiklarna är förhållandevis (förvånande) enkla. När väl prediktorerna har tagits fram krävs det lite beräkningskapacitet för att utföra attacken på strömmande data. Har man bara en kraftfull dator borde det inte vara något problem att titta på trafik realtid, iaf för ett begränsat antal samtal och begränsat antal fraser.

Jag hade dock valt att bygga en implementation av artiklarna med FPGA:er.

En FPGA
En trevlig FPGA från Altera.

Markovkodarna borde gå kanonfint att implementera som finita tillståndsmaskiner (FSM) med träningsmönster och tillstånd i block-RAM. En FSM-baserad HMM borde hinna med att hantera flera fraser (tidsmultiplex), och i en FPGA borde det gå att få in hundratals HMM:er.

Med hjälp av tekniken i den gamla artikeln detekterar man vilket språk som gäller. Utifrån den kunskapen laddar man in de träningsmönster som gäller i block-RAM. Sedan kan FPGA:erna leta efter intressanta mönster. Vid träff går man vidare och gör en mer detaljerad analys.

Så hade jag gjort.

På Charles Wrights webbplats finns en hel del andra intressanta artiklar vad gäller trafikanalys på krypterad trafik. Bland annat hur man kan identifiera och visualisera vilken typ av data (videoström, filöverföring, epost, webbsidor) som skickas i en krypterad ström. Mycket spännande om man är intresserad av att veta hur modern trafikanalys kan gå till, och vad man kan göra för att skydda sig.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Advertisement

4 comments

  1. Christian says:

    Intressant. Skulle det alltså vara en fördel att föra samtal i en för telefonsamtal annars icke-optimal miljö med oregelbundet bakgrundsljud?

  2. Aloha!

    Nej, tyvärr. I artiklarna har dom även testat hur väl det funkar att lägga till störningar som CODEC:en har svårt att hantera. Att döma av artiklarna ger pålagda störnningar väldigt lite/dåligt skydd.

    Man skall nog även tänka på att om du pratar i en bullrig miljö kommer du själv att ha svårt att höra – och antagligen kompensera genom att höja rösten och försöka tala tydligare. Detta borde motverka försöken att skydda samtalen med buller och oljud.

    Om man kan välja bör man köra med en CDR (Constant Data Rate) CODEC, och gärna ett krypto med fasta datastorlekar (ett blockkrypto). Kan man inte välja CODEC bör man iaf se till att använda ett blockkrypto med 128 bit block, ex AES. Inte köra med RC4 eller annat strömkrypto som bevarar variansen.

    Kan man inte välja krypto heller skall man antagligen betrakta kommunikationen som osäker och ta hänsyn till det när man pratar.

  3. Christian says:

    Tack för det uförliga svaret – jag ska ta och RTFA 🙂

Leave a Reply

You must be logged in to post a comment.