Instalar um perfil VPN assinado no iPhone? Leia os payloads
Um perfil assinado prova quem o empacotou, não o que ele instala. Percorra o envelope, cada payload e cada certificado antes de confiar num VPN ou numa CA raiz.
Os perfis chegam aos Ajustes com um nome, um signatário e um botão Instalar, e a linha do signatário é a parte que quase todos leem. Essa linha responde a uma pergunta: quem empacotou estas configurações, segundo as regras de verificação de assinatura. Não diz que o payload de VPN aponta para o gateway da sua empresa, nem que um certificado raiz incorporado pertence ao seu armazenamento de confiança TLS. O passo a passo abaixo abre o pacote na ordem em que o dispositivo o aplicará.
Comece pelo envelope: quem assinou este perfil
No iOS, o perfil aparece em Ajustes, Geral, VPN e Gestão de Dispositivos, com o signatário mostrado acima do botão Instalar. Leia esse nome antes de tocar em qualquer coisa e pergunte se é a organização de quem esperava receber configurações. Uma assinatura válida de uma parte que não reconhece continua a ser uma assinatura válida, e autoriza a configuração dela, não a sua. O mesmo ecrã também indica se o perfil está assinado de todo.
Se tiver o ficheiro num Mac, inspecione-o antes de chegar ao telefone. A ferramenta security descodifica o envelope CMS e imprime o plist que o dispositivo vai ler, ou seja, o mesmo conteúdo sem um botão Instalar pelo meio. A documentação da Apple sobre imposição de configuração descreve a assinatura como validação de origem, que é precisamente o âmbito aqui descrito.
security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist
Pare aqui se o signatário não for quem esperava, ou se o ficheiro não estiver assinado e tiver chegado por um canal que não pode aboná-lo. Nada mais neste passo a passo torna um envelope não confiável digno de confiança.
Abra cada payload e nomeie o que ele instala
Um perfil é um contentor, e a parte interessante é o array PayloadContent lá dentro. Cada entrada traz um PayloadType que diz o que o dispositivo vai instalar: uma configuração de VPN gerida, uma identidade PKCS#12, um certificado raiz ou uma inscrição de gestão. Imprima os tipos antes de ler qualquer uma das configurações.
plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
grep -E 'PayloadType|PayloadDisplayName'
Um payload de VPN nomeia uma ligação: endereço do servidor, método de autenticação e, possivelmente, uma regra por aplicação ou a pedido. Um payload de identidade fornece a credencial de cliente que essa ligação vai apresentar. Um payload de certificado raiz acrescenta uma âncora de confiança, e um payload de gestão entrega o controlo contínuo a um servidor. São quatro compromissos diferentes, e a assinatura cobre o pacote em vez de abonar cada um em separado. Leia-os por essa ordem, porque a VPN é inútil sem a identidade e a identidade vale pouco sem saber quem a emitiu.
A proteção por palavra-passe no ficheiro é, de novo, uma propriedade separada. Um pacote cifrado esconde o conteúdo de quem não tem a palavra-passe, mas não decide se deve autorizar o que está lá dentro. Trate a palavra-passe como mecanismo de entrega, não como revisão.
Siga os certificados até à ligação que os usa
Liste os certificados do pacote e associe cada um a uma tarefa. O certificado de cliente identifica este dispositivo perante o gateway, a CA que o emitiu pertence à cadeia de confiança dessa ligação, e uma raiz instalada para um proxy ou serviço interno não é automaticamente âncora para todos os sites HTTPS. No iOS, uma raiz instalada à mão permanece não confiável para TLS até a ativar em Ajustes, Geral, Definições de Confiança de Certificados, enquanto uma raiz entregue pela gestão é confiável sem esse passo. É exatamente por isso que o propósito do payload importa.
openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates
Um fornecedor que transporta o seu tráfego não é, por essa razão, o ponto terminal TLS de todos os sites que visita. A interceção exige o caminho do tráfego e uma âncora de confiança que a aplicação aceite, e um perfil com um certificado não prova nem uma coisa nem outra. Pergunte que ligação usa o certificado e que aplicações o vão aceitar, em vez de assumir que instalar o perfil desencripta tudo.
Depois de instalar: verifique e saiba o que a remoção faz
Depois de o perfil estar instalado, confirme-o a partir do dispositivo e não do ficheiro que descarregou. O ecrã de ajustes lista o perfil instalado, o seu signatário e os seus payloads, e o ecrã de VPN mostra se a ligação está configurada como pretendido. Apagar o ficheiro descarregado não remove nada; a configuração instalada é um objeto separado.
profiles show -type configuration
scutil --nc list
Se o perfil incluir uma inscrição de gestão, leia as consequências da remoção antes de o instalar, e não depois. Remover essa inscrição leva consigo as configurações associadas e pode remover aplicações geridas, consoante a forma como o dispositivo foi inscrito. Não é um passo de reparação para experimentar quando um certificado parece errado. Pergunte ao administrador qual payload é dono do problema antes de remover o que quer que seja.
O passo a passo termina com quatro respostas separadas: quem assinou o pacote, que payloads instala, que identidade e confiança cada ligação usa, e o que a remoção levaria consigo. Mantenha-as separadas e um perfil assinado torna-se uma decisão revista em vez de um visto verde.