Resumo

Transcrição

Resumo
FEUP 2012/2013
2012
Skype
Algumas notas do funcionamento….
Resumo
• Topologia da rede
• Funcionamento do Skype
➢ Chamadas
➢ Pesquisa de utilizadores
➢ Travessia de NAT/Firewall
➢ Processo de Login/Sessões
➢ Transporte de dados
• Ofuscação no Skype
– código
– rede
• Problemas
• Vantagens
João Neves
Pág. 1
FEUP 2012/2013
2012
Topologia da rede
• Overlay P2P
➢ Skype Login Server
➢ Super-nós
➢ Nós
➔podem ser promovidos a super nós
•
(IP publico + Largura de banda + CPU ...)
• Super-nós agrupados em slots
➢ usualmente 9 a 10 nós por slot
• Slots agrupados por blocos
➢ 8 slots por bloco
Funcionamento do skype
• Startup
➢ (1) Liga-se a um Super Nó
➢ (2) Autentica-se no Skype Login Server
• Sinalização através de TCP
• Transporte de dados usando TCP/UDP
• Host cache (HC)
➢ Endereço IP/Porta dos super nós
➢ Refrescada periodicamente
João Neves
Pág. 2
FEUP 2012/2013
2012
Global Index Search
• Cache de pesquisas
➢ Nós
➢ Super Nós ??
• Pesquisa de um utilizador
➢ Cliente efetua query ao Super Nó (SN)
➔SN devolve localização do utilizador + chave pública
➔SN delega SNs onde cliente poderá obter resposta
Chamadas
• Peers com IP públicos
➢ chamada estabelecida diretamente via TCP
• Caso contrário
➢ Super Nó atua como media proxy
•
Conferência
➢ Super Nó atua como mixer
• Codecs
➢ GIPS wideband codec
➔largura de banda (3kbyte – 16kbyte)
➔suporta frequências entre 50 – 8000 Hz
João Neves
Pág. 3
FEUP 2012/2013
2012
Travessia de
NAT/Firewall
• Determina presença de NAT/Firewall na fase de login
• Travessia sobre NAT ??
➢ Simple Traversal of UDP through NATs (STUN)
➢ Traversal Using Relay NAT (TURN)
• Firewall
➢ Caso tráfego UDP bloqueado
➔TCP (HTTP/HTTPS)
Fase de Login – Trusted
data
• Dados embebidos no binário
➢13 Módulos RSA embebidos no binário
➔(2) 4096 bit, (9) 2048 bit, (3) 1536 bit
➢IP/Porta
➔servidor de login
➔super nós
• Segredo pré-partilhado entre servidor de login e cliente
➢ hash da password
João Neves
Pág. 4
FEUP 2012/2013
2012
Fase de Login - Autenticação
Sessões
• Após autenticação
➢chave pública distribuída para os super-nós (assinada
pelo Skype Server)
• Inter-comunicação entre clientes Skype
➢Troca de chaves públicas
➢Autenticação assimétrica
➔challenge de 8 byte
➢Geração da chave de sessão
João Neves
Pág. 5
FEUP 2012/2013
2012
Transporte de dados
• Start of Frame (SoF)
➢ Frame ID (2 byte)
➢ Payload Type (1 byte)
➔ dados cifrados (enc), fragmento (frag), ACK/NACK, relay ...
• Operações
➢ comandos + lista de objetos (parâmetros)
Transporte de dados
• Lista de objetos
➢pode ser comprimida
• Objetos
➢ tipo
➔Número, porta, string, chave RSA ...
➢ identificador
➔associado ao parâmetro do comando
João Neves
Pág. 6
FEUP 2012/2013
2012
Ofuscação
• Usada para dificultar
➢
➢
➢
análise estática
análise dinâmica
Técnicas
➢
➢
➢
Cifragem do código
Anti-debugging
➔ Code integrity checks, IDT hooking, IAT patching, Anti-SoftIce,
mudanças estruturais...
Código polimórfico/metamórfico
➔ dummy code, substituição de instruções, ...
➔ Calculo dinâmico de endereços de “salto” (jmp's e ret's)
Cifragem no Skype
• Binário cifrado
➢ (De)cifragem XOR
➢ Hard coded keys
• Unpacker
➢ Decifra secções de código
➢ Reescreve estrutura do binário
➔ Import Address Table
➔ Apaga código já processado
João Neves
Pág. 7
FEUP 2012/2013
2012
Anti-debugging
• Single Step/ Breakpoints
➢ INT1 (trace flag), INT3 (opcode 0xCC)
• Code integrity checks
➢ detetam modificações do código (checksum)
➢
fáceis de contornar (interceptar valor calculado)
• Skype com mais de 300 checksumers
➢ polimórficos ( != operadores, dummy code ...)
➢ checksumer aleatório
➢ teste final baseado numa assinatura RSA
Anti-debugging
• Anti-Softice
➢
Detecção do driver
• Medições temporais
• Contra-medidas
➢
João Neves
destrói contexto de execução caso detecte debugging
➔
registos alterados
➔
salta para uma página de memória aleatória
Pág. 8
FEUP 2012/2013
2012
Ofuscação de endereços
• Alteração aleatório do fluxo de execução
➢ induzindo condições falsas (determinadas/indeterminadas)
➔
➢
If (sin(a) == 42) {
dummy_code();
}
go_on()
...
dificulta depuração
Ofuscação da rede
• Ofuscação de padrões de tráfego
➢
tráfego em períodos de inatividade, relaying, pings ...
• (De)Cifragem do tráfego
➢
RC4
• Dois modos de ofuscação
João Neves
➢
UDP
➢
TCP
Pág. 9
FEUP 2012/2013
2012
Skype - UDP
• Cálculo da Chave RC4
➢ CRC de SRC IP, DST IP e Frame ID
➢ Skype obfuscation layer IV
➢ Seed do RC4 gerada pelo Skype (função muito ofuscada)
• IP público do peer ??
➢ Peer NACK
Skype - TCP
• Pacote TCP de inicialização
➢ primeiros 4 byte = seed
➢ 10 byte seguintes = string de inicialização cifrada
{00,01,00,00,00,00,00,00,01,03,...}rc4_stream
João Neves
Pág. 10
FEUP 2012/2013
2012
Primitivas criptográficas
• Sessão cifrada com AES-256 em modo ICM
➢ Counter = salt1: salt2: packet_index(48bit):block(16bit)
➢ CRC do buffer cifrado
➢ salt's gerados pelos clientes (64 bit)
• Random()
➢ são usados 64 bit mais significativos da hash
➢ efetua um conjunto de syscall's
➢ SHA1 (bits reunidos das syscalls + salt)
Problemas no Skype
• Relay não autenticado
• Facilita “covert channels” (encapotados)
• Falta de transparência
• Incompatível com monitorização de tráfego
• Confia em qualquer sistema que fale Skype
João Neves
Pág. 11
FEUP 2012/2013
2012
Vantagens no Skype
• Travessia de NAT/Firewall
• Qualidade das chamadas
➢ Voz
➢ Privacidade
• Arquitetura de rede
➢ descentralização
➢ escalabilidade
➢ robustez
Referências
João Neves
•
Philippe Biondi, Fabrice Desclaux, “Skype Silver Needle”, BlackHat Europe, 2006
•
Salman A. Baset, Henning Schulzrinne, “An Analysis of the Skype Peer-to-Peer
Internet Telephony Protocol”, 2004
•
Tom Berson, “Skype Security Evaluation”, 2005
•
Saika Guha, Neil Daswani, Ravi Jain, “An Experimental Study of the Skype Peer-toPeer VoIP System”, 2006
Pág. 12

Documentos relacionados

Básico do Skype

Básico do Skype contém lista de endereços IP e portas de serviço de SNs alcançáveis pelo cliente.

Leia mais