ZRTP - ZRTP

ZRTP (composto de Z e Real-time Transport Protocol ) é um protocolo de acordo de chave criptográfica para negociar as chaves de criptografia entre dois pontos finais em uma chamada telefônica de voz sobre IP (VoIP) com base no Real-time Transport Protocol . Ele usa a troca de chaves Diffie – Hellman e o protocolo SRTP ( Secure Real-time Transport Protocol ) para criptografia. O ZRTP foi desenvolvido por Phil Zimmermann , com a ajuda de Bryce Wilcox-O'Hearn , Colin Plumb, Jon Callas e Alan Johnston e foi submetido à Internet Engineering Task Force (IETF) por Zimmermann, Callas e Johnston em 5 de março de 2006 e publicado em 11 de abril de 2011 como RFC  6189 .

Visão geral

ZRTP ("Z" é uma referência ao seu inventor, Zimmermann; "RTP" significa Real-time Transport Protocol) é descrito no Internet Draft como um "protocolo de acordo de chave que realiza a troca de chaves Diffie-Hellman durante a configuração da chamada em banda no fluxo de mídia do protocolo de transporte em tempo real (RTP) que foi estabelecido usando algum outro protocolo de sinalização, como o protocolo de iniciação de sessão (SIP). Isso gera um segredo compartilhado que é usado para gerar chaves e sal para um RTP seguro (SRTP) ) sessão." Uma das características do ZRTP é que ele não depende da sinalização SIP para o gerenciamento de chaves, nem de nenhum servidor. Ele suporta criptografia oportunista por detecção automática se o outro cliente VoIP oferece suporte a ZRTP.

Este protocolo não requer segredos compartilhados anteriores ou depende de uma infraestrutura de chave pública (PKI) ou de autoridades de certificação; na verdade, chaves Diffie-Hellman efêmeras são geradas em cada estabelecimento de sessão: isso permite a complexidade de criar e manter um terceiro confiável para ser contornado.

Essas chaves contribuem para a geração do segredo da sessão, a partir do qual a chave da sessão e os parâmetros para as sessões SRTP são derivados, junto com os segredos compartilhados anteriormente (se houver): isso oferece proteção contra ataques man-in-the-middle (MiTM) , desde que o invasor não esteja presente na primeira sessão entre os dois endpoints.

O ZRTP pode ser usado com qualquer protocolo de sinalização, incluindo SIP, H.323 , Jingle e sistemas de tabela de hash distribuídos . O ZRTP é independente da camada de sinalização, porque todas as suas negociações principais ocorrem por meio do fluxo de mídia RTP.

ZRTP / S, uma extensão do protocolo ZRTP, pode ser executado em qualquer tipo de rede de telefonia legada, incluindo GSM, UMTS, ISDN, PSTN, SATCOM , rádio UHF / VHF , porque é um protocolo orientado a bitstream de banda estreita e executa todas as negociações importantes dentro do fluxo de bits entre dois pontos de extremidade.

Alan Johnston chamou o protocolo de ZRTP porque, em seus primeiros rascunhos da Internet, ele se baseava na adição de extensões de cabeçalho aos pacotes RTP, o que tornava o ZRTP uma variante do RTP. Em rascunhos posteriores, o formato do pacote mudou para torná-lo sintaticamente distinguível do RTP. Em vista dessa mudança, ZRTP agora é uma pseudo-sigla .

Autenticação

A troca de chaves Diffie – Hellman por si só não oferece proteção contra um ataque man-in-the-middle. Para garantir que o invasor não esteja de fato presente na primeira sessão (quando não existem segredos compartilhados), o método Short Authentication String (SAS) é usado: as partes que se comunicam verificam verbalmente um valor compartilhado exibido em ambos os terminais. Se os valores não corresponderem, um ataque man-in-the-middle é indicado. (No final de 2006, a NSA dos EUA desenvolveu um sistema experimental de análise e síntese de voz para derrotar essa proteção, mas essa classe de ataque não é considerada um risco sério para a segurança do protocolo.) O SAS é usado para autenticar a troca de chaves, que é essencialmente um hash criptográfico dos dois valores Diffie – Hellman. O valor SAS é renderizado para ambos os terminais ZRTP. Para realizar a autenticação, este valor SAS é lido em voz alta para o parceiro de comunicação pela conexão de voz. Se os valores em ambas as extremidades não corresponderem, um ataque man-in-middle é indicado; se eles corresponderem, um ataque man-in-the-middle é altamente improvável. O uso de compromisso de hash na troca de DH restringe o invasor a apenas uma estimativa para gerar o SAS correto no ataque, o que significa que o SAS pode ser bastante curto. Um SAS de 16 bits, por exemplo, fornece ao invasor apenas uma chance entre 65536 de não ser detectado.

Continuidade chave

O ZRTP fornece uma segunda camada de autenticação contra um ataque MitM, com base em uma forma de continuidade de chave. Ele faz isso armazenando em cache algumas informações de chave com hash para uso na próxima chamada, para serem misturadas com o segredo compartilhado DH da próxima chamada, dando a ele propriedades de continuidade de chave análogas ao SSH . Se o MitM não estiver presente na primeira chamada, ele será bloqueado para as chamadas subsequentes. Assim, mesmo que o SAS nunca seja usado, a maioria dos ataques MitM são interrompidos porque o MitM não estava presente na primeira chamada.

Ambiente operacional

Implementações

ZRTP foi implementado como

  • GNU ZRTP que é usado no Twinkle
  • GNU ZRTP4J que é usado no Jitsi (anteriormente SIP Communicator).
  • ortp para uso no Linphone .
  • libzrtp que pode ser usado no FreeSWITCH .
  • Signal e seu predecessor, RedPhone , usaram ZRTP para chamadas criptografadas no Android e iOS. Em março de 2017, a funcionalidade de chamada de voz e vídeo do Signal usa o canal Signal Protocol do aplicativo para autenticação em vez do ZRTP.
  • CSipSimple é um aplicativo gratuito para o sistema operacional Android que oferece suporte total a ZRTP
  • O softphone PhonerLite para Windows suporta ZRTP

Implementações comerciais de ZRTP estão disponíveis em RokaCom da RokaCom e PrivateWave Professional da PrivateWave e, mais recentemente, em Silent Phone da Silent Circle, uma empresa fundada por Zimmermann. Também existe o Softphone da Acrobits. A Draytek oferece suporte a ZRTP em alguns de seus hardwares e softwares VoIP.

Uma lista de provedores SIP gratuitos com suporte ZRTP foi publicada.

Referências

  1. ^ Blog de Alan B. Johnston: ZRTP publicado hoje como RFC 6189 . Obtido em 13/01/2013
  2. ^ Cryptologic Trimestral , Volume 26, Número 4
  3. ^ Zimmermann, Phil (2010-06-17). "Internet-Draft. ZRTP: Acordo de chave de caminho de mídia para Unicast Secure RTP" . Página visitada em 2010-06-17 .
  4. ^ "Twinkle - softphone SIP para Linux" . Twinklephone.com . 25 de fevereiro de 2009 . Retirado em 4 de março de 2016 .
  5. ^ "Zrtp FAQ" . jitsi.org . Retirado em 4 de março de 2016 .
  6. ^ "oRTP, uma biblioteca de protocolo de transporte em tempo real (RTP, RFC3550) | Linphone, um telefone sip de vídeo de código aberto" . Linphone.org . Página visitada em 07-06-2014 .
  7. ^ "ZRTP - FreeSWITCH Wiki" . Wiki do FreeSWITCH. 21-05-2009 . Recuperado 2016-01-20 .
  8. ^ "FreeSWITCH agora suporta ZRTP!" . FreeSWITCH . 21 de maio de 2009 . Retirado em 4 de março de 2016 .
  9. ^ Andy Greenberg (29/07/2014). "Seu iPhone pode finalmente fazer chamadas criptografadas gratuitas" . Com fio . Obtido em 18/01/2015 .
  10. ^ Marlinspike, Moxie (14 de fevereiro de 2017). "Chamadas de vídeo para Signal agora em beta público" . Sistemas Open Whisper . Retirado em 15 de fevereiro de 2017 .
  11. ^ Mott, Nathaniel (14 de março de 2017). "Chamada de vídeo criptografada do Signal para iOS, Android deixa a versão beta" . Hardware de Tom . Purch Group, Inc . Retirado em 14 de março de 2017 .
  12. ^ a b "Provedores SIP gratuitos com suporte ZRTP" . The Guardian Project. 22 de fevereiro de 2012 . Retirado em 4 de março de 2016 .
  13. ^ "PhonerLite" . Phonerlite.de . Retirado em 4 de março de 2016 .
  14. ^ "RokaCom" . RokaCom. 29/11/2014.
  15. ^ "PrivateWave" . PrivateWave. 22/02/1999 . Página visitada em 07-06-2014 .
  16. ^ Junte-se a nós para um Webinar ao vivo. "Círculo silencioso" . Círculo silencioso . Página visitada em 07-06-2014 .
  17. ^ "Softphone" . Acrobits . Retirado 2015-01-21 .
  18. ^ "Especificação do modem / roteador / switch Draytek 2820Vn ADSL" . Ipbusinessphones.co.uk. 13-08-2013 . Página visitada em 07-06-2014 .
  19. ^ "Descrição do Draytek Softphone (software)" . Draytek.co.uk . Página visitada em 07-06-2014 .

links externos

  • RFC 6189 - ZRTP: Acordo de chave de caminho de mídia para Unicast Secure RTP