Pinagem do SSL
O SSL Pinning, também conhecido como Certificate Pinning, é uma técnica de segurança implementada para assegurar que uma aplicação estabeleça conexões seguras somente com servidores previamente autorizados. Essa verificação é realizada durante a negociação SSL/TLS, validando o certificado digital ou, no caso do iOS, a chave pública associada ao certificado apresentado pelo servidor.
A pinagem de SSL atua como um mecanismo adicional de validação, garantindo que apenas o certificado legítimo ou sua chave pública previamente configurada seja aceita, independentemente das configurações de confiança do sistema operacional. Com isso, a técnica inibe tentativas de interceptação, captura ou modificação das requisições trocadas com o backend, reduzindo significativamente o risco de ataques do tipo Man-in-the Middle (MITM).
No ambiente iOS, o MAD utiliza Public Key Pinning, validando o hash da chave pública do certificado (SPKI – Subject Public Key Info) apresentado pelo servidor. Durante o estabelecimento da conexão, a chave pública recebida é comparada com os valores previamente configurados na aplicação. A comunicação só é considerada válida quando ocorre correspondência com um dos pins configurados.
Para que o mecanismo funcione corretamente, é necessário identificar previamente todos os domínios utilizados pelas APIs do aplicativo, listá-los e configurá-los explicitamente na política de pinagem, garantindo que todas as comunicações sensíveis estejam devidamente protegidas.
O Public Key Pinning é o método recomendado e padrão no iOS. Nesse modelo:
• É fixado o hash da chave pública (SPKI) do certificado. • Essa abordagem permite a renovação do certificado sem a necessidade de atualização do aplicativo, desde que o mesmo par de chaves pública e privada seja mantido.
Para configuração Public Key Pinning:
<key>ssl-pinning</key>
<true.>
<dict>
<key>*.example.comr</key>
<string>4d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM>
</dict>
<key>ssl-pinning-fallback<key>
<true/>
Atualizado