- Uma análise técnica do OCSP, que virou assunto desta vez
→ Ao executar um app, o sistema acessa os servidores da Apple para verificar se o certificado do desenvolvedor é válido
→ Se a conexão de rede não estiver disponível, ele simplesmente executa o app
→ Se a conexão estiver disponível, mas o servidor estiver lento, pode acontecer o problema visto desta vez: todos os apps que não são feitos pela Apple deixam de abrir
→ Há a alegação de que, a cada execução, o hash do app é enviado para os servidores da Apple [1]
→ O problema é que isso usa HTTP, e não HTTPS (porque, para verificar um certificado HTTPS, seria necessário abrir outra conexão)
- Olhando por dentro
→ Com um proxy HTTP no meio ou o Wireshark, é possível capturar tudo
→ Depois que a verificação OCSP é feita uma vez, ela não é refeita por um certo período
→ É enviada por GET uma string de 80 bytes codificada em base64
→ Esse valor parece ser o hash do app, mas "não é"
→ Ao abrir essas informações binárias com OpenSSSL, vê-se que elas realmente contêm o nome do emissor do certificado, o valor de hash da chave e o número de série
→ Ainda assim, fica a suspeita: se o certificado for diferente para cada app, no fim das contas isso não equivaleria ao hash do app?
- Certificado de desenvolvedor
→ De onde vêm essas informações do certificado?
→ Foi extraído o certificado de um app do Mac com codesign (aqui, o Firefox)
→ O número de série corresponde ao que foi capturado acima
→ Ao extrair o certificado do Thunderbird, o número de série também era o mesmo (como era de se esperar)
→ Ou seja, como foi dito em [1], é incorreto afirmar que está sendo enviada uma informação de hash que permitiria identificar todos os apps
→ Claro, continua sendo verdade que é possível saber que, em determinado computador e em determinado momento, foi executado um app de "qual desenvolvedor"
- Sobre bloquear o OCSP
→ Dá para bloquear usando o Little Snitch ou por meio de /etc/hosts
→ Mas isso desativa um recurso de segurança importante, então a recomendação é não fazer isso
- TL;DR
→ O macOS não envia para a Apple o hash do app toda vez que você o executa
→ O macOS envia informações do certificado do desenvolvedor dos apps que você usa, e isso é transmitido por HTTP
→ Se possível, não bloqueie o acesso a ocsp.apple.com.
4 comentários
A propósito, segundo a Wikipédia em inglês, o Google Chrome já desativou o OCSP desde 2012. O motivo, segundo eles, é que “é difícil encontrar benefícios, enquanto os custos (atraso e problemas de privacidade) são evidentes”.
https://www.imperialviolet.org/2012/02/05/crlsets.html
O
ocspé originalmente um método que os navegadores também usam para verificar, por exemplo, a validade e a expiração de certificados SSL. Como a autenticação de apps é feita de forma semelhante à dos certificados SSL, dá para supor que seja por isso.Acho que isso pode ser para coletar informações do App Analytics também para apps do Mac, como no iOS.
Questões relacionadas para ler
[1] Seu computador não pertence apenas a você https://pt.news.hada.io/topic?id=3200
[2] macOS Catalina (10.15): ficando mais lento por design https://pt.news.hada.io/topic?id=2145