Contesto:
Voglio decodificare un protocollo in atto per Nintendo 3DS. L'implementazione tuttavia utilizza TLS, il che rende difficile il reverse engineering. Al momento sono in grado di annusare i pacchetti da / verso il mio 3DS perché ho un router di riserva che viene utilizzato per un "test wifi" che viene eseguito attraverso Ethernet del mio desktop e quindi attraverso la mia scheda wireless desktop per l'attuale Internet.
Cosa ho studiato:
- MITM
- Proxy
Blocchi stradali:
- Non posso forzare il 3DS ad accettare un certificato discutibile.
- Non riesco a falsificare il certificato.
- Non tenterò di rubare l'effettiva chiave privata (ho poco interesse per questo una volta che conosco il protocollo).
- Non riesco a leggere la chiave di sessione dalla RAM della mia console, a causa della mancanza di hardware.
Soluzione potenziale:
- Sono quasi sicuro al 100% che il protocollo sia una qualche forma di HTTP (probabilmente attraverso le intestazioni, principalmente). Quindi, se la crittografia è basata su XOR, potrei riuscire a ottenere una parte della chiave, almeno? Non so molto sulla crittografia.
- Ho pensato di configurare un proxy, un'istanza del server CA [e puntare il file host del mio desktop su questa istanza del server], installare il certificato di Nintendo e poi sovrascrivere la chiave pubblica con la mia chiave privata, e quindi usare il mio 3DS certificato sul proxy per comunicare con Nintendo. Non sono certo che questo funzionerà, perché onestamente non ho una comprensione completa su come TSL funzioni oltre a ciò che non è qualcosa che puoi rompere facilmente.
- La forza bruta è un'opzione valida se sono in grado di generare più dati crittografati?
tl; dr- C'è un modo per decifrare questi dati senza la chiave privata del server, o cracking nella RAM per trovare la chiave di sessione? Ho il certificato del server e il certificato del mio cliente 3DS.