¿Por qué era tan fácil de extraer la clave privada del certificado Superfish?

62

Robert Graham detalló en el blog de seguridad de erratas sobre cómo pudo obtener el Clave privada del certificado Superfish. Entiendo que los atacantes ahora pueden usar esta clave para generar sus propios certificados, que estarán firmados por el Superfish CA.

¿No funcionará el mismo ataque en otros certificados raíz que ya están en una computadora? ¿Por qué la clave privada estaba en la computadora en primer lugar?

    
pregunta jogabonito 20.02.2015 - 05:40
fuente

4 respuestas

59

A menos que el malware Superfish haya sido instalado en su sistema (que podría ser que si comprara una máquina Lenovo) no tenga que preocuparse. Este ataque funcionó porque el secreto que reveló era necesario para que el malware secuestrara los datos; no forma parte de cómo se autentican los certificados legítimos.

Ayuda a comprender las relaciones entre un certificado, una clave pública y una clave privada. Una clave privada es un número secreto que se utiliza para firmar mensajes con firmas digitales (o para cifrar el tráfico web), y tiene una clave pública que se puede usar para verificar esas firmas. Un certificado es un documento público que contiene una clave pública; los propietarios de sitios web colocan sus claves públicas en certificados y las envían a compañías denominadas Autoridades de Certificación (CA) que las firman digitalmente para probar que sus certificados son auténticos. Las firmas digitales aseguran que el documento no se ha cambiado, asegurándole que la clave pública que contiene es la clave genuina del sitio que está visitando.

Las CA son empresas en las que todos confían en firmar solo certificados de fuentes legítimas. También tienen un par de claves privadas y públicas. Mantienen la clave privada muy secreta, bloqueada en un dispositivo criptográfico seguro llamado Módulo de seguridad de hardware (HSM) y restringen el acceso a la misma, por lo que solo se puede usar para firmar un certificado del cliente cuando el cliente genera una nueva clave. Pero para ser útiles, todos en la web necesitan conocer sus claves públicas. Así que estas CA ponen su propia clave pública en un certificado especial y la firman con su propia clave privada ("autofirma"). Luego, envían estos "certificados raíz" autofirmados a los proveedores de navegadores y proveedores de sistemas operativos, que los incluyen con sus productos. ¡Una CA real nunca, nunca, enviaría sus claves privadas!

Los certificados raíz de autoridad de confianza son los documentos que validan todos los certificados de todas las conexiones que hace su computadora. Por lo tanto, su computadora tiene que confiar en ellos. Este malware está instalando un certificado no confiable en una posición de máxima confianza, comprometiendo la seguridad de la máquina al permitir que cualquiera que conozca esta clave pueda falsificar un certificado para cualquier sitio, ocultando evidencia de su manipulación.

El malware abusa de su posición al generar claves públicas y privadas falsas para cada sitio que visita; Una vez que se conecta, inyecta su carga útil en la página del sitio web. Para que su navegador confíe en estas claves falsas y no le avise, el malware genera un certificado falsificado que engaña a su navegador para que crea que las claves son legítimas. Pero como todo certificado, la falsificación debe estar firmada por una CA de confianza. Para firmar, el malware necesita una clave pública y privada, al igual que una CA real. Debido a que la CA falsa está falsificando estos certificados dentro de su computadora, la clave privada también debe estar dentro de su computadora. Es imposible mantener esas cosas en secreto del propietario de la computadora, pero intentaron tomar algunos pasos rudimentarios para ocultarlo. El blog al que te vinculaste describió cómo descubrió el secreto.

Ninguna autoridad de certificación legítima permitiría que su clave privada sea filtrada, mucho menos enviarla a un grupo de propietarios de computadoras al azar. Hubo un caso en el que a una autoridad certificadora se le filtró su clave secreta; su reputación se arruinó y se declararon en quiebra en un mes. Dado que su computadora no contiene las claves privadas de las autoridades de certificación legítimas, no existe ningún secreto para que un atacante las resuelva.

    
respondido por el John Deters 20.02.2015 - 06:58
fuente
31

Debido a cómo funciona Superfish, el certificado y su clave privada deben ser fácilmente extraíbles.

Superfish crea certificados firmados sobre la marcha para las conexiones de red que intercepta, sin ponerse en contacto con un servidor central. Para hacer esto, la clave privada para la Superfish CA debe estar integrada en el software en una forma fácil de usar. Ahora, no necesitaban convertirlo en un archivo .pem de texto simple, pero incluso la mejor seguridad no habría frenado un serio esfuerzo de ingeniería inversa en más de un día o dos.

No puedes compartir un secreto con todo el mundo y no esperar que nadie lo encuentre. Las autoridades de certificación Real hacen un mejor trabajo para proteger su clave privada, asegurándose de que nunca deje su computadora de firma de certificado.

    
respondido por el Mark 20.02.2015 - 06:13
fuente
2

Si sigue las mejores prácticas cuando se trata de proteger claves privadas de certificados raíz, lo más seguro es que no haya sido tan fácil.

Si entiendo correctamente el blog de Robert, la contraseña que protegía la clave privada estaba incrustada como una cadena en los archivos binarios de adware que venían con las computadoras portátiles. Esto es como enviar su caja fuerte junto con su llave pegada en la parte inferior de la caja fuerte. ¡No es Buena idea! La contraseña tampoco era muy fuerte, lo que significa que incluso si no estaba incrustada en el adware para que cualquiera la viera, una persona determinada con conocimientos y recursos podría ser capaz de descifrarla en un tiempo razonable.

Lo más probable es que la contraseña para extraer la clave privada esté incorporada en el adware para permitir que el adware descifre el tráfico firmado por el certificado raíz de Superfish sobre la marcha para inyectar el marcado de publicidad que el usuario finalmente vería en la página web. / p>

Este nunca sería el caso con las Autoridades de Certificación responsables y estoy bastante seguro de que una CA debe cumplir con ciertos estándares, o incluso leyes, que les prohibirían hacer tal cosa.

Si fuera tan fácil obtener las claves privadas de todos los certificados raíz, la PKI no habría servido de nada y estaría totalmente protegida.

    
respondido por el ilikebeets 20.02.2015 - 06:02
fuente
2

Superfish actúa como un hombre en el medio. Genera dinámicamente las claves en las que su navegador confía para los dominios que visita. Para generar esas claves, necesita el certificado privado, y aunque es posible hacer más ofuscación, al final no puede ocultar esa clave.

Sin embargo, lo que se podría hacer es generar un par de claves único para el par de Certificados en cada computadora donde está instalado el software. Esto significaría que la extracción de la clave utilizada para la CA raíz instalada en una computadora no proporcionaría acceso a las comunicaciones de otra computadora con el software instalado. Esto no es exactamente ciencia espacial, y es imperdonable que Komodia no lo haga.

Me gustaría saber si otras compañías que realizan este tipo de MITM emiten claves únicas. P.ej. localmente, he encontrado certificados para "Skype Click to Call" y "avast! WEb / Mail Shield", que presumiblemente funcionan de manera similar. He verificado que si visito enlace mi navegador ve un certificado firmado por la clave de avast.

    
respondido por el mc0e 22.02.2015 - 17:45
fuente

Lea otras preguntas en las etiquetas