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
contém lista de endereços IP e portas de serviço de SNs
alcançáveis pelo cliente.