- Un análisis técnico de OCSP, que fue el tema de esta vez
→ Para verificar si el certificado de desarrollador es válido, al ejecutar una app se consulta al servidor de Apple
→ Si no es posible conectarse a la red, simplemente se ejecuta
→ Si sí se puede conectar pero el servidor está lento, ocurre un problema como el de esta vez, donde no se abren todas las apps que no son de Apple
→ Existe la afirmación de que cada vez que se ejecuta una app se envía el hash de la app al servidor de Apple [1]
→ El problema es que usa HTTP y no HTTPS (porque para verificar un certificado HTTPS habría que abrir otra conexión)
- Mirando el interior
→ Si hay un proxy HTTP o Wireshark en medio, se puede capturar todo
→ Una vez que se ejecuta y se valida la certificación OCSP, no vuelve a verificarse durante cierto tiempo
→ Se envía por GET una cadena de 80 bytes codificada en base64
→ Ese valor parece ser el hash de la app, pero "no lo es"
→ Si se abre esa información binaria con OpenSSSL, realmente contiene el nombre del emisor del certificado, el valor hash de la clave y el número de serie
→ Aun así, queda la duda de si, como el certificado es distinto para cada app, al final eso no equivale al hash de la app
- Certificado de desarrollador
→ ¿De dónde sale esta información del certificado?
→ Se extrajo el certificado de una app de Mac con codesign (aquí, Firefox)
→ El número de serie coincide con lo capturado arriba
→ Luego se extrajo también el certificado de Thunderbird, y de nuevo el número de serie era el mismo (como era de esperarse)
→ Es decir, como se decía en [1], es incorrecto afirmar que se envía información hash con la que se puede identificar todas las apps
→ Por supuesto, sí es cierto que se puede saber en qué momento y en qué computadora se ejecutó una app de "qué desarrollador"
- Sobre bloquear OCSP
→ Se puede bloquear con Little Snitch o mediante /etc/hosts
→ Pero se recomienda no hacerlo, porque eso bloquearía una función de seguridad importante
- TL;DR
→ macOS no envía a Apple el hash de una app cada vez que la ejecuta
→ macOS sí envía la información del certificado de desarrollador de las apps que usas, y esto se transmite por HTTP
→ En lo posible, no bloquees el acceso a ocsp.apple.com.
4 comentarios
Como referencia, según la Wikipedia en inglés, Google Chrome ya desactivó OCSP desde 2012. La razón fue que “es difícil encontrar beneficios, mientras que los costos (demoras y problemas de privacidad) son claros”.
https://www.imperialviolet.org/2012/02/05/crlsets.html
OCSP originalmente también es un método que usan los navegadores web para verificar, por ejemplo, si un certificado SSL está vencido. Como la autenticación de las apps se hace de una forma similar a la de los certificados SSL, se podría suponer que es por eso.
Supongo que esto podría ser para recopilar información de App Analytics de las apps de Mac, como en iOS.
Temas relacionados para leer
[1] Tu computadora no es realmente tuya https://es.news.hada.io/topic?id=3200
[2] macOS Catalina (10.15): ralentizado por diseño https://es.news.hada.io/topic?id=2145