Voltar às atualizações
New releaseSep 22, 2026

libsrtp v2.8.1

Biblioteca para SRTP (Secure Realtime Transport Protocol)

Compartilhar

CMake Build CMake Release Autotools Build Autotools Build Coverity Scan Build Status OSS-Fuzz Status

Introdução ao libSRTP

Este pacote fornece uma implementação do Protocolo de Transporte em Tempo Real Seguro (SRTP), da Transformação de Segurança Universal (UST) e de um núcleo criptográfico de suporte. A API do SRTP é documentada em include/srtp.h, e a biblioteca está em libsrtp2.a (após a compilação).

Este documento descreve o libSRTP, a biblioteca Open Source Secure RTP da Cisco Systems, Inc. RTP é o Protocolo de Transporte em Tempo Real, um padrão IETF para o transporte de dados em tempo real, como telefonia, áudio e vídeo, definido pelo RFC 3550. O Secure RTP (SRTP) é um perfil RTP que fornece confidencialidade aos dados RTP e autenticação ao cabeçalho e à carga útil do RTP. O SRTP é um padrão IETF, definido no RFC 3711, e foi desenvolvido no Grupo de Trabalho de Transporte de Áudio/Vídeo (AVT) da IETF. Esta biblioteca suporta todos os recursos obrigatórios do SRTP, mas não todos os recursos opcionais. Consulte a seção Recursos Suportados para obter informações mais detalhadas.

Este documento também é usado para gerar os arquivos de documentação na pasta /doc/, onde uma referência mais detalhada à API do libSRTP e às funções relacionadas pode ser criada (requer a instalação do doxygen.). O material de referência é criado automaticamente a partir de comentários embutidos em alguns dos arquivos de cabeçalho C. A documentação é organizada em módulos para melhorar sua clareza. Esses módulos não correspondem diretamente a arquivos. Um núcleo criptográfico subjacente fornece grande parte da funcionalidade básica do libSRTP, mas é em grande parte não documentado porque faz seu trabalho nos bastidores.


Contato


Conteúdo


Licença e Aviso Legal

O libSRTP é distribuído sob a seguinte licença, que está incluída na distribuição do código-fonte. Ela é reproduzida no manual no caso de você ter obtido a biblioteca de outra fonte.

Copyright (c) 2001-2017 Cisco Systems, Inc. Todos os direitos reservados.

A redistribuição e o uso, em formato de código-fonte e binário, com ou sem modificação, são permitidos desde que as seguintes condições sejam atendidas:

  • As redistribuições do código-fonte devem manter o aviso de direitos autorais acima, esta lista de condições e o aviso legal a seguir.
  • As redistribuições em formato binário devem reproduzir o aviso de direitos autorais acima, esta lista de condições e o aviso legal a seguir na documentação e/ou em outros materiais fornecidos com a distribuição.
  • Nem o nome da Cisco Systems, Inc. nem os nomes de seus contribuidores podem ser usados para endossar ou promover produtos derivados deste software sem permissão prévia específica por escrito.

ESTE SOFTWARE É FORNECIDO PELOS DETENTORES DOS DIREITOS AUTORAIS E CONTRIBUIDORES "COMO ESTÁ" E QUAISQUER GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO A, AS GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO A UM FIM ESPECÍFICO SÃO REJEITADAS. EM NENHUM CASO OS DETENTORES DOS DIREITOS AUTORAIS OU CONTRIBUIDORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENTES (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) INDEPENDENTEMENTE DA CAUSA E SOB QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU OUTROS), DECORRENTES DE QUALQUER FORMA DO USO DESTE SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.


Visão Geral do libSRTP

O libSRTP fornece funções para proteger RTP e RTCP. Os pacotes RTP podem ser criptografados e autenticados (usando a função srtp_protect()), transformando-os em pacotes SRTP. Da mesma forma, os pacotes SRTP podem ser descriptografados e ter sua autenticação verificada (usando a função srtp_unprotect()), transformando-os em pacotes RTP. Funções semelhantes aplicam segurança aos pacotes RTCP.

O typedef srtp_stream_t aponta para uma estrutura que contém todo o estado associado a um fluxo SRTP, incluindo as chaves e os parâmetros para as funções de cifra e autenticação de mensagem e os dados anti-replay. Um srtp_stream_t específico contém as informações necessárias para proteger um determinado fluxo RTP e RTCP. Esse tipo de dado é intencionalmente opaco para separar melhor a API do libSRTP de sua implementação.

Dentro de uma sessão SRTP, pode haver vários fluxos, cada um originado de um remetente específico. Cada origem usa um contexto de fluxo distinto para proteger o fluxo RTP e RTCP que está originando. O typedef srtp_t aponta para uma estrutura que contém todo o estado associado a uma sessão SRTP. Pode haver vários contextos de fluxo associados a um único srtp_t. Um contexto de fluxo não pode existir de forma independente de um srtp_t, embora, é claro, um srtp_t possa ser criado contendo apenas um único contexto de fluxo. Um dispositivo que participa de uma sessão SRTP deve ter um contexto de fluxo para cada origem nessa sessão, para que possa processar os dados que recebe de cada remetente.

Categorias