I saw some time ago a post discussing the issues surrounding encryption of speech/voice in VoIP and how it can leak information (can't find it now). Can someone provide an insight into some of the issues and how to mitigate them if one wants to use symmetric encryption to encrypt voice between two devices? Is asymmetric encryption possible (give the processing time required)?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
I'm not sure which post you're referring to, but one possible source of leakage results from using a variable-bit rate codec. If different sounds compress at different rates, than this will be reflected in the lengths of outgoing encrypted packets. By examining those sequences of lengths, it can sometimes be possible to accurately guess what phrases are being uttered.
See "Spot me if you can: Uncovering spoken phrases in encrypted VoIP conversations" by Wright, et al. This extends an earlier work, Language identification of encrypted VoIP traffic, in which the authors showed they could classify a speaker's language, encryption notwithstanding.
Padding the ciphertext packets, to, say, the nearest multiple of 128 or 256 bits can greatly reduce the ability of an attacker to make this type of attack. I would assume that using a non-variable bit rate codec would also work. Of course, there's a trade-off with bandwidth here; you'd have to weigh that against the security risks.
I strongly suspect assymetric crypto is not fast enough for the job. Typically, it's just used to establish a secure, authenticated channel so that users can agree on a symmetric key, which is used to encrypt the actual traffic.
Performing type of attack---looking at lengths, timings, etc. to infer information about content---is called traffic analysis.
I think you need to study the ciphers for GSM also, that are fast, low bandwidth etc.
Here's the specification: snow_3g_spec.pdf.