Я, в уикипедията имало интересни неща по въпроса и референция към един pdf (обаче е стар и не знам дали е в сила това което пише там):
http://en.wikipedia.org/wiki/Skype_protocolТова, което ми направи впечатление (не знам дали е валидно още де):
The RC4 encryption algorithm is used to obfuscate the payload of datagrams.
1. The CRC32 of public source and destination IP, Skype's packet ID are taken
2. Skype obfuscation layer's initialization vector (IV).
The XOR of these two 32 bit values is transformed to a 80-byte RC4 key using an unknown key engine.
A notable misuse of RC4 in skype can be found on TCP streams (UDP is unaffected). The first 14 bytes (10 of which are known) are xored with the RC4 stream. Then, the cipher is reinitialized to encrypt the rest of the TCP stream
След като знаеш първите 10 байта е елементарно да намериш първите 10 байта от RC4 keystream-a - просто ще XOR-неш две известни 10-байтови стойности. Тъй като след 14-тия байт, RC4 се реинициализира (под което предполагам се разбира reseed-ване на KSA и нулиране на PRGA броячите), могат да се декриптират 10 байта от съобщението - от 14-тия до 24-тия, без да знаеш ключа. Ако в тях се съдържа нещо, което да е характерен pattern за skype трафик, то тогава може да се направи някакъв много зъл филтър за скайп трафик.. Но това само при положение че между 14-тия и 24-тия байт от криптирания трафик има последователност, която да може със сигурност да докаже, че това е скайп комуникация.
П.П. ако на някой му е хрумнало че след като имаме 10-те първи байта от RC4 keystream-а можем да декриптираме целия трафик....така като гледам много трудно ще стане това. KSA се seed-ва с 80-байтов (640-битов) ключ, който както пише горе е уникален за всеки изпратен skype пакет, т.е включва някакъв skype packed ID и следователно не се преизползва. Можем да тръгнем да bruteforce-ваме RC4 алгоритъма, seed-вайки KSA с различни стойности, докато получим същите 10 байта keystream, до максимум 2^640 опита трябва да стане. Не че това не е изчислително невъзможно сложна задача де, ама все пак има и друг проблем - 10 байта keystream просто няма да са достатъчни. Ще има (2^640/2^80)-1 = (2^560)-1 ключа, които ще генерират същите 10 начални байта keystream, но няма да са правилния ключ. Така че този пропуск реално погледнато трудно ще доведе до компрометиране на криптираните съобщения.