Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

People seem to be misinterpreting the article, so here's a technical explanation:

- Skype's encryption algorithm is not, itself, broken;

- Skype uses a "prediction" algorithm to compress voice streams;

- therefore, words have a specific pattern of bandwidth use (toy example: "techcrunch" spikes around the "-crunch", since you'd expect "-nology");

- bandwidth use of encrypted compressed data is equal to bandwidth use of data that has only been compressed;

- these patterns (which can be detected "through" the encryption) allow fairly good reconstruction of the voice stream.

If you like this kind of thing, Google "ssh keystroke timing attacks", or, more generally, "traffic analysis".



The Linear Predictive Coding used for compressing speech does it at a much lower level than "technology" versus "techcrunch" - it uses a physical model of the human vocal tract (I've actually implemented the LPC used in the GSM codec).


Yes, I was intentionally simplifying it to only what was essential to this article. Do you have a better one-sentence explanation?


I think it's clear enough without the example in the brackets. Anyway, it wasn't really a criticism, just more detailed information that I thought readers might appreciate.


I think your explanation is misleading. LPCs predict the shape of the speech waveform, nothing higher level than that.


> Skype's encryption algorithm is not, itself, broken

Skype's encryption has not been cracked, but it is broken in the sense that it preserves exploitable structure in the ciphertext. The ciphertext should be essentially random, shouldn't it?


The ciphertext is "essentially random"; the amount of ciphertext (per second) isn't.

Encryption will keep your wife from reading your letters, but if you send a hundred letters a month to the new girl at work she might still get suspicious. Encryption does not promise to prevent that.


The essential difference is that this is a stream, not discrete messages. Yes, I know that at the IP or UDP level a stream consists of discrete datagrams, but this is not how users think of streaming media.

It's like a developer arguing that a project was completed exactly to spec, when the spec isn't what the client wanted, and the dev didn't make any real effort to understand what the client wanted.

You could always trade latency for security by batching more of the stream and encrypting larger blocks.


unless you use steganography to hide the existence of communication itself (see http://en.wikipedia.org/wiki/Steganography ).


Steganography doesn't hide existence of communication, it hides/obscures existence of messages in it. Important distinction.


Steganography hides the existence of covert communication. The message is hidden in an innocuous looking host (say a picture or video that noone would get suspicious about). So in that sense, the existence of actual communication is not known to a third party. I did a PhD theses on this topic :)


> Skype's encryption has not been cracked

I wouldn't be too sure about that. http://cryptolib.com/ciphers/skype/ http://techcrunch.com/2010/07/08/skypes-innermost-security-l...

I never actually took the time to use it and I couldn't find any record of any details being revealed after 29c3, but it looks solid enough and one guy on a blog claimed to have written a python library using this C code and was able to get some PoC to work.


They discovered the algorithm used, but that doesn't allow them to read the data - they'll need to actually crack the encryption first.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: