I pericoli della distribuzione di un file ssl.pem

3

Recentemente ho scavato attraverso le app di Windows Store per vedere quali cose stupide gli ingegneri stanno inserendo nel negozio. Recentemente, ho trovato un file ssl.pem distribuito con un'app.

Non ho mai eseguito questa app, quindi non credo che questo file sia stato generato localmente. Penso che lo distribuiscano con l'app. L'ho appena installato dall'archivio di Windows e ho iniziato a scavare.

La mia ipotesi è, con il file ssl.pem, dovrei essere in grado di:

  • MiTM qualcuno che sta usando l'app
  • Alimenta il file pem su Wireshark
  • Decifra e controlla tutto il loro traffico.

È un attacco realistico? C'è qualcosa che mi manca?

Inoltre, è comune distribuire un'applicazione con un file pem all'interno? Immagino che vorrai generarlo per sessione.

-----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-----
    
posta Anthony Russell 16.07.2018 - 23:34
fonte

3 risposte

1

La distribuzione di un file PEM firmato da una CA radice affidabile, anche se si è autofirmata la CA principale, è comune. Ho configurato e distribuito un'infrastruttura a chiave pubblica, con gerarchia:

  • CA root
  • CA intermedio
  • certificato server

NextCloud implementa una configurazione simile per l'autenticazione degli aggiornamenti in-app, che utilizza una CA radice autofirmata. Mentre controllano la CA radice e successivamente tutti i certificati firmati procedurali, con l'opzione di revocare i certificati su richiesta.

La risposta, MiTM someone that is using the app si, in determinate condizioni. Presumendo che un server web sia implementato usando HTTPS senza forward secrecy (PFS) e tu controlli la chiave privata del server web utilizzata per avviare lo scambio di chiavi, potresti aver intercettato la sessione e lo scambio di chiavi, quindi usare WireShark per decifrare i pacchetti rilevanti per lo scambio di chiavi usando la chiave privata del server. Quindi avresti le chiavi di decrittografia simmetrica per la sessione (s).

Per indurire la tua app contro un attacco MITM fattibile, considera:

risposta data 17.07.2018 - 23:32
fonte
2

Dipende dall'uso. Dal momento che hai pubblicato il certificato, possiamo vedere che è un certificato autofirmato con la chiave privata corrispondente, valida per il 4 novembre alle 00:39:28 2018 GMT. Probabilmente l'hai estratto dal gioco Candy Crush.

Molto probabilmente è inutile (puoi generare un numero qualsiasi di certs come questo), a meno che non sia usato per qualcosa di interessante online. Se questa coppia è usata per qualcosa, qualcuno ha fatto un errore. A meno che non sia stato utilizzato Perfect Forward Secrecy nella comunicazione, non abbiamo nemmeno bisogno di MiTM dato che ora abbiamo la chiave privata. Siamo in grado di decodificare tutti i messaggi direttamente (a condizione che possiamo acquisire i dati naturalmente). Inoltre, potremmo ingannare i clienti con la nostra versione server e fare ciò che vogliamo. Dobbiamo però decodificare il software e / o il protocollo.

C'è una piccola possibilità che si tratti di una coppia generata in modo univoco per l'istanza dell'app, che viene utilizzata per identificarti sul server. Gli hacker del caso ora possono falsificare la tua identità nel gioco Candy Crush da quando hai pubblicato la tua chiave privata. Non penso che sia il caso, perché il campo Oggetto non sembra essere unico.

Riguardo alla tua ultima domanda, sì, è certamente possibile distribuire i file pem con l'app, dal momento che pem è un formato contenitore, non necessariamente contiene la chiave privata (mentre quella che hai pubblicato lo fa). La distribuzione dei certificati è perfettamente valida, la maggior parte dei browser lo fa.

    
risposta data 17.07.2018 - 19:53
fonte
1

My assumption is, with the ssl.pem file, I should be able to:

-MiTM someone that is using the app -Feed the pem file to Wireshark -Decrypt and inspect all their traffic.

Is this a realistic attack? Is there something I'm missing?

Se questa coppia di certificati / chiavi private viene utilizzata per il lato client di autenticazione reciproca in TLS, sarà comunque necessaria la chiave privata del server per decrittografare il traffico.

Il mutuo TLS è il punto in cui il server autentica il client dopo che il client ha autenticato il server. Ma il traffico è ancora crittografato utilizzando uno schema che si basa sulla chiave privata del server. La chiave privata del cliente verrebbe utilizzata per firmare una sfida per confermare che il cliente è il titolare del certificato.

Se l'entità sul lato client di TLS reciproco è un'app, la chiave privata del client e il certificato devono essere incorporati da qualche parte nell'app.

    
risposta data 17.07.2018 - 20:17
fonte

Leggi altre domande sui tag