9 pontos por xguru 2020-11-16 | 4 comentários | Compartilhar no WhatsApp
  • 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

 
kunggom 2020-11-16

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

 
galadbran 2020-11-16

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.

 
godrm 2020-11-16

Acho que isso pode ser para coletar informações do App Analytics também para apps do Mac, como no iOS.

 
xguru 2020-11-16

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