Skype security

Skype is a Voice over Internet Protocol (VoIP) system developed by Skype Technologies S.A. It is a peer-to-peer network in which voice calls pass over the Internet rather than through a special-purpose network. Skype users can search for other users and send them messages.
Skype says that it uses 256 bit AES to encrypt communication between users, although when calling a telephone or mobile, the part of the call over the PSTN is not encrypted. User public keys are certified by the Skype server at login with 1536 or 2048-bit RSA certificates. Skype's encryption is inherent in the Skype Protocol and is transparent to callers. Skype is not considered to be a secure VoIP system as the calls made over the network do not make use of end-to-end encryption, allowing for routine monitoring by Microsoft and by government agencies.
Security policy.
The company's security policy states that:
Implementation and protocols.
Registration.
Skype holds registration information both on the caller's computer and on a Skype server. Skype uses this information to authenticate call recipients and to assure that callers seeking authentication are accessing a Skype server rather than an impostor. Skype says that it uses public key encryption as defined by RSA to accomplish this.
The Skype server has a private key, and distributes that key's public counterpart with every copy of the software. As part of user registration, the user selects a desired username and password. Skype locally generates public and private keys. The private key and a hash of the password are stored on the user's computer.
Then a 256-bit AES-encrypted session is established with the Skype server. The client creates a "session key" using its random number generator.
The Skype server verifies that the selected username is unique and that follows Skype's naming rules. The server stores the username and a hash of the hash of the user's password formula_1 in its database.
The server now forms and signs an identity certificate for the username that binds the username, its verification key and the key identifier.
Peer-to-peer key agreement.
For each call, Skype creates a session with a 256-bit session key. This session exists as long as communication continues and for a fixed time afterward. As part of connecting a call, Skype securely transmits the session key to the call recipient. That session key is then used to encrypt messages in both directions.
Session cryptography.
All traffic in a session is encrypted using the AES algorithm running in Integer Counter Mode (ICM). Skype encrypts the current counter and a salt with the session key using the 256 bit AES algorithm. This returns the key stream, which is then XORed with the message content. This produces encrypted ciphertext, which is then transmitted to the recipient. Skype sessions contain multiple streams. The ICM counter depends on the stream, and the location within the stream.
Random number generation.
Skype uses random numbers for several cryptographic purposes, for instance as a protection against playback attacks, creation of RSA key pairs, and creation of AES key-halves for content encryption. The security of a Skype peer-to-peer session depends significantly on the quality of the random numbers generated by both ends of the Skype session. Random number generation varies by operating system.
Cryptographic primitives.
Skype uses standard cryptographic primitives to achieve its security goals. The cryptographic primitives used in Skype are: the AES block cipher, the RSA public-key cryptosystem, the ISO 9796-2 signature padding scheme, the SHA-1 hash function, and the RC4 stream cipher.
Key agreement protocol.
Key-agreement is achieved using a proprietary, symmetric protocol. To protect against a playback attack, the peers challenge each other with random 64-bit nonces. The challenge response is to customize the challenge in a proprietary way and returned it signed with the responder's private key.
The peers exchange Identity Certificates and confirm that these certificates are legitimate. Because an Identity Certificate contains a public key, each end can then confirm signatures created by the other peer. Each peer contributes 128 random bits to the 256-bit session key.
Automatic updates.
Another security risk are automatic updates, which cannot be disabled from version 5.6 on, both on Mac OS and Windows branches, although in the latter, and only from version 5.9 on, automatic updating can be turned off in certain cases.
Eavesdropping by design.
Chinese, Russian and United States law enforcement agencies have the ability to eavesdrop on Skype conversations and to have access to Skype users' geographic locations. In many cases, a simple request for information is sufficient, with no court approval needed. This ability was deliberately added by Microsoft for law enforcement agencies around the world after they purchased Skype in 2011. This is implemented by switching the Skype client for a particular user account from the client-side encryption to the server-side encryption, allowing dissemination of an unencrypted data stream.
Actual and potential flaws.
While Skype encrypts users' sessions, other traffic, including call initiation, can be monitored by unauthorized parties.
The other side of security is whether Skype imposes risk on its users' computers and networks. In October 2005 a pair of security flaws were discovered and patched. Those flaws made it possible for hackers to run hostile code on computers running vulnerable versions of Skype. The first security bug affected only Microsoft Windows computers. It allowed the attacker to use a buffer overflow to crash the system or to force it to execute arbitrary code. The attacker could provide a malformed URL using the Skype URI format, and lure the user to request it to execute the attack. The second security bug affected all platforms; it used a heap-based buffer overflow to make the system vulnerable.
Issues, including several potentially affecting security, include: