Un certificato è un pacchetto che contiene una identità (un nome) e una chiave pubblica ; ed è firmato La verifica della firma garantisce che il pacchetto è autentico, ovvero la chiave pubblica è in realtà la chiave di proprietà dell'entità designata dal nome nel certificato. La verifica viene eseguita relativamente alla chiave pubblica di chiunque abbia firmato ("emesso") il certificato, e questa è una Autorità di certificazione (CA). È possibile conoscere la chiave pubblica della CA tramite un altro certificato, emesso da una CA superiore e così via. Devi iniziare da qualche parte, però, con una chiave pubblica per una "CA di primo livello" (nota come "root CA") che tu sai assolutamente (è integrata nel software).
Detto questo, SSL / TLS utilizza i certificati per l'autenticazione e può essere reciprocamente autenticato: sia il client che il il server può possedere una chiave privata e si mostrano reciprocamente i loro certificati. Vedi questa risposta per i dettagli.
Nel tuo caso, dovresti premere una chiave privata e il suo certificato nel dispositivo incorporato (o, meglio ancora, avere il dispositivo incorporato generare la propria coppia di chiavi, in modo che la chiave privata mai lo lascia); e ogni dispositivo mobile dovrebbe avere anche la sua chiave privata e un certificato, in cui il certificato deve contenere il nome del dispositivo mobile (o il nome del dispositivo mobile proprietario ). Quindi, dopo l'handshake SSL, la connessione è sicura, il dispositivo mobile è sicuro che dialoga con il dispositivo incorporato giusto e il dispositivo incorporato conosce in modo affidabile quale client è connesso (attraverso il nome nel certificato ).
Attenzione: autenticazione e autorizzazione non sono la stessa cosa. Che il dispositivo incorporato sappia chi è attualmente all'altro capo della linea non significa che a questa persona debba essere concesso l'accesso. In generale, i certificati non sono validi per l'autorizzazione, in quanto non consentono una revoca rapida e immediata dei diritti di accesso.
Per produrre certificati è necessario un PKI, ad esempio un software in grado di organizzare il processo di ricezione di "Richieste di certificati" e di trasformarlo in certificati. Farlo correttamente richiede un po 'di attenzione, con le procedure da seguire. Alcuni software possono guidarti; Di solito raccomando EJBCA , che è gratuito e opensource.