Configuração VPN: formato PSK secreto compartilhado

0

Estou usando como cliente uma VPN comercial para OS / X e iPhone. Eu também estou provisionando VNPs no trabalho para iOS / MacOs, e ter uma VPN baseada em Debian em casa com o StrongSwan.

Capturei o arquivo de provisionamento .mobileconfig que o executável Sierra MacOS fornecido pelo provedor de VPN comercial gera. Eu gostaria de obter os detalhes de configuração de lá para não instalar seu software Linux e configurá-lo manualmente, no entanto, o campo de dados XML SharedSecret é criptografado.

No trabalho, tenho usado Apple Configurator 2 apenas para criptografar meu segredo compartilhado para criar o esqueleto de arquivos de provisionamento mobileconfig para dispositivos Apple, no entanto, ainda não tenho nenhuma ideia de qual é o formato desse campo.

Eu notei que essa senha "criptografada" pode ser colocada em ipsec.secrets , em vez das senhas de texto não criptografado, como:

@vpngroup : PSK 0scGFzc3dvcmQK

Da mesma forma, novamente nos arquivos de fornecimento do Apple mobileconfig que são entregues aos clientes / usuários finais, ele pode ser encontrado novamente:

<key>SharedSecret</key>
<data>cGFzc3dvcmQK</data>

Então, o que é esse formato? E como criptografar e criptografar isso? Eu sei com certeza que não é o Segredo Compartilhado real em texto claro.

    
por Rui F Ribeiro 03.12.2016 / 15:58

1 resposta

2

O formato do enconding do segredo compartilhado / senha do grupo é, na verdade, Base64 .

No site de documentação strongswan :

Alternatively, preshared secrets can be represented as hexadecimal or Base64 encoded binary values. A character sequence beginning with 0x is interpreted as sequence hexadecimal digits. Similarly, a character sequence beginning with 0s is interpreted as Base64 encoded binary data.

Na verdade, o formato Base64 para a senha do grupo, além de ser usado em configurações Linux / FreeBSD IPsec e arquivos de provisionamento da Apple, também é usado em arquivos de clientes Cisco VPN.

Na verdade, a justificativa do uso de Base64 é proteger a senha de olhares indiscretos e dos usuários finais. Por que usar então um algoritmo de enconding tão básico ...

Então, no final do dia, para decodificá-lo no Linux, ele deve ser retirado literalmente do campo de dados Apple SharedSecret, ou quando começar a captura de ipsec.secrets , você tem que ignorar os "0s" iniciais do string:

$echo cGFzc3dvcmQK | base64 -d
password

Para decodificá-lo no FreeBSD / OS / X:

$echo cGFzc3dvcmQK | base64 -D
password

Da mesma forma, para codificá-lo de volta:

$echo password | base64
cGFzc3dvcmQK
    
por 03.12.2016 / 15:58