Criptografia de ponta a ponta

Use a API de criptografia de ponta a ponta para criptografar os arquivos de mídia enviados pelo seu aplicativo por meio de um servidor de mídia.

Importante: No OpenTok.js 2.27.0 ou superior, a criptografia de ponta a ponta não funcionará ao se conectar a clientes que utilizam uma versão anterior do OpenTok.js. Ao atualizar seu aplicativo para usar o OpenTok.js 2.27.0 ou superior, certifique-se de que todos os clientes estejam usando o OpenTok.js 2.27.0 ou superior, caso o aplicativo utilize criptografia de ponta a ponta.

Este tópico inclui as seguintes seções:

Visão geral

A criptografia de ponta a ponta (ou E2EE) permite que os desenvolvedores de aplicativos criptografem arquivos de mídia em sessões encaminhadas de cliente para cliente. Nas sessões retransmitidas, a mídia já está criptografada de cliente para cliente, por meio dos protocolos WebRTC. Esse recurso adiciona uma camada de criptografia ao criptografar a carga útil da mídia no cliente, de modo que ela permaneça criptografada ao passar pelo OpenTok Media Router, que encaminha a mídia para outros clientes (em sessões roteadas). A criptografia de ponta a ponta é ativada ao criar uma sessão.

A criptografia de ponta a ponta é compatível com aplicativos da web em navegadores baseados no Chromium (Chrome, Opera, Edge, Samsung Internet e Android WebView) e no WebKit, como, por exemplo, o Safari no macOS/iOS, o Chrome no iOS e o WebView no iOS. A criptografia de ponta a ponta não é compatível com aplicativos da web no Firefox.

A compatibilidade com navegadores baseados no WebKit só está disponível a partir da versão 2.30.0 do OpenTok.js.

A criptografia de ponta a ponta é compatível com cada um dos SDKs nativos para clientes (para Android, iOS, Windows, Linux e macOS).

Você define o segredo de criptografia em um aplicativo web usando o OpenTok.js. É necessário definir os segredos de criptografia no cliente web ao inicializar uma sessão, e é possível alterá-los dinamicamente assim que a sessão estiver conectada. O segredo de criptografia é uma string não vazia. Todos os usuários devem usar o mesmo segredo para receber mídia inteligível. O segredo de criptografia é o material de chave para gerar uma chave criptográfica usada para criptografar e descriptografar a mídia. Especificamente, o segredo de criptografia gera uma chave de criptografia AES-256 usando um algoritmo AES-CTR com uma chave de 256 bits.

Observe que o Roteador de mídia OpenTok não tem acesso a mídias não criptografadas ao usar criptografia de ponta a ponta. Portanto, recursos que exigem decodificação de mídia — como arquivamento, transmissões ao vivo, compositor de experiências, conector de áudio e interconexão SIP — não são suportados em sessões com criptografia de ponta a ponta.

Suporte à criptografia de ponta a ponta por codec em todos os terminais OpenTok

Codec/Ponto final Chrome Android Chrome Chrome para iOS Firefox Safári Borda SDK do iOS SDK do Android SDK do Windows SDK do macOS SDK do Linux
VP8
H.264
VP9

Como ativar a criptografia de ponta a ponta no seu Account

A criptografia de ponta a ponta está disponível como um recurso adicional. Você pode ativá-lo no seu Página do account do Vonage Video.

Ativando a criptografia por meio da API REST

Você habilita a criptografia de ponta a ponta ao criar uma sessão usando a API REST. Defina o e2ee propriedade para true. Veja criação de sessão.

Observação: Antes de ativar a criptografia de ponta a ponta para uma sessão, é necessário ativá-la no seu Account do Vonage Video. Consulte o seção anterior.

O exemplo a seguir em Node.js cria uma sessão com criptografia de ponta a ponta ativada:

const opentok = new OpenTok(API_KEY, API_SECRET);
const sessionId;
opentok.createSession({
    mediaMode: 'routed',
    e2ee: true,
  }, function(error, session) {
  if (error) {
    console.log('Error creating session:', error)
  } else {
    sessionId = session.sessionId;
    console.log('Session ID: ' + sessionId);
  }
});