Como gerar uma chave pré-compartilhada forte

Use uma chave pré-compartilhada (também chamada de chave secreta compartilhada ou PSK) para autenticar o túnel do Cloud VPN no seu par. Gateway de VPN. Como prática recomendada de segurança, gere uma chave pré-compartilhada forte de 32 caracteres.

Para mais informações sobre o Cloud VPN, consulte a visão geral do Cloud VPN.

Para definições de termos usados nesta página, consulte Termos-chave.

Gerado para você

Seu navegador gera a string aleatória a seguir usando o snippet JavaScript no final desta página. Ela tem 24 bytes de Crypto.getRandomValues e é codificada em base64 para criar uma chave pré-compartilhada de 32 caracteres.

Ao usar esse snippet, a chave privada permanece segura no navegador. Se você quiser gerá-lo no seu próprio sistema, use um dos métodos de geração listados na próxima seção.

Para gerar uma nova chave pré-compartilhada aleatória, clique no botão Gerar novamente.

Métodos de geração

Use os métodos a seguir para gerar uma chave pré-compartilhada de 32 caracteres.

OpenSSL

Em um sistema Linux ou macOS, execute o seguinte comando OpenSSL:

openssl rand -base64 24

/dev/urandom

Em um sistema Linux ou macOS, é possível usar /dev/urandom como uma origem pseudoaleatória para gerar uma chave pré-compartilhada:

  • No Linux ou no macOS, envie a entrada aleatória para base64:

    head -c 24 /dev/urandom | base64
    
  • Transmita a entrada aleatória por meio de uma função de hash, como sha256:

    • No Linux:

      head -c 4096 /dev/urandom | sha256sum | cut -b1-32
      
    • No macOS:

      head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
      

JavaScript

Também é possível gerar a chave pré-compartilhada diretamente em uma página de documentação usando JavaScript com a API W3C Web Cryptography. Essa API usa o método Crypto.getRandomValues(), que fornece uma maneira segura quanto à criptografia de gerar uma chave pré-compartilhada.

O código a seguir cria uma matriz de 24 bytes aleatórios e, em seguida, o Base64 codifica esses bytes para produzir uma string aleatória de 32 caracteres:

  var a = new Uint8Array(24);
  window.crypto.getRandomValues(a);

  console.log(btoa(String.fromCharCode.apply(null, a)));

A seguir