Básico do Skype

Transcrição

Básico do Skype
Básico do Skype
Laboratório VoIP
Núcleo de Computação Eletrônica/UFRJ
P2P SIP e Seus Semelhantes
Uma Comparação entre as propostas VoIP sobre redes p2p
Ricardo Costa
Distributed Hash Table (DHT)
• É uma tabela hash
• Sua função de hash tem por objetivo mapear
unicamente qualquer item a um dos nós da rede
(bucket)
MAB-510
3
DHT
• Função de hash mapeia objeto a identificador
único
• Ex: h(“Aquarela do Brasil”) -> 8045
• SHA-1 comumente utilizado
• Faixa de resultados da função de hash é
distribuída pela rede
MAB-510
4
DHT:Chord
Localização de Chave Simples
• Chord Básico: cada nó
conhece somente 2 outros
nós no anel.
• Sucessor
• Predecessor (para
gerenciamento do anel)
m=6
m=6
2m-1 0
N1
N56
K54
N8
lookup(K54)
N51
• A busca é alcançada pelo
reenvio dos pedidos em
torno do anel através dos
apontadores para o
sucessor
N14
N48
N42
• Requer O(N) saltos
N21
N38
N32
MAB-510
5
Skype
• NC é uma aplicação skype que se
registra em um super nó (SN) e se
autentica no servidor de login
• Qualquer host do usuário pode
hospedar um SN, se
• Possuir um endereço IP público
• Possuir disponibilidade de memória,
processamento e banda RAM
• Prioridade dada para nós que se
mantenham conectados
• O servidor de login constitui o único
elemento central na rede skype
• É uma aplicação à parte
• Mantém informação de login e senha dos
usuários da rede skype
• Realiza a autenticação de usuários
• Garante que um usuário skype seja único
• Certifica as chaves públicas utilizadas
pelos clientes
MAB-510
6
Skype: Arquitetura
• Codecs utilizados
• Utiliza os codecs iLBC e iSAC, implementados pela
GlobalIPSound, que permitem freqüências entre 50 e 8kHz.
• Criptografia
• AES de 256 bits
• Canal seguro é estabelecido com o uso de chaves RSA de 1536
a 2048 bits.
• Bypass de NAT/Firewall
• Clientes skype utilizam uma variação dos protocolos STUN[1] e
TURN [16].
MAB-510
7
Login
• Autenticação da conta/senha cliente com o servidor de login
• O cliente tenta estabelecer uma conexão UDP
• Caso não obtenha resposta em 5 segundos tenta estabelecer
uma conexão TCP;
• Caso não obtenha resposta pelo mesmo período tenta
estabelecer uma conexão TCP na porta 80 (HTTP) e em caso
de outra falha, TCP 443 (HTTPS);
MAB-510
8
Login
• Servidores de Login
(80.160.91.11 ns14.inet.tele.dk e
ns15.inet.tele.dk)
• Cliente recebe uma lista de
super nós para bootstrap
• Caso todas as tentativas
anteriores falhem, uma falha
de login é retornada para a
aplicação;
MAB-510
9
Login
• SNs de bootstrap
IP:porta
Nome
66.235.180.9:33033
sls-cb10p6.dca2.superb.net
66.235.181.9:33033
ip9.181.susc.suscom.net
80.161.91.25:33033
0x50a15b19.boanxx15.adsl-dhcp.tele.dk
80.160.91.12:33033
0x50a15b0c.albnxx9.adsl-dhcp.tele.dk
64.246.49.60:33033
rs-64-246-49-60.ev1.net
64.246.49.61:33033
rs-64-246-49-61.ev1.net
64.246.48.23:33033
ns2.ev1.net
MAB-510
10
Busca de nós
• NC envia um pacote TCP para o seu SN
• SN responde enviando uma lista com 4 IPs e respectivas
portas para serem consultadas
• Caso não encontre, um novo pacote TCP é enviado ao SN
• SN envia lista com 8 IPs e portas para serem consultadas.
MAB-510
11
Busca de nós
• Mensagens enviadas aos IPs da lista são pacotes UDP
• Processo continua até o usuário em questão ser encontrado
ou ser determinado pela rede skype que o mesmo não existe
• Em média, 8 nós são contatados na busca
• NC atrás de um NAT/Firewall:
• Só ocorrem trocas de pacotes com o SN
• SN faz a busca, retornando o resultado da mesma para o NC
• Resultado da busca é armazenado em nós intermediários
MAB-510
12
Skype: Arquitetura
• Portas de serviço
• Não possui um padrão de porta de escuta;
• Portas são escolhidas aleatoriamente
• Na ausência de conectividade nas portas que foram abertas,
abre portas TCP 80 (HTTP) e 443 (HTTPS).
• Host Cache
• Entrada em registro (Windows) ou arquivo de configuração que
contém lista de endereços IP e portas de serviço de SNs
alcançáveis pelo cliente.
MAB-510
13
Artigo sobre Skype
• Salman A. Baset , Henning Schulzrinne, An Analysis of the
Skype Peer-to-Peer Internet Telephony Protocol, Department
of Computer Science Columbia University, Setembro de 2004
• BASET, S. A., AND SCHULZRINNE, H. An Analysis of the
Skype Peer-to-Peer Internet Telephony Protocol. Em
Proceedings of the INFOCOM '06.
• Understanding availability. Saikat Guha, Neil Daswani, Ravi
Jain, An Experimental Study of the Skype Peer-to-Peer VoIP
System. Em Proceedings of the IPTPS '06.
• Philippe BIONDI, Fabrice DESCLAUX, Silver Needle in the
Skype. Em BlackHat Europe, March 2nd and 3rd, 2006.
MAB-510
14