An analysis of Skype protocol Presented by: Abdul Haleem.

22
An analysis of Skype protocol Presented by: Abdul Haleem

Transcript of An analysis of Skype protocol Presented by: Abdul Haleem.

Page 1: An analysis of Skype protocol Presented by: Abdul Haleem.

An analysis of Skype protocol

Presented by:Abdul Haleem

Page 2: An analysis of Skype protocol Presented by: Abdul Haleem.

Agenda

IntroductionEntities of Skype NetworkKey Components of Skype SoftwareThe communication processSkype Network Traffic

Page 3: An analysis of Skype protocol Presented by: Abdul Haleem.

Introduction

Peer to peer applicationChat Call

Skype to Skype Skype to telephone/mobile network Telephone/mobile network to Skype

User search (Find people)

Page 4: An analysis of Skype protocol Presented by: Abdul Haleem.

Key Entities

Skype Client (ordinary host)Login ServerSuper Node

Page 5: An analysis of Skype protocol Presented by: Abdul Haleem.

Key Entities

Page 6: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype Client (ordinary host)

An ordinary host is a Skype application that can be used to place voice calls and send text messages

Page 7: An analysis of Skype protocol Presented by: Abdul Haleem.

Login Server

It is the only centralized server User names and passwords are stored at the

login server. User authentication at login is also done at this server.

This server also ensures that login names are unique across the Skype name space

An ordinary host must register itself with the Skype login server

Page 8: An analysis of Skype protocol Presented by: Abdul Haleem.

Super Node

Super nodes are the end points where Skype clients connect to.

Any node with a public IP address having sufficient CPU, memory, and network bandwidth is a candidate to become a super node.

Page 9: An analysis of Skype protocol Presented by: Abdul Haleem.

Key Components

Host CacheObfuscation Layer

Page 10: An analysis of Skype protocol Presented by: Abdul Haleem.

Host Cache

Every Skype client maintains a local list of super node IP address and port pairs. It is called Host Cache

Refreshed regularly Upon startup the client reads an entry from the

host cache, and tries to connect to this SN. If connection fails (the SN is offline; it is no

longer part of the network, etc) it reads next entry and tries to connect to it.

Page 11: An analysis of Skype protocol Presented by: Abdul Haleem.

Obfuscation Layer

Everything that is being transferred across the network is being encrypted to ensure privacy.

Uses AES algorithm for encryption.

Page 12: An analysis of Skype protocol Presented by: Abdul Haleem.

communication process

Logging inSkype to Skype call – Both public IPsSkype to Skype call - behind NATCall Between Skype and PSTN

Page 13: An analysis of Skype protocol Presented by: Abdul Haleem.

Logging in

Client authenticates its user name and password with the login server

advertises its presence to other peers determines the type of NAT it is behind discovers online Skype nodes with public IP

addresses

Page 14: An analysis of Skype protocol Presented by: Abdul Haleem.

Logging in

Get an IP and port of a super node from HC Send UDP packets to check availability TCP connection on provided IP and port. TCP connection on provided IP and port 80

(HTTP port). TCP connection on provided IP and port 443

(HTTPS port) Try next super node (total 5 attempts)

Page 15: An analysis of Skype protocol Presented by: Abdul Haleem.

Logging in

Page 16: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype to Skype call – Both public IPs

If both caller and receiver are on public IPs then they establish a call through a direct TCP connection with each other.

Media is transferred using UDP.

Page 17: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype to Skype call - behind NAT

NAT prevents an outside peer from initiating a call to insider peer

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

local network(e.g., home network)

10.0.0/24

rest ofInternet

Page 18: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype to Skype call - behind NAT

Solution to NAT problem Every client is connected to its super node

which is non-NATed. Client A asks its super node that she wants to

call B. Super node of A informs super node of B who in

turn informs B. If B accepts the call then a third non-NATed

peer is chosen which relays data between A and B.

Page 19: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype to Skype call - behind NAT

Solution to NAT problem

Page 20: An analysis of Skype protocol Presented by: Abdul Haleem.

Call Between Skype and PSTN

For Skype out (Skype to PSTN), the application initially contacts the super node and then the PSTN gateway at port 12340.

The gateway servers are a separate part of the architecture and not a part of the overlay network.

For Skype in (PSTN to Skype) the opposite is used.

Page 21: An analysis of Skype protocol Presented by: Abdul Haleem.

Skype Network Traffic

UDP Packets For keep alive messages To discover available super nodes

TCP Packets For establishing connection with super node For user authentication with login server

Page 22: An analysis of Skype protocol Presented by: Abdul Haleem.

References

An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol – By Salman A. Baset and Henning Schulzrinne Department of Computer Science Columbia University, New York NY 10027 {salman,hgs}@cs.columbia.edu September 15, 2004

http://www.mjalali.com/blog/Skype101– Skype Architecture–Work in Progress.htm

http://www.skype.com/Skype P2P telephony explained.htm http://en.wikipedia.org/wiki/Talk:Skype_protocol http://technologyevangelist.com/2008/05/A bit about how Skype works.htm