Peligros de distribuir un archivo ssl.pem

3

Recientemente he estado buscando en las aplicaciones de Windows Store para ver qué cosas tontas tienen los ingenieros en la tienda. Recientemente, encontré un archivo ssl.pem implementado con una aplicación.

Nunca ejecuté esta aplicación, por lo que no creo que este archivo se haya generado localmente. Creo que lo despliegan con la aplicación. Acabo de instalarlo en la tienda de Windows y comencé a excavar.

Mi suposición es que, con el archivo ssl.pem, debería poder:

  • MiTM alguien que está usando la aplicación
  • Alimenta el archivo pem a Wireshark
  • Descifrar e inspeccionar todo su tráfico.

¿Es este un ataque realista? ¿Se me escapa algo?

Además, ¿es común implementar una aplicación con un archivo pem dentro? Me imagino que querría generar eso por sesión.

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCzWhBE5GUB5sCu
OhIktg+7uVTlaGGsvnM3yQxRw90GkadVUEUCekHuCjYn36zG+8ZKE1wyJnoPjARw
VBTNenFUmyDsajNwuVWYUqBfnrj9f5rLyhZHXN8GQ9wVNUSnop6lo1pUAJ2DKxTI
JbhNorGr2+u315AtesTqYjw6pdj1QmnOYW7Be10aDujxMB19ULY3fDoU+IRzqGIa
EVvyyX88ZNDQJrPtoN9AYoaoF5UDyc92Pc8yWpd7cZKJf9/4VNqSShRY3Ta6bmay
tjJjSHGC84o+6Xm6Vq+scZWQQvJYjcCvdCrbKFLlsuiuxyojyBqH/Bsn3OlsZ1KE
f7BDHICLAgMBAAECggEBAIJF0floeGHILX6f2ZvmzkjJ1nuHtSLXdzM3Coa9oObr
l0LluiqRiSARNMMDuikSqjYWF+qpfhGa34KD4FRcMsOEpoZyoYioZh7tLWYnETG4
pUSPNl2BfNG9KrgQ6Bxnh5rCq5LGm6KyATdcBqIFoc42QOJZZnVSboPc9OiYnJ2P
9401ZTQ7cgz0/doYx3PmixVXt8jZSq9GRAVcwlWixTy2LgH3R0VUOmqfYGv1GsGx
ARNYj46tJ2psoVLsn8jPAesCB8CkcNoB4+x98t5dH9hBlQbIErcO8Cm0uXTq370L
BuSF6F38rAey+g2zJWeClRxF+pBJh4M6oO9cSmHWF7kCgYEA2+Kp6x7pzIJFmKPy
CCmz2otBe2ox4hM2BTAYDS9ma3Q2vEX0D1Btw2SC6ZAfo8Vs3QTjvN+PkcRwi251
z6bspGPYbUApblfF+bDb9D6lyG6OJeqIxVt6Vf+fizMvL5qV+8irgYiThmUF9YAJ
1jqECeroVI83WEWa87CDSlaMuf0CgYEA0M8eMMf1ASHZyXU+ol9JuPsqg40XCPt7
5A4U6IHj3EUDTn7og5SMp/kkAig06YLrs8t1g9vHOwAgOc393lFyIpspfpkTMtj3
Pk9ETVFPFTASyCUtGK6jF27fwib5gLE1Ir3KMzcz3RoZYlPbLJBHf3u7/T6CPGCE
gt7HKiCjRycCgYEAjYa4o1MEXNNEhFiRgduFnZagERVrAf4nePNZp7LokyT7zfag
ffLgkzDwafCPzNNXnHJ3OqwSNlpfrf7s6Tihe7WgKcFwaUspa+r/x5dDEVzHNXRd
j9mvRgb/45KQPm2bN7ITYY5MleYUDc3Zhv+m2NNPso1zq+cxMsRb3M8USOkCgYA0
z11EWx4U9jm9oOCBcnYTybo74TAlPm1cBU+2ajt11yJ59NDbjnNwfCtmPEL9l/YC
1/9VpP0jZ+m+lOGTG6gxJmr9MLvRTVxiruuIXnsQ0cK+SeC48FohMBJ5aSALM0ZM
DhIYl+qPDe3Dl4/EGo1qqaGm7+tCV+rLqopWlkCVWwKBgQCO01VJrp5T9fbkwjjF
JYDdrq9UCtTOQ+Qy/W7/blSxnRkO67raaGA0qek9ZPAtnG1TpeX9Bo0LZhGf/DcE
rB8sJpR71b+TtL9XlG1eu5ZzpURgpO+4WouoatMANLGsPvwlJ9vzX4sHAMT0lf50
Ck/qzYOPVwrdhd6htkYQ59XbpA==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIID4zCCAsugAwIBAgIJAMSNkfAcfcwzMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYD
VQQGEwJTRTESMBAGA1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0x
DTALBgNVBAoMBEtpbmcxDjAMBgNVBAsMBUNhbmR5MQ0wCwYDVQQDDARLaW5nMSIw
IAYJKoZIhvcNAQkBFhNzdHJpdHotZGV2QGtpbmcuY29tMB4XDTE2MDIwODEyMzky
OFoXDTE4MTEwNDEyMzkyOFowgYcxCzAJBgNVBAYTAlNFMRIwEAYDVQQIDAlTdG9j
a2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTENMAsGA1UECgwES2luZzEOMAwGA1UE
CwwFQ2FuZHkxDTALBgNVBAMMBEtpbmcxIjAgBgkqhkiG9w0BCQEWE3N0cml0ei1k
ZXZAa2luZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzWhBE
5GUB5sCuOhIktg+7uVTlaGGsvnM3yQxRw90GkadVUEUCekHuCjYn36zG+8ZKE1wy
JnoPjARwVBTNenFUmyDsajNwuVWYUqBfnrj9f5rLyhZHXN8GQ9wVNUSnop6lo1pU
AJ2DKxTIJbhNorGr2+u315AtesTqYjw6pdj1QmnOYW7Be10aDujxMB19ULY3fDoU
+IRzqGIaEVvyyX88ZNDQJrPtoN9AYoaoF5UDyc92Pc8yWpd7cZKJf9/4VNqSShRY
3Ta6bmaytjJjSHGC84o+6Xm6Vq+scZWQQvJYjcCvdCrbKFLlsuiuxyojyBqH/Bsn
3OlsZ1KEf7BDHICLAgMBAAGjUDBOMB0GA1UdDgQWBBR0arfWGx19kisUiaB/OF4o
xiolEzAfBgNVHSMEGDAWgBR0arfWGx19kisUiaB/OF4oxiolEzAMBgNVHRMEBTAD
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBA4iPNPv7VbabYQMJtqZ7CL+0s5vH7Oq4D
QXPko3H/dXZ/11Sglujm/2YlYfYIU1CXghZB6TnhSnYncG6gGMT0CmH/7zUkBrYl
6dVODXPGKNrstNVB7Z1y4aNkmn/wiLKgdN0/zv8CePZwgIBQ7HsF7O/THA7ceZov
aM8y8LLjP8GY8l1beZpOBbcPKm7trhTujT1Gm97CfZZU/H3yW+aoc1rLVVlqnwyi
H3A2kquscy8eKOimdUtcIuI5kfnOumAnrNCrszlrwgLeRfO5E3Ztvd/ktGNFGcGF
8zIGTdEblECUxLgpKxmYtNdMDYUXDtqZ4nz49eZONOAzmA9r0Qjb
-----END CERTIFICATE-----
    
pregunta Anthony Russell 16.07.2018 - 23:34
fuente

3 respuestas

1

La implementación de un archivo PEM que está firmado por una CA raíz de confianza, incluso si se autofirma, es común. He configurado e implementado una infraestructura de clave pública, con jerarquía:

  • raíz CA
  • CA intermedia
  • certificado del servidor

NextCloud implementa una configuración similar para autenticar actualizaciones en la aplicación, que utiliza una CA raíz autofirmada. Como controlan la CA raíz, y posteriormente todos los certificados firmados, con la opción de revocar certificados a pedido.

La respuesta, MiTM someone that is using the app sí, bajo ciertas condiciones. Suponiendo que un servidor web se implementa utilizando HTTPS sin confidencialidad (PFS) y usted controla la clave privada del servidor web utilizada para iniciar el intercambio de claves, podría haber interceptado la sesión y el intercambio de claves, y luego usar WireShark para descifre los paquetes relevantes para el intercambio de claves utilizando la clave privada del servidor. Luego tendría la (s) clave (s) de desencriptación simétrica para la (s) sesión (es).

Para fortalecer su aplicación contra un ataque MITM viable, tenga en cuenta:

respondido por el safesploit 17.07.2018 - 23:32
fuente
2

Depende del uso. Desde que publicó el certificado, podemos ver que es un certificado autofirmado con la clave privada correspondiente, válida hasta el 4 de noviembre, 12:39:28 2018 GMT. Probablemente lo extrajiste del juego Candy Crush.

Lo más probable es que no valga nada (puedes generar cualquier número de certificados como este), a menos que se use para algo interesante en línea. Si este par se utiliza para algo, alguien cometió un error. A menos que se usara Perfect Forward Secrecy en la comunicación, ni siquiera necesitamos MiTM ya que ahora tenemos la clave privada. Podemos descifrar todos los mensajes directamente (siempre que podamos capturar los datos, por supuesto). Además, podríamos engañar a los clientes con nuestra propia versión de servidor y hacer lo que queramos. Sin embargo, tenemos que aplicar ingeniería inversa al software y / o al protocolo.

Existe una pequeña posibilidad de que se trate de un par exclusivo para su instancia de aplicación, que se utiliza para identificarlo en el servidor. Los atacantes de casos ahora pueden falsificar su identidad en el juego de Candy Crush ya que ha publicado su clave privada. Sin embargo, no creo que sea así, porque el campo Asunto no parece ser único.

Con respecto a su última pregunta, sí, ciertamente es posible implementar archivos pem con la aplicación, ya que pem es un formato contenedor, no necesariamente contiene la clave privada (mientras que la que usted publicó). La distribución de certificados es perfectamente válida, la mayoría de los navegadores lo hacen.

    
respondido por el goteguru 17.07.2018 - 19:53
fuente
1
  

Mi suposición es que, con el archivo ssl.pem, debería poder:

     

-MiTM alguien que está usando la aplicación   -Coloque el archivo pem a Wireshark   - Descifrar e inspeccionar todo su tráfico.

     

¿Es este un ataque realista? ¿Hay algo que me falta?

Si este par de certificado / clave privada se usa para el lado del cliente de la autenticación mutua en TLS, entonces aún necesitará la clave privada del servidor para descifrar el tráfico.

TLS mutuo es donde el servidor autentica al cliente una vez que el cliente autentica al servidor. Pero el tráfico aún está cifrado usando un esquema que se basa en la clave privada del servidor. La clave privada del cliente se usaría para firmar un desafío para confirmar que el cliente es el titular del certificado.

Si la entidad en el lado del cliente de TLS mutua es una aplicación, entonces la clave privada y el certificado del cliente deben estar integrados en algún lugar de la aplicación.

    
respondido por el hft 17.07.2018 - 20:17
fuente

Lea otras preguntas en las etiquetas